操作系统课后复习题
操作系统精髓与设计原理课后复习题
-
列出并简要地定义计算机的四个主要组成部分。
- 主存储器,存储数据和程序;
- 算术逻辑单元,能处理二进制数据;
- 控制单元,解读存储器中的指令并且使他们得到执行;
- 输入/输出设备,由控制单元管理。
-
什么是中断?
- 中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。
-
什么是高速缓冲存储器?
- 高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。
-
什么是操作系统的内核?
- 内核是操作系统最常使用的部分,它存在于主存中并在特权模式下运行,响应进程调度和设备中断。
-
什么是多道程序设计?
- 多道程序设计是一种处理操作,它在两个或多个程序间交错处理每个进程。
-
操作系统是怎么使用进程上下文的?
- 执行上下文又称为进程状态,是操作系统用来管理和控制所需的内部数据。这种内部信息和进程是分开的,因为操作系统信息不允许被进程直接访问。上下文包括操作系统管理进程以及处理器正确执行进程所需要的所有信息,包括各种处理器寄存器的内容,如程序计数器和数据寄存器。它还包括操作系统使用的信息,如进程优先级以及进程是否在等待特定I/O事件的完成。
-
什么是交换,其目的是什么?
- 交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。
-
列出进程控制块中的三类信息。
- 进程标识,处理器状态信息,进程控制信息。
-
操作系统创建一个新进程所执行的步骤是什么?
- 1.给新进程分配一个唯一的进程标识号。
- 2.给进程分配空间。
- 3.初始化进程控制块。
- 4.设置正确的连接。
- 5.创建或扩充其他的数据结构。
-
给出在单用户多处理系统中使用线程的四个例子。
- 前台和后台操作
- 异步处理
- 加速执行
- 模块化程序结构
-
列出用户级线程优于内核级线程的三个优点。
- 1.由于所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核模式的特权,因此,进程不需要为了线程管理而切换到内核模式,这节省了在两种模式间进行切换(从用户模式到内核模式;从内核模式返回用户模式)的开销。
- 2.调用可以是应用程序专用的。一个应用程序可能倾向于简单的轮询调度算法,而另一个应用程序可能倾向于基于优先级的调度算法。调度算法可以去适应应用程序,而不会扰乱底层的操作系统调度器。
- 3.用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用级软件包。
-
列出用户级线程相对于内核级线程的两个缺点。
- 1.在典型的操作系统中,许多系统调用都会引起阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。
- 2.在纯粹的用户级进程策略中,一个多线程应用程序不能利用多处理技术。内核一次只把一个进程分配给一个处理器,因此一次进程中只能有一个线程可以执行。
-
列出与并发相关的四种设计问题
- 进程间的交互
- 共享资源之间的竞争
- 多个进程的同步问题
- 对进程的处理器时间分配问题
-
列出并发的三种上下文
- 多个应用程序
- 结构化应用程序
- 操作系统结构
-
执行并发进程的最基本要求是什么?
- 加强互斥的能力
-
产生死锁的第4个条件是什么?
- 循环等待。
-
如何防止占有且等待的条件?
- 可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。
-
6.5 给出防止无抢占条件的两种方法。
- 第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。
- 第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。
-
如何防止循环等待条件?
- 可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。
-
内存管理需要满足哪些需求?
- 重定位、保护、共享、逻辑组织和物理组织。
-
为什么需要重定位进程的能力?
- 通常情况下,并不能事先知道在某个程序执行期间会有哪个程序驻留在主存中。此外还希望通过提供一个巨大的就绪进程池,能够把活动进程换入和换出主存,以便使处理器的利用率最大化。在这两种情况下,进程在主存中的确切位置是不可预知的。
-
内部碎片和外部碎片有什么区别?
- 内部碎片是指由于被装入的数据块小于分区大小而导致的分区内部所浪费的空间。外部碎片是与动态分区相关的一种现象,它是指在所有分区外的存储空间会变成越来越多的碎片的。
-
逻辑地址、相对地址和物理地址间有什么区别?
- 逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转化成物理地址。相对地址是逻辑地址的一个特例,是相对于某些已知点(通常是程序的开始处)的存储单元。物理地址或绝对地址是数据在主存中的实际位置。
-
解释什么是抖动。
- 虚拟内存结构的震动现象,在这个过程中处理器大部分的时间都用于交换块,而不是执行指令。
-
为什么在使用虚拟内存时,局部性原理是至关重要的?
- 可以根据局部性原理设计算法来避免抖动。总的来说,局部性原理允许算法预测哪一个当前页在最近的未来是最少可能被使用的,并由此就决定候选的替换出的页。
-
FIFO和Clock页替换算法有什么区别?
- 时钟算法与FIFO算法很接近,除了在时钟算法中,任何一个使用位为一的页被忽略。
-
周转时间和响应时间有什么区别?
- 周转时间是一个要求花费在系统上的包括等待时间和服务时间的总的时间。响应时间对一个交互进程,这是指从提交一个请求到开始接受响应之间的时间间隔。通常进程在处理该请求的同时,就开始给用户产生一些输出。
-
抢占式和非抢占式调度有什么区别?
- 非抢占:在这种情况下,一旦进程处于运行态,他就不断执行直到终止,或者为等待I/O或请求某些操作系统服务而阻塞自己。
- 抢占:当前正在运行的进程可能被操作系统中断,并转移到就绪态。关于抢占的决策可能是在一个新进程到达时,或者在一个中断发生后把一个被阻塞的进程置为就绪态时,或者基于周期性的时间中断。
-
简单定义轮转调度
- 以一个周期性间隔产生时钟中断,当中断产生时,当前正在运行的的进程被置于就绪队列中,然后基于FCFS策略选择下一个就绪作业运行。
-
简单定义反馈调度。
- 调度基于抢占原则并且使用动态优先级机制。当一个进程第一次进入系统时,它被放置在RQ0。当它第一次被抢占后并返回就绪状态时,它被防止在RQ1。在随后的时间里,每当它被抢占时,它被降级到下一个低优先级队列中。一个短进程很快会执行完,不会在就绪队列中降很多级。一个长进程会逐级下降。因此,新到的进程和短进程优先于老进程和长进程。在每个队列中,除了在优先级最低的队列中,都使用简单的FCFS机制。一旦一个进程处于优先级最低的队列中,它就不可能再降低,但是会重复地返回该队列,直到运行结束。
-
列出并简单定义执行I/O的三种技术。
- 可编程I/O:处理器代表进程给I/O模块发送给一个I/O命令,该进程进入忙等待,等待操作的完成,然后才可以继续执行。
- 中断驱动I/O:处理器代表进程向I/O模块发送一个I/O命令,然后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。如果该进程不需要等待I/O完成,则后续指令可以仍是该进程中的指令,否则,该进程在这个中断上被挂起,处理器执行其他工作。
- 直接存储器访问(DMA):一个DMA模块控制主存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发送请求,只有当整个数据块传送完成后,处理器才被中断。
-
面向块的设备和面向流的设备有什么区别?请举例说明。
- 面向块的设备将信息保存在块中,块的大小通常是固定的,传输过程中一次传送一块。通常可以通过块号访问数据。磁盘和磁带都是面向块的设备。
- 面向流的设备以字节流的方式输入输出数据,其末使用块结构。终端、打印机通信端口、鼠标和其他指示设备以及大多数非辅存的其他设备,都属于面向流的设备。
-
在磁盘读或写时有哪些延迟因素?
- 寻道时间
- 旋转延迟
- 传送时间
-
什么是文件管理系统?
- 文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。
-
选择文件组织时的重要原则是什么?
- 访问快速,易于修改,节约存储空间,维护简单,可靠性。
-
列出并简单定义五种文件组织。
- 堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。
- 顺序文件是最常用的文件组织形式。在这类文件中,每个记录都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存各个域的值,每个域的域名和长度是该文件结构的属性。
- 索引顺序文件保留了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中的记录可以根据它前面记录的指针进行定位。
- 索引文件:只能通过索引来访问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针指向这条记录即可。此外,还可以使用长度可变的记录。
- 直接文件或散列文件:直接文件使用基于关键字的散列。

浙公网安备 33010602011771号