《现代操作系统》期末复习
第一章 引论
① 内容
计算机系统总的来说分为软件和硬件,如下图所示。多数计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统, 它运行在内核态。操作系统具有对所有硬件的完全访问权限,可以执行机器能够运行的任何指令。 其他软件运行在用户态,只能使用部分机器指令。特别指出,哪些会影响系统的控制或可进行I/O操作的指令,在用户态中的程序是禁止的。 无法直接运行指令,则只能通过操作系统提供的接口来达到目的。
② 习题
🎈1、 操作系统的两大主要作用是什么?
答:1. 作为扩展机,为上层提供抽象。2. 作为资源管理器
🎈9、在建立一个操作系统时有几个设计目的,例如资源利用、及时性、健壮性等,请列举两个可能相互矛盾的设计目的。
答:考虑公平性和实时性。 公平性要求每个进程都以公平的方式分配其资源,没有任何进程获得超过公平份额。 另一方面,实时性需要根据不同进程必须完成执行的时间来分配资源。 实时进程可能会获得不成比例的资源份额。 他们就是互相矛盾的。
🎈15、假设一个计算机系统有高速缓存、内存以及磁盘,操作系统用呼你内存。读取缓存中的一个词需要1ns, 内存需要10ns, 磁盘需要10ms。如果缓存命中率是95%, 内存的是99%(缓存失效时),读取一个词的平均时间是多少?
🎈23、有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5。有如下系统调用:
lseek(fd, 3, SEEK_SET);
read(fd, &buffer, 4);
其中lseek调用寻找文件中的字节3。在读操作完成之后,buffer中的内容是什么?
答:第一句执行完后指针指向 4,所以最后 buffer 里面是 1,5,9,2
🎈32、虚拟机由于很多因素而十分流行,然而他们也有一些缺点,给出一个缺点。
答:虚拟化层引入了更多的内存使用和处理器开销以及更高的性能开销。
🎈33、下面是单位转换的练习:
a)一微年是多少秒?
b)微米常称为micron。那么gigamicron是多长?
c) 1TB存储器中有多少字节?
d)地球的质量是6000 yottagram, 换算成kilogram是多少?
答:(a) 一微年 = 10-6×365×24×3600 = 31.536 s。
(b) 1000m或lkm。
© 有2^50字节,也就是1,099,511,627,776字节。
(d) 它是 6×10^24kg„
第二章 进程与线程
① 内容
💢 操作系统最核心的概念就是进程,它是对正在运行的程序的一个抽象,是容纳运行一个程序所需要的所有信息的容器。
进程实体(简称进程):程序块、相关的数据、进程控制块PCB
💢 进程的创建:
- 系统初始化
- 正在运行的程序执行了创建进程的系统调用
- 用户请求创建一个进程
- 一个批处理作业的初始化
💢 进程的终止:
- 正常退出(自愿的)
- 出错退出(自愿的)
- 严重错误(非自愿)
- 被其他进程杀死(非自愿)
💢 进程的3种状态及转换:
- 就绪状态(Ready R态):存在于处理机调度队列中的所有进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。这些进程所处的状态为就绪状态。
就绪队列:处于就绪状态的进程按一定的策略排队,同一时刻可有多个就绪队列。 - 运行状态(Running E态):正在运行的进程所处的状态为运行状态。
- 等待/阻塞/睡眠状态(Wait/Blocked B态):若一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给它CPU,它也无法运行,称该进程处于等待状态(阻塞、 睡眠、封锁状态)。
阻塞队列:根据阻塞原因可以设置多个队列。
💢 进程的实现(进程控制块PCB)
PCB是OS中最重要的记录型数据结构
- PCB是OS感知进程存在的唯一标志。
- 进程与PCB是一一对应的。
- PCB随进程创建而建立,随进程结束而回收
- PCB应常驻内存
进程的切换都是一次中断,所有的中断都是从保存寄存器开始,对于当前进程而言,通常是保存在进程表项中, 中断的处理和调度过程如图:
💢 多道程序设计模型
CPU利用率 = 1 - p^n. p为一个进程等待I/O操作的时间与其在内存中时间的比值,n为进程的数量。
💢 线程
线程:是进程中的一个实体,是被系统独立调度的基本单位。
- 引入进程的目的是为了使多个程序更好的并发执行,改善资源利用率、提高系统效率。
- 引入线程则是为了减少并发执行时所付出的时空开销,使并发粒度更细、并发性更好。
引入线程的好处:
- 创建一个新线程花费时间少
- 线程的终止时间比进程短;
- 同进程内的线程切换时间比进程短;
- 因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核
- 适合多处理机系统
线程的属性:
- 轻型实体:基本不拥有资源
- 独立调度的基本单位
- 可以并发执行
- 共享进程资源
💢 进程间通信 (IPC,Inter Process Communication)
IPC 问题是很重要也很常用的的一个概念,主要围绕三个问题:
- 如何把信息传递给另一个进程
- 如何确保两个或多个进程不会交叉(例如多个用户在飞机订票系统同时取买票,该给谁)
- 如何确保按正确的顺序执行:例如B进程要打印A进程的结果,那么肯定是先执行完A,才能执行B。
互斥和同步概念:
互斥:散步在不同进程的代码片段,当某个进程访问了其中一个片段时,此时其他进程就不能访问了,只能等该进程结束后才可访问。
同步:是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。显然,同步是一种更为复杂的互斥。
互斥的方案有:屏蔽中断、锁变量、严格轮换法、Perterson解法、TSL指令
其中Perterson解法和TSL/XCHG解法都是正确可行的,他们的本质都是:当一个进程想进入临界区,先检查是否允许进入,若不允许则原地等待,直到允许为止。 但很浪费时间。
通过引入生产者消费者模型来介绍更加有效的方案:
信号量:将检查值、修改值以及可能发生的睡眠操作作为一个单一的、不可分割的原子操作完成,原子性由操作系统保证。在完成前,其他进程不允许访问信号量。
互斥量:信号量的简化版本,不需要计数能力,只需要两种状态:解锁和加锁。一个二进制位就可表示它,不过通常用整型。
💢 调度算法
1、先来先服务:按照请求CPU的顺序使用CPU。
2、最短作业优先:谁的运行时间短,谁先执行,
3、轮转调度:也就是大家轮流来,一个进程分配固定时间片,时间到了还没执行完,则移动到就绪队列队尾,下一个进程接着来。
4、优先级调度:优先级高的进程先运行,统一优先级的则按照轮转调度。
② 习题
🎈6、计算机的 RAM 有 4GB,其中操作系统占 512 MB,所有进程占 256 MB,并且特征相同,要使 CPU 利用率达到 99%,最大 I\O 等待时间是多少?
答:CPU 利用率 = 1 - q^14 = 99%。解得 q = 71.97%。
其中 q 为 I\O 等待时间与其停留在内存中的时间的比值。
🎈18、在用户态实现线程的最大优点是什么,最大缺点呢?
答:优点:线程调度不需要陷入内核,不需要上下文切换,也不需要对内存告诉缓存进行刷新,因此更快;它允许每个进程有自己定制的调度算法。
缺点:如何实现阻塞系统调用。
🎈45、有5个批处理作用A到E,它们几乎同时到达一个计算中心。估计他们运行的时间分别为10,6,2,4和8分钟。其优先级(由外部设定)分别为3,5,2,1和4.其中5为最高优先级。对于下列每种调度算法,计算其平均进程周转时间,可忽略进程切换的开销。
(a)轮转法
(b)优先级调度
(b)先来先服务。(按照10,6,2,4,8次序运行)
(c )最短作业优先。
答:a)对于轮转调度,每个作业在最初的10分钟内获得了1/5的CPU,10分钟之后,C先完成作业,在接下来的8分钟,每个作业获得1/4的CPU,在此期间,D完成作业。剩下来的3个作业在以后的6分钟里各获得CPU的1/3,一直到B结束等等。这5个作业完成的时间分别是,10, 18, 24, 28和 30,平均22分钟。
b)对于优先级调度,B首先运行,6分钟之后完成。剩下的4个作业完成的时间分别是14,24,26和30.平均为 20 分钟。
c)对于先来先服务。运行作业顺序从A到E,完成时间分别为10,16,18,22和30。平均为19.2分钟。
d)最短优先作业,完成的时间分别为2,6,12,20和30,平均为14分钟。
🎈50、一个软实时系统有四个周期时间,其周期分别为50ms、100ms、200ms、和250ms。假设这 4 个时间分别需要 35ms、20ms、10ms、和x mx的 CPU 时间。保持系统可调度的最大 x 值是多少?
答:如果有 m 个周期事件,事件 i 以周期 Pi 发生,并需要 Ci CPU 事件处理一个事件,那么可以处理的负载的条件是 。
即:35/50 + 20/100 + 10/200 + x/250 <= 1,x <= 12.5
第三章 内存管理
① 内容
💢 无存储器抽象
最开始并没有对存储器进行抽象,直接简单粗暴的使用物理内存地址,直接从0到某个上限值。每个地址可容纳一定的二进制位存储单元, 通常为8位。这个时期的组织内存的三种方式如下:
💢 第一种存储器抽象:地址空间
地址空间的概念:是一个进程可以用于寻址的一套内存集合。通俗点讲,就是每个进程内部有自己的虚拟地址空间0-1023,然后这套虚拟内存空间再映射到真实物理空间(比如2048 - 3071)。
为了把内部虚拟地址空间转换为真实物理地址,就需要动态重定位, 典型的办法就是给CPU配置两个特殊寄存器,即基址寄存器和界限寄存器。 进程加载到内存后,基址寄存器用来记录进程物理内存的开始位置, 界限寄存器用来保存程序的长度(也可理解为记录进程物理内存的结束位置)。
虚拟内存与交换技术:由于内存空间是有限的,假设内存是100M,运行一个程序内存是 30M,但是实际上我们可以同时打开4个,5个甚至更多程序,这就涉及到虚拟内存和交换技术了。虚拟内存就是假设我们的物理内存只有100M,但是实际的内存地址排到了200M,其中一段就是虚拟的。因为CPU任一时刻其实只能运行一个程序的, 利用这一点,当我们打开5个30M的进程,但是实际正在前台运行的只有其中一两个,那么暂未运行的就存回到硬盘,需要调度的时候再加载进内存。这就是在内存与硬盘间相互交换。 如下是进程加载到内存的示例图:
内存紧缩:如上图, 运行时间长了,进程间的内存就可能有小块未使用的空闲区,把小块合成一大块连续内存,就叫内存紧缩。但是会耗费大量CPU时间。
💢 空闲内存管理
动态分配内存时,操作系统一般有两种方法跟踪内存使用情况:位图和空闲区链表。
1.使用位图的存储管理
使用位图时,内存被划分为几个或几千个字节的单元,即位图中的一位,0表示空闲,1表示占用。如下:
其中阴影区表示空闲内存,图b 是一张位图。图a 一共有A/B/C/D/E 五个进程在运行。每个单元的大小很重要,单元越小,则位图越大, 单元越大,则位图越小。
2.使用链表的存储管理
上图c 则是用链表对内存进行管理,内存被划为很多内存段(每一段不不一定相等),连接起来就是一张链表,一共都四个域:1.指示标志(P表示空闲,H表示进程占用), 2、起始地址; 3.长度;4、指向下一个节点的指针。如下图:
刚开始时 A,X,B三个进程在运行,内存被划为为三段,如果X终止了,则内存还是三段,只是X原本占用的这一段就变为了空闲区(如图a)。如果进程X,B都终止了,则内存变为了两段(如图b),如果A,X,B全部终止,则进程就变为了一段,如图d.相对应的,在链表中的三个内存节点就变成了一个新的节点,老的三个节点被删除掉。
💢 虚拟内存
为了解决程序大于内存本身的问题,提出了这么一种解决办法:把程序分割成很多片段,然后程序执行时,先执行第一块,然后执行第二块,这样,运行时,就只需要把程序的部分加载到内存即可,这个由操作系统动态的在内存和磁盘上换入换出,这个方法就就演变出了虚拟内存。
虚拟内存:每个程序有自己的地址空间,把这个空间分割为多块,每一块称为一页或页面(page),每一页都有连续的地址范围,执行时这些页映射到物理内存。当程序执行哪一页时,硬件就去执行,从而不必把所有页都加载到内存。
程序自己的地址称为虚拟地址,它们构成了虚拟地址空间,虚拟地址通过内存管理单元(Memory Management Unit, MMU) 映射到物理内存地址上,从而被执行。示例图如下:
虚拟地址按照固定大小划分为若干个页面, 在物理内存中对应的单元称为页框(page frame),它们大小通常是一样的。可以理解为每个页框可以容纳一个页面。 如上图3-9, 虚拟页面16个,但是实际物理地址只有8个页框,如果程序要访问一个没有映射到物理页框的页面,就会产生缺页中断或称为缺页错误,操作系统就会把选择其中一个使用较少的页框,那上面的内容清除,用来加载需要访问的页面。
💢 页面置换算法
在发送缺页中断时,需要选择一个页面,将其换出内存,应该选择哪一个页面呢,有如下算法:
- 最优页面置换算法
- 最近未使用页面算法
- 先进先出页面置换算法
- 第二次机会页面置换算法
- 时钟页面置换算法
- 最近最少使用页面置换算法
- 工作集页面置换算法
- 工作集时钟页面置换算法
② 习题
🎈4、在一个交换系统中,按内存地址排列的空闲区大小是 10,4,20,18,7,9,12,15MB,对于连续的段请求:
a) 12KB;
b)10KB;
c)9KB。
使用首次适配算法,找出哪个空闲区?使用最佳适配、最差适配、下次适配算法呢?
答 :首次适配:20KB,10KB,18KB;// 沿着段链表进行搜索,直到找到一个足够大的空闲区
最佳适配:12KB,10KB,9KB; // 找出能够容纳进程最接近实际需要的空闲区,
最差适配:20KB,18KB,15KB;// 总是分配最大的可用区的空间
下次适配:20KB,18KB,9KB。 // 同首次适配,但记录空闲区当时位置,下次从此处进行搜索
🎈19、一个32位地址的计算机使用两级页表。虚拟地址被分成9位的顶级页表域、11位的二级页表域和一个偏移量,页面大小是多少?在地址空间中一共有多少个页面?
答:偏移量=32 - 9 - 11 = 12(位),所以页面大小为:2^12 = 4KB,页面数为:2^20 。
🎈28、如果将FIFO页面置换算法用到4个页框和8个页面上,若初始时页框为空, 访问字符串为0172327103,请问会发生多少次缺页中断?如果使用LRU算法呢?
答:FIFO发生6次缺页中断,(先进先出)
LRU发生7次缺页中断。(最久没用到的换出去)
OPTI(最远的换掉)
🎈
答:a)页面2;b)页面3 ;c)页面1; d)页面2
按照装入时间排序先被装入的是页面是3、0、2最后是1,
对于NRU算法,按照(R,M)的次序(0,0),(0,1),(1,0),(1,1)给上述4个页面排序得
(0,0),(0,1),(1,0),(1,1)分别代表了页面2、1、0、3,所以类编号最小的是页面2,置换它。
对于FIFO算法,则将置换表页面3,置换掉。
对于LRU算法,核心思想是:置换出未使用最长的页面,所以根据上次访问时间最远到近排序得: 1、2、0、3.所以置换出页面1.
对于第二机会算法,在3、0、2、1中检查最老页面的R位,如果R位为0.则置换,所以置换出较老的页面2.
第四章 文件系统
① 内容
② 习题
第五章 输入输出
① 内容
② 习题
第六章 死锁
① 内容
一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到该资源,这种现象称为进程死锁(Deadlock),这一组进程就称为死锁进程。
💢 死锁的四个必要条件
- 互斥条件:设计的资源是非共享的
- 占有和等待条件:进程在等待一新资源时继续占有已分配的资源
- 不可抢占条件:不能强行剥夺进程拥有的资源
- 环路等待条件:存在一种进程的循环链,链中的每一个进程已获得的资源同时被下一个进程所请求
💢 处理死锁的方法
预防死锁:通过设置某些限制条件,去破坏死锁四个必要条件中的一个或多个,来防止死锁。
避免死锁:不事先设置限制条件去破坏产生死锁的条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。
检测死锁:允许死锁发生,但可通过检测机构及时检测出死锁的发生,并精确确定与死锁有关的进程和资源,然后采取适当措施,将系统中已发生的死锁清除掉。
解除死锁:与检测死锁相配套,用于将进程从死锁状态解脱出来。常用的方法是撤消或挂起一些进程。以回收一些资源,再将它们分配给处于阻塞状态的进程,使之转为就绪状态、
💢 银行家算法
可利用资源向量Available。它是一个含有 m个元素的数组,其中每个元素代表一类 可利用资源的数目。
最大需求矩阵Max。nm矩阵,表示n个进程的每一个对m类资源的最大需求。
分配矩阵Allocation 。nm矩阵,表示每个进程已分配的每类资源的数目。
需求矩阵Need 。n*m矩阵,表示每个进程还需要各类资源数。
② 习题
选择填空简答考点
选择填空
- 操作系统的两个基本特征是:并发性和共享性
- 进程的基本特征是:动态、并发
- 计算机系统由硬件系统和软件系统两大部分组成,由操作系统对它们进行管理,以提高系统资源的利用率。
- 操作系统的四大资源管理功能:处理器管理,存储器管理,设备管理和文件管理。
- 多道程序设计可以将一个以上的作业放入内存,并且同时处于运行状态。
- 时间片概念一般用于分时操作系统。
- 在分时系统中,当时间片一定时,用户数越多,响应时间越长。
- 分时操作系统允许在一台主机上同时连接多台终端,多个用户可以通过个字的终端同时交互地使用计算机。
- 操作系统是对计算机资源进行管理的软件。
- 多道程序设计是指在一台处理器上并发运行多个程序。
- 进程存在唯一标识:PCB(进程控制块)。
- 在PCB中,用于进程调度的是:说明信息。
- 分配给进程的时间片用完而强迫进程让出CPU,此时进程处于就绪状态。
- 原语的主要特点是不可分割性。
- 在多道程序中负责从就绪队列中选中一个进程占用CPU的是进程调度。
- 并发进程之间可能需要同步或互斥。
- 在操作系统中,PV操作是一种低级进程通信原语。
- 根据进程的紧迫性进行进程调度,应采用优先权调度算法。
- 进程的切换是由进程状态的变换引起的。
- 进程通常由程序、数据集合和 PCB(进程控制块) 三部分组成。
- 进程的特征:动态、独立、异步、并发。
- 把作业地址空间中使用的逻辑地址变成内存中使用的物理地址称为地址变换。
- 在可变分区管理方式中,最佳适应算法是将空闲分区在空闲分区表中按容量递增次序排列。
- 在可变分区存储管理方式中的紧凑技术可以集中空闲区。
- 在一下存储管理方案中,不适用于多道程序设计系统的是单用户连续分配。P85
- 在可变式分区分配方案中,某一作业完成后,系统收回其内存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是有上邻空闲区,也有下邻空闲区。
- 在分页系统环境下,程序员编制的程序,其地址空间是连续的,分页是系统完成的。
- 系统“抖动”现象的发生是由置换算法选择不当引起的。
- 虚拟存储管理系统的基础是程序的局部性理论。
- 把作业装入内存中随即进行地址变换的方式称为静态地址变换,而在作业执行期间,当访问到指令或数据时才进行地址变换的方式称为动态地址变换。
- 设有8页的逻辑空间,每页有1KB,它们被映射到32块的物理存储区中。那么,逻辑地址的有效位是13位,物理地址至少是15位。(解析:8=23,1KB=210B,32=25。逻辑地址为3+10,物理地址为5+10)
- 缓冲技术中的缓冲池在主存中。
- CPU输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可以采用缓冲技术。
- 通过硬件和软件的功能扩充,把原来独立的设备改造成能为若干用户共享的设备,这种设备称为虚拟设备。
- 通道是一种I/O专用处理器。
- 如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是DMA方式。
- 大多数低速设备都属于独占设备。
- 磁盘是直接存取的存储设备。
- SPOOLing技术是操作系统中以空间换取时间的技术。
- 在操作系统中,用户在是用I/O设备时,通常采用逻辑设备名。
- 先来先服务算法是设备分配常用的一种算法。
- 引入缓冲的主要目的是改善CPU和I/O设备之间速度不匹配的情况。
- 使用户编制的程序与实际使用的物理设备无关是由虚拟设备功能实现的。
- 操作系统中采用缓冲技术的目的是为了增强系统并行操作的能力。
- 磁盘上的文件已块为单位读写。
- 磁带上的文件一般只能顺序存取。
- 从资源管理的角度出发,I/O设备可以分为独占设备、共享设备、虚拟设备三种类型。
- 虚拟设备是通过虚拟技术把独占设备变成若干个用户共享的设备。
- 按所属关系可以把I/O设备分为系统设备和用户设备两类。
- 文件代表了计算机系统中的软件资源
- 从用户角度看,引入文件系统的主要目的是实现对文件的按名存取
- 为了解决不同用户文件的“命名冲突”问题,通常在文件系统中采用多级目录/树形目录。
- 数据库文件的逻辑结构形式是字符流式文件
- 在下列文件的物理结构中,顺序结构不利于文件长度的动态增长。
- 一个文件的绝对路径是从根目录开始的。
- 文件系统中,记录顺序与物理文件中占用物理块顺序一直的是顺序文件。
- 如果文件系统中存在两个文件同名,那么就不应该采用一级目录。
- 文件的物理结构有顺序结构、链接结构和索引结构。
- 计算机网络一般是由传输介质、网络交换设备、网络互联设备、服务器、网络操作系统和网络协议等6个部分组成。
- 常见的网络拓扑结构有星型结构、总线型结构、环型结构、树型结构和网状结构。
简答题
- 从资源管理观点看,操作系统具有哪些功能?
处理器管理,对处理器进行分配,并对其运行进行有效地控制和管理;
存储器管理,提高存储器的利用率,并能从逻辑上扩充内存;
设备管理,完成用户提出的I/O请求,为用户分配I/O设备,提高CPU与I/O设备的利用率,提高I/O设备运行速度,方便用户使用I/O设备。
文件管理,对用户文件和系统文件进行管理。 - 操作系统具有哪些基本特征?
并发性,是指两个或多个事件在同一时间间隔内发生;
共享性,是指系统中的资源可供多个并发执行的进程使用;
虚拟性,是指通过某种技术把一个物理实体变成若干个逻辑实体;
异步性,是指多个并发执行的进程,由于资源的限制,进程的执行不是“一气呵成”的,而是“走走停停”的。 - 进程的基本状态以及它们之间的切换:就绪、运行和等待状态。
- 死锁产生的四个必要条件:
互斥条件,进程对分配到的资源进行排他性、独占性使用;
请求和保持条件,进程已经拥有并保持了至少一个资源;
不可剥夺条件,进程所占有的资源在结束之前不能被剥夺,只能在运行结束后由自己释放;
环路等待条件,在发生死锁时,必然存在一个“进程——资源”的环形链。 - 产生进程死锁的原因是什么?如何解除死锁?
原因:竞争资源;进程推进顺序非法。
死锁的解除:剥夺资源法,从其他进程剥夺足够的资源给死锁进程;撤销进程法,系统采用强制手段将死锁进程撤销。 - 概念区分——程序与进程:程序是计算机指令的集合,以文件的形式存储在磁盘上;进程是一个程序在一个数据集合上的一次运行过程,是资源分配和调度的基本单位。
- 概念区分——并发与并行:并发是指在一个时间段内,有多个进程同时运行;并行是指在某一时刻有多个进程同时运行。
- 什么是虚拟设备?请说明SPOOLing系统如何实现虚拟设备?
当系统只有一台输入设备或一台输出设备的情况下,可允许两个以上的作业并行执行,并且每个作业都感觉到获得了供自己独占使用的输入设备和输出设备。
SPOOLing技术借助磁盘和通道实现了输入/输出过程的共享。当用户提出输入/输出请求时,系统及时响应,此时用户会认为已独占输入/输出设备;但事实上,有多道作业同时进入该过程,并分别占用各个阶段。 - 设备分配时为什么要考虑安全性以及与设备的无关性?考虑安全性是为了提高系统的适应性和均衡性,避免死锁的产生;设备无关性使得用户的应用程序独立于实际的物理设备,不仅方便了用户,而且设备分配比较灵活,也便于实现I/O重定向。
- 什么是逻辑设备?什么是物理设备?如何实现从逻辑设备到物理设备的转换?
用户程序中使用的设备是逻辑设备,计算机系统中实际配置的设备是物理设备。
在OS中,通常设置了反映逻辑设备和物理设备对应关系的数据结构,其中存放了逻辑设备名、物理设备名及设备驱动程序入口地址等信息,通过该数据结构即可实现逻辑设备到物理设备的转换。 - 什么是缓冲?为什么引入缓冲?
缓冲技术是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。
引入缓冲的主要原因是:
- 缓和CPU和I/O设备速度不匹配的矛盾;
- 减少对CPU的中断频率,放宽对中断响应时间的限制;
- 提高CPU和I/O设备之间的并行性。
- 名词解释——文件:文件时具有文件名的一组相关信息的集合。
- 名词解释——文件系统:文件系统是指操作系统中负责管理和存取文件的程序模块。
- 什么是文件的逻辑结构?文件有哪几种逻辑结构?
文件的逻辑结构是指从用户观点出发所看到的文件组织形式。可分为两种,记录式文件和流式文件。 - 什么是文件的物理机构?文件有哪几种物理结构?
文件的物理结构是指文件在外存上的存储组织形式。可分为三种,顺序结构、链接结构和索引结构。 - 文件目录有哪几种常见的结构方式?
一级目录、二级目录和多级目录。
操作系统重要知识点
💡1、产生死锁的必要条件有哪些?
答:1互斥条件。2请求和保持条件。3不剥夺条件。4环路等待条件。
💡2、进程调度算法有哪些?
答:1先来先服务调度算法。2短作业优先调度算法。3高优先权先调度算法。4基于时间片的轮转调度算法。
💡3、多道批处理系统的优缺点?
答:1资源利用率高 2系统吞吐量大 3平均周转时间长 4无互交能力
💡4、进程与程序是两个完全不同的概念,但又有密切联系,试写出两者区别?
答:1进程是动态的,程序是静态的2进程是独立运行的单位,程序不能作为运行单位,3个进程间在并发执行过程中会产生相互制约关系,而程序由于是静态的,所以不存在异步特征
💡5、设备分配时应考虑那些因素?
答:1设备的固有属性2设备分配算法3设备分配中的安全性。
💡6、什么是操作系统,主要功能?
答:操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件,是用户与计算机之间的接口。 操作系统的主要功能包括:存储器管理,处理机管理,设备管理,文件管理以及用户接口管理。
💡7、操作系统中存储管理的主要功能是什么?什么叫虚拟存储器?
答:内存分配,地址映射,内存保护,内存扩充。虚拟存储器是用户能作为可变至内存对待的存储空间,具有请求调入和置换功能,在这种计算机系统中虚地址被映象成实地址,是由操作系统提供的一个假想的特大存储器。
💡8、进程控制块中的信息有哪些?
答:1进程标识符 2处理机状态 3 进程调度信息 4 进程控制信息
💡9、什么是SPOOLing?
答:为了缓和CPU的高速性与I/O设备低速性之间的矛盾而引入脱机输入/输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传到高速磁盘上或者相反。
💡10、目录管理的功能有哪些?
答:实现“按名存取 ”2提高对目录的检索速度 3文件共享 4文件允许重名
💡11、影响缺页终端率的因素有哪些?
答:1分配给程序的主存块数 2页面的大小 3程序编制方法 4页面调度算法
💡12、什么是抖动?
答:刚被调出的页面又立即要用而装入,而装入后不久又被调出,如此反复,使调度非常频繁,这种现象称为抖动。
💡13、陷阱和中断的主要差别是什么?
答:1他们引起的中断源不同 2他们服务的对象不同 3响应时机不同 4响应执行的上下文不同
💡14、块特殊文件和字符特殊文件的基本差别?
答:块特殊文件指可随机存取的块组成的设备,如磁盘等;字符特殊文件用于打印机,调制解调器和其他接收或输出字符流的设备。
💡15、为什么线程要通过调用thread-yield自愿放弃CPU,毕竟由于没有周期性的时钟中断,线程可以不交回CPU?
答:这样一个调用很重要,因为不同于进程,线程库无法利用时钟中断强制线程让出CPU,所以设法使线程行为“高尚”起来,并且随着时间的推移自动交出CPU,以便让其他线程有机会运行。
💡16、说明硬连接优于符号链接的一个优点,并说明符号连接优于硬连接的一个优点? 答:硬连接不要而外的磁盘空间,只需在节点记录有多少个连接,符号链接需要空间存储所指文件的名称。对于符号连接,可以指向其他机器上的文件,甚至是Internet的文件,而硬链接只能指向自己分区文件。
💡17、解释死锁活锁饥饿的区别?
答:死锁:一组进程中,每个进程都因等待由改组进程中的另一进程所占有的资源而导致阻塞。活锁:若每个进程使用2种资源,如果进程A线运行并得到资源1,然后进程2运行并得到资源2,以后不管哪个进程运行都不会有任何进展,但是哪一个进程都没有被阻塞。饥饿:一些策略来决定什么时候谁获得什么资源,使一些进程永远得不到服务,虽然他们并不是死锁进程