`
kfy31kfy
  • 浏览: 17014 次
社区版块
存档分类
最新评论

jianda

 
阅读更多

jianda
2011年01月15日
  四。简答题
  1.在单处理机环境下,进程间有哪几种通信方式,是如何实现的?[/b]
  [b]答:
作业调度:从一批后备作业中选择一个或几个作业,给它们分配资源,建立进程,挂入就绪队列。执行完后,回收资源。
  进程调度:从就绪进程队列中根据某个策略选取一个进程,使之占用CPU。
  交换调度:按照给定的原则和策略,将外存交换区中的进程调入内存,把内存中的非执行进程交换到外存交换区中。
  [/b]
  [b]2.
设备管理中的数据传送控制方式有哪几种?分别简述如何实现的。[/b]
  [b]答:
程序直接控制:由用户进程来直接控制内存或CPU和外设间的信息传送。
  中断方式:进程通过CPU发出指令启动外设,该进程阻塞。当输入完成时,I/O控制器通过中断请求线向CPU发出中断信号,CPU进行中断处理。
  DMA方式:在外设和内存之间开辟直接的数据交换通路。
  通道控制方式:CPU发出启动指令,指出通道相应的操作和I/O 设备,该指令就可启动通道并使该通道从内存中调出相应的通道指令执行。
  
  3.简述进程的几种状态和引起状态转换的典型原因,以及相关的操作原语。[/b]
  [b]答:
进程的基本状态有:新、就绪,阻塞,执行、挂起和终止六种。
  新到就绪:交换,创建原语
       就绪到执行:进程调度
       执行到阻塞:I/O请求,阻塞原语
  阻塞到就绪:I/O完成,唤醒原语
  执行到就绪:时间片完
  阻塞到挂起:挂起原语
  挂起到就绪:唤醒原语
       执行到终止:进程执行完毕
  
  4.什么是段式存储管理?它从逻辑地址到物理地址是怎么变换的?[/b]
  [b]答:把程序按内容或构成关系分成段,每段有自己的名字。一个用户作业或进程包含的段对应于一个二维虚拟储存器。以段为单位分配内存,然后通过地址映射机构把逻辑地址转换成物理地址。只将那些经常访问的段驻留内存,其他的段放在外存,待需要时自动调入。

  地址变换过程:由虚地址中的段号为索引,查段表。找出该段在内存的起始地址,并将其和段内地址相加,从而得到物理地址
  5.什么是请求页式管理?能满足用户哪些需要?
  答:请求页式管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就形成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。
  此外,页表中还包括特征位(指示该页面是否在内存中)、外存地址、修改位(该页的内容在内存中是否修改过)等。
  页式存储管理在动态地址转换过程中需要确定某一页是否已经调入主存。若调入主存,则可直接将虚地址转换为实地址,如果该页未调入主存,则产生缺页中断,以装入所需的页。
  页式存储管理将不常用的页面调出内存,使内存的利用率高;虚拟的容量大,用户不必担心内存不够;不要求作业连续存放,有效地解决了“碎片”问题。
  6.在段页式虚拟存储系统中,不同进程之间是如何实现程序共享的?[/b]
  [b]答:
在系统内设置有系统段表,用户段表指向系统段表,系统段表内有当前共享的用户数。当用户进程调入一个程序段之前,先查找系统段表,如果所需段存在,则将共享用户数加一,在将此段登记在用户进程段表中。当进程退出时,共享计数减一,最后一个用户删除共享代码段。[/b]
  [b]7.试比较内存管理和外存管理的异同点.

  答:主要任务:内存管理的主要任务是为多道程序的运行,提供良好的环境;而外存管理的主要任务则是为文件提供存储空间。
  基本功能:内存管理的基本功能包含了内存空间的分配、回收、内存保护、对换、内存扩充等方面;而对外存管理的基本功能则只是对外存空间的分配和回收。
  分配方式:它们都可采用连续分配或离散分配方式,且都以离散分配方式为主。
  分配算法或机制:对于连续分配方式,内存与外存管理中的分配和回收算法类似,主要有首次适应算法、循环首次适应算法等;在离散分配方式中,两者采用的机制不同,内存管理主要是利用页(段)表;而在外存管理中,则主要利用文件分配表FAT。
  
  8.SPOOLing的含义是什么?试述SPOOLing系统的特点、功能以及控制过程。[/b]
  [b]答:
SPOOLingSimultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为假脱机技术[/b]
  [b]SPOOLing
技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。[/b]
  [b]SPOOLing
系统由专门负责I/O的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。
  19.什么是死锁?产生死锁的四个必要条件是什么?
   答:死锁:当某进程提出资源申请后,使得系统中一些进程处于无休止的阻塞状态,在无外力作用下,永远不能再继续前进。
  
  产生死锁的必要条件:互斥条件:某段时间内某资源只能由一个进程使用。不剥夺条件:资源在未使用完前,不能被剥夺,由使用进程释放。部分分配(请求和保持):进程因请求资源而阻塞时,对已分配给它的资源保持不放。环路条件:发生死锁时,有向图必构成一环路。
  [/b]
  [b]20.什么是内存分页存储管理?它有什么特点?

  答:分页存储管理是将各进程的地址空间分成大小相等的页,把内存的存储空间也分成与页大小相同的片,称为物理块。在分配存储空间时,以块为单位来分配。
  
  优点:有效解决存储器的零头问题,能在更高的程度上进行多道程序设计,从而相应提高了存储器和CPU 的利用率。
  
  缺点:采用动态地址变换为增加计算机成本和降低CPU 的速度。表格占内存空间,费时来管理表格。存在页内碎片。作业动态的地址空间受内存容量限制。
  3什么是请求页式管理?试设计和描述一个请求页式管理时的内存页面分配和回收算法(包括缺页处理部分)。      
  答:请求页式管理是动态页式内存管理的一种,它在作业或进程开始执行之前,不把作业或进程的程序段和数据段一次性的全部装入内存,而只装入被认为是经常反复执行和调用的工作区部分。其他部分则在执行过程中动态装入。请求页式管理的调入方式是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其他数据或指令时,而这些指令和数据又不在内存中,从而发生缺页中断,系统将外存中相应的页面调入内存。
  4 试简述系统调用的含义。
  系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。
  它与一般用户程序、库函数和实用程序的区别是:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。
  21.说明进程的结构、特征和基本状态。
  答:结构:PCB (进程控制块)+程序+数据集合。
  特征:动态性、并发性、独立性、制约性、结构性。
  基本状态:就绪态、执行态、等待态。

  30.什么是虚拟存储器,它有什么特点?
  答:虚拟存储器是一种存储管理技术,用以完成用小的内存实现在大的虚空间中程序的运行工作。它是由操作系统提供的一个假想的特大存储器。但是虚拟存储器的容量并不是无限的,它由计算机的地址结构长度所确定,另外虚存容量的扩大是以牺牲CPU工作时间以及内、外存交换时间为代价的。
  31.比较基于索引节点和基于符号链的文件共享方法。(8分)
  答:基于索引节点的文件共享是在文件的目录中填上需要共享文件的索引节点的序号,在索引节点中加上用户计数。基于符号链的文件共享是建立一种特殊的链接文件,内容为需要共享的文件的路径和名字,访问该文件时,根据路径找到共享的文件。基于索引节点的文件共享访问速度快,但可能使索引节点指针悬空;基于符号链的文件共享安全,但访问速度慢,要占用索引节点。
  五,计算
  19、生产者和消费者问题    (10分)
  有一组生产者P1,P2,……,PM和一组消费者C1,C2,……,CK,他们通过由n个环形缓冲区构成的缓冲池进行通信,生产者把产品放入缓冲区,消费者从缓冲区取产品来消费。请用wait和signal原语实现他们的同步操作。
  解:生产者和消费者问题
  begin
          Var  mutex,empty,full:semaphore:=1,n,0;
      buffer:array[0,…,n-1] of item;
      in,out:integer := 0,0;
  parbegin
               producer:  begin
                       repeat
                              produce  next  product ;
                              wait (empty);
                              wait (mutex);
                              buffer(in):=nextp ;
                              in := (in+1) mod n ;
                              signal (full);
                              signal (mutex);
                       until false ;
                       end
  consumer: begin
                      repeat
                       wait (full);
                       wait (mutex);
                       nextc := buffer(out);
                       out := (out+1) mod n;
                       signal (empty);
                       signal (mutex);
                       consume the item in nextc;
                       until false ;
                end
         parend          end
   [b]24、在公共汽车上,乘客上完后,售票员关门,驾驶员开车,售票员售票,到站汽车停稳后,售票员开门,乘客上下车,售票员和驾驶员之间密切配合,直到下班。请用信号量描述公共汽车上售票员与驾驶员的工作过程。(10分)
  解:建立驾驶员和售票员两进程,驾驶员进程执行过程如下:
  (1)      判售票员关门没有
  (2)      开车
  (3)      到站后停车
  (4)      重复(1)-(3
  售票员执行过程如下:
  (1)      判断乘客上完没有
  (2)      关门
  (3)      售票
  (4)      判车停稳没有
  (5)      开门
  (6)      重复(1)-(5
  [/b]
  2.桌子上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可以向盘中放桔子,
  儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃
  者取用,请用 P,V  原语实现爸爸、儿子、女儿三个并发进程的同步。
  答:
  设置 3 个信号量 S、So、Sa,信号量 S 表示盘子是否为空,其初值为 1;信号量 So 表
  示盘中是否有桔子,其初值为 0;信号量 Sa 表示盘中是否有苹果,其初值为 0。同步描述
  如下:
  int S=1, Sa=0, So=0;                                                        
  main( )
  {
  cobegin
  father( );
  son( ); 
  daughter( );
  coend
  }                                                                                          
  father( )
  {
  P( S );
  将水果放入盘中;
  if(放入的是桔子)V(So)
  else V(Sa);
  }                                                                                            
  son( )
  {
  while( 1 )
  {
  P(So);
  从盘中取出桔子;
  V(S);
  吃桔子;
  }
  }                                                                                              
  daughter( )
  {
  while( 1 )
  {
  P(Sa);
  从盘中取出苹果;
  V(S);
  吃苹果;
  }
  }                  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics