电大操作系统简答题复习课程文档格式.docx
《电大操作系统简答题复习课程文档格式.docx》由会员分享,可在线阅读,更多相关《电大操作系统简答题复习课程文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
![电大操作系统简答题复习课程文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/21/8adbc3b0-7399-4b06-bf6a-962580f4077b/8adbc3b0-7399-4b06-bf6a-962580f4077b1.gif)
及时响应和高可靠性
使用虚拟机,有什么优势和不足?
采用虚拟机的优点主要有
(1)在一台机器上可同时运行多个操作系统,方面用户的使用
(2)系统安全,有效地保护了系统资源
(3)为软件的研制、开发和调试提供了良好的环境
(4)组建虚拟网络,可以创造多个理想的工作环境
缺点是:
(1)对硬件的要求比较高,主要是cpu、硬盘和内存
(2)本身非常复杂,另外,执行任务时的速度会受到一些影响
在操作系统中为什么要引入进程概念?
它与程序的区别和联系是什么?
在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
这些都是在程序的动态过程中发生的。
用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:
·
进程是动态的;
程序是静态的。
进程有独立性,能并发执行;
程序不能并发执行。
二者无一一对应关系。
进程异步运行,会相互制约;
程序不具备此特征。
但进程与程序又有密切的联系:
进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。
进程的基本状态有哪几种?
进程的基本态有3种。
分别是运行态。
就绪态。
阻塞态。
PCB的作用是什么?
它是怎样描述进程的动态性质的?
进程控制块PCB是进程组成中最关键的部分。
每个进程有唯一的进程控制块;
操作系统根据PCB对进程实施控制和管理,进程的动态、并发等特征是利用PCB表现出来的;
PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息:
该进程的状态是运行态、就绪态还是阻塞态,利用状态信息来描述进程的动态性质。
PCB表的组织方式主要有哪几种?
分别简要说明。
PCB表的组织方式主要有:
线性方式、链接方式和索引方式。
线性方式是把所有进程的PCB都放在一个表中。
链接方式按照进程的不同状态把它们分别放在不同的队列中。
索引方式是利用索引表记载相应状态进程的PCB地址。
进程进入临界区的调度原则是什么?
一个进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。
如已有进程进入自己的临界区,则
其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
简述信号量的定义和作用。
P、V操作原语是如何定义的?
信号量一般是由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号量的值,它是与相应资源的使用情况有关的;
另一个是指向PCB的指针。
当多个进程都等待同一信号量时,它们就排成一个队列,由信号量的指针项指出该队列的头。
信号量通常可以简单反映出相应资源的使用情况,它与P、V操作原语一起使用可实现进程的同步和互斥。
P、V操作原语的定义:
P(S):
顺序执行下述两个动作:
①信号量的值减1,即S=S-1;
②如果S≥0,则该进程继续执行;
如果S<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。
V(S):
①S值加1,即S=S+1;
②如果S>0,则该进程继续运行;
如果S≤0,则释放信号量队列上的第一个PCB(即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。
计算机系统中产生死锁的根本原因是什么?
计算机系统中产生死锁的根本原因是:
资源有限且操作不当。
此外,进程推进顺序不合适也可以引发的死锁。
发生死锁的四个必要条件是什么?
发生死锁的四个必要条件是:
互斥条件,不可抢占条件,占有且申请条件,循环等待条件。
一般解决死锁的方法有哪三种?
一般解决死锁的方法有:
死锁的预防、死锁的避免、死锁的检测与恢复。
是否所有的共享资源都是临界资源?
为什么?
不是所有的共享资源都是临界资源。
因为临界资源是一次仅允许一个进程使用的资源,而系统中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。
处理机调度的主要目的是什么?
处理机调度的主要目的就是为了分配处理机。
高级调度与低级调度的主要功能是什么?
为什么要引入中级调度?
高级调度的主要功能是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。
低级调度的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。
处理机调度一般可分为哪三级?
其中哪一级调度必不可少?
1.处理机调度一般可分为高级调度(作业调度)、中级调度和低级调度(进程调度)。
2.其中进程调度必不可少。
3.进程只有在得到CPU之后才能真正活动起来,所有就绪进程经由进程调度才能获得CPU的控制权;
实际上,进程调度完成一台物理的CPU转变成多台虚拟(或逻辑)的CPU的工作;
进程调度的实现策略往往决定了操作系统的类型,其算法优劣直接影响整个系统的性能。
作业在其存在过程中分为哪四种状态?
作业在其存在过程中分为提交、后备、执行和完成四种状态。
作业提交后是否马上放在内存中?
作业提交后被放在作业后备队列上,只有被作业调度程序选中,进行作业调度,作业才可能被放入内存。
在操作系统中,引起进程调度的主要因素有哪些?
处于执行状态的进程执行完毕时
处于执行状态的进程将自己阻塞时
处于执行状态的进程时间片用完时
执行完系统调用并返回到用户态时
抢占式OS中就绪队列中出现高优先权进程时
作业调度与进程调度二者间如何协调工作?
作业调度和进程调度是CPU主要的两级调度。
作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行。
而进程调度是微观调度,它根据一定的算法,动态地把处理机实际地分配给所选择的进程,使之真正活动起来。
在确定调度方式和调度算法时,常用的评价准则有哪些?
在确定调度方式和调度算法时,常用的评价准则有:
CPU利用率,吞吐量,周转时间,就绪等待时间和响应时间。
简述先来先服务法、时间片轮转法和优先级调度算法的实现思想。
先来先服务调度算法(FCFS)的实现思想:
按作业(或进程)到来的先后次序进行调度,即先来的先得到执行。
时间片轮转法(RR)的实现思想:
系统把所有就绪进程按先入先出的原则排成一个队列。
新来的进程加到就绪队列末尾。
每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。
当进程用完分给它的时间片后,调度程序便停止该进程的运行,并把它放入就绪队列的末尾;
然后,把CPU分给就绪队列的队首进程。
优先级调度算法的实现思想:
是从就绪队列中选出优先级最高的进程,把CPU分给它使用。
又分为非抢占式优先级法和抢占式优先级法。
前者是:
当前占用CPU的进程一直运行下去,直到完成任务或者因等待某事件而主动让出CPU时,系统才让另一个优先级高的进程占用CPU。
后者是:
当前进程在运行过程中,一旦有另一个优先级更高的进程出现在就绪队列中,进程调度程序就停止当前进程的运行,强行将CPU分给那个进程。
中断响应主要做哪些工作?
由谁来做?
中断响应主要做的工作是:
①中止当前程序的执行;
②保存原程序的断点信息(主要是程序计数器PC和程序状态寄存器PS的内容);
③转到相应的处理程序。
中断响应由硬件实施。
一般中断处理的主要步骤是什么?
一般中断处理的主要步骤是:
保存被中断程序的现场,分析中断原因,转入相应处理程序进行处理,恢复被中断程序现场(即中断返回)。
简述一条shell命令在Linux系统中的实现过程。
一条shell命令在Linux系统中的执行过程基本上按照如下步骤:
①
读取用户由键盘输入的命令行。
②
分析命令,以命令名作为文件名,其他参数改造为系统调用execve(
)内部处理所要求的形式。
③
终端进程调用fork(
)建立一个子进程。
④
终端进程本身用系统调用wait4(
)来等待子进程完成(如果是后台命令,则不等待)。
当子进程运行时调用execve(
),子进程根据文件名(即命令名)到目录中查找有关文件(这是命令解释程序构成的文件),调入内存,执行这个程序(即执行这条命令)。
⑤
如果命令末尾有&
号(后台命令符号),则终端进程不用执行系统调用wait4(
),而是立即发提示符,让用户输入下一个命令,转步骤
(1)。
如果命令末尾没有&
号,则终端进程要一直等待,当子进程(即运行命令的进程)完成工作后要终止,向父进程(终端进程)报告,此时终端进程醒来,在做必要的判别等工作后,终端进程发提示符,让用户输入新的命令,重复上述处理过程。
Linux系统中,进程调度的方式和策略是什么?
对用户进程和核心进程如何调度?
Linux系统的调度方式基本上采用“抢占式优先级”方式。
Linux系统针对不同类别的进程提供了三种不同的调度策略,即适合于短实时进程的FIFO,适合于每次运行需要较长时间实时进程的时间片轮转法,适合于交互式的分时进程传统的UNIX调度策略。
Linux系统核心为每个进程计算出一个优先级,高优先级的进程优先得到运行。
在运行过程中,当前进程的优先级随时间递减,这样就实现了“负反馈”作用,即经过一段时间之后,原来级别较低的进程就相对“提升”了级别,从而有机会得到运行。
Linux系统的调度方式基本上采用“抢占式优先级”方式,当进程在用户模式下运行时,不管它是否自愿,核心在一定条件下(如该进程的时间片用完或等待I/O)可以暂时中止其运行,而调度其他进程运行。
一旦进程切换到内核模式下运行时,就不受以上限制,而一直运行下去,仅在重新回到用户模式之前才会发生进程调度。
存储器一般分为哪些层次?
存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
装入程序的功能是什么?
常用的装入方式有哪几种?
装入程序的功能是根据内存的使用情况和分配策略,将装入模块放入分配到的内存区中。
程序装入内存的方式有三种,分别是绝对装入方式、可重定位装入方式和动态运行时装入方式。
对程序进行重定位的方式分为哪两种?
简述各自的实现方式。
对程序进行重定位的方式分为静态重定位和动态重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
通常,采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。
对换技术如何解决内存不足的问题?
在多道程序环境中可以采用对换技术。
此时,内存中保留多个进程。
当内存空间不足以容纳要求进入内存的进程时,系统就把内存中暂时不能运行的进程(包括程序和数据)换出到外存上,腾出内存空间,把具备运行条件的进程从外存换到内存中。
解释固定分区法和动态分区法的基本原理。
固定分区法——内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同。
每个分区只可装入一道作业。
动态分区法——各个分区是在相应作业要进入内存时才建立的,使其大小恰好适应作业的大小。
动态重定位分区管理方式中如何实现虚-实地址映射?
进程装入内存时,是将该其程序和数据原封不动地装入到内存中。
当调度该进程在CPU上执行时,操作系统就自动将该进程在内存的起始地址装入基址寄存器,将进程的大小装入限长寄存器。
当执行指令时,如果地址合法,则将相对地址与基址寄存器中的地址相加,所得结果就是真正访问内存的地址;
如果地址越界,则发出相应中断,进行处理。
分页存储管理的基本方法是什么?
分页存储管理的基本方法是:
逻辑空间分页,内存空间分块,块与页的大小相等。
页连续而块离散,用页号查页表,由硬件作转换。
在分页系统中页面大小由谁决定?
页表的作用是什么?
在分页系统中页面大小由硬件决定。
页表的作用是实现从页号到物理块号的地址映射。
如何将逻辑地址转换成物理地址?
用页号p去检索页表,从页表中得到该页的物理块号f,把它装入物理地址寄存器中。
同时,将页内地址d直接送入物理地址寄存器的块内地址字段中。
这样,物理地址寄存器中的内容就是由二者拼接成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。
考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问逻辑地址和物理地址各需要多少二进制位表示?
虚拟存储器有哪些基本特征?
虚拟存储器的基本特征是:
虚拟扩充——不是物理上,而是逻辑上扩充了内存容量;
部分装入——每个进程不是全部一次性地装入内存,而是只装入一部分;
离散分配——不必占用连续的内存空间,而是“见缝插针”;
多次对换——所需的全部程序和数据要分成多次调入内存。
请求分页技术与简单分页技术之间的根本区别是什么?
请求分页技术与简单分页技术之间的根本区别是:
请求分页提供虚拟存储器,而简单分页系统并未提供虚拟存储器。
页面抖动与什么有关?
好的页面置换算法能够适当降低页面更换频率,减少缺页率,尽量避免系统“抖动”。
此外,一般来说,随着可用内存块数的增加,缺页数也将减少。
UNIX/Linux系统中文件分为哪些类型?
UNIX/Linux系统中文件分为以下类型:
普通文件,目录文件,特殊文件。
文件的逻辑组织有几种形式?
文件的逻辑组织有以下形式:
无结构文件和有结构文件。
无结构文件是指文件内部不再划分记录,它是由一组相关信息组成的有序字符流,即流式文件。
有结构文件又称为记录式文件,它在逻辑上可被看成一组连续顺序的记录的集合,又可分为定长记录文件和变长记录文件两种。
文件的物理组织形式主要有哪几种?
各有什么优缺点?
文件的物理组织形式主要有:
连续文件、链接文件、索引文件、多重索引文件。
优缺点是:
连续文件
顺序存取速度较快。
建文件时就确定它的长度很难实现;
它不便于文件的动态扩充;
可能出现外部碎片,从而造成浪费。
链接文件
克服了连续文件的缺点。
一般仅适于顺序访问,而不利于对文件的随机存取;
每个物理块上增加一个连接字,为信息管理添加了一些麻烦;
可靠性差。
索引文件
除了具备链接文件的优点之外,还克服了它的缺点。
需要增加索引表带来的空间开销。
往往以内存空间为代价来换取存取速度的改善
多重索引文件
除具有一般索引文件的优点外,还可满足对灵活性和节省内存的要求。
间接索引需要多次访盘而影响速度。
一般说来,文件系统应具备哪些功能?
一般说来,文件系统应具备以下功能:
文件管理;
目录管理;
文件存储空间的管理;
文件的共享和保护;
提供方便的接口。
文件控制块与文件有何关系?
文件控制块——用于控制和管理文件的数据结构,其中包括文件名、文件类型、位置、大小等信息。
文件控制块与文件一一对应,即在文件系统内部,给每个文件唯一地设置一个文件控制块,核心利用这种结构对文件实施各种管理。
文件系统中的目录结构有哪几种基本形式?
各有何优缺点?
UNIX/Linux系统中采用哪种目录结构?
常用的磁盘空闲区管理技术有哪几种?
试简要说明各自的实现思想。
常用的磁盘空闲区管理技术有:
空闲盘块表法、空闲块链接法、位示图法、空闲块成组链接法。
空闲盘块表法——所有连续的空闲盘块在表中占据一项,其中标出第一个空闲块号和该项中所包含的空闲块个数,以及相应的物理块号。
利用该表进行盘块的分配和文件删除时盘块的回收。
空闲块链接法——所有的空闲盘块链在一个队列中,用一个指针(空闲区头)指向第一个空闲块,而各个空闲块中都含有下一个空闲区的块号,最后一块的指针项记为NULL,表示链尾。
分配和释放盘块都在链头进行。
位示图法——利用一串二进位的值来反映磁盘空间的分配情况,每个盘块都对应一位。
如果盘块是空闲的,对应位是0;
如盘块已分出去,则对应位是1。
空闲块成组链接——把所有空闲盘块按固定数量分组,组与组之间形成链接关系,最后一组的块号(可能不满一组)通常放在内存的一个专用栈结构中。
这样,平常对盘块的分配和释放是在栈中进行(或构成新的一组)。
什么是文件的共享?
文件链接如何实现文件共享?
文件的共享是指系统允许多个用户(进程)共同使用某个或某些文件。
文件链接是给文件起别名,即将该文件的目录项登记在链接目录中。
这样,访问该件的路径就不只一条。
不同的用户(或进程)就可以利用各自的路径来共享同一文件
什么是文件保护?
常用的保护机制有哪些?
文件保护——是指文件免遭文件主或其他用户由于错误的操作而使文件受到破坏。
常用的文件保护机制有:
命名——自己的文件名,不让他人知道;
口令——对上口令,才能存取;
存取控制——有权才可存取,不同权限干不同的事;
密码——信息加密,解密复原。
在UNIX/Linux系统中,如何表示一个文件的存取权限?
在UNIX/Linux系统中,一个文件的存取权限用9个二进制位表示:
前三位分别表示文件主的读、写和执行权限,中间三位分别表示同组用户的读、写和执行权限,最后三位分别表示其他用户的读、写和执行权限。
什么是文件的备份?
数据备份的方法有哪几种?
按时机分,备份分哪几种?
文件备份就是把硬盘上的文件在其它外部的存储介质(如磁带或软盘)上做一个副本。
数据备份的方法有完全备份、增量备份和更新备份三种。
按时机分,后备分为―定期备份‖和―不定期备份‖。
在Linux系统中,为什么要提供VFS?
Linux系统可以支持多种文件系统,为此,必须使用一种统一的接口,这就是虚拟文件系统(VFS)。
通过VFS将不同文件系统的实现细节隐藏起来,因而从外部看上去,所有的文件系统都是一样的。
操作系统中设备管理的功能是什么?
操作系统中设备管理的功能是:
监视设备状态;
进行设备分配;
完成I/O操作;
缓冲管理与地址转换。
UNIX/Linux系统中主次设备号各表示什么含义?
UNIX/Linux系统中主设备号表示设备类型,次设备号表示同类设备中的相对序号。
设备分配技术主要有哪些?
常用的设备分配算法是什么?
设备分配技术主要有:
独占分配、共享分配和虚拟分配。
常用的设备分配算法是:
先来先服务算法和优先级高的优先服务算法。
SPOOLing系统的主要功能是什么?
SPOOLing系统的主要功能是:
将独占设备改造为共享设备,实现了虚拟设备功能。
一般I/O软件系统的层次是怎样的?
I/O软件系统分为如下4个层次:
中断处理程序;
设备驱动程序;
与设备无关的操作系统I/O软件;
用户级I/O软件。
设备驱动程序的主要功能是什么?
它在系统中处于什么位置?
设备驱动程序的功能主要有:
接受用户的I/O请求;
取出请求队列中队首请求,将相应设备分配给它;
启动该设备工作,完成指定的I/O操作;
处理来自设备的中断。
设备驱动程序在系统中处于核心空间,位于设备控制器的上层,目的是对核心I/O子系统隐藏各个设备控制器的差别
为什么要引入缓冲技术?
设置缓冲区的原则是什么?
引入缓冲技术的主要目的是:
缓和CPU与I/O设备间速度不匹配的矛盾;
提高它们之间的并行性;
减少对CPU的中断次数,放宽CPU对中断响应时间的要求。
设置缓冲区的原则是:
如果数据到达率与离去率相差很大,则可采用单缓冲方式;
如果信息的输入和输出速率相同(或相差不大)时,则可用双缓冲区;
对于阵发性的输入、输出,可以设立多个缓冲区。
处理I/O请求的主要步骤是什么?
处理I/O请求的主要步骤是:
用户进程发出I/O请求;
系统接受这个I/O请求,转去执行操作系统的核心程序;
设备驱动程序具体完成I/O操作;
I/O完成后,系统进行I/O中断处理,然后用户进程重新开始执行。
Linux系统中对设备怎样管理?
Linux系统中对设备管理具有下列共性:
每个设备都对应文件系统中的一个索引节点,都有一个文件名;
应用程序通常可以通过系统调用open(
)打开设备文件,建立起与目标设备的连接;
对设备的使用类似于对文件的存取;
设备驱动程序是系统内核的一部分,它们必须为系统内核或者它们的子系统提供标准的接口;
设备驱动程序利用一些标准的内核服务,如内存分配等。
硬盘分区有哪三种类型?
Linux可以安装在哪些分区上?
答