操作系统期末复习

操作系统期末复习

文章目录

二、操作系统概述

1.操作系统的概念

操作系统是控制应用程序执行的程序,是应用程序和计算机硬件间的接口。

2.操作系统(系统软件)和应用软件的区别

(1)定义不同:系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统;应用软件使用户可以使用的各种程序设计语言,以及各种程序语言编制的应用程序的集合。
(2)运行环境不同:操作系统可以直接安装到相应的硬件设备中,应用软件不能直接安装在无OS的电脑上。

3.OS的目标和功能

目标:方便(易于使用),有效(有效使用资源),扩展能力(开发、测试、引入新功能)

功能:作为用户/计算机接口,作为资源管理器,易扩展性

4.操作系统发展史

①串行处理
②简单批处理系统
③多道批处理系统
④分时系统

5.OS有几个模块

①进程管理——当多个程序同时运行时,解决处理器(CPU)时间的分配问题。

②存储管理——为各个程序及其使用的数据分配存储空间,并保证它们互不干扰。

③I/O设备管理——根据用户提出使用设备的请求进行设备分配,同时还能随时接收设备的请求(称为中断),如要求输入信息。

④文件管理——主要负责文件的存储、检索、共享和保护,为用户提供文件操作的方便。

⑤作业管理

6.多道批处理系统和分时系统的比较

相同点:都使用了多道程序设计
不同点:
①多道批处理系统的主要目标是充分利用处理器(CPU),而分时系统的主要目标是减小响应时间;
②多道批处理系统的操作系统指令源是作业控制语言命令和作业提供的命令,而分时系统的操作系统指令源是终端键入的命令。

7.中断在批处理/分时系统中的应用

批处理——一个进程在等待I/O时,中断以切换另一个进程

分时——每隔一段时间中断一次,操作系统恢复控制权,并将处理器分配给另一个用户

8.OS为什么是一个虚拟机

操作系统本身就是一个虚拟机,将我们有限的硬件资源进行虚拟,通过软件模拟的方式,或者使用部分硬件资源模拟出来。

三、进程描述和控制

1.进程的概念?进程process和程序program的区别

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的独立单位。

进程是:一个正在执行的程序;一个正在计算机上执行的程序实例;能分配给处理器并由处理器执行的实体;由一组执行的命令、一个当前状态和一组相关的系统资源表征的活动单元。

进程由程序代码、代码相关联的数据集和程序运行的环境构成。

process和program的区别:程序是一套做数据处理的步骤,是静态的,进程是程序的一次实现,是动态的。一个程序,可以进行多次执行(表现为多个进程);甚至可以同时执行(多个进程同时存在)

2.进程控制块(解释,重要性,构成)

解释:进程控制块是用来描述和控制进程的运行的一个数据结构,是进程实体的一部分,是操作系统中最重要的记录型数据结构。

重要性:PCB是操作系统为支持多进程并提供多重处理技术的关键工具。

构成:ID标识符、状态、其他控制描述信息

3.OS为了实现进程,需要哪些硬件支持?

在这里插入图片描述

4.程序是怎么变成进程的,以HelloWorld为例

1.加载程序的相关代码及静态数据到内存中
2.为进程分配一些内存,创建一些数据结构,初始化与I/O相关的一些任务
3.程序开始执行,从main函数开始,所以需要先跳转到main()函数,OS将CPU控制权交给新创建的进程,进程获取到CPU后就可以开始执行,执行printf()函数,打印HelloWorld。

5.列举与进程控制相关的系统调用,以Linux为例

fork()创建新进程
wait()进程等待
exit()结束进程
exec()以新进程代替原有进程,但PID保持不变

6.简述进程创建的流程,并以fork为例

进程创建的流程

1.为新进程分配一个唯一的进程标识符
2.为进程分配空间
3.初始化进程控制块
4.设置正确的链接
5.创建或补充其他数据结构

fork()系统调用的“一次调用和两次返回”特点

fork函数用于创建一个新进程,称为子进程,它与调用fork函数的进程同时运行,此进程称为父进程。在调用fork函数时,子进程复制了父进程的堆栈段,所以两个进程都停留在了fork函数中等待返回,所以会返回两次,一次在父进程中返回,一次在子进程中返回。
在这里插入图片描述
如果子进程创建成功,父进程的fork()函数返回子进程的pid号码(大于0),这时,子进程的fork()函数返回0;

如果子进程创建失败,父进程的fork()函数返回-1,子进程没有返回。

7.五状态模型(画图,理解)

在这里插入图片描述

8.三种角度(进程角度,OS角度,处理器角度)

在这里插入图片描述

9.多个切换及其关系

进程切换一定会导致模式切换(从用户态切换到核心态,产生中断)
模式切换不一定会导致进程切换

①模式切换
用户模式/内核模式(kernel mode)
出现中断时,处理器会做如下工作:
1.将程序计数器置为中断处理程序的开始地址
2.从用户模式切换到内核模式,以便处理中断处理代码包含特权指令

②进程切换
1.系统中断
普通中断:控制权首先交给中断处理器,中断处理器完成工作后,再将控制权还给进程。
陷阱:致命时,进程置为退出态,并切换进程;不致命时,尝试恢复。
2.系统调用:使用系统调用时,当前用户进程置为阻塞态。

10.列出进程挂起的原因

①交换(swapping):操作系统需要释放足够的内存空间,以调入并执行处于就绪态的进程
②其他OS原因:操作系统可能挂起后台进程或工具程序进程,或者被怀疑导致问题的进程
③交互式用户请求(interactive user request):用户可能希望挂起一个程序的执行,目的是为了调试或与一个资源的使用进行连接
④定时(timing):一个进程可能会周期性地执行(例如记账或系统监视进程),而且可能在等待下一个时间间隔时被挂起
⑤父进程请求(parent process request):父进程可能会希望挂起后代进程的执行,以检查或修改挂起的进程,或者协调不同后代进程之间的行为

四、线程

1.线程的概念,产生背景,和进程的关系

概念:线程是进程中的一个实体,是被系统独立调度和分派的基本单位。

特点:线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

产生背景:长期以来,进程都是操作系统中可以拥有资源并作为独立运行的基本单位,为的是使多个程序能并发执行,以提高资源利用率和系统吞吐量。由于进程是一个资源的拥有者,因而在创建、撤销和切换中,系统必须为之付出较大的时空开销。也正因如此,在系统中所设置的进程,其数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发的进一步提高。若能将进程的两个属性(拥有资源的独立单位、独立调度和分派的基本单位)分开,由系统进行分开处理,即对于作为调度和分派的基本单位,不同时拥有资源单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之进行频繁的切换。那么,在操作系统再引入线程,则使为了减少程序在并发执行时所付出的时空开销,线程作为独立调度和分派的基本单位,进程作为拥有系统资源的的基本单位,使OS具有更好的并发性。线程也更适合多处理器环境下的调度、分派和切换。

和进程的关系:线程,被称为轻量级进程。 每一个程序都至少有一个线程,那就是程序本身。线程是程序中一个单一的顺序控制流程。 在单个程序中同时运行多个线程完成不同的工作,称为多线程。

2.线程的实现方式

1.使用内核级线程(KLT)实现
2.使用用户级线程(ULT)实现
3.使用KLT、ULT混合实现

3.ULT,KLT优缺点

用户级进程ULT

优点:
(1) 线程的调度不需要内核直接参与,控制简单。
(2) 可以在不支持线程的操作系统中实现。
(3) 创建和销毁线程、线程切换代价和线程管理的代价比内核线程少得多。
(4) 允许每个进程定制自己的调度算法,线程管理比较灵活。
(5)所有线程管理数据结构均在进程的用户空间中, 线程切换不需要内核模式, 能节省模式切换开销和内核的宝贵资源;
(5)能运行在任何OS上, 内核在支持ULT方面不需要做任何工作;

缺点:
(1)资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用;不能利用多处理器的优点, OS调度进程,仅有一个ULT能执行;
(2)一个ULT的阻塞, 将引起整个进程的阻塞

内核级线程KLT

在KLT中,管理线程的所有工作均由内核完成。
优点:
(1) 进程中的一个线程被阻塞了, 内核能调度同一进程的其它线程占有处理器运行;
(2)多处理器环境中, 内核能同时调度同一进程中多个线程并行执行;
(3) 内核自身也可用多线程技术实现, 能提高操作系统的执行速度和效率

缺点:由内核进行调度。应用程序线程在用户态运行, 线程调度和管理在内核实现, 在同一进程中, 控制权从一个线程传送到另一个线程时需要模式切换,系统开销较大;

4.描述Linux线程机制的系统调用有哪些

pthread_create()创建新线程
pthread_exit() 结束一个线程
pthread_join()阻塞调用它的线程
pthread_cancle()终止线程执行

五、并发性:互斥和同步

1.同步互斥的解决方法有哪些(软件、硬件、系统)

软件方法:Dekker
硬件方法:
1.中断禁用:为保证互斥,只需保证一个进程不被中断即可(适用于单处理器)
2.专用机器指令:
(1)testset指令
(2)exchange/swap指令
3.系统方法:
(1)信号量
(2)管程

2.简述同步互斥的硬件方法

1.中断禁用:保证临界区不能被中断,故可以保证互斥。
该方法不能用于多处理器体系架构中,在位在多处理器体系架构中,禁用中断并不能保证互斥。

2.专用机器指令:
(1)exchange/swap指令:共享变量bolt被初始化为0,唯一可以进入临界区的进程是发现bolt=0的那个进程。所有试图进入临界区的其他进程进入忙等待(busy waiting)模式。
(2)testset指令:有一个锁变量,一个执行单元要想访问被自旋锁保护的共享资源,必须先得到锁,在访问完共享资源后,必须释放锁。如果在获取自旋锁时,没有任何执行单元保持该锁,那么将立即得到锁;
硬件对同步的支持-TAS和CAS指令

3.竞争条件

竞争条件发生在多个进程或线程读写数据时,其最终结果取决于多个进程的指令执行顺序。

4.简述并发性引起的4个问题:同步,互斥,饥饿,死锁

(1)同步:同步是在互斥的基础上(大多数情况),通过对其他机制实现访问者对资源的有序访问
(2)互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源
(3)饥饿:指一个可运行的进程尽管能继续执行,但被调度程序无限期地忽视,而不能调度执行的情形
(4)死锁:两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行,这种情形称为死锁

六、并发:死锁和饥饿

1.死锁概念,产生背景,举例描述

概念:一组相互竞争系统资源或进行通信的进程间的”永久”堵塞。

产生背景:
系统资源不足。
进程运行推进的顺序不合适。
资源分配不当。

场景描述:死锁是因为多线程访问共享资源,由于访问的顺序不当所造成的,通常是一个线程锁定了一个资源A,而又想去锁定资源B;在另一个线程中,锁定了资源B,而又想去锁定资源A以完成自身的操作,两个线程都想得到对方的资源,而不愿释放自己的资源,造成两个线程都在等待,而无法执行的情况。

2.两种数学方法描述死锁(资源分配图,向量)

1.资源分配图
在这里插入图片描述
2.向量矩阵
在这里插入图片描述

3.死锁的条件(三必要一充分)

三个必要条件:1.互斥2.占有且等待3.不可抢占
一个充分条件:循环等待

4.死锁的解决方法(四种)

1.允许死锁发生
无为而治:鸵鸟算法
死锁检测
2.不允许死锁发生
静态:死锁预防
(1)间接死锁预防:防三个必要条件之一
(2)直接死锁预防:防止循环等待的发生

动态:死锁避免(允许三个必要条件)
(1)若一个进程的请求会导致死锁,则不启动该进程。
(2)若一个进程增加的资源请求会导致死锁,则不允许这一资源分配。

在这里插入图片描述
如何避免:
①为预防占有且等待的条件,可以要求进程一次性地要求所有需要的资源,并且阻塞这个进程直到所有请求都同时满足。
②为预防不可抢占这个条件,有几种方法,首先如果占有某些资源的一个进程进一步申请资源时被拒绝,则该进程必须释放它最初占有的资源,如果有必要,可再次申请这些资源和另外的资源。另一个方法是,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求他释放资源。
③循环等待条件可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么接下来请求的资源只能是那些排在R类型之后的资源类型

5.一旦发现死锁,给出3种不同的恢复策略

①取消所有的死锁进程(最常用)
②把每个死锁进程回滚到前面定义的某些检查点(checkpoint),并且重新启动所有进程(要求在系统中,构造回滚和重启机制。风险是原来的思索可能再次发生,但并发进程的不确定性通常能保证不会发生这种情况)
③连续取消死锁进程,直到不再存在死锁④连续抢占资源直到不再存在死锁

6.死锁避免,检测和预防之间的区别是什么?

①死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。
②死锁避免采用的是允许前三个条件存在,但通过合理的资源分配算法(银行家算法)来确保永远不会形成环形等待的封闭进程链,从而避免死锁。
③死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。

七、内存管理

1.段表/页表构造的七种方案

  1. 固定分区
    (1)分区大小相等:程序太大不能放入一个分区;内存的利用率非常低,造成内部碎片
    (2)分区大小不相等:把每个进程分配到能够容纳它的最小分区
  2. 动态分区
    (1)优点:没有内部碎片;可以更充分地使用内存
    (2)缺点:会产生外部碎片;可以通过压缩克服外部碎片,但压缩费时
  3. 简单分页
    (1)内存被划分成许多大小固定、相等的块,称为页框;每个进程被划分成许多大小与页框相等的块,称为页;要加载一个进程,需要把进程所包含的所有页都加载进内存内不一定连续的某些页框中。
    (2)缺点:会产生内部碎片
  4. 简单分段
    (1)每个进程被划分成许多段;要加载一个进程,需要把进程包含的所有段都加载入内存内不一定连续的某些动态分区中.
    (2)无内部碎片,会产生外部碎片。相对于动态分区,提高了内存利用率,减少了开销
  5. 虚存分页
  6. 虚存分段
  7. 段页式
    用户的地址空间被划分为许多段,每一段被划分为许多固定大小的页,每个进程有一个段表和多个页。
    在这里插入图片描述

2.段/页异同,固定/动态分区异同

段/页异同

相同点:
1.都是将一个进程划分成了很多的小的部分页或者段,在将整个进程放入内存当中时使用的的内存空间不一定是连续的。
2.都是为了提高内存利用率,减少内存碎片

不同点:
1.分页存在内部碎片的问题,而分段存在外部碎片的问题。
2.页的大小固定且由系统决定;而段的长度却不固定,决定于用户所编写的程序。

固定/动态分区异同

相同点:将进程放入这些内存分区时,同一个进程占用一片连续的内存空间。

不同点:
1.固定分区在系统生成阶段将内存划分为静态分区,而动态分区的分区是根据进程的大小动态创建的。
2.固定分区有内部碎片,而动态分区克服了这个缺点,但动态分区有外部碎片。
3.因为静态分区的数量固定,所以固定分区的最大进程数量是固定的,而动态分区的最大进程数量不固定。

3.首次、临近(下次)、最佳适配

最佳适配(Best-fit):选择与要求的大小最接近的块
首次适配(First-fit):从头开始扫描内存,选择大小足够的第一个可用块
下次适配(Next-fit):从上一次放置的位置开始扫描内存,选择下一个大小足够的可用块

八、虚拟内存

1.驻留集管理

在这里插入图片描述

2.描述在设计虚拟分页系统时可能包含在PTE中的一般元素

页框号:用于对应内存中的页框
P位:表示它所对应的页当前是否在内存中
M位(修改位):表示相应页的内容从上一次装入内存中到现在是否已经改变
其他控制位:如果需要在页一级控制保护或共享,则需要用于这些目的的位

3.在虚拟内存环境中,进程中只有部分需要在主存中以便运行,优点是什么?

①可在内存中保留多个进程:由于对任何特定的进程都仅仅装入它的某些块,故有足够的空间放置更多进程;
②进程可以比内存的全部空间还大:对任何特定的进程都仅仅装入它的某些块,不需要全部装入。

九、单处理器调度

1.长中短调度概念

长程调度:决定加入待执行进程池
中程调度:决定加入部分或全部位于内存中的进程集合
短程调度:决定处理器执行哪个可运行进程
I/O调度:决定可用I/O设备处理哪个进程挂起的I/O请求
在这里插入图片描述
在这里插入图片描述

2.最高响应比优先(HRRN)与先来先服务(FCFS)和最短进程优先(SPN)相比有什么优势?

最高响应比优先法是对FCFS方式和SPN方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SPN方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。

十一、I/O管理和磁盘调度

1.I / O缓冲是什么?描述不同的方式组织的I / O缓冲

I/O缓冲:在输入请求发出前就开始执行输入传送,并且在输出请求发出一段时间之后才开始执行输出传送。

①单缓冲:当用户进程发出I/O请求时,操作系统给该操作分配一个位于内存中系统部分的缓冲区。对于面向块的设备:输入传送的数据被放到系统缓冲区中。当传送完成时,进程把该块移到用户空间,并立即请求另一块。对于面向流的I/O,单缓冲以每次传送一行或一个字节的方式使用。
②双缓冲:操作系统给该操作分配两个系统缓冲区。在一个进程往一个缓冲区中传送数据(取数据)的同时,操作系统正在清空(或填充)另一个缓冲区。

③循环缓冲:如果进程需要爆发式地执行大量的I/O操作,仅有双缓冲是不够的,这就需要多于两个缓冲区的方案来缓解不足。当使用两个以上的缓冲区时,这组缓冲区自身被当做循环缓冲区。

2.列出并简要描述被引入到磁盘读或写中的延迟元素

寻道时间(seek time):磁头定位到磁道所需要的时间
旋转延迟(rotational delay):磁头达到扇区开始位置的时间
存取时间(access time):寻道时间和旋转延迟的总和
传输时间(transfer time):磁头执行读操作或写操作所需的时间

3.列出并简要说明I/O操作的三种技术

①程序控制I/O(programmed I/O):处理器代表一个进程给I/O模块发送一个I/O命令;该进程进入忙等待,直到操作完成才可以继续执行

②中断驱动I/O(interrupt-driven I/O):处理器代表进程向I/O模块发出一个I/O命令。有两种可能性:如果来自进程的I/O指令是非阻塞的,那么处理器继续执行发出I/O命令的进程的后续指令。如果I/O指令是阻塞的,那么处理器执行的下一条指令则来自操作系统,他将当前的进程设置为阻塞态并且调度其他进程

③直接存储器访问(direct memory access即DMA):一个DMA模块控制内存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发请求,并且只有当整个数据块传送结束后,他才被中断。

4.描述DMA运行过程

当处理器想读或写一块数据时,它通过向DMA模块发送以下信息来给DMA模块发出一条命令:请求读操作或写操作的信号,通过在处理器和DMA模块之间使用读写控制线发送;线管的I/O设备地址,通过数据线传送;从存储器中读取或往寄存器中写的起始地址,在数据线上传送,并由DMA模块保存在其地址寄存器中;读或写的字数,也通过数据线传输,并由DMA模块保存在其数据计数寄存器中。此后处理器继续执行其他工作。DMA模块直接从存储器或往存储器中传送整块数据,一次传输一个字,并且数据不再需要通过处理器。传送结束后,DMA模块给处理器发送一个中断信号。

十二、文件管理

1.文件系统架构

1.底层设备驱动程序直接与外围设备通信,负责启动设备上的I/O操作,处理I/O请求的完成。
2.基本文件系统也叫物理I/O层,这一层处理在磁盘间或磁带系统间交换的数据块。
3.基本I/O管理程序负责所有文件I/O的初始化和终止。
4.逻辑I/O使用户和应用程序能够访问记录。
5.在往上就是访问方法(access method),它在应用程序和文件系统以及保存数据的设备之间提供了一个标准接口。
在这里插入图片描述
文件管理功能
在这里插入图片描述

2.五种基本组织(逻辑层)

1.堆
最简单的文件组织形式,数据按它们到达的顺序被收集,堆的目的仅仅是积累大量数据并保存数据,其没有结构,所以对记录的访问是通过穷举查找进行的。
2.顺序文件
最常见的文件组织形式,有一个特殊的域叫关键域,通常是每条记录的第一个域,它唯一的标识这条记录。在访问时,为了匹配关键域,需要顺序查找文件。
3.索引顺序文件
克服了顺序文件的缺点。要查找某个特定的域,首先要查找索引,找到索引后,再在该索引的指针所指的主文件中的位置处开始查找。
4.索引文件
索引顺序文件保留了顺序文件的一个限制:基于文件的一个域进行处理。因此,索引文件摒弃了顺序性和关键字的概念,只能通过索引来访问记录。(索引文件大多用于对信息的及时性要求比较严格且很少会对所有数据进行处理的应用程序中)
5.直接文件或散列文件
直接文件或散列文件开发直接访问磁盘中任何一个地址已知的块的能力。直接文件使用基于关键字的散列。

3.三个文件分配方法(物理层)

在这里插入图片描述

大题考点

一、信号量

semWait可以理解为申请资源;semSignal可以理解为释放资源。

1.生产者/消费者问题

问题描述:
系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(“产品”实际是某种数据)生产者、消费者共享一个初始为空、大小为N的缓冲区。只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。只有缓冲区不空时,消费者才能从中取出产品,否则必须等待。缓冲区是临界资源,各进程必须互斥地访问。

分析:
有两类进程,即生产者和消费者进程。题面是一个混合关系,既有间接关系,也有直接关系:
直接关系:生产者和消费者不能同时进入临界区;
间接关系:缓冲区满,生产者不能放入;缓冲区空,消费者不能取出

2.读者-写者问题

问题描述:
有一个文件,被若干个读者和若干个写者共同访问,要求:
1)允许多个读者同时访问一个文件;
2)有写者在写文件时,不允许读者访问;

分析:
两类进程:读者与写者,读者与写者之间的关系是直接关系,但是为了判断“特殊的读者”,还要多考虑一个关系。

在这里插入图片描述

在这里插入图片描述

二、银行家算法

银行家算法核心思想:在进程提出资源申请时,先预判此分配是否会导致系统进入不安全状态。

三、页面置换算法

1.最佳置换算法OPT
在这里插入图片描述
2.先进先出页面置换算法FIFO
在这里插入图片描述
3.最近最少使用页面算法LRU——每次选择内存中离当前时刻最久未使用过的页面淘汰
在这里插入图片描述
4.Clock置换算法

四、进程调度算法

在这里插入图片描述

1、First In First Out( FIFO算法)(非抢占)
与短进程相比,FCFS更适用于长进程。
在这里插入图片描述

2、round-robin(轮转算法)(抢占)
这种算法周期性地产生时钟中断,出现中断时,当前正运行的进程会放置到就绪队列中,然后基于FCFS 策略选择下一个就绪作业运行。轮转法最主要的设计问题是所用的时间段(片)长度。
在这里插入图片描述

3、Shortest Process Next(最短进程优先)(非抢占)
下一次选择所需处理时间最短的进程,非抢占。
在这里插入图片描述

4、Shortest Remaining Time (最短剩余时间)(抢占)
总是选择预期剩余时间最短的进程,相较于SPN增加了抢占机制的策略。
在这里插入图片描述

5、Highest Response Ratio Next(最高响应比)(非抢占)
最高响应比优先,R=(w+s)/s,其中R表示响应比,w表示已经等待的时间,s表示期待服务的时间.调度规则如下:当前进程完成或被阻塞时,选择R值最大的就绪进程。
每次进程结束都要更新R的值。
在这里插入图片描述
6.FeedBack(反馈)
一个进程首次进入系统中时,会放在RQ0中。当它首次被抢占并返回就绪态时,会放在RQ1中。在随后的时间里,每当它被抢占时,都降级到下一个低优先级队列中。短进程很快就会执行完毕,不会出现在就绪队列中多次降级的现象,长进程则会多次降级。因此,新到的进程和短进程会优先于老进程和长进程。在每个队列中,除优先级最低的队列外,都使用简单的FCFS机制。进程处于优先级最低的队列中后,就不会再降低,但会重复返回该队列,直到运行结束。
在这里插入图片描述

总结
在这里插入图片描述

五、磁盘调度策略

使用与表11.2类似的方式,分析下列磁道请求:27,129,110,186,147,41,10,64,120。初始磁道为100

1.FIFO先进先出
在这里插入图片描述
2.SSTF最短服务时间优先
在这里插入图片描述
FIFO和SSTF与磁头运动方向无关

3.SCAN电梯算法(直上直下)
(1)往磁道号减少的方向
往磁道号减少的方向
(2)往磁道号增加的方向
在这里插入图片描述
4.C-SCAN(一个方向走到底)
(1)往磁道号减少的方向
在这里插入图片描述
(2)往磁道号增加的方向
在这里插入图片描述

小简答题

1.What are three objectives of an OS design?
①方便:操作系统使计算机更易于使用。
②有效:操作系统允许以更有效的方式使用计算机系统资源。
③扩展能力:在构造操作系统时,应允许在不妨碍服务的前提下,有效地开发、测试和引入新的系统功能。

2.什么是进程?
进程是一个正在执行的程序,它被操作系统控制和选择。

3.虚地址和实地址?
虚地址指的是存在于虚拟内存中的地址,它有时候在磁盘中有时候在主存中。
实地址指的是主存中的地址。

4.什么是多线程技术?
多线程技术是指把执行一个应用程序的进程划分成可以同时运行的多个线程。

5.交换的含义及其目的?
交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。

6.进程控制块信息分为哪三类?
进程标识信息,进程状态信息,进程控制信息。

7.为什么线程切换的成本比进程切换的成本低?
包含的状态信息更少。

8.What resources are typically shared by all of the of the threads of a process?
例如地址空间,文件资源,执行特权等。

9.进程的交互方式有三种分类?
①进程间互相不知道对方:这是一些独立的进程,他们不会一起工作。
②进程间间接知道对方:这些进程并不需要知道对方的进程ID号,但他们共享访问某些对象,如一个I/O缓冲区。
③进程间直接知道对方:这些进程可以通过进程ID号互相通信,用于合作完成某些活动。
在这里插入图片描述

10.List the requirements for mutual exclusion。
1).必须强制实施互斥:在具有关于相同资源或共享对象的临界区的所有进程中,一次只允许一个进程进入临界区。
2).一个在临界区停止的进程必须不干涉其他进程。
3.)绝不允许出现一个需要访问临界区的进程被无限延迟的情况,即不会饿死或饥饿。
4).当没有进程在临界区中时,任何需要进入临界区的进程必须能够立即进入。
5.)对相关进程的速度和处理器的数目没有任何要求和限制。
6).一个进程驻留在临界区中的时间是有限的。

11 .What is a monitor?
管程是由一个或多个过程,一个初始化序列和局部数据组成的软件模块。

12.死锁的四个条件?
互斥,占有且等待,不可抢占,循环等待。

13.How can the circular wait condition be prevented?
可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。

14.What requirements is memory management intended to satisfy?
重定位、保护、共享、逻辑组织和物理组织。

15.What is the difference between internal and external frag mentation?
内部碎片是指由于被装入的数据块小于分区大小而导致的分区内部所浪费的空间。外部碎片是与动态分区相关的一种现象,它是指在所有分区外的存储空间会变成越来越多的碎片的。

16.What are the distinctions among logical, relative,and physical addresses?
逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转化成物理地址。相对地址是逻辑地址的一个特例,是相对于某些已知点(通常是程序的开始处)的存储单元。物理地址或绝对地址是数据在主存中的实际位置。

17.What is the difference between simple paging and virtual memory paging?
简单分页:一个程序中的所有的页都必须在主存储器中程序才能正常运行,除非使用覆盖技术。 拟内存分页:不是程序的每一页都必须在主存储器的帧中来使程序运行,页在需要的时候进行读取。

18.系统抖动?
含义:在请求分页存储管理中,从主存(DRAM)中刚刚换出(Swap Out)某一页面后(换出到Disk),根据请求马上又换入(Swap In)该页,这种反复换出换入的现象,称为系统颠簸,也叫系统抖动。产生该现象的主要原因是置换算法选择不当。

19.Briefly define the alternative page fetch policies。
在请求式分页中,只有当访问到某页中的一个单元时才将该页取入主存。
在预约式分页中,读取的并不是页错误请求的页。

20.What is accomplished by page buffering?
(1)被替换出驻留集的页不久又被访问到时,仍在主存中,减少了一次磁盘读写。
(2)被修改的页以簇的方式被写回,而不是一次只写一个,这就大大减少了I/O操作的数目,从而减少了磁盘访问的时间。

21.What is the difference between demand cleaning and precleaning?
在请求式清除中,只有当一页被选择用于替换时才被写回辅存;
在预约式清除中,将这些被修改的多个页在需要用到它们所占据的页帧之前成批的写回辅存。

22.Briefly describe the three types of processor scheduling。
长程调度:决定加入到待执行的进程池中;
中程调度:决定加入到部分或全部在主存中的进程集合中;
短程调度:决定哪一个可用进程将被处理器执行。

23.What is the difference between preemptive and nonpreemptive scheduling?
非抢占:在这种情况下,一旦进程处于运行态,他就不断执行直到终止,或者为等待I/O或请求某些操作系统服务而阻塞自己。
抢占:当前正在运行的进程可能被操作系统中断,并转移到就绪态。关于抢占的决策可能是在一个新进程到达时,或者在一个中断发生后把一个被阻塞的进程置为就绪态时,或者基于周期性的时间中断。

24.List and briefly define three techniques for performing I/O。
可编程I/O:处理器代表进程给I/O模块发送给一个I/O命令,该进程进入忙等待,等待操作的完成,然后才可以继续执行。
中断驱动I/O:处理器代表进程向I/O模块发送一个I/O命令,然后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。如果该进程不需要等待I/O完成,则后续指令可以仍是该进程中的指令,否则,该进程在这个中断上被挂起,处理器执行其他工作。
直接存储器访问(DMA):一个DMA模块控制主存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发送请求,只有当整个数据块传送完成后,处理器才被中断。

25.What is the difference between logical I/O and device I/O?
逻辑I/O:逻辑I/O模块把设备当作一个逻辑资源来处理,它并不关心实际控制设备的细节。逻辑I/O模块代表用户进程管理的一般I/O功能,允许它们根据设备标识符以及诸如打开、关闭、读、写之类的简单命令与设备打交道。
设备I/O:请求的操作和数据(缓冲的数据、记录等)被转换成适当的I/O指令序列、通道命令和控制器命令。可以使用缓冲技术,以提高使用率。

26.What is the difference between block-oriented devices and stream-oriented devices?
面向块的设备将信息保存在块中,块的大小通常是固定的,传输过程中一次传送一块。通常可以通过块号访问数据。磁盘和磁带都是面向块的设备。
面向流的设备以字节流的方式输入输出数据,其末使用块结构。终端、打印机通信端口、鼠标和其他指示设备以及大多数非辅存的其他设备,都属于面向流的设备。

27.Why would you expect improved performance using a double buffer rather than a single buffer for I/O?
双缓冲允许两个操作并行处理,而不是依次处理。典型的,在一个进程往一个缓冲区中传送数据(从这个缓冲区中取数据)的同时,操作系统正在清空(或者填充)另一个缓冲区。

28.What delay elements are involved in a disk read or write?
寻道时间,旋转延迟,传送时间

29.What is a file management system?
文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。

30.List and briefly define five file organizations。
①堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。
②顺序文件是最常用的文件组织形式。在这类文件中,每个记录都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存各个域的值,每个域的域名和长度是该文件结构的属性。
③索引顺序文件保留了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中的记录可以根据它前面记录的指针进行定位。
④索引文件:只能通过索引来访问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针指向这条记录即可。此外,还可以使用长度可变的记录。
⑤直接文件或散列文件:直接文件使用基于关键字的散列。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值