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文档。上传文档
查看更多
os.Chapt2操作系统第二章

第2章 进程管理; 教学内容 2.1 进程的引入 2.2 进程的描述 2.3 进程控制 2.4 进程的同步与互斥 2.5 进程同步问题举例 2.6 进程通信 2.7 线程 本章小结 ;2.1 进程的引入 ;2.1.2 程序的并发执行及其特征;2.程序并发执行时的特征;2.1.3 进程的定义与特征;进程和程序之间的关系 ;2.进程的特征;2.1.4 进程的基本状态及转换;2.进程状态的转换;程;3.引入挂起状态时的进程状态;完成或 撤消 ;2.1.5 Linux进程的状态 ;2.2 进程的描述;2.2.1 进程控制块PCB ;1.进程标识符 进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符: (1)进程内部标识符。 (2)进程外部标识符。 2.处理机状态:由各种寄存器中的内容组成。 3.进程调度信息 (1)进程状态。 (2)进程优先级。 (3)进程调度所需要的其它信息。 (4)事件,或阻塞原因。 4.进程控制信息,包括: (1)程序和数据的地址; (2)进程同步和通信机制; (3)资源清单; (4)链接指针。;2.2.2 进程控制块的组织方式;2.链接方式;3.索引方式;2.2.3 Linux进程的PCB; Linux支持典型的UNIX进程间通信机制——信号、管道,也支持System Ⅴ通信机制——共享内存、信号量和消息队列。 3. 进程资源信息 记录了与该进程有关的存储器的各种地址和资料、文件系统以及打开文件的信息等等。 4. CPU现场信息;2.3 进程控制; ;2.3.1 进程的家族关系;2.3.2 进程的创建与终止;2.3.3 进程的阻塞与唤醒 ; 实现进程的执行状态到等待状态,又由等待状态到就绪状态转换的两种原语,分别为阻塞原语与唤醒原语 。;2.3.4 Linux系统调用 ;2.4 进程的同步与互斥;2.临界区;2.4.2 进程的互斥与同步;2.4.3 锁机制;改进的加锁和开锁原语;2.利用锁机制实现进程的互斥 ;2.4.4 信号量机制;1.整型信号量;2.记录型信号量;Wati(S);申请临界资源的原语wait操作可描述为: void wait(S) {S.value=s.value-1; if S.value≥0 本进程继续; else { 将本进程放入阻塞态队列; 转进程调度;} }  释放临界资源的原语signal操作可描述为: void signal(S) { S.value=s.value+1;; if s≤0 then 唤醒指针queue所指的阻塞态进程; } ;2.5 进程同步问题举例 ;0;算法及程序 semaphore mutex=1, empty=n, full=0;  /*定义信号量并赋初值*/ message buffer[n]; int in=0, out=0;     /*定义存取指针的初始位置*/ void main() { parbegin(proceducer,consumer); } 生产者进程 void procedure() {do { 生产一件产品; … wait(empty); wait(mutex); 将产品放入缓冲区buffer[in]; in=(in+1)%n; signal(mutex); signal(full); }while(true); } ;消费者进程 void consumer() {do { wait(full); wait(mutex); 从缓冲区buffer[out]中取走一件产品; out=(out+1) % n; signal(mutex); signal(empty); 消费这件产品; }while(true); };4.在生产者—消费者问题中应注意: ;2.5.2 读者—写者问题 ;共享文件F; 由于多个进程可以同时读,因此只要有一个reader进程在读,其它reader进程便不必申请该共享文件,直接读即可;若无文件在读,则第一个读文件的进程必须做申请该文件的操作。只要有read进程在执行,则不允许writer进程去写。因此,仅当readcount=0, 即无reader进程在读时,reader进程才需要执行wait(wmutex)操作。若wait(wmutex)操作成功,re

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档