os.Chapt2操作系统第二章课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.间接通信方式 信箱体 send receive receive send 进程B 信箱头 图2-15 进程的信箱通信方式 进程A 间接通信方式又称为信箱通信方式。信箱是一种数据结构,逻辑上可分为两部分:信箱头和信箱体。信箱头包含箱体的结构信息,信箱体由多个格子构成,它实际上就是一个有界缓冲池。信箱通信一般是进程之间的双向通信。如图2-15所示。 3.消息缓冲队列通信机制 (1)消息缓冲队列通信机制中所用的主要数据结构是消息缓冲区。在设置消息缓冲队列时,还应添加用于对消息队列进行操作和实现同步的信号量,并将它们存入进程的PCB中。 当一个发送进程要发送消息时,便形成一个消息,并发送给指定的接收进程。接收进程将所有的消息缓冲区链成一个队列,其队列首由接收进程PCB中的队列队首指针mq来指出。 (2)发送原语 (3)接收原语 接收进程调用接收原语,从自己的消息缓冲队列中,选取第一个消息缓冲区,并将其中的数据复制到指定的消息接收区内。 发送进程在发送消息之前,应先在自己的内存空间设置一发送区,然后调用发送原语,把消息发送给接收进程。 2.6.3 管道通信系统 所谓管道,是指用于连接一个读进程和一个写进程,以实现他们之间通信的一个共享文件,又名pipe文件。 为了协调双方的通信,管道机制必须提供以下三方面的协调能力: (1)互斥,即当一个进程正在对pipe执行读/写操作时,其它(另一)进程必须等待。 (2)同步,指当读写进程使用pipe时,需要同步使用。 (3)确定对方是否存在,只有确定了对方已存在时,才能进行通信。 第2章 进程管理 * 2.6.4 信号通信机制 1.信号的基本概念 每个信号都对应一个正整数常量,即信号编号。 信号机制具有以下三方面的功能: (1)发送信号。发送信号的程序用系统调用kill( )实现; (2)预置对信号的处理方式。接收信号的程序用signal( )来实现预置处理方式; (3)收受信号的进程按事先的规定完成对相应事件的处理。 第2章 进程管理 * 2.信号的发送 3.信号的处理 对软中断信号的处理分三种情况进行: (1)如果进程收到的软中断是一个已决定要忽略的信号(function=1),进程不做任何处理便立即返回; (2)进程收到软中断后便退出(function=0); (3)执行用户设置的软中断处理程序。 信号的发送,是指由发送进程把信号送到指定进程的信号域的某一位上。 进程用kill( )向一个进程或一组进程发送一个信号。 4.相关的Linux系统调用 (1)kill( ) 功能:向一个或一组进程发送一个软中断信号。 (2)signal( ) 功能:预置对信号的处理方式,允许调用进程控制软中断信号。 第2章 进程管理 * 2.7 线程 线程是比进程更小的能独立运行的基本单位。 2.7.1 线程的基本概念 线程(thead)是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。在引入线程的操作系统中,可以在一个进程内部进行线程切换,现场保护工作量小。 线程与进程的比较: (1)进程是资源分配的基本单位。同一进程的所有线程共享该进程的所有资源。 (2)线程是分配处理机的基本单位,它与资源分配无关。 (3)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (4)线程在执行过程中,需要协作同步。 第2章 进程管理 * 2.7.2 线程的状态与转换操作 线程有3种基本状态,即执行、阻塞和就绪。 针对线程的3种基本状态,存在5种基本操作来转换线程的状态。它们是: 1.派生(spawn) 2.调度(schedule) 3.阻塞(Block) 4.激活(unblock) 5.结束(Finish) 第2章 进程管理 * 2.7.3 引入线程的好处 引入线程的好处有以下几点: 1.易于调度。 2.提高了系统的效率。 3.创建一个线程比创建一个进程花费的开销少,创建速度快。 4.有利于发挥多处理器的功能,提高进程的并行性。 第2章 进程管理 * 2.7.4 多线程的实现 多线程机制是指操作系统支持在一个进程内执行多个线程的能力。多种系统支持多线程实现的方式并不完全相同。 1.用户级线程 用户级线程是由用户应用程序建立的,并由用户应用程序负责对这些线程进行调度和管理,操作系统内核并不知道有用户级线程的存在,只对进程进行管理。 2.内核级线程 内核级线程简称为KLT,通常也称为“纯KLT”方法。内核级线程中所有线程的创建、调度和管理全部由操作系统内核负

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档