1 / 13

习题课( 1 )

习题课( 1 ). 进程管理及调度. 复习. 进程概念、描述及状态 进程的同步与互斥及应用 管程机制 进程通信 进程调度算法 进程死锁 线程. 1 计算. 有一台计算机,具有 1M 内存,操作系统占用 200KB, 每个用户进程各占 200KB 。如果用户进程等待 I/O 的时间为 80% ,若增加 1MB 内存,则 CPU 的利用率提高多少?. 分析计算. 设每个进程等待 I/O 的百分比为 P, 则 n 个进程同时等待 I/O 的概率是 P n n 个进程同时等待 I/O 时, CPU 为空闲,利用率为 1-P n

alika
Download Presentation

习题课( 1 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 习题课(1) 进程管理及调度

  2. 复习 • 进程概念、描述及状态 • 进程的同步与互斥及应用 • 管程机制 • 进程通信 • 进程调度算法 • 进程死锁 • 线程

  3. 1 计算 • 有一台计算机,具有1M内存,操作系统占用200KB,每个用户进程各占200KB。如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?

  4. 分析计算 • 设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是Pn • n个进程同时等待I/O时,CPU为空闲,利用率为1-Pn • 本题,除去操作系统,可容纳4个用户进程,每个用户等待外设时间为80%: • CPU利用率=1-(80%)4=0.59 • 若增加1MB内存,系统可同时运行9个进程 • CPU利用率=1-(80%)9=0.87 • CPU利用率提高=87/59=1.47 • 即:提高47%

  5. 2 计算题 • 下面的C程序,若以进程离开循环时来标识进程,试画出该程序产生进程的家族树,并简要分析? #include<stdio.h> #include <sys/types.h> #include <unistd.h> main() {int i,pid; for(i=1;i<4;i++) if (pid=fork()) break; }

  6. 分析解答 • fork()每次执行时,父进程pid>0,跳出循环 • 子进程pid=0,成为下一轮循环的父进程

  7. 1 2 3 4 扩展 • main() {int i,pid; for(i=1;i<4;i++) if (pid=fork()<=0) break; }

  8. 3 进程的同步与互斥 • 桌上有一只空盘子,允许存放一只水果。爸爸可向盘中放苹果和桔子,儿子专等吃盘中的苹果,女儿专等吃盘中的桔子。规定当盘空时一次只能放一只水果供吃着使用。请用P、V原语实现爸爸、儿子、女儿3个并发进程的同步

  9. 分析解答 • 设置3个信号量 Int S=1;//盘子是否为空 Int Sa=0;// 盘子是否有苹果 Int S0=0;// 盘子是否有桔子 Main() { Father(); Son(); Danghter(); }

  10. Father() { While(1) { P(S); 水果放入盘中; If(放入的是桔子) V(S0); Else V(Sa); } Danghter() { While(1) { P(Sa); 从盘中取出苹果; V(S); 吃苹果; } } Son() { While(1) { P(S0); 从盘中取出桔子; V(S); 吃桔子; } }

  11. 4 死锁 • 一台计算机有8台磁带机,他们由n个进程竞争使用,每个进程可用3台磁带机,请问n为多少时,系统没有死锁危险? 说明原因 • 解答: • N=1,2,3是不会死锁

  12. 例4.2 • 假设一计算机系统有R1设备3台和R2设备4台,他们被P1,P2,P3,P4进程所共享且已知这四个进程均以如下顺序使用两类资源。 ->申请R1->申请R2->申请R1->释放R1->释放R2->释放R1-> (1)系统运行过程中是否有产生死锁的可能?为什么? (2)如果有可能的话,请举出一种情况,并画出表示死锁状态的进程-资源图。

  13. P1 P2 R1 R2 P3 P4 解答 (1)4个进程需要使用的资源数为:R1设备各2台,R2设备各1台 资源总数不够,系统运行过程中有可能死锁 (2)3个进程都执行完第1步(申请R1),开始执行第2步(申请R2),另一个资源因没有R1资源而被阻塞。 3个进程都执行完第2步(申请R2)后,系统仅剩一个R2资源。 这时3个进程都申请R1(第3步),因此,全部阻塞。

More Related