操作系统第4章 进程及进程管理_第1页
操作系统第4章 进程及进程管理_第2页
操作系统第4章 进程及进程管理_第3页
操作系统第4章 进程及进程管理_第4页
操作系统第4章 进程及进程管理_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、123 P2 C2 I2 P1 C1 I1作业作业1作业作业2单用户系统中操作的先后次序图45 I1 I2 I3 I4C1C3C2P1P2 哪些程序段的执行必须是顺 序的?为什么? 哪些程序段的执行是并行 的?为什么?多用户系统中操作的先后次序图6PQR三个并发进程7程序程序A n := n+1; 程序程序B print(n); n := 0; 共享变量的两个程序8程序程序A的的n :=n+1与与程序程序B的两个语句的两个语句的关系的关系 n的赋值的赋值 打印的结果打印的结果 n的最终赋值的最终赋值 之前之前 10 11 0 之后之后 10 10 1 之间之间 10 10 0 程序程序A n

2、:= n+1; 程序程序B print(n); n := 0; 共享变量的两个程序9例例1: I1 输入程序段输入程序段 I2 In例例2: 编译编译1C编译编译程序程序 编译编译2 编译编译n一个程序对应多个计算的例子10111213 运运 行行服务请求服务请求(请求请求I/O等等)服务完成服务完成/事件来到事件来到进程调度进程调度时间片到时间片到 等等 待待 就就 绪绪个别系统提供个别系统提供进程状态变迁图14 运运 行行服务请求服务请求(请求请求I/O等等)服务完成服务完成/事件来到事件来到进程调度进程调度 等等 待待 就就 绪绪进程状态变迁图15 运运 行行1234 等等 待待 就就

3、绪绪变迁变迁1 变迁变迁3,是否会发生?需要什么条件?,是否会发生?需要什么条件?变迁变迁4 变迁变迁3,是否会发生?需要什么条件?是否会发生?需要什么条件?进程状态变迁的讨论1617181920进程进程控制块控制块PCB程序程序与与数据数据进程组成的示意图21wait_lpt_q_startPCB3PCB7 next打印机等待队列结构打印机等待队列结构runningPCB4 next运行指针运行指针ready_q_start PCB1PCB2PCB9就绪队列结构就绪队列结构next进程队列结构示例2223创建撤销无无有有消亡消亡等待运行运行等待等待唤醒就绪就绪等待等待2425ab 1 入口入

4、口 查查PCB总链总链有同名有同名 ? 向系统申请一个向系统申请一个空的空的PCB 结构结构有空有空PCB ? 将入口信息填入将入口信息填入PCB相应项相应项 将将PCB入就绪队列入就绪队列 将将PCB入总链队列入总链队列返回进返回进程程pid出错出错YN出错出错PCB池示意图进程创建原语流程图2627入口入口由运行指针得当前进程的由运行指针得当前进程的pid释放本进程所占用的资源给父进程释放本进程所占用的资源给父进程该进程从总链队列中摘下该进程从总链队列中摘下释放释放PCB结构结构转进程调度转进程调度进程撤销原语流程图2829入口入口保护进程的保护进程的CPU现场到现场到PCB结构中结构中置

5、该进程为置该进程为”等待等待”状态状态将该进程将该进程PCB结构插入到等待结构插入到等待队列中队列中转进程调度转进程调度进程等待原语流程图3031入口入口找到该等待队列找到该等待队列将队列首进程移出此等待队列将队列首进程移出此等待队列将该进程置将该进程置为为”就绪就绪”状态,状态,并将并将PCB结构插入到就绪结构插入到就绪队列中队列中返回返回进程唤醒原语流程图323334 x := x+1; csa 进程进程A进程进程B x := x+1; csb 进程临界区示意图35 x := x+1; csa 进程进程A进程进程B x := x+1; csb 进程临界区示意图36看病活动:看病活动: 要病

6、人去要病人去化验;化验; 等等化验结果;化验结果; 继续诊病;继续诊病;化验活动:化验活动: 需要进行化验需要进行化验 ? 进行进行化验;化验; 开出化验结果;开出化验结果; 进程同步活动示意图37 缓冲区缓冲区bufiop cpABCDABCD两个进程共享一个缓冲区示意图3839 1W 进入临界区进入临界区csa 0W进程进程AW=0 ?= 0 1W 进入临界区进入临界区csb 0W进程进程BW=0 ?= 0两个进程使用临界资源的操作404142 入入 口口 S-1 S S0 ?转进程调度转进程调度返回返回 入信号灯等待队列入信号灯等待队列 置置“等待状态等待状态”00 0 0P 操作原语流

7、程图43 入入 口口 S+ +1 S 从信号灯的等待队列中取出首元素从信号灯的等待队列中取出首元素 入就绪队列入就绪队列 置置“就绪状态就绪状态” 返回返回 S0 ?0 0V 操作原语流程图44上锁原语上锁原语进入临界区进入临界区csa 进程进程 pa开锁原语开锁原语上锁原语上锁原语进入临界区进入临界区csb 进程进程 pb开锁原语开锁原语两个进程利用上锁、开锁原语实现互斥4546p(mutex)进入临界区进入临界区csa 进程进程 pa v(mutex)p(mutex)进入临界区进入临界区csb 进程进程 pb v(mutex)两个进程利用信号灯的P、V操作实现互斥474849p3 s fp

8、5p1p2p4p6p9p10p8 f sp5p6p7 s f进程流图示例50pbpcpa f s3个合作进程 的进程流图51pbpcpa f s3个合作进程 的进程流图52 iop cp共享缓冲区的合作进程的同步示意图53 iop cp共享缓冲区的合作进程 的同步示意图54 iop cp共享缓冲区的合作进程 的同步示意图55 iop cp共享缓冲区的合作进程 的同步示意图5657c1p1 c2c3ck p2p3pm生产者消费者问题示意图58c1p1 c2c3ck p2p3pm生产者消费者问题示意图59606162636465运 行 终止 创建 就绪 等待 线程的状态变迁图66676869例:

9、main() int x; while(x=fork()= = - 1); if(x= =0) printf(“a”); else printf(“b”); printf(“c”); abcc?bcac?abcc?acbc? cabc?结果 ?701.fork error2 . i=5 i=10 i=73. i=7 i=5 i=104. i=5 i=7 i=10插入else呢?i=7,5,5 71父子1子2main( ) if(fork()=0) 子1的代码段 else if(fork()=0) 子2的代码段 else 3父代码段 213main( ) if(fork()=0) 子1的代码段;

10、 if(fork()=0) 子2的代码段 else 子1的代码段 else 3父代码段去掉这个去掉这个else谁执行这一段?谁执行这一段?3231子1子2父72main() if(fork()=0) printf(“a”); execlp(“file1”,0); printf(“b”); printf(“c”);file1:main() printf(“d”);acd?cad?adc?abdc?adbcc?7374int main(void)pthread_tid;int i,ret;ret=pthread_create(&id,NULL,(void *) thread,NULL);if(re

11、t!=0) printf (Create pthread error!n); exit (1);for(i=0;i3;i+)printf(This is the main process.n);pthread_join(id,NULL);return (0);757677printf(“c”);78798081p3p4 Fp2Sp1p582子进程进程执行的流图图83 s fp5p6p73个合作进程 的进程流图84运行结果?运行结果?A in son process isA in thread is A in father process is 1085868788899091929394959697ready_q scheduler susp wakeup receive pcb6pcb4pcb3pcb2pcb1 dispatcher CPU98调度/分派结构示意图99100101102 pcb1pcb2pcbnCPU完成完成103简单循环轮转调度算法示意图104 运行运行首先选择首先选择 100ms 因因 IO 而等待而等待 高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论