操作系统 复习--文字题

一. 论述题(共4题,36.3分)

  • 一. 论述题(共4题,36.3分)
  • 二. 其它(共5题,45.5分)
  • 三. 名词解释(共1题,9.1分)
  • 四. 简答题(共1题,9.1分)
  • 补充:

一. 论述题(共4题,36.3分)

  1. (论述题)
    多道程序系统中中断机制无处不在,如何理解中断是多道程序得以实现的基础。

中断是操作系统中实现多道程序的基础之一,因为中断机制允许CPU在执行一个程序时,可以响应外部事件的请求,而不必等待当前程序执行完毕。这就允许了多个程序同时运行,并且可以共享CPU的时间片,从而实现了多道程序的并发执行。
 
当一个中断事件发生时,操作系统会暂停当前正在执行的程序,保存它的上下文信息,并切换到处理中断的代码。在处理完中断事件后,操作系统会恢复被中断的程序的上下文信息,继续执行它。这个过程是透明的,被中断的程序并不知道中断事件的发生和处理过程。
 
通过中断机制,操作系统可以实现多种功能,例如实现进程调度、实现设备驱动程序、处理异常情况等。中断机制的实现需要硬件和操作系统的配合,硬件需要提供中断控制器和中断向量表等支持,操作系统需要编写中断处理程序和中断服务例程等。
 
因此,中断机制是操作系统中实现多道程序的基础之一,它允许多个程序同时运行,并且可以共享CPU的时间片,从而实现了多道程序的并发执行。

  1. (论述题)
    .目前,大多数计算机系统都支持虚拟页式地址转换机制。试回答下列问题:
    (1).页式存储管理方案中,用户地址空间怎样划分?内存地址空间怎样划分?内存分配过程是怎样的?(10分)
    (2).页表应设计哪些数据项,每个数据项的作用是什么?(10分)
    (3).页式存储管理方案中,地址映射机制需要哪种寄存器的实现内存保护保证安全性?为了加快地址映射速度,需要采取什么措施?该措施的作用是什么?(10分)

答案:
 
(1).系统将用户程序的逻辑空间按照相等大小划分成若干界面,称为逻辑页面。(2分)各个逻辑页面从0开始依次编号,每个逻辑页面内也从0开始编址,称为页内地址。用户程序的逻辑地址由逻辑页号和页内地址两部分组成。(2分)
 
页式存储管理将内存空间按照逻辑页面大小划分成等长的若干区域,每个区域为一个内存块。(2分)内存的所有内存块从0开始编号。(1分)
 
内存分配时,以页面(块)为单位,并按用户程序所需页数多少进行分配。(2分)逻辑上相邻的页面在内存中不一定相邻,即分配给用户程序的内存块不一定连续。(1分)
 
(2).页表表项有:
逻辑页面号;(2分)
物理页面号(或块号);(2分)
驻留位(中断位或特征位):指示该页在内存还是在外存;(2分)
外存地址:指示该页在外存的地址;(2分)
修改位:指示该页在内存驻留期间是否被修改过;(2分)
 
(3).系统提供一对硬件寄存器:页表始址寄存器和页表长度寄存器。(2分,答对1个为1分)
 
①页表始址寄存器,用于保存正在运行进程的页表在内存的首地址。当进程被调度程序选中投入运行时,系统将其页表首地址从进程控制块中取出送入该寄存器。(2分)
 
②页表长度寄存器,用于保存正在运行进程的页表的长度,防止访问越界。当进程被选中运行时,系统将它从进程控制中块中取出送入该寄存器。(2分)
 
为了加快地址映射速度,可在地址映射机制中增加一个小容量的联想寄存器(相联存储器),(2分)它由高速寄存器组成,成为一张快表,快表用来存放当前访问最频繁的少数活动页的页号。(2分)

  1. (论述题)
    在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组进程中的另一进程所占有、且永远不会释放的资源,这种现象将导致系统处于死锁状态,如何避免死锁保证系统状态安全性。试述:
    (1)产生死锁的原因是什么?
    (2)产生死锁的必要条件是什么?
    (3)如何处理死锁?死锁避免方法?

答案:
 
(1).产生死锁的原因:一是系统提供的资源数量有限,不能满足每个进程的使用(5分);二是多道程序运行时,进程推进顺序不合理(5分).
 
(2)产生死锁的必要条件是:
1)互斥条件(2.5分)
2)不剥夺条件(不可抢占)(2.5分)
3)部分分配(2.5分)
4)循环等待(2.5分)
 
(3)死锁的处理:
1)死锁的预防
2)死锁的避免
3)死锁的检测
4)死锁的解除
5)不做任何处理
6)通过银行家算法避免死锁,保证系统状态安全性。

  1. (论述题)
    CPU和设备并行工作能够提高整个系统的效率和响应速度。请具体论述设备管理可以通过哪几方面来实现cpu和设备之间的并行工作。


 
首先,设备控制器可以负责一些简单的硬件操作,例如直接将数据从设备传输到内存,而不需要cpu干预。这样做可以减少cpu的工作量,使其更加专注于处理复杂的任务。同时,设备控制器还可以发出中断信号通知cpu已完成的任务,以告诉cpu可以进行后续的工作。
 
其次,操作系统可以利用异步i/o技术,使得cpu在等待设备响应的同时可以处理其他任务。简单来说,异步i/o就是在请求i/o操作时,操作系统会立即返回而不会等待操作结束,这样cpu就能够去处理其他事情了。当设备响应完成时,操作系统会向相应的进程发送信号通知它已经可以去取回i/o操作的结果了。
 
再者,操作系统可以使用多进程来实现cpu和设备间的并行操作。为了避免一个进程长时间占有cpu或设备,操作系统可以把不同的进程分配到不同的cpu核心上,并在它们之间切换。这样,每个进程都能消耗自己的cpu时间片,也能够并发地进行i/o操作。
 
最后,操作系统中还有一种叫做“中断驱动”方式的设备管理模式。当一个设备需要处理任务时,它会向cpu发送中断请求,这样cpu就可以暂停当前正在运行的进程,执行中断服务程序,从而完成设备管理的相关操作。通过中断驱动,cpu在等待设备响应时不需要轮询,可以更高效地利用资源和响应设备请求

二. 其它(共5题,45.5分)

  1. (其它)
    设计题:
    目录管理机制是操作系统中用于组织和管理文件的一种重要机制,请根据所学知识,从设计者角度对目录管理机制设计和实现

答:
 
目录结构设计:选择适当的目录结构对于提高文件系统性能和用户体验至关重要,常见的目录结构包括树形结构、哈希表、线性链表等。
 
目录操作接口设计:为了方便用户或应用程序对目录进行操作,需要设计相应的目录操作接口,如创建目录、删除目录、列出目录下的文件等。
 
目录索引实现:把目录与文件之间的联系建立起来,一种常见的实现方式是利用索引节点(inode)记录每个文件的元数据信息,包括文件名、权限、大小、创建时间等,并将这些信息存储在磁盘上。
 
目录遍历算法实现:为了查找某个目录下的所有文件,需要实现一种目录遍历算法,目录遍历可以基于深度优先搜索或广度优先搜索实现。
 
目录权限控制实现:文件系统通常需要支持文件和目录的权限控制,以确保只有授权用户才能访问某些敏感数据,在实现目录管理机制时也需要考虑相关的权限控制实现。

  1. (其它)
    设计题:设计一个进程调度算法,给出思路,使得多个进程可以公平地使用CPU资源。
    要求:
    1.每个进程都有一个优先级,优先级范围为1~10,数值越大表示优先级越高。
    2.每个进程都有一个时间片,时间片范围为1~10,数值越大表示时间片越长。
    3.每个进程的优先级和时间片都可以动态调整。
    4.系统中有多个进程,每个进程都需要使用CPU资源。
    5.要求进程能够公平地使用CPU资源,避免出现饥饿现象。
    6.要求进程能够及时响应用户的操作,避免出现卡顿现象。

正确答案: 设计思路:
1.首先,根据进程的优先级和时间片,为每个进程计算一个权值,权值越大表示优先级越高。
2.接着,将所有进程按照权值从大到小排序,优先级高的进程排在前面。
3.然后,按照排序后的顺序,依次分配CPU资源给每个进程。
4.每个进程执行完一个时间片后,重新计算权值,重新排序,然后再次分配CPU资源。
5.如果有新的进程加入系统,也需要按照权值计算并加入排序队列中。
6.如果有进程的优先级或时间片发生变化,也需要重新计算权值,并重新排序。
7.为了避免饥饿现象,可以设置一个最大等待时间,如果某个进程等待CPU时间超过最大等待时间,就将其优先级提高一级。
8.为了避免卡顿现象,可以设置一个最小时间片,如果某个进程执行的时间片小于最小时间片,就将其时间片增加一倍。
9.在实现过程中,可以使用优先队列等数据结构来实现进程的排序和调度。 总之,该算法的核心思想是根据进程的优先级和时间片计算权值,然后按照权值对进程进行排序,从而实现公平地使用CPU资源。同时,还需要考虑饥饿和卡顿现象的问题,以保证系统的稳定性和响应性。

  1. (其它)
    假设一个操作系统采用轮转调度算法,时间片为10ms。有三个进程P1、P2、P3,它们的执行时间分别为30ms、20ms、40ms,它们的到达时间均为0。请问在这个系统中,进程的执行顺序是什么?请给出解析。

解析:
 
轮转调度算法是一种基于时间片的调度算法。在这个算法中,每个进程被分配一个时间片,当时间片用完后,操作系统会把该进程挂起,然后将CPU分配给下一个进程。如果一个进程在时间片结束前完成了执行,那么它会被移出队列,而其他进程会继续执行。
 
根据题目中的条件,三个进程的到达时间均为0,因此它们会在同一时刻被放入就绪队列中。根据轮转调度算法,每个进程被分配一个时间片,因此在第一次调度中,P1会被分配10ms的时间片,P2和P3也会被分配10ms的时间片。
 
在第二次调度中,P1会被重新放入就绪队列,P2会继续执行。由于P2的执行时间为20ms,因此它会在第二次调度结束后完成执行。在第三次调度中,P1会被分配10ms的时间片,P3会被分配10ms的时间片。
 
在第四次调度中,P1会被重新放入就绪队列,P3会继续执行。由于P3的执行时间为40ms,因此它会在第五次调度结束后完成执行。在第六次调度中,P1会被分配10ms的时间片。
 
因此,进程的执行顺序是:P2 → P1 → P3。

  1. (其它)
    信号量PV操作解决司机售票员的同步问题,问题描述如下:
    设公共汽车上,司机和售票员的活动分别是:
    司机:启动车辆–正常行驶–到站停车;
    售票员:关车门–售票–开车门;
    完成以下问题:
    1)给出信号量的数据结构和功能。
    2)定义同步信号量,并给出解释。
    3)给出pv实现司机售票员进程算法描述。

正确答案:
1)信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。
 
一般来说,信号量S>0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S=0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
 
2)两个同步信号量: 应设置两个信号量S1和S2。 S1表示是否允许司机启动汽车(或表示售票员是否已经关好车门),其初值为0;
S2表示是否允许售票员开门(或表示司机是否已经到站停车了),其初值为0. 在启动汽车和开车门前加p操作,在关车门和到站停车后加v操作。
 
3) Process 售票员(){ 关车门;V(S1);售票;P(S2);开车门;} 司机(){ p(s1); 开车; 行使;停站
v(s2) }

  1. (其它)
    综合题:某公司的服务器系统在高并发情况下出现了性能瓶颈问题,导致服务器响应速度变慢,甚至出现宕机现象。该服务器系统采用的是Linux操作系统,主要用于处理客户端提交的请求,其中请求包括CPU密集型计算和I/O密集型计算两种类型。现有的服务器系统运行情况如下:
    系统的CPU利用率和内存利用率均较高,但磁盘利用率较低。
    客户端提交的请求中,CPU密集型计算占比为70%,I/O密集型计算占比为30%。
    系统中存在大量的进程和线程,导致系统的负载较高。
    请根据以上情况,分析该服务器系统的性能瓶颈所在,并提出相应的性能优化方案。

正确答案:
解决方案:
该服务器系统的性能瓶颈主要在于系统的负载较高,可能存在进程和线程的竞争问题。同时,由于CPU和内存利用率较高,可能存在CPU和内存瓶颈。为了解决这些问题,可以采取以下性能优化方案:

对于CPU密集型计算请求,可以采用线程池和进程池等技术,减少线程和进程的创建和销毁次数,提高系统的性能。
对于I/O密集型计算请求,可以采用异步I/O等技术,减少I/O操作的等待时间,提高系统的性能。
通过负载均衡等技术,将客户端的请求均衡地分配给不同的服务器,以充分利用系统的CPU和内存资源。
对于内存利用率较高的情况,可以考虑增加服务器的内存容量,以提高系统的性能。
对于CPU利用率较高的情况,可以采用CPU调度算法等技术,合理分配CPU资源,提高系统的性能。
通过Linux系统的性能监控工具,如top、vmstat等,及时发现系统的性能瓶颈,采取相应的措施进行优化。
可以考虑使用更高配置的服务器,如多核CPU、更大内存容量等,以提高系统的性能。

通过以上措施,可以有效优化该服务器系统的性能,提高系统的性能和稳定性。

三. 名词解释(共1题,9.1分)

  1. (名词解释) 中断、并发性、同步、互斥、页式管理、地址转换、文件物理结构,目录

中断:CPU在收到外部中断信号后,停止原来的工作,转去处理该中断事件,在完成后重新回到原来的断点继续工作。
 
并发性:从宏观上看,各个进程是同时在系统中相互独立地运行;从微观上看,在某一个特定的时刻,只有一个进程在运行,换言之,各个进程之间实际上是一个接一个地顺序运行。
 
同步:是指散布在不同进程之间的若干程序片段,它们的运行必须严格按照一定的先后次序来运行,这种次序依赖于要完成的任务。
 
互斥:是指散布在不同进程之间的若干程序片段,当某个进程执行其中的一个程序片段时,其他进程就不能运行它们之中的任一程序片段,只能等到该进程运行完之后才可以继续运行。
 
页式管理:打破存储分配的连续性,是得一个进程的逻辑地址空间可以发布在若干个离散的内存块上,从而达到提高内存利用率的目的。
 
地址转换:为了保证程序能够正确的运行,必须进行动态地址映射,即在程序的运行过程中,将逻辑地址转换成物理地址。
 
文件物理结构:主要有三种形式,即连续结构、链表结构和索引结构。
 
目录:也称为文件夹,它是一张表格,里面记录了在该目录下的每一个文件的文件名和其他一些管理信息。

四. 简答题(共1题,9.1分)

  1. (简答题)
    简答
    1.请解释进程和线程的区别,并提供一个实际应用场景。
    2.请解释虚拟内存的概念和作用,并提供一个实际应用场景。
    3 设备管理的IO控制方式与应用场景。
    4 打开一个文件系统调用具体实现过程。

以下是可能的答案:
 
1.进程是操作系统中正在运行的程序的实例,线程是进程中的执行单元。线程共享进程的内存空间和系统资源,但有自己的栈和寄存器。实际应用场景可以是一个多线程的网络服务器,每个线程负责处理一个客户端请求,但共享服务器的资源。
 
2.虚拟内存是一种抽象概念,使得进程能够访问比物理内存更大的地址空间。虚拟内存可以提高系统的可用性和安全性,减少内存碎片。实际应用场景可以是一个需要大量内存的图像处理程序,虚拟内存使得程序能够处理更大的图像文件。
 
3设备管理的IO控制方式和应用场景:
 
程序控制方式:由应用程序直接控制IO设备的操作,包括打开、关闭、读取、写入等操作。适用于对IO设备操作要求较高的场景,如嵌入式系统、实时控制系统等。
 
中断方式:当IO设备完成一定的操作后,会发出中断信号,通知CPU进行相应的处理。适用于需要及时处理IO设备的数据的场景,如网络通信、多媒体处理等。
 
DMA方式:直接内存访问方式,利用DMA控制器将IO设备的数据直接传输到内存中,减少CPU的负担,提高数据传输速度。适用于数据传输量较大的场景,如磁盘读写、视频采集等。
 
综上所述,不同的IO控制方式适用于不同的应用场景,根据实际情况选择合适的IO控制方式可以提高系统的性能和稳定性
 
4 见教材

补充:

1、 打开一个文件的系统调用为:fd = open(文件路径名,打开方式),请叙述这个系统调用的实现过程。

(1)根据文件路径名一层层地去查找各级目录结构,找到该文件所在的目录项;
 
(2)根据打开方式、共享说明等信息检查访问合法性;
 
(3)查找系统内打开文件表,看文件是否已经被其他进程打开,若是,将文件的共享计数值加1,转S4;
若否,将该文件的FCB从外存读入内存,保存在系统打开文件表的某个空表项中,共享计数置为1;
 
(4)在进程打开文件表中增加一项,填写访问方式、当前读写指针等,并指向系统打开文件表对应表项;
 
(5)返回一个指针给fd,指向进程打开文件表中的相应表项,以后的文件操作均通过该指针来完成。

2、 文件系统的一个功能就是对外提供一组系统调用函数,程序员正是通过这组函数来访问磁盘上的文件。如果让你来设计一个文件系统,那么你应该如何来实现其中的write系统调用?例如,假设用户程序发出一个系统调用:
write(fd, userBuf, 100);
即往文件fd中写入100个字节的数据,这些数据目前存放在用户空间的缓冲区userBuf中,那么这个系统调用的实现过程是怎样的?

(1)通过fd可以访问进程打开文件表中的相应表项,如文件的当前位置,并由此可访问系统打开文件表中的相应表项,即该文件的FCB,由此可知文件的各个逻辑块在外存上的存储位置(把数据从用户空间拷贝到内核空间);
 
(2)需要验证本次操作的合法性,包括读取权限、数据块大小是否越界等;
 
(3)以块为单位来访问外存,需将用户给出的文件地址转换为逻辑块,即哪些逻辑块与此次的写操作有关。然后根据FCB当中的地址映射表,把这些逻辑块转换为相应的物理块;
 
(4)根据物理块编号去访问外存,把数据块从磁盘读入内存,然后按照文件的逻辑地址去修改相应的部分,即100个字节,最后再把这些数据块写回到磁盘上(即写操作实际上是覆盖,而不是插入)。

你可能感兴趣的:(操作系统)