现在距离操作系统考试还剩三天,我今天刚刚整理好这份提纲,里面还附加了一些可能考的计算题的讲解视频,都是B站上一些优秀的UP主录制的,我觉得讲的还挺好的,对于应付考试,以不挂科为宗旨应该可以哈哈哈。
1.进程与线程的区别
-
调度的基本单位
进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。每次调度时,需要进行上下文切换,开销较大。
而进程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换,但从进程中的线程切换到另一个进程中的线程时,必然会引起进程的切换。
-
并发性
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可以并发执行,甚至还允许在一个进程中的所有线程都能并发执行。同样,不同的进程中的线程也能并发执行。
-
拥有资源
进程可以拥有资源,并作为系统中拥有资源的一个基本单位。线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源。
-
独立性
在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。
-
系统开销
在创建、撤销以及上下文切换时,进程的系统开销均明显高于线程。
-
支持多处理机系统
多处理机系统中,对于单线程进程,不管有多少处理机,该进程均只能运行在一个处理机上。但对于多线程进程,可以将一个进程中的多个线程分配到多个处理机上并发执行
2.中断处理的流程
- 测定是否有未响应的中断信号
- 保护被中断进程的CPU环境
- 转入响应的设备处理程序
- 中断处理
- 恢复CPU的现场并退出中断
3.进程同步
编程,使用信号量解决同步问题
进程同步讲解
4.导致进程切换的主要因素
- 进程调度:就绪状态->执行状态
- 时间片完:执行状态->就绪状态
- 请求I/O:执行状态->阻塞状态
- I/O完成:阻塞状态->就绪状态
5.调度三个层次
-
高级调度
高级调度又称长程调度或作业调度,它的调度对象是作业。其主要的功能是根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。
-
低级调度
低级调度又称进程调度或短程调度,其所调用的对象是进程。其主要的功能是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分配程序将处理机分配给选中的进程。
-
中级调度
中级调度又称内存调度。其主要功能是提高内存利用率和系统吞吐量。把外存上的那些已具备运行条件的就绪进程再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。
6.处理死锁基本方法
-
预防死锁
设置某些限制条件,去破坏产生死锁四个必要条件中的一个或几个来预防产生死锁。
-
避免死锁
在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而可以避免发生死锁。
-
检测死锁
通过检测机构及时地检测出死锁的发生,然后采取适当的措施,把进程从死锁中解脱出来。
-
解除死锁
当检测到系统已发生死锁时,就采取相应的措施,将进程从死锁状态中解脱出来。
死锁以及银行家算法讲解
7.几种进程调度算法的基本原理、优缺点及作业调度和进程调度的相关计算(短作业优先、优先级调度策略、高响应比优先调度算法等)。
几个重要的概念:
- 周转时间=实际完成时间-任务到达时间
- 平均周转时间=周转时间/作业数
- 带权周转时间=周转时间/运行时间
- 平均带权周转时间=带权周转时间/作业数
-
先来先服务调度算法(FCFS)
从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。
-
短作业优先调度算法(SJF)
以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。作业调度时,它将外存的作业后备队列中选择若干个估计时间最短的作业,优先将它们调入内存运行。
- 优点:当多个作业同时到达时,SJF算法可使平均周转时间最短。
- 缺点:
- 该算法对长作业不利——长作业可能长期不被调度,甚至“饿死”。
- 未考虑作业的紧迫性,不能保证紧迫作业(进程)会被及时调度。
- 由于作业(进程)的长短只是根据用户所提供的估计时间而定的,致使该算法不一定能真正做到短作业优先调度。
-
优先级调度算法(PSA)
基于作业的紧迫程度,有外部赋予作业响应的优先级,根据优先级进行调度。
- 优点:可以保证紧迫作业优先运行。
-
高响应比优先调度算法(HRRN)
每次进行作业调度时,系统首先计算后备队列中各作业的响应比,然后选择一个或若干个响应比最高的作业调入内存执行。
响应比=(等待时间+要求服务时间)/要求服务时间
- 优点:综合了FCFS和SJF算法的优点——既考虑公平性,又考虑平均周转时间。
- 缺点:增加系统开销,每次调度都要计算响应比。
调度算法
调度算法
8.理解进程状态转换关系
- 进程调度:就绪状态->执行状态
- 时间片完:执行状态->就绪状态
- 请求I/O:执行状态->阻塞状态
- I/O完成:阻塞状态->就绪状态
9.多级反馈队列调度算法内容和设计思路
多级反馈队列调度算法不必事先知道各种进程所需的执行时间,还可以较好地满足各类进程的需要,目前公认较好的进程调度算法。
设计思路:
-
设置多个就绪队列。在系统中设置多个就绪队列,并未每个队列赋予不同的优先级。第一个队列的优先级最高,第二个次之,其余队列的优先级逐个降低。该算法为不同的队列中的进程所赋予的执行时间片的大小也各不相同,在优先级愈高的队列中,其时间片就愈小。
-
每个队列都采用FCFS(先来先服务调度算法)。当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度。当轮到该进程执行时,如它能在该时间片内完成,便撤离系统。否则,即它在一个时间片结束时尚未完成,调度程序将其转入第二队列末尾进行等待调度;如果在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,依次类推。当进程最后被降到第n队列后,在第n队列中便采取按RR方式运行。
-
按队列优先级调度。调度程序首先调度最高优先级队列中的诸进程运行,仅当第一队列空闲时才调度第二队列中的进程运行;换言之,仅当第1~(i-1)所有队列均为空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时又有新进程进入任一优先级较高的队列,此时必须把正在运行的进程放回第i队列的末尾,而把处理机分配给新到的高优先级进程。
10.PV操作基本概念、原理
同进程同步问题
11.程序的装入和链接的主要方式
程序装入:
- 绝对装入方式
- 可重定位装入方式
- 动态运行时的装入方式
程序链接:
- 静态链接方式
- 装入时动态链接
- 运行时动态链接
12.虚拟存储器基本原理和实现的要点
基本原理:
-
部分装入
应用程序在运行前,没有必要全部装入(局部性原理),仅将那些当前要运行的页面或段先装入内存便可以运行,其余部分暂留在磁盘上。
-
请求调入
程序在运行时,如果所要访问的页(段)已调入内存,便可继续执行下去;否则,应利用OS所提供的请求调页(段)功能,将它们调入内存,以便继续运行。
-
页/段置换
如果此时内存已满,则需利用页(段)置换功能,将内存中暂不用的页(段)调到磁盘上再将访问的页(段)调入内存,使程序继续运行下去。
实现要点:
-
分页请求系统
是在基本分页系统基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。
-
请求分段系统
是在基本分段系统基础上,增加了请求调段功能和分段置换功能所形成的段式虚拟存储系统。
13.内存分区分配算法基本原理、优缺点、适用范围(分段、分页)
-
首次适应算法(FF)
空闲分区表按地址递增排序。分配时从表首开始顺序查找,直至找到一个大小能满足要求的空闲分区;然后按作业大小划出一块内存空间分配给请求者,余下的空闲分区仍留在表中。
- 优点:优先利用内存中低址部分的空闲分区,保留高址部分的大空闲区,为以后大作业分配大的内存空间创造了条件。
- 缺点:低址部分不断被划分,会留下许多难以利用的、很小的空闲分区;每次查找都是从低址部分开始,增加查找可用空闲分区时的开销。
-
循环首次适应算法(NF)
由首次适应算法演变而成。为进程分配内存时,不再是每次从表首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到一个大小能满足要求的空闲分区,从中划出一块与请求大小相等的分区分配给作业。为实现该算法,应设置一起始查找指针。
- 优点:使内存中的空闲分区分布均匀,减少查找空闲分区时的开销。
- 缺点:缺乏大的空闲分区。
-
最佳适应算法(BF)
每次分配时,总是将能满足要求的最小分区分配给请求者。将空闲分区按其容量从小到大顺序排列——加快查找。
- 优点:避免大材小用;寻找速度快;
- 缺点:留下许多难以利用的碎片。
-
最坏适应算法(WF)
最坏适应分配算法选择空闲分区的策略正好与最佳适应算法相反:它在扫描整个空闲分区表或链表时,总是挑选一个最大的空闲区,从中分割一部分存储空间给作业使用,以至于存储器中缺乏大的空闲分区。
- 优点:剩下的空闲分区不至于太小,产生的碎片可能性小,对中、小作业有利;查找效率高;
- 缺点:总是缺乏大的空闲分区。
14.分页、分段方法的基本原理
-
分页
将用户程序的地址空间分为若干个固定大小的区域,成为“页”或“页面”。典型的页面大小为1KB。相应地,也将内存空间分为若干个物理块或页框,页和块的大小相同。这样可将用户程序的任一页放入任一物理块中,实现离散分配。
-
分段
将用户程序的地址空间分为若干个大小不同的段,每段定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。
15.分页系统中逻辑地址和物理地址的转换
16.各种情况下(快表命中、快表未命中、缺页)访问的过程
17.访问时间的计算
18.页面置换算法:FIFO、LRU和clock算法
先进先出(FIFO)页面置换算法
淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
最近最久未使用(LRU)置换算法
选择最近最久未使用的页面予以淘汰。
Clock置换算法
只需为每页设置一个访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置1.置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页换出;若为1,则重新将它置0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到队列中的最后一个页面时,若其访问位仍为1,则再返回到队首去检查第一个页面。
视频讲解链接:
FIFO置换算法和LRU置换算法
Clock置换算法
19.I/O系统基本功能
- 隐藏物理设备的细节
- 与设备的无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制
- 确保对设备的正确共享
- 错误处理
20.循环缓冲概念
21.I/O架构
I/O软件组织分为四个层次结构:
- 用户层I/O软件
- 设备独立性软件
- 设备驱动程序
- 中断处理程序
22.程序I/O 、中断驱动I/O 、DMA 、 I/O通道控制方式基本原理和技术演变思路
23.磁盘调度算法(先来先服务、最短寻道时间优先、扫描算法)
-
先来先服务(FCFS)
最简单的磁盘调度算法,根据进程请求访问磁盘的先后次序进行调度。
- 优点:公平、简单,不会出现有请求长期得不到满足的情况。
- 缺点:平均寻道时间长。
-
最短寻道时间优先(SSTF)
该算法选择进程要求访问的磁道与当前磁头所在的磁道距离最近,以使每次寻道的时间最短,但不能保证平均寻道时间最短。
- 优点:每次寻道时间最短。
- 缺点:不能保证平均寻道时间最短,优先级低的进程可能饥饿。
-
扫描算法(SCAN)
扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头当前的移动方向。
- 优点:防止饥饿。
-
循环扫描算法(CSCAN)
磁盘调度算法讲解
24.文件系统模型三个层次
文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。
25.文件的逻辑结构和物理结构概念和区别
-
文件的逻辑结构
这是从用户观点出发所观察到的文件组织形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织。
-
文件的物理结构
这是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。文件的物理结构不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。无论是文件的逻辑结构,还是其物理结构,都会影响对文件的检索速度。
26.各种磁盘组织形式(连续、链接、索引方式)的特点以及优缺点
-
连续
为每一个文件分配一组相邻接的盘块
- 优点:
- 顺序访问容易。第一个盘块开始,顺序地、逐个地往下读/写。也支持对定长记录的直接存取。
- 顺序访问速度快。磁头移动得距离最少。
- 缺点:
- 要求为一个文件分配连续的存储空间
- 必须事先知道文件的长度
- 不能灵活地删除和插入记录
- 文件大小不宜动态变化
- 优点:
-
链接
在采用链接分配时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件。
- 优点:
- 消除了磁盘的外部碎片,提高了外存的利用率
- 对插入、删除和修改记录都非常容易
- 能适应文件的动态增长,无需事先知道文件的大小
- 优点:
-
索引方式
索引分配方法为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。
- 优点:
- 索引分配支持直接访问。
- 索引分配不会产生外部碎片。
- 文件较大时,优于链接分配。
- 缺点:
- 可能要花费较多的外存空间。每个文件都要一个索引表,小文件仍需分配一个盘块。
- 优点:
27.单级索引,多级索引,混合索引,计算文件的容量和所占盘块数量
通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件。
-
优点:
- 消除了磁盘的外部碎片,提高了外存的利用率
- 对插入、删除和修改记录都非常容易
- 能适应文件的动态增长,无需事先知道文件的大小
-
索引方式
索引分配方法为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。
- 优点:
- 索引分配支持直接访问。
- 索引分配不会产生外部碎片。
- 文件较大时,优于链接分配。
- 缺点:
- 可能要花费较多的外存空间。每个文件都要一个索引表,小文件仍需分配一个盘块。
- 优点:
27.单级索引,多级索引,混合索引,计算文件的容量和所占盘块数量
单级索引
为每个文件分配一个索引块(表),把分配给该文件的盘块号都记录在索引块中。
多级索引
当OS为一个大文件分配磁盘空间时,若盘块号装满一个索引块时,OS便为该文件分配另一个盘块,依次类推,再通过链指针将各索引块链接起来。
混合索引
将多种索引方式相结合而形成的一种索引方式。
计算题讲解