操作系统第二章 习题

上传人:wt****50 文档编号:50680069 上传时间:2018-08-09 格式:PPT 页数:15 大小:150KB
返回 下载 相关 举报
操作系统第二章 习题_第1页
第1页 / 共15页
操作系统第二章 习题_第2页
第2页 / 共15页
操作系统第二章 习题_第3页
第3页 / 共15页
操作系统第二章 习题_第4页
第4页 / 共15页
操作系统第二章 习题_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《操作系统第二章 习题》由会员分享,可在线阅读,更多相关《操作系统第二章 习题(15页珍藏版)》请在金锄头文库上搜索。

1、*计算机操作系统西安交通大学电信学院*进程的描述与控制 l关于并发进程,以下叙述不正确的是()A)若系统中存在一组可同时执行的进程,则该组进程具有 并发性 B)并发进程之间一定是有交往的 C)无关并发进程一定没有共享变量 D)有交往的并发进程一定共享某些资源l进程在等待系统分配处理器以便运行时,处于()A)等待态 B)就绪态 C) 运行态 D)以上都不是l不属于进程的组成部分的是()A)程序 B)数据集 C)进程控制快 D)系统软件l某系统的进程状态转换图如图所示请说明: 运行就绪阻塞4213l请说明引起各种状态转换的典型事件有哪些? 当我们观察系统中某些进程时,能够看到某一进程产 生的一次状

2、态转换能引起另一进程作一次状态转换, 在什么情况下,当一个进程发生转换3时能立即引起 另一个进程发生转换1? 试说明是否会发生下述因果转换:l21l32l41进程的互斥与同步l从下面对临界区的论述中,选择出两条正确的论述:(1)临界区是指进程中用于实现进程互斥的那段代码。(2)临界区是指进程中用于实现进程同步的那段代码。(3)临界区是指进程中用于实现进程通信的那段代码。(4)临界区是指进程中用于访问共享资源的那段代码。(5)临界区是指进程中访问临界资源的那段代码。(6)若进程A与进程B必须互斥地进入自己的临界区,则进程A 出于对应得临界区内时,仍有可能被进程B中断。(7)若进程A与进程B必须互

3、斥地进入自己的临界区,则进程A 出于对应得临界区内时,便不能被进程B中断。l用信号量S实现对系统中4台打印机的互斥使用 ,S.value的初值应设置为(A),若S.value的 当前值为-1,则表示S.L队列中有(B)个等待 进程。A:(1) 1; (2) 0; (3) -1; (4) 4; (5) 4。B:(1) 0; (2) 1; (3) 2; (4) 3; (5) 4; (6) 5; (7) 6;l设有5个哲学家,共享一张放有5把椅子的桌子,每人分 得1把椅子。但是,桌子上总共只有5支筷子,在每人两 边分开各放一支。哲学家们在肚子饥饿时才试图分两次 从两边拾起筷子就餐。条件:l1)只有拿

4、到两支筷子时,哲学家才能吃饭。l2)如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后 才能拿到筷子。l3)哲学家在自己未拿到两支筷子吃饭之前,决不放下自已手中的 筷子。要求:l描述一种没有人饿死(永远拿不到筷子)算法。 设信号量c0c4,初值均为1,分别表示i号筷子被拿(I=0,1,2,3,4), 奇数号哲学家先取右边的筷子,偶数号哲学家先取左边的筷子。第i个哲学家要吃饭: begin if(i mod 2=0) p(ci); p(ci+1 mod 5); eat; v (ci); v (ci+1 mod 5); else p(ci+1 mod 5); p(ci); eat; v (ci

5、+1 mod 5); v (ci); end;嗜睡的理发师问题 一个理发店有一个有N张沙发的等候室和一个放有 一张理发椅的理发室组成。没有顾客要理发时, 理发师便去睡觉。当一个顾客走进理发店时,如 果所有的沙发都已被占用,他便离开理发店;否 则如果理发师正在为顾客理发,则该顾客就找一 张空沙发坐下等待;如果理发师因无顾客正在睡 觉,则由新到的顾客唤醒理发师为其理发。在理 发完成后,顾客必须付费,直到理发师收费后才 能离开理发店。试用信号量实现这一同步问题。 l需要设置一个整型变量count用来对理发店中的 顾客进行计数,并须设置7个信号量,其中: mutex用来实现顾客进程对count变量的互

6、斥访 问,其初值为1;sofa是对应于等候室中N张沙 发的资源信号量,其初值为N;empty表示是否 有空闲的理发椅,其初值为1;full表示理发椅上 是否坐有等待理发的顾客,其初值为0;cut用来 等待理发的完成,其初值为0;payment用来等 待付费,其初值为0;receipt用来等待收费,其 初值为0。具体的算法描述如下: int count=:integer=0; flag=1; Semaphore mutex=1, sofa=n, empty=1, full=0, cut=0, payment=0, receipt=0; 顾客: guest wait(mutex);if(count

7、n) signal(mutex); exit shop;/如果理发椅和沙发都坐有顾客则离开else count+;/顾客数加1if(count1) /如果理发椅上已经坐有顾客 signal(mutex); wait(sofa);/选择沙发 sit on sofa;/ 入座沙发 wait(empty);/等待理发椅空闲 get up from sofa;/从沙发上起身 signal(sofa);/腾出空闲沙发 else /目前只有一位顾客 signal(mutex); wait(empty); sit on the baber_chair; /入座理发椅 signal(full);/宣告理发椅上

8、已有人,请理发师来理发 wait(cut);/等待理发结束 pay;/付钱 signal(payment); wait(receipt);/等待收完款 get up from the baber_chair;/从理发椅上起身 signal(empty);/腾出理发椅 wait(mutex); count-;/顾客数减1 signal(mutex); exit shop;/离开 理发师: barber do wait(full);/等待唤醒cut hair;/开始理发 signal(cut);/理完wait(payment);/等待付款accept payment;/收款signal(receipt);/收完款 while(flag=1);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号