第一章1.操作系统的主要作用是(D)A管理设备B提供操作命令C管理文件D为用户提供使用计算机的接口,管理计算机的资源2.对外部输入的信息能在规定时限内处理完毕并作出迅速反应的操作系统称为(C)A分时操作系统B批处理操作系统C实时操作系统D多处理机操作系统3.操作系统的基本特征是并发性、共享性、虚拟性、异步性。4.什么是操作系统?操作系统是一组控制和管理计算机硬件和软件资源,合理的对各类作业进行调度,以及方便用户使用的程序集合。第二章1.苹果桔子问题桌上有一只盘子,每次只能存放一个水果。一家四口人各行其职,爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),儿子专等吃盘子中的桔子,女儿专等吃盘子里的苹果。请用PV操作来实现四人之间的同步算法。答:记录型信号量解决苹果桔子问题,plate:semaphore;/*盘子是否为空*/orange:semaphore;/*盘子里有桔子*/apple:semaphore;/*盘子里有苹果*/plate:=1;orange:=0;/*盘子里没有桔子*/apple:=0;/*盘子里没有苹果*/parbeginprocessfatherbeginL1:P(plate);放苹果;V(apple);gotoL1;end;processmotherbeginL2:P(plate);放桔子;V(orange);gotoL2;end;processsonbeginL3:P(orange);取桔子;V(plate);吃桔子;gotoL3;end;processdaughterbeginL4:P(apple);取苹果;V(plate);吃苹果;gotoL4;end;parend2.和尚取水问题寺庙里有老小和尚若干和一水缸,小和尚打水,老和尚饮水。水缸容积为10桶水,水取自同一水井,每次只容一个桶打水,桶的总数为3个,每次往水缸倒水和从水缸取水仅为一桶。答:Varmutex1,mutex2,empty,full,count:semaphore;mutex1:=1;代表可以用水井mutex2:=1;代表可以用水缸empty:=10;水缸的容量full:=0;水缸中的水量count:=3;水桶的个数process小和尚:beginrepeatwait(empty);wait(count);wait(mutex1);从井中打水;signal(mutex1);wait(mutex2);送水入水缸;signal(mutex2);signal(count);signal(full);untilfalse;endprocess老和尚:beginrepeatwait(full);wait(count);wait(mutex2);从缸中取水;signal(mutex2);signal(empty);signal(count);untilfalse;end3.有一座东西方向的独木桥,用P,V操作实现:(1)每次只允许一个人过桥;(2)当独木桥上有行人时,同方向的行人可以连续过桥,相反方向的人必须等待。(3)当某一方向无人过桥时,另一方向的行人可以过桥。答:(1)设信号量MUTEX=1P(MUTEX)过桥V(MUTEX)(2)设信号量:MUTEX=1(东西方互斥)MD=1(东向西使用计数变量互斥)MX=1(西向东使用计数变量互斥)设整型变量:CD=0(东向西的已上桥人数)CX=0(西向东的已上桥人数)从东向西:P(MD)IF(CD=0){P(MUTEX)}CD=CD+1V(MD)过桥P(MD)CD=CD-1IF(CD=0){V(MUTEX)}V(MD)从西向东:P(MX)IF(CX=0){P(MUTEX)}CX=CX+1V(MX)过桥P(MX)CX=CX-1IF(CX=0){V(MUTEX)}V(MX)(3):从东向西的,和(2)相同;从西向东的和(1)相同。4.上图描述的生产者-消费者问题中,如果其缓冲区部分为n个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。试重新描述生产过程和消费过程。答:设第i块缓冲区的公用信号量为buf[i],初值为1;生产者进程的私用信号量为produce,初值为n;消费者进程的私用信号量为consume,初值为0。生产过程和消费过程描述如下:生产过程:BeginP(produce)选择一个空缓冲区iP(buf[i])送数据入缓冲区iV(consume)V(buf[i])End消费过程:BeginP(consume)选择一个满缓冲区iP(buf[i])取缓冲区i中的数据V(produce)V(buf[i])End5.若信号量的初值为2,当前值为-3,则表示有()等待进程。A1个B2个C3个D5个6.在操作系统中,(B)是竞争和分配计算机系统资源的基本单位。A程序B进程C作业D用户7.下面哪一个不会引起进程创建(C)A用户登录B作业调度C设备分配D应用请求8.进程和程序的本质区别是(B)A内存和外存B动态和静态特征C共享和独占使用计算机资源D顺序和非顺序执行机器指令9.在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。所谓临界区是(B)A一个缓冲区B一个数据区C一种同步机构D一段程序10.在一辆公共汽车上,司机和售票员各行其职,司机负责开车和到站停车,售票员负责售票和开、关门,当售票员关好车门后,驾驶员才能继续开车行驶。用P、V操作实现司机与售票员之间的同步。答:问题分析:是一个进程同步互斥问题,两个主要点是1)司机开车的时候,售票员不能开门,(这里体现的是进程的互斥问题)车停之后,由司机通知售票员开门(这里体现的是进程的同步问题);2)车门开着的时候,司机不能开车,等售票员把车门关上之后,由售票员通知司机开车。同步信号量:driver:司机私有信号量,初为1;conductor:售票员私有信号量,初值为0;初值的含义是售票员具有优先车门控制权。semaphoresem_driver=0,sem_conductor=1;voiddriver(){while(true){p(sem_driver);start_bus();normal_driving();station_stop();v(sem_conductor)}}voidconductor(){while(true){p(sem_conductor);open_door();shut_door();sell_ticket();v(sem_driver)}}voidmain(){parbegin(driver,conductor);}第三章1.在一个有N个进程的单处理机系统中,有可能出现N个进程都被阻塞的情况。(√)2.系统处于不安全状态必然导致系统死锁。(×)3.当一进程运行时,系统可基于某种原则,强行将其撇下,把处理机分配给其他进程,这种调度方式是(B)A非剥夺方式B剥夺方式C中断方式D查询方式4.在为多道程序所提供的可共享的系统资源不足时可能出现死锁。但是,不适当的(C)也可能产生死锁。A进程优先权B资源的线性分配C进程推进顺序D分配队列优先权5.发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏(A)条件是不太实际的。A互斥B不可抢占C部分分配D循环等待6.在分时操作系统中,进程调度经常采用(C)算法。A先来先服务B最高优先权C时间片轮转D随机7.(B)优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。A先来先服务B静态C动态D短作业8.某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是(B)[选临界值,即发生死锁时刻,m个进程,每个进程需要n台机器,(n-1,n-1,n-1……n-1)先给m个进程依次分配n-1台机器,之后这m台机器都去抢夺最后一台机器,进入死锁状态,则总得机器资源数目为:(n-1)*m+1上面m=3,n=4代入得10]A9B10C11D129.在下列解决死锁的方法中,属于死锁预防策略的是:(B)A银行家算法B资源有序分配法C死锁检测法D资源分配图化简法10.资源的按序分配策略可以破坏(D)条件。[这样的话,所有进程资源的请求必须严格按照资源序号递增的次序提出,在所形成的资源分配图中不可能再出现环路,因而破坏了循环等待条件。]A互斥使用资源B占有且等待资源C非抢占资源D循环等待资源11.进程的调度方式有两种,一种是剥夺方式,另一种是非剥夺方式在先来先服务调度算法中,按照进程进入就绪队列的先后次序来分配处理机。12.死锁产生的必要条件有四个,即互斥条件、请求和保持条件、不可剥夺条件、环路等待条件。13.银行家算法中,当一个进程提出的资源请求将导致系统从安全状态进入不安全状态时,系统就拒绝它的资源请求。14.对待死锁,一般应考虑死锁的预防、避免、检测和解除四个问题。典型的银行家算法是属于避免死锁,破坏环路等待条件是属于预防死锁,而剥夺资源是解除死锁的基本方法。15.为什么说多级反馈队列能较好的满足各类用户的需要?答:(1)所有类型的作业都会在很短的时间内启动,用户会获得响应;(2)终端型用户作业、短批处理作业用户,能在较短的时间内完成;(3)系统吞吐率高;(4)长批处理作业,能够最终得到处理。16.为什么说采用有序资源分配法不会产生死锁?答:为了便于说明,不妨设系统中有m类资源,n个进程,分别用R1,R2,…,Rm(1,2,…,m可看作资源编号)和P1,P2,…Pn表示。根据有序资源分配法可知,进程申请资源时必须按照资源编号的升序进行,即任何进程在占有了Ri类资源后,再申请的资源Rj的编号j一定大于i。因此在任一时刻,系统中至少存在一个进程Pk,它占有了较高编号的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当Pk运行完成后即会释放它占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。17.某分时系统中的进程可能出现如下图所示的状态变化,回答下列问题:(1)根据图示,该系统采用的是什么进程调度策略?(2)指出图示中的每一个状态变化的原因。18.在银行家算法中,若出现下述资源分配情况,试问:ProcessAllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656(1)该状态是否安全?(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给他?答:(1)该状态是安全的,这时可以找到一个安全序列:P0、P3、P4、P1、P2设置两个向量①工作向量work,它表示系统可提供给进程继续运行所需的各类资源数目,在执行算法开始时,work:=Available,②finish,它表示系统是否有足够的资源分配给进程,使其运行完成。所以对上述分配资源情况进行分析如下:ProcessAllocationNeedworkwork+AllocationfinishP00032001216221654trueP30332065216541986trueP4001406561986199(10)trueP110001750199(10)299(10)trueP213542356299(10)3(12)(14)(14)true(2)若进程P2提出上述请求,系统不能将资源分配给它,因为分配之后系统将进入不安全状态。P2请求资源:P2发出请求向量Request2(1,2,2,2),系统按银行家算法进行检查:③Request2(1,2,2,2)≤Need2(2,3,5,6);②Request2(1,2,2,2)≤Available(1,6,2,2);③系统暂时先假定可为P2分配资源,并修改P2的有关数据,如下表:ProcessAllocationNeedAvailableP00032001204