- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * 2.6.3 直接消息传递系统实例 1.消息缓冲队列通信机制中的数据结构 type struct processcontrol_block { …… struct message_buffer *mq; 消息队列队首指针 semaphore mutex; 消息队列互斥信号量 semaphore sm; 消息队列资源信号量 …… }PCB (1) 消息缓冲区 在利用消息缓冲队列通信机制时,还应增加用于对消息队列进行操作和实现同步的信号量,并将它们置入进程的PCB中。在PCB中应增加的数据项可描述如下: (2) PCB中有关通信的数据项 2.6.3 直接消息传递系统实例 1.消息缓冲队列通信机制中的数据结构 2.发送原语 2.6.3 直接消息传递系统实例 1.消息缓冲队列通信机制中的数据结构 2.发送原语 void send(receiver, a) { getbuf(a.size,i); 根据a.size申请缓冲区; copy(i.sender,a.sender); 将发送区a中的信息复制到消息缓冲区之中; i.sender=a.sender; i.size=a.size; copy(i.text,a.text); i.next=0; getid(PCBset, receiver.j); 获得接收进程内部标识符; wait(j.mutex); insert(j.mq, i); 将消息缓冲区插入消息队列; signal(j.mutex); signal(j.sm); } 2.6.3 直接消息传递系统实例 1.消息缓冲队列通信机制中的数据结构 2.发送原语 3.接收原语 接收原语描述如下: void receive(b) { j=internal name; j为接收进程内部的标识符; wait(j.sm); wait(j.mutex); remove(j.mq, i); 将消息队列中第一个消息移出; signal(j.mutex); copy(b.sender, i.sender); 将消息缓冲区i中的信息复制到接收区b; b.size=i.size; copy(b.text, i.text); releasebuf(i); } 2.7 线程(Threads)的基本概念 2.7.1 线程的引入 1.进程的2个基本属性 1) 创建进程 2) 撤消进程 3) 进程切换 传统的进程“太重”,在多处理机环境(如对称多处理机SMP)下进程调度、分派和切换时都需花费较大的时间和空间开销。 拥有资源的独立单位 独立调度和分派的基本单位 2.进程并发执行所需付出的时空开销 2.7.1 线程的引入 1.进程的2个基本属性 2.进程并发执行所需付出的时空开销 3.线程作为调度和分派的基本单位 轻型实体。 (2)可并发执行。 (3)共享进程资源。 适宜多处理机系统 2.7.2 线程与进程的比较 1调度单位:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。现在分离了。 2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。 3 拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。 4 独立性:线程的独立性要弱于进程。 5 系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。 6 支持多处理机系统 2.7.3 线程的状态和线程控制块 1 线程运行的三个状态 如同传统的进程一样,在各线程之间也存在着共享资源和相互合作的制约关系,致使线程在运行时也具有间断性。 相应地,线程在运行时,也具有下述三种基本状态: ① 执行状态,表示线程正获得处理机而运行; ② 就绪状态, 指线程已具备了各种执行条件,一旦获得CPU便可执行的状态; ③ 阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行时的状态。 2.7.3 线程的状态和线程控制块 2 线程控制块TCB 在OS中的每一个线程都可以利用线程标识符和一组状态参数进行描述,即线程控制块。状态参数通常有这样几项: ① 寄存器状态, 它包括程序计数器PC和堆栈指针中的内容;
文档评论(0)