- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * Lock mutex Lock mutex check data structures; mark resource as free; while(resource busy); unlock mutex; wait(condition variable); wakeup(condition variable); mark resource as busy; unlock mutex; * * 原来占有资源R的线程在使用完该资源后,便按照右半部分的描述释放该资源,其中的wakeup(condition variable)表示去唤醒在指定条件变量上等待的一个或多个线程。在大多数情况下,由于所释放的是临界资源,此时所唤醒的只能是在条件变量上等待的某一个线程,其它线程仍继续在该队列上等待。但如果线程所释放的是一个数据文件,该文件允许多个线程同时对它执行读操作。在这种情况下,当一个写线程完成写操作并释放该文件后,如果此时在该条件变量上还有多个读线程在等待,则该线程可以唤醒所有的等待线程。 * * 3.信号量机制 1) 私用信号量(private samephore) 当某线程需利用信号量来实现同一进程中各线程之间的同步时,可调用创建信号量的命令来创建一私用信号量,其数据结构存放在应用程序的地址空间中。私用信号量属于特定的进程所有,OS并不知道私用信号量的存在,因此,一旦发生私用信号量的占用者异常结束或正常结束,但并未释放该信号量所占有空间的情况时,系统将无法使它恢复为0(空),也不能将它传送给下一个请求它的线程。 * * 2) 公用信号量(public semaphore) 公用信号量是为实现不同进程间或不同进程中各线程之间的同步而设置的。由于它有着一个公开的名字供所有的进程使用,故而把它称为公用信号量。其数据结构是存放在受保护的系统存储区中,由OS为它分配空间并进行管理,故也称为系统信号量。如果信号量的占有者在结束时未释放该公用信号量,则OS会自动将该信号量空间回收,并通知下一进程。可见,公用信号量是一种比较安全的同步机制。 第二章 进程的描述与控制 前趋图和程序执行 进程的描述 2 进程控制 3 3 进程同步 4 4 经典进程的同步问题 3 5 3 5 1 4 * * 进程通信 4 4 线程(Threads)的基本概念 3 5 7 6 线程的实现 4 4 8 * * 2.8 线程的实现 1.内核支持线程 对于通常的进程,无论是系统进程还是用户进程,进程的创建、 撤消,以及要求由系统设备完成的I/O操作,都是利用系统调用而进入内核,再由内核中的相应处理程序予以完成的。进程的切换同样是在内核的支持下实现的。因此我们说,不论什么进程,它们都是在操作系统内核的支持下运行的,是与内核紧密相关的。 * * 这里所谓的内核支持线程KST(Kernel Supported Threads),也都同样是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,他们的创建、撤消和切换等也是依靠内核,在内核空间实现的。此外,在内核空间还为每一个内核支持线程设置了一个线程控制块,内核是根据该控制块而感知某线程的存在,并对其加以控制。 这种线程实现方式主要有如下四个优点: (1) 在多处理器系统中,内核能够同时调度同一进程中多个线程并行执行; * * (2) 如果进程中的一个线程被阻塞了,内核可以调度该进程中的其它线程占有处理器运行,也可以运行其它进程中的线程; (3) 内核支持线程具有很小的数据结构和堆栈,线程的切换比较快,切换开销小; (4) 内核本身也可以采用多线程技术,可以提高系统的执行速度和效率。 内核支持线程的主要缺点是:对于用户的线程切换而言,其模式切换的开销较大,在同一个进程中,从一个线程切换到另一个线程时,需要从用户态转到内核态进行,这是因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。 * * 2.用户级线程 用户级线程ULT(User Level Threads)仅存在于用户空间中。对于这种线程的创建、撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现。对于用户级线程的切换,通常发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。由于切换的规则远比进程调度和切换的规则简单,因而使线程的切换速度特别快。可见,这种线程是与内核无关的。我们可以为一个应用程序建立多个用户级线程。在一个系统中的用户级线程的数目可以达到数百个至数千个。由于这些线程的任务控制块都是设置在用户空间,而线程所执行的操作也无须内核的帮助,因而内核完
您可能关注的文档
- 必修三第六课第一框 源远流长的中华文化.pptx
- 必修五第三单元导学案.doc
- 必修一 1-6单元培优 解析.doc
- 庄园御海项目2014年11月-12月营销推广沟通案68p.pptx
- 必一至选八黑体单词.ppt
- 成功的电子商务B2B案例分析及专业知识培训.ppt
- 张毅刚单片机第11章.ppt
- 张颖-第二章-第五六节-刚体的纯滚动及进动-力学小结.pptx
- 征地补偿制度改革研究(2016.9.11).doc
- 成品支架—组配安装指导手册.docx
- 2025广东珠海高新技术产业开发区科技创新和产业发展局招聘合同制职员1人笔试备考试题及答案解析.docx
- 2025广东省清远市清城区下半年招聘中学教师45人笔试参考题库附答案解析.docx
- 2025广东韶关市始兴县“青年人才”和“急需紧缺人才”招聘40人(第三批,医疗岗4人)笔试参考题库附答案解析.docx
- 2025广东酒店管理职业技术学院中层干部岗招聘9人考试备考题库及答案解析.docx
- 2025广东湛江市坡头区乾塘镇人民政府招聘编外人员1人考试备考试题及答案解析.docx
- 2025广东珠海高新技术产业开发区科技创新和产业发展局招聘合同制职员1人笔试备考题库及答案解析.docx
- 本科民商法考试题及答案.doc
- RAZ-B分级阅读英语绘本The Pet Rats(带练习册).pdf
- 2025广东珠海高新技术产业开发区科技创新和产业发展局招聘合同制职员1人笔试模拟试题及答案解析.docx
- 2025广东韶关市始兴县“青年人才”和“急需紧缺人才”招聘40人(第三批,医疗岗4人)笔试模拟试题及答案解析.docx
原创力文档


文档评论(0)