目录

一、操作系统概论

二、进程的描述与控制

三、处理机调度

四、进程同步与进程互斥

五、死锁处理

六、内存管理

七、文件管理

八、I/O设备管理


一、操作系统概论

  1. 操作系统的定义

OS是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,方便用户使用计算机的程序集合。即为用户程序提供服务,是用户与硬件系统之间的接口。


2. 操作系统的作用

OS是计算机系统的核心,负责管理整个计算机系统的软硬件资源,制定各种资源的分配策略,调度系统中运行的用户程序,协调用户对资源的需求,从而使真个计算机系统高效有序的工作


3. 操作系统的常见的分类

1手工操作阶段(此阶段无操作系统)

2批处理阶段(操作系统开始出现)

1)单道批处理系统:自动性、顺序性、单道性

2)多道批处理系统:多道、宏观上并行、微观上串行,资源利用率高系统吞吐量大;用户响应时间长无人机交互能力

3分时操作系统

时间片轮转;同时性、交互性、独立性、及时性

4实时操作系统

在事先定义好的时间内对事件进行响应处理;及时性、可靠性

5网络操作系统

网络中各种资源的共享以及各台计算机之间的通信

6分布式计算机系统

分布性、并行性。分布式操作系统与网络操作系统本质上的不同之处在于分布式操作系统中,若干台计算机相互协同完成同一任务。

7个人计算机操作系统(嵌入式OS


4、多道程序技术的定义,引入多道程序技术的原因和目的

定义

多道程序技术允许多个程序同时进入内存并且允许它们在CPU中交替运行。

原因

当一道程序因I/O请求而暂停运行时,CPU立即转去运行其他道程序,使资源得到充分利用,工作效率成倍提高。

目的

引入多道程序技术为了进一步提高资源利用率和系统的吞吐量,充分发挥计算机系统部件的并行性


5. 操作系统与硬件、其他系统软件以及用户之间的关系

  • 操作系统是覆盖在硬件上的第一层软件,它直接管理计算机的硬件和软件资源,并向用户提供良好的界面;
  • 操作系统是一种特殊的系统软件,其他系统软件运行在操作系统的基础之上,可获得操作系统提供的大量服务,也就是说操作系统是其他系统软件与硬件之间的接口;
  • 而一般用户使用计算机除了需要操作系统支持外,还需要用到大量的其他系统软件和应用软件,以使其工作更加方便和高效

6、多道程序技术的定义及在OS中引入该技术所带来了的好处

多道程序技术即是指在内存中存放多道作业,运行结束或出错,自动调度内存中另一道作业运行。多道程序主要优点如下:

(1)资源利用率高

由于内存中装入了多道程序,使它们共享资源,保持系统资源处于忙碌状态,从而使各种资源得以充分利用。

(2)系统吞吐量大

由于CPU和其它系统资源保持“忙碌”状态,而且仅当作业完成或运行不下去时才切换,系统开销小,所以吞吐量大。


7、推动批处理系统和分时系统形成和发展的主要动力

(1)推动批处理系统形成和发展的主要动力

不断提高系统资源利用率和提高系统吞吐量:脱机输入/输出技术的应用和作业的自动过渡大大地提供了I/O的速度及I/O设备与CPU并行工作的程度,减少了主机CPU的空闲时间;多道程序设计技术的应用更进一步提高了CPU、内存和I/O设备的利用率及系统的吞吐量。

(2)推动分时系统形成和发展的主要动力

为了更好地满足用户的需要:CPU的分时使用缩短了作业的平均周转时间;人机交互能力的提供使用户能方面地直接控制自己的作业;主机的共享使多个用户能够同时使用同一台计算机独立、互不干扰地处理自己的作业。


8、实现分时系统的关键问题

实现分时系统的关键问题是使用户能与自己的作业交互作用即用户在自己的终端上键入一命令以请求系统服务后系统能及时地接收并处理该命令并在用户能够接受的时延内将结果返回给用户。 及时地接收命令和返回输出结果是比较容易做到的一般只要在系统中配置一个多路卡并为每个终端配置一个缓冲区用来暂存用户键入的命令和输出的结果便可以了。


9、时间片的划分原则

时间片即CPU分配给各个程序的时间,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。


10、从交互性,及时性以及可靠性三个方面,比较分时系统与实时系统。

①及时性

实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。

②交互性

实时信息处理系统虽然也具有交互性,但在这里用户与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源共享等服务。

③可靠性

分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。


11操作系统的基本特性

并发

两个或多个事件在同一时间间隔内发生,引入进程的目的是使程序能并发执行。(注:同一时间间隔(并发)和同一时刻(并行)的区别。并行性是指操作系统具有同时进行运算或操作的特性,并发微观上这些程序还是分时交替执行。)

共享

①互斥共享:一段时间内只允许一个进程使用,只有当前作业结束释放后,才允许其他作业使用

②同时共享:系统资源允许一个时间段由多个进程同时(宏观)访问,微观上是交替访问

虚拟

通过某种技术将一个物理实体变为若干个逻辑上对应的功能。通过某种技术将一个物理实体变为若干个逻辑上对应的功能。

异步

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底,而是走走停停,以不可预知的速度向前推进。

并发和共享是操作系统两个最基本的特征


12. 微内核结构的优点

微内核结构是以客户/服务器体系结构为基础,采用面向对象技术的结构。

①灵活性

微内核短小精干,仅提供最基本最必要的服务。

②开放性

操作系统除内核以外的功能都可用服务器的形式建立在内核之上,系统的开发者基于这种结构框架,可以方便地设计、开发、集成自己的新系统。

③可扩充性

采用微内核的操作系统,对于实现、安装、调试一个系统是很容易的。用户可以重写他们已有的不满意的服务


13操作系统的运行环境与体系结构

操作系统的运行环境与体系结构详解

操作系统内核包括:时钟管理、中断机制、原语、系统控制的数据结构及处理

中断,也称外中断,指来自CPU执行指令以外的事件的发生

异常,也称内中断、例外或陷入,指源自CPU执行指令内部的事件


14.系统调用和系统调用的应用及系统调用的过程

1系统调用:操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。

2系统调用的应用。应用程序通过系统调用请求操作系统的服务。凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。

二、进程的描述与控制

1.进程组成:进程是一个独立的运行单位,也是操作系统进行资源分配和调度的基本单位,一般包括进程控制块(PCB-(printed circuit board,印刷电路板)),程序段和数据段三部分。


2.进程的状态转换

①创建态

进程刚被创建时的状态,尚未进入就绪态。

②就绪态

进程获得了除处理机外的所有资源,只需获得处理机就可以运行,如果多个进程处于就绪态,则它们放在就绪队列中。

③运行态

进程获得处理机运行。在单处理机同一时刻只能有一个进程在处理机上运行

④阻塞态

进程正在等待某一资源而暂停运行的状态,如等待某资源或等待输入输出完成,如果有多个阻塞进程,则将他们存入阻塞队列中。

⑤结束态

进程正在从系统中消失,可能正常结束,也可能被动结束。系统需要将该进程置为结束态回收相关资源。

①就绪态→运行态

处于就绪态的进程得到处理机的调度,获得处理机资源,便可运行

②运行态→就绪态

非抢占式操作系统中是时间片用完了;抢占式操作系统中是有更高优先级的进程进入,就会抢占处理机,导致原进程重新回到就绪态

③运行态→阻塞态

运行中的进程,需要其他的资源,就会进入阻塞态

④阻塞态→就绪态

之前所需的资源获取到之后,就重新进入就绪态


3.挂起

定义:将处于就绪或阻塞态的进程由内存换到外存

原因

1终端用户的请求

当终端用户因为在运行期间发现问题无法执行,需要暂时停止正在运行的进程,若该进程处于就绪状态,挂起后,该进程就处于静止状态,也称为就绪停止。

2父进程请求

有时父进程根据运行需要,在执行期间需要挂起自己的某个进程,以便考查和修改该进程,或者协调个子进程间的活动。

3负荷调节的需要

当实时操作系统中存在较重的工作负荷时,为了保证实时系统的及时、可靠性,需要把系统中不需要的进程挂起,实现系统的正常运行。

4操作系统的需要

操作系统有时会根据需要挂起某些进程,完成资源使用情况或运行记录的检查。


4.进程控制

进程控制块(PCB)定义

PCB是进程实体地一部分,是进程存在地唯一标志,是操作系统中最重要地记录型数据结构

PCB组成

①进程标识符 ②处理及状态 ③进程调度信息 ④进程控制信息

一个经典的PCB中应该具备哪几类信息(处理机状态信息;进程调度信息;进程控制信息)

PCB作用

是使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,能与其他进程并发执行的进程。


5.创建一个新进程的主要步骤

①为新进程分配一个唯一的进程标识号,并申请一个空白的 PCB

为进程分配资源,为新进程的程序和数据及用户栈分配必要的内存空间。若资源不足(如内存空间),则并不是创建失败,而是处于阻塞态,等待内存资源。

初始化PCB,主要包括初始化标志信息、初始化处理机状态信息和初始化处理机控制信息,以及设置进程的优先级等。

将新进程插入就绪队列,等待被调度运行


6.进程和程序的区别

(1)进程是一个动态的概念,而程序是一个静态的概念,程序是指令的有序集合,无执行含义,进程则强调执行的过程。

(2)进程具有并行特征(独立性、异步性),程序则没有。

(3)不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程


7.进程的执行模式:用户模式;内核模式


8.从调度性,并发性,拥有资源,独立性,系统开销以及对多处理机的支持等方面比较对进程和线程

1)调度

在引入线程的操作系统中线程是独立调度的基本单位,进程是拥有资源的基本单位;在同一进程中线慢的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。

2)并发性

在引入线程的操作系统中。不仅进程之间可以并发执行,而且多个线程之间也可以并发执行从而使操作系统具有更好的并发性。提高了系统的吞吐量。

3)拥有资源

不论是传统操作系统还是没有线程的操作系统.进程都是拥有资源的基本单位;而线程不拥有系统资源(只有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。

4)系统开销

由于创建或撒销进程时,系统都要为之分配或回收资源,如内存空间、IO设备等,因此操作系统所付出的开销远大于创建或撒销线程时的开销;而线程切换时只需保存和设置少量寄存器内容,开销很小。由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现,也变得比较容易。且无需操作系统的干预。


9.进程通信


10.线程、多线程


11.用户级线程ULT的定义(User Level Threads )

用户级线程是指不依赖于操作系统核心,由应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制的线程。


12.内核支持线程KLT的定义(Kernel Supported Threads)

内核级线程是指依赖于内核,由操作系统内核完成创建和撤销工作的线程。


13.线程与进程的关系

①一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。

②资源分配给进程,同一个进程的所有线程共享该进程所有资源。

③CPU分配给线程,即真正在处理器运行的是线程。

④线程在执行过程中需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。

三、处理机调度

1、高级调度、中级调度、低级调度的任务


2.进程调度


3.调度算法的评价指标


4.进程调度算法

1)先来先服务FCFS

每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞时才释放处理机。

FCFS属于不可剥夺算法,算法简单,但效率低;对长作业比较有利,但对短作业不利(相对SPF和高响应比),若一个长作业先到达系统,就会使后面的许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略;有利于CPU繁忙型作业,而不利于I/0繁忙型作业。

2)短作业有先SJF

从就绪队列中选择一个或几个估计运行时间最短的进程,将处理机分配给它,使之立即执行,直到完成或发生某事件而阻塞时,才释放处理机。

①算法对长作业不利,SJF调度算法中长作业的周转时间会增加。如果有一个长作业进人系统的后备队列,由于调度程序总是优先调度短作业,将导致长作业长期不被调度,可能会出现“饥饿”现象。

②没有考虑作业 的紧迫程度,因而不能保证紧迫性作业会得到及时处理。

③作业的长短只是根据用户所提供的估计执行时间而定的,而用户有可能会有意或无意地缩短其作业的估计运行时间,算法不一定能真正做到短作业优先调度。

④SJF调度算法的平均等待时间、平均周转时间最少。

3)高响应比优先HRRN

先计算后备作业队列中每个作业的响应比,从中选出响应比最高的作业投入运行。

响应比=(等待时间+要求服务时间)/要求服务时间

①作业的等待时间相同时,要求服务时间越短,响应比越高,有利于短作业。

②要求服务时间相同时,作业的响应比由其等待时间决定,等待时间越长,其响应比越高,所以算法实现的又 是先来先服务。

③对于长作业,作业的响应比可以随等待时间的增加而提高,等待时间足够长时,其响应比便可升到很高,也可获得处理机。因此,克服了饥饿状态,兼顾了长作业。

4) 优先级调度

从就绪队列中选择优先级最高的进程,根据新的更高优先级进程能否抢占正在执行的进程,可分为非剥夺式优先级调度算法和剥夺式优先级调度算法

5) 时间片轮转

时间片轮转:进程调度程序总是按到达时间的先后次序选择就绪队列中的第一个进程执行,即先来先服务的原则,但仅运行一个时间片。在使用完一个时间片后,即使进程并未完成其运行,它也必须释放出(被剥夺)处理机给下一个就绪的进程,而被剥夺的进程返回到就绪队列的末尾重新排队,等候再次运行。

①若时间片足够大,以至所有进程均能在一个时间片执行完成,则退化为FCFS算法。

②若时间片很小,则处理机切换频繁,开销增大,进程使用时间减少。

6)多级反馈队列FB

多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合与发展,通过动态调整进程优先级和时间片大小,多级反馈队列调度算法可以兼顾多方面的系统目标。


5.哪些是抢占式调度算法?哪些是非抢占调度?

  • 抢占式:时间片轮转;多级反馈队列;短作业优先;优先级调度
  • 非抢占式:短作业优先;高响应比优先;优先级调度

6.高响应比优先调度算法的优点

  • 作业的等待时间相同时,要求服务时间越短,响应比越高,有利于短作业。
  • 对于长作业,作业的响应比可以随等待时间的增加而提高,等待时间足够长时,其响应比便可升到很高,也可获得处理机。因此,克服了饥饿状态,兼顾了长作业。

7.周转时间,带权周转时间

①周转

时间

从作业提交到作业完成所消耗的时间。

包括作业等待、在就绪队列中排队在处理机上运行以及进行输人/输出操作等所花费时间的总和。

周转时间T=作业完成时间-作业提交时间

③带权

周转

时间

带权周转时间是指作业周转时间与作业实际运行时间的比值。

作业的带权周转时间w=作业的周转时间T/实际运行时间Ts



四、进程同步与进程互斥

1.同步、互斥


2.临界资源

临界区定义

进程中访问临界资源的那段代码。

临界资源使用

基本原则

对临界资源的访问必须互斥地进行

进程访问临界区

时应遵循原则

1)空闲让进。临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。

2)忙则等待。当已有进程进入临界区时,其他试图进入临界区的进程必须等待。

3)有限等待。对请求访问的进程,应保证能在有限时间内进入临界区。

4)让权等待。当进程不能进入临界区时,应立即释放处理器,防止进程忙等待。

如何保证诸进程互斥地访问临界资源?

空闲让进;忙则等待;有限等待;让权等待


3.中断处理过程

关中断

CPU响应中断后,首先要保护程序现场状态,在保护的过程中CPU不可以响应更高优先级的中断请求。如果响应了更高优先级的程序,那低优先级的程序现场保存不完整,之后处理完中断后就不能正确的回到中断前的状态

保存断点

为保证中断服务程序执行完毕能正确的返回到原来的程序,必须将程序断点(程序计数器PC的值)保存起来

寻找中断

服务程序

入口地址

实质是取出中断服务程序的入口地址送入到程序计数器PC中入口地址的获取:查询"中断向量表",找到相应的中断处理程序在内存中的存放位置

进入中断服务程序,开始执行中断服务程序

保护现场

和屏蔽字

进入中断服务程序后的第一件事,就是保护现场和屏蔽字,主要是保存程序状态字PSWR和某些通用寄存器的内容

开中断

允许响应更高级中断此时如果有高级中断到来,可以去执行高级中断,因为被中断程序的现场信息已经被保存,响应高级中断不会导致被中断程序在恢复时现场信息不完整

中断服务

程序处理

执行中断服务程序,这也是中断的目的所在

关中断

执行完中断服务程序,在程序结束前,要恢复现场,这个操作也不可以被打断

恢复现场

中断服务程序将之前保存的相关寄存器的值恢复到原来的状态

开中断

中断服务程序即将结束,重新打开中断,允许响应其他中断

返回到断

点继续执行

中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到程序断点处,以便原程序继续执行


4.如何用硬件方法解决互斥(包含两种方法)

①中断屏蔽

CPU的进程切换是通过中断完成的,所以屏蔽中断可以可以让当前正在运行的进程顺利执行,防止其他进程进入临界区,进而保证互斥的实现,典型步骤为:关中断→临界区→开中断。

该方法简单高效,但是只适用于操作系统的内核进程,不适用于用户进程;处理机的执行效率下降;若关中断后没有开中断系统可能会终止。

②硬件指令

TestAndSet指令:该指令是原子操作(执行过程不允许被中断),用于将读出的指定标志设为真;Swap指令:用于交换两个字节的内容


5.什么是“忙-等”,它的缺点

“忙等”

指“不让权”的等待,即进程因某事件的发生而无法继续执行时它仍占有CPU并通过不断地执行循环测试指令来等待该事件的完成。

缺点

浪费CPU的时间另外它还可能引起预料不到的后果。例如考虑某个采取高优先权优先调度原则的系统目前有两个进程A和B共享某个临界资源A的优先权较高B的优先权较低且B已处于临界区内而A欲进入自己的临界区则A、B都不可能继续向前推进陷入“死等”状态。


6.信号量机制


7.用信号量机制实现进程互斥、同步、前驱关系

  • 互斥是不同进程对同一信号量执行PV操作;解决互斥,即要求单位时间内只允许一个进程访问临界资源


8.信号量的P,V操作

  • P操作(wait(s),value--),表示进程申请一个该类资源;
  • V操作(signal(s),value++),表示进程释放一个资源;

9.管程的组成

①管程的名称

②局部于管程内部的共享结构数据说明

③对该数据结构进行操作的一组过程(或函数)

④对局部于管程内部的共享数据设置初始值的语句


10.管程的特性

①管程内的局部变量只能被局限于管程内的过程所访问;反之亦然,即局部于管程内的过程只能访问管程内的变量。

②任何进程只能通过调用管程提供的过程入口进入管程。对于上例中外部进程只能通过take_away()过程来申请一个资源。

③任一时刻,最多只能有一个进程在管程中执行,从而实现进程互斥。管程是一种编程语言的构件,它的实现需要编译器的支持


11.消息传递原语

  • Send原语and Receive原语:成对出现,一般组合为阻塞发送,阻塞接收;无阻塞发送,阻塞接收;无阻塞发送,无阻塞接收

五、死锁处理

1.死锁的概念


2.产生死锁的根本原因

  • 竞争系统资源:由于不可剥夺资源无法满足多个进程运行的需要,因此这些进程对不可剥夺资源竞争陷入僵局,进而产生死锁。
  • 进程推进非法:当两个进程P1,P2分别占有资源1,2,若P1再申请资源2,P2再申请资源1,则两个进程都会因为缺少资源陷入僵局,即进程运行过程中的请求和释放资源顺序的不当也会导致死锁。

3.静态资源分配策略

  • 破坏请求与保持条件,采用静态分配,在进程处于就绪状态就一次性申请进程运行时所需要的全部资源,若全部资源申请完成立即运行进程,且所有资源运行期间只归当前进程所有,不再被其他进程请求。

4.死锁处理

  • 预防死锁的方法(采用静态资源分配策略;采用按需资源分配策略


5.什么是安全状态

  • 安全状态是在某一时刻,系统能够按某种顺序or序列(eg:P1,P2,..Pn)来为每个进程分配其所需的资源,直至每个进程都能获得最大资源的需求,保证所有进程都顺序完成,此时称该序列为安全序列。只要能找出一个安全序列,系统就为安全状态;如果系统中一个安全序列都不存在,则该系统处于不安全状态。


6.如何判断系统是否处于安全状态

「操作系统」安全序列_哔哩哔哩_bilibili

(下面是软考上午题判断方法)


7.银行家算法的基本思想

  • 核心思想:进程运行之前先声明对各种资源的最大需求量,当进程在执行中继续申请资源时,先测试该进程己占用的资源数与本次申请的资源数之和是否超过该进程声明的最大需求量。若超过则拒绝分配资源、若未超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

2.4_3_死锁的处理策略—避免死锁_哔哩哔哩_bilibili(银行家算法在7:50)


8.资源分配图及其化简

  • 先分配资源给进程,再让进程去申请资源,如果申请不到资源,那么进程就是堵塞的。 如果没有一个进程是非堵塞的,那么进程资源图一定是不可化简的,是死锁的。
  • 如果有进程是非阻塞的,那么就有可化简的希望,要自行判断是否能够运行完所有进程。

进程资源图_哔哩哔哩_bilibili(看视频更好理解)


六、内存管理

1.内存基础知识


2.内存管理的概念


3.虚拟存储器的定义

  • 虚拟存储器就是仅把作业的一部分装入内存便可运行的存储器系统。具体说就是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储系统


4. 实现虚拟存储器的关键技术

  • 虚拟存储器的的实现,都是建立在离散分配的存储管理方式的基础上,如请求分页、请求分段和请求段页式三种存储管理方式;同时需要动态重定位,即重定位技术以及重定位寄存器。

5.交换技术

  • 交换技术就是把暂时不用的某个程序及数据的一部分或全部从内存中移到外存中去,腾出必要的内存空间;或把指定的程序或数据从外存中读到相应的内存中,并将控制权转给它
  • 换出—把处于等待(阻塞)状态的进程从内存移到外存,将内存空间腾出来
  • 换入—将准备好竞争CPU运行的进程从外存转移到内存

6.逻辑地址、物理地址的定义

①逻辑地址

源代码经过编译后,目标程序中所用的地址就是逻辑地址.每个目标模块都从0号单元开始编址,其对应的地址范围即逻辑地址空间;不同的进程可以拥有相同的逻辑地址,可以映射到主存的不同位置

②物理地址

内存中物理单元的集合,地址转换的最终地址,进程执行指令和访问数据最后都要通过物理地址从主存中存取


7. 什么是拼凑

  • 为了使分散、较小的空闲区得到合理的使用,把所有的碎片合并为一个连续区,也就是移动某些已分配区域的内容,使所有作业的分区连在一起,把空闲区留在另一端

8.基于顺序搜索的动态分区分配算法即首次适应算法、最佳适应算法、最坏适应算法中存储空间的回收与分配

①首次适应(first fit,FF)算法

空闲分区以地址递增的次序链接。当一个作业到达时,从该表中顺序检索,找到大小能满足要求的第一个空闲分区。余下的空用分区仍然保留。若从头到尾都不存在符合条件的分区,则分配失败。

②最佳适应(best fit,BF)算法

空闲分区按容量递增的方式形成分区链,当作业到达时,从该表中检索出第一个能满足要求的空闲分区分配给它。该方法碎片最小,如果剩余空闲分区太小,则将整个分区全部分配给它。

③最坏适应(worst fit,WF)算法

空闲分区以容量递减的次序链接。当一个作业到达时,从该表中检索第一个能满足要求的空闲分区,即挑选出最大的分区,该方法碎片最大,但剩余的空闲分区可再次使用。


9.基本分页存储管理的基本概念


10.页面和物理块的定义

页面

将一个进程的逻辑地址空间划分为若干个大小相等的部分,每个部分称为页面

物理块

将内存空间划分成与页面大小相同的若干个储存块,即为物理块或页框

页面

划分

页面的大小也应该适中,一般为2的整数幂(518B~8KB),页面太小会使进程的页面过多,导致页表过长占用大量内存,增加硬件地址转换的开销;页面过大会使页内碎片增多,降低内存的利用率。


11.什么是页表?页表的作用是什么?页表结构?

页表

操作系统为每个进程建立一张页表,一个进程对应一张表

作用

方便知道每个进程的页面在内存中存放的位置

结构

进程的每一页对应一个页表项(页号+块号),记录进程页面和实际存放的内存块之间的对应关系


12.什么是纯分页系统

  • 纯分页系统是指在调度一个作业时,必须把它的所有页一次装入到内存的物理块中,当物理块不足,则该作业必须等待,直到有足够的物理块为止,这时系统再调度另外的作业

13.分页存储管理系统中的逻辑地址结构


14.请求分页系统中的地址转换过程


15.请求分页管理方式

  • 缺页中断率的定义:缺页中断次数/进程访问次数


16.基本分段存储管理

分段存储管理

它将进程的地址空间按照自身的逻辑关系划分为若干个段,每个段可以定义一组相对完整的逻辑性息,每个段从0开始编址(段名可供程序员编程);内存以段为单位进行分配,每个段在内存中占用连续的空间,但可以不相邻(离散分配)

段的

定义

段是一组逻辑信息的集合。每个段都有自己的名字和长度从0开始编址,常用一个段号来代替段名

段的大小划分

段的大小由相应的逻辑信息组的长度决定,所以各段的长度可以不同

段表

结构

每个进程都有一张逻辑空间与内存空间映射的段表,每个段表项对应进程的一段,并记录了段的长度和段在内存中的起始位置


17.分页和分段存储管理的对比

  1. 页是信息的物理单位,分页是由于系统管理的需要而不是用户的需要,为了实现离散分配,提高内存的利用率;段则是信息的逻辑单位,分段的主要目的是更好满足用户需求,是对用户可见的。
  2. 页的大小固定由系统决定;而段的长度却不固定,取决于用户所编写的程序。
  3. 分页的作业地址空间是一维的,即单一的线性地址空间;而分段的作业地址空间是二维的,要标识一个地址出了给出段内地址外还需给出段号
  4. 在一个进程中,段表只有一个,而页表可能有多个。
  5. 分段比分页更容易实现信息的共享和保护。
  6. 单级页表和分段访问一个逻辑地址均需要两次访存。


18.段页式管理的逻辑地址结构


19.段页式管理

  • 段页式存储管理是页式和段式管理方式的结合,按程序分段,段内再分页。也就是用户程序被逻辑划分为若干段,每段又分成若干页面,内存划分成对应大小的块


20.页面置换算法

  • 页面的换入、换出需要磁盘I/O,会有较大的开销,因此好的也买你置换算法应该追求更少的缺页率

①最佳置换OPT ②先进先出FIFO ③最近最久未使用LRU ④时钟置换CLOCK


21.页面分配策略


七、文件管理

1.有结构文件


2.文件目录

  • 目录文件中的一条记录就是一个"文件控制块(FCB)"


3.文件的物理结构(文件分配方式)


4.文件存储空间管理


5.文件的基本操作


6.文件共享


7.文件保护


8.文件系统的体系层次结构


八、I/O设备管理

1. 设备独立性

  • 用户编程时使用的设备与实际使用的设备无关,用户程序在进行输入/输出的时候,不需要考虑具体的输入/输出设备,而可以用一种通用的方式进行输入/输出。

2.I/O控制器


3.I/O控制方式


4.I/O的软件层次结构


5.假脱机技术/SPOOLing技术


6.设备的分配与回收


7.缓冲区管理


8.在设备管理中引入缓冲技术的原因

①缓和CPU与I/O设备间速度不匹配的矛盾

②减少CPU的中断频率,放宽对中断响应的限制

③提高CPU和I/O设备之间的并行性


9.磁盘结构


10.磁盘调度算法

磁盘调度算法_哔哩哔哩_bilibili(看不懂直接上链接)


11.旋转调度算法

旋转调度算法_哔哩哔哩_bilibili


练习题

【操作系统原理期末速成不挂科主攻大题】视频讲解

笔记参考视频

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐