操作系统习题分析.ppt
《操作系统习题分析.ppt》由会员分享,可在线阅读,更多相关《操作系统习题分析.ppt(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统操作系统习题分析习题分析总问题概念要清楚、定义要准确概念要清楚、定义要准确叙述要清楚、具体叙述要清楚、具体解题过程要详细解题过程要详细有关有关PV操作的题必须编写程序,给出算法操作的题必须编写程序,给出算法第第1章章 补充作业补充作业1、设在内存中有三道程序A、B和C,并按A、B、C的优先次序运行,其内部计算和I/O操作的时间如图1所示。若处理机调度程序每次进行程序状态转换的时间为2ms,请画出多道程序系统中在处理机调度程序管理下各程序状态转换的时间关系图,并计算出完成这三道程序共花多少时间?比单道运行节省了多少时间?图1 各程序内部计算和I/O操作的时间 图图2 各程序执行与状态转换
2、的时间关系图各程序执行与状态转换的时间关系图解:多道程序系统中,在处理机调度程序管理下各程序状态转换的时间关系图如图2所示。单道系统中,三道程序共运行的时间为:T=60+2+30+2+40+2+50+2+20+2+50+2+70+2+50+2+40+2+30+2+20+2 =482多道运行比单道运行节省时间为:482306=176第3章 进程管理教材教材 p83 2、6、7、8、9、10、11、13、14、15第3章 进程管理1.设有三个并发进程设有三个并发进程R、M、P,它们共享一个缓冲它们共享一个缓冲区。区。R负责从输入设备读信息,每读一个记录后,负责从输入设备读信息,每读一个记录后,就把
3、它存放在缓冲区中;就把它存放在缓冲区中;M在在缓冲区中加工读入缓冲区中加工读入的记录;的记录;P把加工后的记录打印输出。读入的记录把加工后的记录打印输出。读入的记录经加工输出后,缓冲区又可存放下一个记录。试经加工输出后,缓冲区又可存放下一个记录。试写出它们能正确执行的程序。写出它们能正确执行的程序。缓冲区缓冲区输入进程输入进程R打印进程打印进程P处理进程处理进程M3.6 进程同步缓冲区缓冲区计算进程计算进程PC打印进程打印进程PP计算进程计算进程PC:反复地把每次计算结果放入缓冲区:反复地把每次计算结果放入缓冲区Buf中中打印进程打印进程PP:将计算进程每次放入缓冲区:将计算进程每次放入缓冲区
4、Buf中的数据中的数据取出,通过打印机打印输出取出,通过打印机打印输出缓冲区缓冲区Buf:一次只可放一个数据:一次只可放一个数据例,共享一个缓冲区的合作进程例,共享一个缓冲区的合作进程Begin Sc,Sp:semaphore;Sp=0;/*信号量Sp,表示缓冲区Buf 是否存放计算结果*/Sc=1;/*信号量Sc,表示缓冲区Buf 是否为空*/Cobegin Pc:While(计算未结束);/*计算进程*/计算;P(Sc);/*缓冲区是否为空?若非空,则等待*/Buf计算结果;V(Sp);Pp:While(打印未完成);/*打印进程*/P(Sp);/*缓冲区是否为数据?若无,则等待*/从缓冲
5、区Buf取数据;V(Sc);打印数据;CoendEnd分析缓冲区是临界资源,必须互斥访问缓冲区是临界资源,必须互斥访问信号量信号量empty:表示缓冲区是否为空,初值为表示缓冲区是否为空,初值为1信号量信号量Sr:进程进程R是否已输入信息,初值是否已输入信息,初值Sr=0信号量信号量Sm:进程进程M是否已加工信息,初值是否已加工信息,初值Sm=0begin empty,Sr,Sm,Sp:semaphore empty:=1;Sr:=0;Sm:=0;Cobegin Pr:Repeat 从输入设备读一个记录;从输入设备读一个记录;P(empty);将将记录存入缓冲区;记录存入缓冲区;V(Sr);U
6、ntil false Pm:Repeat P(Sr);在缓冲区中加工记录;在缓冲区中加工记录;V(Sm);Until false Pp:Repeat P(Sm);从缓冲区取出一个记录;从缓冲区取出一个记录;V(empty);打印记录;打印记录;Until false Coendend 第3章 进程管理2.有一阅览室,读者进入时必须先在一张登记表上有一阅览室,读者进入时必须先在一张登记表上进行登记。该表为每一座位列出一个表目,包括进行登记。该表为每一座位列出一个表目,包括座号、姓名。读者离开时撤消登记信息。阅览室座号、姓名。读者离开时撤消登记信息。阅览室有有100个座位,试问:个座位,试问:(1
7、)为描述读者的动作,应编写几个程序,)为描述读者的动作,应编写几个程序,应该设置几个进程?进程和程序之间的对应关系应该设置几个进程?进程和程序之间的对应关系如何?如何?(2)试用)试用P、V操作描述这些进程间的同步操作描述这些进程间的同步算法。算法。分析读者动作:登记、读书、撤消读者动作:登记、读书、撤消座位总数:座位总数:100登记登记/撤消都需要在登记表修改信息,一次只能有一撤消都需要在登记表修改信息,一次只能有一个读者对登记表进行访问个读者对登记表进行访问 登记表是临界资源,必须互斥访问登记表是临界资源,必须互斥访问一个读者一个进程一个读者一个进程信号量的设置信号量的设置 S:用于读者互
8、斥访问(登记用于读者互斥访问(登记/撤消)登记表,初值为撤消)登记表,初值为1 Sn:表示空座位数,初值为表示空座位数,初值为100每个座位设一个状态位:满每个座位设一个状态位:满/空(类似信箱通讯)空(类似信箱通讯)程 序begin S,Sn:Semaphore;S:=1 ;Sn:=100;Cobegin process Reader i (i=1,2,n )begin P(Sn);P(S);选择标志为空的座位选择标志为空的座位X;登记;登记;置座位置座位X的标志为满;的标志为满;V(S);读书;读书;P(S)在在登记表中查找座位登记表中查找座位X;撤消登记信息;撤消登记信息;置座位置座位X
9、的标志为空;的标志为空;V(Sn)V(S)end Coend讨论并分析上述程序:讨论并分析上述程序:采用指针形式(类似生产者采用指针形式(类似生产者-消费者问题)消费者问题)给每个座位设置一个信号量(类似哲学家就餐问题)给每个座位设置一个信号量(类似哲学家就餐问题)第3章 补充题3.桌上有一只盘子,每次只能放入一个水果。爸爸桌上有一只盘子,每次只能放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个女专向盘中放苹果,妈妈专向盘中放桔子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的桔儿专等吃盘中的苹果,一个儿子专等吃盘中的桔子。试用子。试用P、V操作写出他们能同步的程序。操作写出他们能同
10、步的程序。分析:分析:信号量信号量S:表示盘子是否为空,初值为表示盘子是否为空,初值为1信号量信号量So:表示盘中是否有桔子,初值为表示盘中是否有桔子,初值为0信号量信号量Sa:表示盘子是否有苹果,初值为表示盘子是否有苹果,初值为0程序begin S,Sa,So:semaphore S=1;Sa=0;So=0;Cobegin father:Repeat P(S);将苹果放入盘中;将苹果放入盘中;V(Sa);Until false mother:Repeat P(S);将桔子放入盘中;将桔子放入盘中;V(So);Until false daughter:Repeat P(Sa);从盘中取出苹果;
11、从盘中取出苹果;V(S);吃苹果;吃苹果;Until false son:Repeat P(So);从盘中取出桔子;从盘中取出桔子;V(S);吃桔子;吃桔子;Until false Coendend第3章 补充题4、某大学军训正在进行实弹练习。现有一保管员负责管理枪、某大学军训正在进行实弹练习。现有一保管员负责管理枪支弹药,有支弹药,有A、B两组学生,两组学生,A组学生每人都有一支枪,组学生每人都有一支枪,B组学生每人都备有足够的子弹,任一学生只要有枪和子弹组学生每人都备有足够的子弹,任一学生只要有枪和子弹就可以进行实弹练习。在打靶场有一个可以放一只枪或一就可以进行实弹练习。在打靶场有一个可以
12、放一只枪或一发子弹的盒子,当盒中无物品时,保管员就可以任意放一发子弹的盒子,当盒中无物品时,保管员就可以任意放一支枪或一发子弹供学生取用。当盒中有学生所需材料时,支枪或一发子弹供学生取用。当盒中有学生所需材料时,每次允许一个学生从中取出自己所需的材料,材料取走后,每次允许一个学生从中取出自己所需的材料,材料取走后,保管员再放一件材料。保管员再放一件材料。(1)试说明)试说明A、B两组学生、保管员之间的相互制约关系。两组学生、保管员之间的相互制约关系。(2)应设置哪些信号量,它们的初值是什么?)应设置哪些信号量,它们的初值是什么?(3)试用)试用P、V写出他们并发执行的程序(类写出他们并发执行的
13、程序(类C或类或类PASCAL语言)。语言)。解答解:解:(1)这是一个生产者)这是一个生产者-消费者问题。消费者问题。A、B两组学生是消费者,保管员是生产者,盒子是缓两组学生是消费者,保管员是生产者,盒子是缓冲区,是一个临界资源。冲区,是一个临界资源。它们之间的相互制约关系是:保管员与学生之间不仅要它们之间的相互制约关系是:保管员与学生之间不仅要同步,而且保管员与同步,而且保管员与A、B两组学生之间、以及两组学生之间、以及A、B两组学两组学生之间还要互斥。生之间还要互斥。(2)设置)设置3个信号量如下:个信号量如下:公用信号量公用信号量S:初值为:初值为1,表示盒子是否为空;,表示盒子是否为
14、空;私用信号量私用信号量Sgun:表示盒子中是否有一支枪,初值为:表示盒子中是否有一支枪,初值为0;私用信号量私用信号量Sbullet:表示盒子中是否有一发子弹,初值为:表示盒子中是否有一发子弹,初值为0程序如下:Begin S,Sgun,Sbullet:semaphore S=1;/*表示盒子是否为空,初值为表示盒子是否为空,初值为1*/Sgun=0;/*表示盒子中是否有一支枪,初值为表示盒子中是否有一支枪,初值为0*/Sbullet=0;/*表示盒子中是否有一发子弹,初值为表示盒子中是否有一发子弹,初值为0*/Cobegin Keeper:Repeat P(S);将一支枪或一发子弹放入盒子
15、中;将一支枪或一发子弹放入盒子中;If 放入的是一支枪放入的是一支枪 Then V(Sgun)Else V(Sbullet)fi Until false Student Ai (i=1,2,)Repeat P(Sbullet);从盒子中取出子弹;从盒子中取出子弹;V(S);打靶;打靶;Until false Student Bj (j=1,2,)Repeat P(Sgun);从盒子中取出枪;从盒子中取出枪;V(S);打靶;打靶;Until false Coendend5、假定系统中有五个进程P0,P1,P2,P3,P4和三种类型的资源A,B,C,每种资源的数量分别为10,5,7,在T时刻的资源
16、分配情况如表所示。(1)T时刻系统是否为安全状态,若是,请给出安全序列。(2)如果进程P4此时提出资源申请(3,3,1),系统能否将资源分配给它?为什么?资源资源进程进程最大需求矩阵最大需求矩阵M分配矩阵分配矩阵R A B CA B CP0P1P2P3P47 5 33 2 29 0 22 2 24 3 30 1 02 0 03 0 22 1 10 0 2第3章 补充题解:解:(1)进程的最大资源需求数减去当前进程已分)进程的最大资源需求数减去当前进程已分配到的资源数就是进程仍需要的资源数。此时配到的资源数就是进程仍需要的资源数。此时各进程的仍需资源数向量为各进程的仍需资源数向量为进进程程仍需仍
17、需资资源数源数QP07 4 3P11 2 2P26 0 0P30 1 1P44 3 1已知:系统的可用资源向量为已知:系统的可用资源向量为W=(10,5,7)已分配的资源向量为已分配的资源向量为P=(7,2,5)则,系统的当前剩余资源向量为则,系统的当前剩余资源向量为S=(3,3,2)在在T时刻系统存在如下进程执行序列,可以使进程顺时刻系统存在如下进程执行序列,可以使进程顺利进行完毕,所以该状态是安全的,安全序列为利进行完毕,所以该状态是安全的,安全序列为P1、P3、P0、P4、P2。具体如下:。具体如下:进进程程系系统统可用可用资资源数源数SP1完成后:完成后:5,3,2P3完成后:完成后:
18、7,4,3P0完成后:完成后:7,5,3P4完成后:完成后:7,5,5P2完成后:完成后:10,5,7(2)如果进程)如果进程P4此时提出资源申请(此时提出资源申请(3,3,1),系统满足),系统满足进程进程P4的请求,则系统的可用资源数变为(的请求,则系统的可用资源数变为(0,0,1)。)。而此时各进程的仍需资源数向量为:而此时各进程的仍需资源数向量为:进进程程仍需仍需资资源数源数P07 4 3P11 2 2P26 0 0P30 1 1P41 0 0 这时系统的可用资源数(这时系统的可用资源数(0,0,1)不能满足任何)不能满足任何一个进程,系统处于不安全状态。一个进程,系统处于不安全状态。
19、因此,系统不能将资源分配给进程因此,系统不能将资源分配给进程P4。P83 3.10 P62 经典生产者经典生产者-消费者问题消费者问题经典生产者消费者问题设生产者进程和消费者进程是互相等效的,其中,各生产者进程使用过程设生产者进程和消费者进程是互相等效的,其中,各生产者进程使用过程deposit(data),各消费者使用的过程,各消费者使用的过程remove(data)生产者生产者-消费者问题是一个同步问题消费者问题是一个同步问题消费者想接收数据时,缓冲区中至少有一个单元是满的消费者想接收数据时,缓冲区中至少有一个单元是满的生产者想发送数据时,缓冲区中至少有一个单元是空的生产者想发送数据时,缓
20、冲区中至少有一个单元是空的生产者生产者-消费者问题是一个互斥问题消费者问题是一个互斥问题缓冲区是临界资源缓冲区是临界资源经典生产者消费者问题设置信号量设置信号量公用信号量公用信号量mutex:保证生产者进程和消费者进程之:保证生产者进程和消费者进程之间的互斥;初值为间的互斥;初值为1,表示没有进程进入临界区,表示没有进程进入临界区私用信号量私用信号量avail:生产者进程的私用信号量,表示可:生产者进程的私用信号量,表示可用缓冲区数,初值为用缓冲区数,初值为n私用信号量私用信号量full:消费者进程的私用信号量,表示产品:消费者进程的私用信号量,表示产品数目,初值为数目,初值为 0生产者消费者
21、进程描述生产者进程生产者进程生产一种产品生产一种产品P(avail)P(mutex)产品送入缓冲区产品送入缓冲区V(full)V(mutex)消费者进程消费者进程P(full)P(mutex)从缓冲区取一产品从缓冲区取一产品V(avail)V(mutex)消耗该产品消耗该产品生产者指针P 消费者指针R 有界缓冲区有界缓冲区初始状态初始状态R P I12Jn为什么要互斥访问缓冲区?为什么要互斥访问缓冲区?I12J中间状态中间状态RPn什么情况下,出现阻塞?什么情况下,出现阻塞?经典生产者消费者问题设置信号量设置信号量公用信号量公用信号量S:初值为初值为1,表示没有进程进入临界区,用,表示没有进程
22、进入临界区,用于实现进程互斥于实现进程互斥私用信号量私用信号量S0:表示产品数目,初值为表示产品数目,初值为0私用信号量私用信号量Sn:表示可用缓冲区数,初值表示可用缓冲区数,初值为为n生产者消费者进程描述生产者进程生产者进程生产一种产品生产一种产品P(Sn)P(S)产品送入缓冲区产品送入缓冲区V(S0)V(S)消费者进程消费者进程P(S0)P(S)从缓冲区取一产品从缓冲区取一产品V(Sn)V(S)消耗该产品消耗该产品Begin B:array0.n-1 of integer;P,R:integer;S,Sn,S0:semaphore;P:=R:=0;S:=1;Sn:=n;S0:=0;Cobe
23、gin Process Produce i(i=1,2,m)Begin L1:produce a product P(Sn);P(S);BP:=product;P:=(P+1)mod n;V(S0);V(S);go to L1 end Process consumer j(j=1,2,k)Begin L2:P(S0);P(S);take a product from BR;R:=(R+1)mod n;V(Sn);V(S);consume go to L2 end CoendendP83 3.10解:设互斥信号量解:设互斥信号量mutexn为缓冲区的公用信号量,初始为缓冲区的公用信号量,初始值为
24、值为1。设信号量设信号量S1为生产者进程信号量,初始值为为生产者进程信号量,初始值为m。设信号量设信号量S2为消费者信号量,初始值为为消费者信号量,初始值为0。各生产者进程使用的过程各生产者进程使用的过程Deposit(data)如下:如下:Deposit(data)BeginP(S1)选择第选择第n个空缓冲区个空缓冲区P(mutexn)送数据入第送数据入第n个缓冲区个缓冲区V(S2)V(mutexn)End各消费者进程使用的过程各消费者进程使用的过程Remove(data)如下:如下:Remove(data)BeginP(S2)选择一个已有数据的缓冲区选择一个已有数据的缓冲区k P(mute
25、xk)取出缓冲区取出缓冲区k中的数据中的数据V(S1)V(mutexk)EndP83 3.11P61 例例P61 例,设进程例,设进程PA和和PB通过缓冲区队列传递数据通过缓冲区队列传递数据(如图如图3.14)。PA为发送进程,为发送进程,PB为接收进程。为接收进程。PA发送数据时调用发送过发送数据时调用发送过程程deposit(data),PB接收数据时调用过程接收数据时调用过程remove(data)。且数据的发送和接收过程满足如下条件:。且数据的发送和接收过程满足如下条件:在在PA至少送一块数据入一个缓冲区之前,至少送一块数据入一个缓冲区之前,PB不可能从缓不可能从缓冲区中取出数据(假定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 习题 分析
限制150内