- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统-第2章-进程的描述与控制讲解
* * 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)仅存在于用户空间中。对于这种线程的创建、撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现。对于用户级线程的切换,通常发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。由于切换的规则远比进程调度和切换的规则简单,因而使线程的切换速度特别快。可见,这种线程是与内核无关的。我们可以为一个应用程序建立多个用户级线程。在一个系统中的用户级线程的数目可以达到数百个至数千个。由于这些线程的任务控制块都是设置在用户空间,而线程所执行的操作也无须内核的帮助,因而内核完
您可能关注的文档
最近下载
- GB∕T22081-2024《网络安全技术——信息安全控制》之48:“7物理控制-7.3办公室、房间和设施的安全保护”专业深度解读和应用指导材料(雷泽佳编制-2025A0).pdf VIP
- 家校共育合作策划方案大全(10篇).docx VIP
- 员工岗位晋升和薪资晋级管理办法(套头).docx VIP
- 钉钉数字化管理师试题库(二).pdf VIP
- GB∕T22081-2024《网络安全技术——信息安全控制》之50:“7物理控制-7.5物理和环境威胁防范”专业深度解读和应用指导材料(雷泽佳编制-2025A0).pdf VIP
- GB∕T22081-2024《网络安全技术——信息安全控制》之51:“7物理控制-7.6在安全区域工作”专业深度解读和应用指导材料(雷泽佳编制-2025A0).pdf VIP
- 产品分析讲课课件.pptx VIP
- GB∕T22081-2024《网络安全技术——信息安全控制》之52:“7物理控制-7.7清理桌面和屏幕”专业深度解读和应用指导材料(雷泽佳编制-2025A0).pdf VIP
- 房产测量规范-第2单元-房产图图式.doc VIP
- 道路运输车辆达标车型配置、参数表(载货汽车).pdf VIP
原创力文档


文档评论(0)