操作系统思维导图---(零基础---思维导图详细版本及知识点)

  • 第一章 操作系统引论及概述

在这里插入图片描述

1.操作系统(Operating System,OS)是计算机系统中最重要的系统软件,它管理整个计算机系统的软件资源和硬件资源,是用户与计算机硬件的桥梁,是其它软件和程序的运行基础。

2.操作系统可以控制CPU的工作、访问存储器、进行设备驱动和设备中断处理。

3.计算机用户可以通过操作系统使用不同的界面,方便、快捷、安全、可靠地操作计算机硬件来完成自己的计算任务。

4.操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

5.操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。

6.操作系统是计算机硬件之上的第一层软件,屏蔽了硬件的物理特性和操作细节,用户通过操作系统来使用计算机系统。

7.用户在操作系统的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。

8.作为系统资源的管理者,操作系统主要做以下工作:
(1)监视各种资源,随时记录它们的状态。
(2)实施某种策略以决定谁获得资源,何时获得,获得多少。
(3)分配资源供需求者使用。
(4)回收资源,以便再次分配。

9.多道程序设计
指允许多个程序同时进入内存并运行。即同时把多个程序装入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬件资源和软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
多道程序合理搭配以输入/输出为主和以计算为主的程序,使得它们交替运行,从而充分利用资源,提高系统效率。

10.多道批处理作业
①多道
系统内可同时容纳多个作业。这些作业存放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,作业的调度由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
②成批
在系统运行过程中,不允许用户与其作业发生交互作用,即作业一旦进入系统,用户就不能直接干预其作业的运行

11.多道批处理系统的主要特征有以下三个方面:
①用户脱机使用计算机:作业提交后直到获得结果之前,用户无法与作业交互。
②作业成批处理:采用成批处理作业。
③多道程序并行:充分利用系统资源。
多道批处理系统的缺点:
是无交互性,用户一旦提交作业就失去了对其运行的控制能力;同时,由于是批处理,所以作业的周转时间长,用户使用不方便。

12.分时技术把处理器的时间分成很短的时间片,这些时间片轮流地分配给各个联机的作业使用。

如果某作业在分配给它的时间片用完时仍未完成,则该作业暂时中断,等待下一轮运行,并把处理器的控制权让给另一个作业使用。

这样在一个相对较短的时间间隔内,每个用户作业都能得到快速响应,以实现人机交互。

13.实时系统主要包括三种:
(1)过程控制系统
(2)信息查询系统
(3)事务处理系统

14.实时操作系统(Real Time Operating System)
是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内控制监控的生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。

15.服务器操作系统 (Server operating system,SOS ),又称为网络操作系统,一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等,是企业IT系统的基础架构平台。

服务器操作系统也可以安装在个人电脑上。相比个人版操作系统,在一个具体的网络中,服务器操作系统要承担额外的管理、配置、稳定、安全等功能,处于每个网络中的心脏部位。

16.操作系统的功能
1)处理机管理
(2)存储管理
(3)设备管理
(4)文件系统管理
(5)用户接口管理

17.(1)处理机管理
计算机系统中最重要的资源是中央处理机(简称CPU),任何计算都必须在CPU上进行。
在处理机管理中,最核心的问题是CPU时间的分配问题,这涉及分配的策略和方法。
在单CPU计算机系统中,当有多进程请求CPU时,将处理机分配给那个进程使用的问题就是处理机分配的策略问题。调度策略也是分配原则,这是在多对一的情况下(即多个进程竞争1个CPU)必须确定的。
这些原则因系统的设计目标不同而不同。可以按进程的紧迫程度,或按进程发出请求的先后次序,或是其他的原则来确定处理机的分配原则。
(2)存储管理
存储管理的主要工作是对内存储器进行合理分配、有效保护和扩充。
内存是现代计算机系统的中心,是可以被CPU和I/O设备共同访问的数据仓库。
内存通常是CPU直接寻址和访问的、唯一的大容量存储器。
(3)设备管理
设备管理是操作系统中最庞杂、琐碎的部分,其原因是:
①设备管理涉及很多实际的物理设备,这些设备品种繁多、用法各异。
②各种外部设备都能和主机并行工作,而且,有些设备可被多个进程所共享。
③主机和外部设备,以及各类外部设备之间的速度极不匹配,极差很大。
(4)文件系统管理
以上三种管理都是针对计算机的硬件资源的管理。
文件系统管理则是对软件资源的管理。为了管理庞大的系统软件资源及用户提供的程序和数据,操作系统将它们组织成文件的形式,操作系统对软件的管理实际上是对文件系统的管理。
文件系统要解决的问题是,为用户提供一种简便的、统一的存取和管理信息的方法,并要解决信息的共享、数据的存取控制和保密等问题。
文件系统要实现用户的信息组织、提供存取方法、实现文件共享和文件安全,还要保证文件完整性,完成磁盘空间分配的任务。
(5)用户接口管理
计算机用户与计算机的交流是通过操作系统的用户接口(或称用户界面)完成的。
操作系统为用户提供的接口有两种,
一是操作界面;
二是操作系统的功能服务界面。

18.操作系统特征
(1)并行与并发
并行性和并发性是既相似又有区别的两个概念:
并行性是指两个或多个事件在同一时刻发生;
并发性是指两个或多个事件在同一时间间隔内发生。
在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。
(2)共享性
共享是指系统中的资源可供内存中多个并发执行的进程(线程)
共同使用,称为资源共享或资源复用。
(3)虚拟(virtual)性
是指通过技术把一个物理实体变成若干个逻辑上的对应物。
在操作系统中虚拟的实现主要是通过分时的使用方法。
(4)异步性
进程以人们不可预知的速度向前推进,即进程的异步性。


  • 第二章 进程与线程

在这里插入图片描述

1.进程的定义: 进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和运行调度的基本单位。

2.进程控制块的概念及其内容
一个进程创建后,需要有自己对应的程序和该程序运行时所需的数据,还需要数据结构来刻画进程的动态特征,描述进程状态,占有资源情况,调度信息等,通常使用一种称为进程控制块的数据结构来刻画。
一个进程要由3个部分组成:程序、数据集合以及进程控制块。由于进程的状态在不断发生变化,某时刻进程的内容及其状态集合称之为进程映像(Process Image),其包括进程控制块,进程程序段,进程核心栈和进程数据段4个要素。

3.(1)进程控制块是随着进程的创建而建立,随着进程的撤销而取消的。
(2)PCB是进程存在的唯一标志,是操作系统用来记录和刻画进程状态及有关信息的数据结构。
(3)进程控制块应常驻内存,其包括进程执行时的情况以及进程让出CPU之后所处的状态、断点等信息。

4.进程创建的原因
(1)用户登录。在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统为该用户建立一个进程。
(2)提供服务。当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务。
(3)作业调度。在批处理系统中,当作业调度程序按一定的算法调度到某作业时,操作系统认为有资源可运行,便将该作业装入内存,为它分配必要的资源,并立即为它创建进程。
(4)应用请求。基于应用进程的需求,由它自己创建一个新进程,以便使新进程以并发运行的方式完成特定的任务。

5.三状态转换图
在这里插入图片描述
6.三状态模型
(1)执行态(running):进程占用处理器并执行的状态。在单处理器系统中,由于处理器的惟一性,至多只能有一个进程处于执行状态。
(2)就绪态(ready):进程具备执行条件,即已分配到除处理器以外的所有必要的资源,等待系统分配处理器以便其运行的状态。
(3)阻塞态(blocked):正在执行的进程由于发生某事件(如I/O请求,申请缓冲区失败)暂时无法继续执行时的状态,进程的执行受阻,此时引起进程调度,OS把处理机分配给另一个就绪进程,而让阻塞的进程处于暂停状态

7.引起进程状态转换的具体原因有以下几点。
(1)就绪态—执行态。进程调度程序根据调度算法把处理器分配给某个就绪进程,并把控制转到该进程,使它由就绪态变为执行态,进程投入运行。
(2)执行态—就绪态。执行中的进程因所分配给它的时间片用完而被暂停运行时,该进程便由执行态回到就绪态。
(3)执行态—阻塞态。因发生某事件而使进程的执行受阻(例如等待文件的输入),使得进程无法继续执行,该进程将由执行态变为阻塞态。
(4)阻塞态—就绪态。阻塞进程在所等待的事件完成后,并不能立即投入运行,需要通过进程调度程序统一调度才能获得处理器,此时将该进程的状态变为就绪态继续等待处理机。

8.五状态转换
在这里插入图片描述

9.(1)新建态(new)。进程刚建立,还没有被OS提交到可运行进程队列。
(2)终止态(exit)。进程已正常或异常结束,被OS从可运行进程队列中释放出来。
处于终止态的进程不再被调度执行,在与该任务相关的表格或其它信息抽取完毕以后,OS也不必再保存与进程有关的信息。

10.( 1)新建态—就绪态。对一个处于新建态的进程,在就绪队列能够接纳新进程时,将被系统接收并进入就绪队列,此时的进程状态就从新建态转为就绪态。
(2)执行态—终止态。对于一个处于执行状态的进程,当其正常执行结束,或者因为发生了某种事件而被异常结束

11.七状态模型

在这里插入图片描述

12.(1)挂起就绪态(ready suspend)。进程具备运行条件,但目前在辅助存储器中,只有当进程被兑换到主存时才能调度执行。
(2)挂起阻塞态(blocked suspend)。进程正在等待某一事件发生且进程在辅助存储器中。

13.线程(Thread)是现代操作系统中出现的一个重要技术,目前流行的操作系统几乎都采用了线程机制。线程的引入进一步提供了程序执行的并发性,提高了系统的效率。
在传统的操作系统中,进程是系统进行资源分配和调度的基本单位,以进程为单位分配存放其映像所需要的虚地址空间,执行所需要的主存空间,完成任务需要的其他各类外围设备资源和文件。

14.所谓线程,是进程内的一个相对独立的,可独立调度和指派的执行单元。是进程的组成部分。线程的组成部分有:
(1)线程的唯一标识符及线程状态信息,即线程控制块(TCB)。
(2)未运行时所保存的进程上下文,可把线程看成进程中一个独立的程序计数器。
(3)核心栈,在核心态工作时保存参数,在函数调用时返回地址,等等。
(4)用于存放线程局部变量和用户栈的私有存储区。

15.线程是个动态的概念,也有生命周期,在这一过程中它具有各种状态,虽然在不同的操作系统中,线程的状态不完全相同,但下述三个关键的状态是共有的。
(1)就绪状态:线程已具备执行条件,调度程序可以为其分配一个CPU执行。
(2)运行状态:线程正在某一个CPU内运行。
(3)阻塞状态:线程正在等待某个事件发生,则被阻塞。

16.线程具有以下一些特征。
(1)线程是进程中的一个相对可独立运行的单元。
(2)线程是操作系统中的基本调度单位,在线程中包含调度所需要的基本信息。
(3)在具备线程机制的操作系统中,进程不再是调度单位,一个进程中至少包含一个线程,以线程作为调度单位。
(4)线程自己并不拥有资源,它与同进程中的其它线程共享该进程所拥有的资源。由于线程之间涉及资源共享,所以需要同步机制来实现进程内多线程之间的通信。
(5)与进程类似,线程还可以创建其他线程,线程也有生命周期,也有状态的变化。

17.周转时间:从作业提交给系统到作业完成为止的这段时间间隔。
周转时间包括四部分:作业在外存后备队列上等待(作业)调度的时间+进程在就绪队列上等待进程调度的时间+进程在CPU上执行的时间+以及进程等待I/O操作完成的时间。
一个作业的周转时间等于作业的完成时间-到达时间,或者是执行时间+等待时间。

18.抢占式优先级调度方式规定首先把处理机分配给优先权最高的进程,使该进程占用CPU执行。但在其执行期间,如果系统中进入了一个优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理器分配给新到的优先级最高的进程。这种调度方式的优点是能更好地满足紧迫作业的要求,因此适用于要求比较严格的实时系统,以及对性能要求较高的批处理和分时系统。
在优先级调度算法中,进程的优先级一般由优先数决定。

19.静态优先数是指进程在创建时就获得一个整数数值,此数值在进程的整个运行过程中固定不变。优先数的大小反映进程优先级的高低。有的系统规定越大的优先数其优先级越高,当然也可以反过来规定。优先数的决定一般取决于进程类型,资源需求量,紧迫程度和用户需求等。

20.动态优先数是指进程的优先级随着进程的推进可以动态改变。现代操作系统中,采用优先级调度算法的系统大多使用的是动态优先数的策略。动态优先数的选择可以根据进程占有CPU的时间长短以及就绪进程等待CPU的时间长短来确定。

21.用户级线程调度和核心级线程调度的主要区别如下。
(1)用户级线程间切换只需少量机器指令,速度较快;而核心级线程间切换需要完整的进程上下文切换,修改内存映像,高速缓存失效,因而速度慢。系统开销大。
(2)用户级线程可使用专为某用户态程序定制的线程调度程序,应用定制的线程调度程序能够比内核更好地满足用户态程序需要。核心级线程在内核中完成线程调度,内核不了解每个线程的作用,不能做到这一点。


  • 第三章 进程并发控制

在这里插入图片描述

1.把并发进程中与共享变量有关的程序段称为“临界区”

2.共享变量所代表的资源称为“临界资源”

3.多个并发进程中涉及相同共享变量的那些程序段称为“相关临界区”

4.若干进程共享某一资源(变量)的相关临界区的管理应满足如下三个要求:
(1)一次最多让一个进程在临界区执行,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。

(2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区中。

(3)不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区。

5.进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放该资源。

6.信号量:在操作系统中,信号量S是一个整数。当S大于等于零时,代表可供并发进程使用的资源实体数;当S小于零时,则|S|表示正在等待使用资源实体的进程数。建立一个信号量必须说明此信号量所代表的意义并且赋初值。除赋初值外,信号量仅能通过PV操作来访问。

7.信号量按其用途可分为两种:
(1)公用信号量,联系一组并发进程,相关的进程均可在此信号量上进行P操作和V操作,初值常常为1,用于实现进程互斥,也称为互斥信号量。
(2)私有信号量,联系一组并发进程,仅允许拥有此信号量的进程执行P操作,而其他相关进程可在其上施行V操作。初值常常为0或正整数,多用于实现进程同步,也称为资源信号量。

8.我们把不可被中断的过程称为“原语”,于是P操作和V操作实际上是“P操作原语”和“V操作原语”。P、V操作也分别称为Wait()和Signal()操作。

9.用PV操作可实现并发进程的互斥,其步骤为:
(1)设立一个互斥信号量S表示临界区,其取值范围为1,0, -1,…,其中S =1表示无并发进程进入S临界区;S=0表示已有一个并发进程进入S临界区;S等于负数表示已有一个并发进程进入S临界区,且有|S|个进程等待进入S临界区。S的初值为1。
(2)用PV操作表示对S临界区的申请和释放,在进入临界区之前,通过P操作进行申请,在退出临界区之后,通过V操作释放。

10.程是由一个或多个过程、一个初始化序列和局部数据组成的软件模块,其主要特点如下:
( 1)局部数据变量只能被管程的过程访问,任何外部过程都不能访问。
(2)一个进程通过调用管程的一个过程进入管程。
(3)在任何时候,只能有一个进程在管程中执行,调用管程的任何其他进程都被阻塞,以等待管程可用。

11.高级通信机制可归结为三大类:
共享存储器系统
消息传递系统
管道通信系统

12.消息传递系统的通信方式属于高级通信方式。根据实现方式的不同可分为直接传递方式和间接传递方式。

13.管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称为pipe文件。

向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),可从管道中接收数据。由于发送进程的接收进程是利用管道进行通信的,故又称为管道通信。

14.管道通信机制必须提供以下三方面的协调能力:
( 1)互斥。当一个进程正对pipe进行读/写操作时,另一个进程必须等待。
(2)同步。当写(输入)进程把一定数量数据写满pipe时,应睡眠等待,直到读(输出)进程取走数据后,再把它唤醒。当读进程读一空pipe时,也应睡眠等待,直至写进程将数据写入管道后,才将它唤醒。
(3)判断对方是否存在。只有确定对方已存在时,方能进行通信。

15.直接传递是指发送进程利用操作系统所提供的发送命令直接把消息发送给接收进程,而接收进程则利用接收命令直接从发送进程接收消息。
在直接通信方式下,企图发送或接收消息的每个进程必须指出信件发给谁或从谁那里接收消息

16.send (P,消息):把一个消息发送给进程P。
receive (Q,消息):从进程Q 接收一个消息。
进程P和Q通过执行这两个操作而自动建立了一种联系,并且这种联系仅仅发生在这一对进程之间。

17.在利用信箱通信时,在发送进程和接收进程之间存在着下述的四种关系:
1)一对一关系。即可以为发送进程和接收进程建立一条专用的通信链路。使它们之间的交互不受其他进程的影响。
2)多对一关系。允许提供服务的进程与多个用户进程之间进行交互,也称为客户/服务器交互。
3)一对多关系。允许一个发送进程与多个接收进程进行交互,使发送进程可用广播形式,向接收者发送消息。
4)多对多关系。允许建立一个公用信箱,让多个进程都能向信箱中投递消息,也可从信箱中取走属于自己的消息。


  • 第四章 死锁

在这里插入图片描述
1.为了解决死锁问题,可使用下面几种对策。
(1) 死锁的预防:破坏产生死锁的四个必要条件中的一个或多个,使系统不会进入死锁状态。
(2)死锁的避免:在资源动态分配过程中使用某种算法防止系统进入不安全状态,从而避免死锁的发生。
(3)死锁的检测:通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源,然后,采取适当措施,从系统中将已发生的死锁清除掉。
(4)死锁的解除:撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞态的进程,使之转为就绪态,以继续运行。

2.死锁检测算法
(1)如果能在资源分配图中找出一个既不阻塞又非独立的进程,它在有限的时间内有可能获得所需资源类中的资源继续执行,直到运行结束,再释放其占有的全部资源。
(2)可使资源分配图中另一个进程获得前面进程释放的资源继续执行,直到完成父释放出它所占用的所有资源,相当于又消去了图中若干请求边和分配边。
(3)如此下去,经过一系列简化后,若能消去图中所有边,使所有进程成为孤立节点,则该图是可完全简化的。

3.从死锁中恢复
(1) 撤销进程
解除死锁最直接的方法是终止一个或若干个进程,系统会回收分配给被终止进程的所有资源。在极端情况下,这种方法可能造成除一个死锁进程外,其余的死锁进程全部被撤销。
(2)剥夺资源
利用剥夺资源的方法处理死锁,需要考虑以下几点:
1)选择剥夺哪些进程的哪些资源。与撤销进程相同,必须确定剥夺顺序确保代价最小化。
2)对被剥夺资源的进程的安排。显然被剥夺资源的进程缺少所需要的资源,不能正常执行。建立检查点,必须将进程回到某个安全状态,以便从该状态重启进程。
3)保证资源不会总是从同一个进程中被剥夺。这就需要确保一个进程只能有限次的剥夺资源,最常用的方法是在代价因素中加上回滚次数。

4.银行家算法
把矩阵A11ocation和Need矩阵中的每一行当中一个向量,针对进程Pi已分配和还需要的向量分别写成A11ocationi和Needi。
设Requesti为进程Pi的请求向量,如果Requesti[j]=k,那么进程Pi申请k个Rj类资源。银行家算法如下。
(1)申请量超过最大需求量时出错,否则转步骤(2)。
(2)当申请量超过当前系统所拥有的可分配量时,挂起进程,该进程处于阻塞态,否则转步骤(3)。
(3)系统对进程Pi请求的资源进行试探性分配,执行
Allocation[i,* ]= Allocation[i, * ]+Requesti[ * ]
Available[ * ]=Available[*]-Requesti[ * ]
Need[i, * ]=Need[i, * ]-Requesti[ * ]

5.死锁产生的根本原因有两个:一是系统中的资源数目不能满足多个并发进程的全部资源需求,各进程竞争资源,如系统对资源分配不合理就会产生死锁,简记为资源竞争:二是并发执行进程间的推进顺序不合理也可能产生死锁,简记为推进顺序非法。

6.系统产生死锁有四个必要条件:互斥条件、占有且等待条件、不抢占条件和环路等待条件。解决死锁的方法有:死锁检测和恢复、避免死锁、预防死锁。死锁的检测和恢复表示对资源的申请和分配不施加任何限制,但必须建立检测机制,周期性地检测是否发生死锁,如果检测发现死锁则采取措施恢复死锁。

7.活锁和饥饿是同死锁非常相似的问题,但在技术上不同,活锁包含的是实际并没有被锁住的进程,而饥饿可以通过先来先服务的分配策略来避免。

8.死锁的避免采用动态分析和检测新的资源请求和资源的分配情况,以确保系统始终处于安全状态,其中最著名的算法是银行家算法。死锁的预防包括一切都是用假脱机技术(破坏互斥条件),资源一次性分配(破坏占有且等待条件);抢占资源(破坏不抢占条件);资源有序分配法(破坏环路等待条件)。


  • 第五章 内存管理

在这里插入图片描述

1.虚拟内存:中心思想是将物理主存扩大到便宜、大容量的磁盘上,即将磁盘空间看做主存空间的一部分。
用户程序存放在磁盘上就相当于存放在主存内。用户程序既可以完全存放在主存,也可以完全存放在磁盘上,当然也可以部分存放在主存、部分存放在磁盘。而在程序执行时,程序发出的地址到底是在主存还是在磁盘则由操作系统的内存管理模块负责判断,并到相应的地方进行读写操作。

2.固定地址的内存管理其缺点也很明显:
(1)整个程序要加载到内存空间中去。这样将导致比物理内存大的程序无法运行。
(2)只运行一个程序造成资源浪费。如果一个程序很小,虽然所用内存空间小,但剩下的内存空间也无法使用。
(3)可能无法在不同的操作系统下运行,因为不同操作系统占用的内存空间大小可能不一样,使得用户程序的起始地址可能不一样。这样在一个系统环境下编译出来的程序很可能无法在另一个系统环境下执行。

3.固定分区的管理就是将内存分为固定的几个区域,每个区域的大小固定。最下面的分区为操作系统占用,其他分区由用户程序使用。这些分区大小可以一样,也可以不一样。考虑到程序大小不一的实际情况,分区的大小通常也各不相同。当需要加载程序时,选择一个当前闲置且容量够大的分区进行加载

4.地址翻译:物理地址=虚拟地址+程序所在区域的起始地址

5.位图表示和链表表示的比较:
位图表示和链表表示各有优缺点。

(1)如果程序数量很少,那么链表比较好,因为链表的表项数量少。位图表示法的空间成本是固定的,它不依赖于内存中程序的数量。因此,从空间成本上分析,到底使用哪种表示法得看链表表示后的空间成本是大于位图表示还是小于位图表示而定。

(2)从可靠性上看,位图表示法没有容错能力。如果一个分配单元为1,你并不能肯定它应该为1,还是因为错误变成1的,因为链表有被占空间和闲置空间的表项,可以相互验证,具有一定的容错能力。

(3)从时间成本上,位图表示法在修改分配单元状态时,操作很简单,直接修改其位图值即可,而链表表示法则需要对前后空间进行检查以便做出相应的合并。例如,在图4-18所示的情况下,如果程序中间的那个程序(占用位置从11开始,长度为4)终止,则链表将如图4-19所示。如果是最前面的程序终止,则链表将如图4-20所示。

6.分区分配算法
(1)首次适应算法FF。 空闲分区按地址递增顺序排列,
找符合要求的第一分区。
(2) 循环首次适应算法,该算法是由首次适应算法演变而成的。
(3)最佳适应算法。空闲分区按大小递增顺序排列,
找符合要求的第一分区。
(4)最坏适应算法。空闲分区按大小递减顺序排列,
找符合要求的第一分区。
(5) 快速适应算法(quick fit)
该算法又称为分类搜索法,是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,这样,系统中存在多个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。

7.存储管理的基本功能有:主存空间的分配与回收、地址转换、主存空间的共享与保护、主存空间的扩充。

8.在多道程序设计系统中,为了方便程序编制,用户程序中使用的地址是逻辑地址,而CPU则是按物理地址访问主存、读取指令和数据。为了保证程序的正确执行,需要进行地址转换。地址转换又称为重定位,有静态重定位和动态重定位。采用动态重定位的系统支持程序的浮动。

9.现代操作系统支持多道程序设计,满足多道程序设计最简单的存储管理技术是分区管理,有固定分区管理和可变分区管理。分区管理中,当主存空间不足时,交换技术和覆盖技术可以达到扩充主存的目的。


  • 第六章 页式和段式内存管理

在这里插入图片描述

1.在分页内存管理系统中,允许将进程的各页离散地装入内存的任何空闲物理块中,这样就出现了进程页号连续,而物理块号不连续的情况。为了找到每个页面在内存中对应的物理块,系统为每个进程建立了一张页面映射表,简称页表。

2.进程的所有页面依次在页表中有一个页表项,记载着相应页面在内存中对应的物理块号。当进程执行时,按照逻辑地址中的页号在页表中查找对应的页表项,找到该页号在内存中对应的物理块号。

3.页表的作用就是实现页号到物理块号的地址映射,即逻辑地址到物理地址的映射。

4.采用分页内存管理技术不会产生外部碎片,但是可能产生内部碎片。由于分页内存管理系统的内存分配是以物理块为单位进行的,如果进程要求的内存不是页大小的整数倍,那么,最后一个物理块就用不完,从而导致页内碎片的出现。

5.分页系统的另一个优点是可以共享共同的代码,这一点对分时系统特别重要。

6.快表:为了提高从逻辑地址向物理地址转换过程中地址的变换速度,可在地址变换机构中增设一个具有并行查询能力的特殊高速缓冲存储器,又称为“联想寄存器”(Associative Memory)或称为“快表”。在IBM系统中称为TLB(Translation Lookaside Buffer),存放当前访问的那些页表项。

7.具有快表的地址变换步骤如下:
(1)在CPU给出有效地址后,地址变换机构自动将页号P送入高速缓冲寄存器中,并将此页号与高速缓存中的所有页号进行比较。
(2)如果其中有与此页号匹配的,便表示所要访问的页表项在快表中。
(3)直接从快表中读出该页号所对应的物理块号,并送到物理地址寄存器中。
(4)如果在快表中未找到相同的页表号,则必须再访问内存中的页表,从页表中找到该页号所对应的页表项后,把从页表项中读出的物理块号送入地址寄存器。
(5)同时,将此页号所对应的页表项存入快表中,即重新修改快表。

8.内存抖动
抖动产生的原因:
当主存空间已经装满,而又需要转入新的页面时,必须按照一定的算法把已经在内存中的一些页面调出,这个工作称为页面替换。因此,页面更新算法就是用来确定应该淘汰哪些页面的算法,也称为淘汰算法。

9.防止抖动的方法
防止抖动发生或者限制抖动影响有多种方法。由于抖动产生的原因,这些方法都是基于调节多道程序的度。
(1)采用局部置换策略。
(2)挂起某些进程。
当出现CPU利用率很低而磁盘I/O非常频繁的情况时,可能因为多道程序度太高而造成抖动。为此,可以挂起一个或几个进程,腾出内存空间供抖动进程使用,从而消除抖动现象。被挂起进程的选择策略有多种,如选择优先权最低的进程、缺页进程、最近激活的进程、驻留集最小的进程、最大的进程。
(3)采用缺页频度法。
抖动发生时,缺页率必然很高,因此可以通过控制缺页率来预防抖动。如果缺页率太高,表明进程需要更多的内存物理块;如果缺页率很低,表明进程可能占用了太多的内存物理块。这里规定一个缺页率,依次设置相应的上限和下限。如果实际缺页率超出上限值,就为该进程分配另外的内存物理块;如果实际缺页率低于下限值,就从该进程的驻留集中取走一个内存物理块。通过直接测量和控制缺页率,可以避免抖动。

10.段式内存管理的基本思想是:把程序按内容或过程(函数)关系分成段,每个段都有自己的名称。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机制把段式虚拟地址转换成实际的内存物理地址。

11.分段内存管理系统中以段为单位分配内存,每段分配一个连续的内存区。由于各段长度不等,所以这些存储区大小不等。此外,同一进程包含的各段之间不要求连续。分段内存管理的内存分配与释放在作业或进程的执行过程中动态进行。首先,分段内存管理程序为一个进入内存准备执行的进程或作业分配部分内存,以作为该进程的工作区和放置即将执行的程序段。随着进程的执行,进程根据需要随时申请调入新段和释放旧段。

12.分页与分段管理的主要区别
(1)页是信息的物理单位,段是信息的逻辑单位。
(2)页的大小是由系统确定的,而段的长度是由用户程序确定的。
(3)分页的进程地址空间是一维的,即单一的线性空间;而分段的进程地址空间是二维的,由段号和段内地址两部分组成。

14.在段页式内存管理系统中,要对内存中的指令或数据进行一次存取,至少需要三次以上访问内存:
第一次访问内存:由段表地址寄存器得到段表的起始地址,从而访问段表,由此取出对应段的页表起始地址;
第二次访问内存:根据页表的起始地址访问页表,得到所要访问的物理地址;
第三次访问内存:根据得到的物理地址,访问内存中真正的物理单元。

15.虚拟内存
(1)常规存储器管理方式的特征
①一次性:作业全部装入内存后才能开始运行。
②驻留性:作业装入内存后,便一直驻留在内存中,直至作业运行结束。
(2)局部性原理
程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。

19.局部性原理又表现为:时间局部性和空间局部性。
①时间局部性
现象:如果程序中某条指令一旦执行,则不久后该指令可能再次执行;如果某数据被访问过,则不久后该数据可能再次被访问。
原因:程序中存在大量的循环操作。

20.虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
虚拟存储器的逻辑容量是内存容量和外存容量之和,最大容量由计算机的地址结构决定。虚拟存储器的运行速度接近内存,成本接近外存。


  • 第七章 I/O管理

在这里插入图片描述

1.设备控制器是连接I/O设备和主机的中间接口,用来控制I/O和主机之间的数据交换。设备控制器可以接收主机发来的命令,从而控制外围设备,避免了主机直接处理繁杂的外围设备事务。

2.设备控制器一般包括控制器与主机的接口、控制器和设备的接口和控制器本身的I/O部分组成。控制器和主机的数据交换主要是通过数据线、地线和数据线相连。控制器中包含控制寄存器、状态寄存器和数据寄存器三类寄存器,用来存储需要完成的通信类型,I/O设备的状态和通信传输的数据。

3.I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。

4.按通道的工作方式,通道分为选择通道、字节多路通道和数组多路通道三种类型。

5.操作系统的I/O控制方式是指操作系统控制I/O设备执行I/O操作的方式,主要有程序直接控制方式、中断方式、DMA方式和通道控制方式。

6.缓冲的作用:
(1)解决基本数据单元大小(即数据粒度)不匹配的问题。
(2)提高CPU和I/O设备之间的并行性。

7.单缓冲:在设备和处理机之间设置一个缓冲区。设备和处理机交换数据时,先把被交换数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据。

8.双缓冲:I/O设备输入数据时先装填到缓冲区1,在缓冲区1填满后才开始装填缓冲区2,与此同时处理机可以从缓冲区1中取出数据放入用户进程处理,当缓冲区1中的数据处理完后,若缓冲区2已填满,则处理机又从缓冲区2中取出数据放入用户进程处理,而I/O设备又可以装填缓冲区1。双缓冲机制提高了处理机和输入设备的并行操作的程度。

9.多缓冲:多缓冲区包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,多个缓冲区构成一个环形。循环缓冲用于输入/输出时,还需要有两个指针in和out。

10.独占设备的分配

在这里插入图片描述

11.独占设备分配
表格有设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT)

12.SPOOLing技术
SPOOLing系统主要有以下三部分:
输入井和输出井。
输入缓冲区和输出缓冲区。
输入进程SPi和输出进程SPo。

13.SPOOLing系统具有如下主要特点:
(1)提高了I/O的速度。
(2)将独占设备改造为共享设备。
(3)实现了虚拟设备功能。


  • 第八章 文件管理

在这里插入图片描述

1.文件(File)是操作系统中的一个重要概念。 文件可以有如下定义:
(1) 文件是软件机构,软件资源的管理方式;
(2) 具有符号名的一组相关元素的有序序列,是一段程序或数据的集合;
(3) 一组赋名的相关联字符流的集合,或者是相关记录。而记录是有意义的信息集合。

2.文件的功能
(1)统一管理文件存储空间(即外存),实施存储空间的分配与回收
(2)确定文件信息的存放位置及存放形式
(3)实现文件从名字空间到外存地址空间的映射,实现文件的按名存取。
(4)有效实现对文件的各种控制操作和存取操作。
(5)实现文件信息的共享,并且提供可靠的文件保密和保护措施。

3.文件目录:一个计算机系统中有成千上万个文件,为了便于对文件进行存取和管理,计算机系统建立文件的索引,即文件名和文件物理位置之间的映射关系,这种文件的索引称为文件目录。

4.文件目录(file directory)为每个文件设立一个表目。
文件目录(或称为文件夹)是由文件目录项组成的。文件目录分为一级目录、二级目录和多级目录。

5.文件分配的存储空间是辅存中的空闲空间,辅存中的空闲空间应该由操作系统统一进行管理,常用的方法主要有空闲表法、空闲链表法、位示图法和成组链接法。

PS:以上内容非作者允许,禁止转载或者抄袭