目录
写在前面
期末复习提纲,有强针对性,请自辩
仅个人作保留,不定时删除
参考教材:《计算机操作系统》沈晓红版
第一章 操作系统引论
1. 什么是操作系统、操作系统的功能(4大管理1个接口)
-
操作系统的定义:
- (本质)是一个大型的系统软件;
- (对内)负责计算机的全部软件、硬件资源的管理;
- (对外)为用户使用计算机系统提供方便的用户界面;
- (结果)使计算机系统实现高效率和高自动化。
-
操作系统的功能:
- 处理机管理:对处理机进行分配,并对其运行进行有效的控制和管理。
- 进程管理
- 处理机调度
- 同步与互斥
- 死锁
- 存储管理:主要研究进程如何占用内存资源,以方便用户使用,提高存储器的利用率。按照一定策略对内存进行分配和回收、内存保护、内存扩充、重定位
- 基本存储管理方式
- 虚拟存储器
- 设备管理:负责管理用户对外部设备的使用,提高CPU和输入/输出设备的利用率。
- 文件管理:管理计算机系统的软件资源,包括文件存储空间的管理、目录管理、文件共享和保护等。
- 用户接口:提供方便、灵活的使用计算机的手段,包括系统调用和作业级接口。
- GUI
- CLI
- 系统调用(程序员使用)
- 处理机管理:对处理机进行分配,并对其运行进行有效的控制和管理。
2. 操作系统发展的动力
- 计算机硬件的不断更新换代,如CPU的位宽度和计算速度的提升,快速外存的发展。
- 计算机体系结构的不断发展,从单处理机到多处理机,从单机到网络,从单核到多核。
- 提高计算机资源利用率的需求。
- 方便用户操作的需求。
- 硬件的发展和用户需求的变化。
3. 几个主要操作系统的特点(单道批处理、多道批处理、分时系统、实时系统)
- 单道批处理操作系统:内存中每次仅有一道程序运行,具有自动性、顺序性和单道性。
- 多道批处理操作系统:内存中同时存放多道程序,宏观上并行,微观上串行,具有多道性、宏观并行性、微观串行性和无序性、调度性。
- 优点
- 系统资源的利用率提高
- 系统吞吐量增大
- 缺点
- 平均周转时间长
- 缺乏交互性
- 优点
- 分时系统:利用时钟系统把CPU时间分成一个一个的时间片,操作系统轮流地把每个时间片分给各个并发程序,每道程序一次只可运行一个时间片。多个用户可同时上机使用计算机资源,具有同时性、独立性、及时性和交互性。
- 实时系统:能够及时响应随机发生的外部事件,在严格的时间范围内完成处理,并控制所有实时任务协调一致地运行,具有及时性、交互性、独立性和高可靠性。
- 分类:
- 实时控制:飞机自动驾驶系统
- 实时事务处理:飞机订票系统
- 分类:
4. 操作系统的特征(并发、共享、虚拟、异步),并行与并发的概念
- 并发性:指两个或多个事件在同一时间间隔内发生,在多道程序环境中,程序并发性是指在计算机系统中同时存在有多个程序。
- 并发性:并发性是指两个或多个事件在同一时间间隔内发生。逻辑上给用户或系统的感觉是同时执行
- 并行性:并行性是指两个或多个事件在同一时刻发生。强调物理上的“同时”
- 共享性:由于操作系统有并发性,整个系统的软、硬件资源不再为某个程序所独占,而是由许多程序共同使用
- 虚拟性:操作系统通过多道程序在单CPU的计算机上同时运行机制,以及虚拟存储器技术,使用户感觉像是独占资源。
- 异步性:在多道程序环境下,允许多个进程并发执行,每个进程的执行和推进速度是不可预知的,具有不确定性。
第二章 进程管理及同步
1. 进程的概念,结构特征
-
进程的概念:
- 一个正在执行中的程序。
- 一个正在计算机上执行的程序实例。
- 能分配给处理机并由处理机执行的实体。
- 一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集合。
- 程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。
-
结构特征:
- 结构特征:由程序代码、数据集和进程控制块(PCB)构成了进程实体,也称进程映像。其中,PCB是进程存在的标志。
- 动态性:进程有生命周期,它由创建而产生,由撤销而消亡。
- 并发性:一个进程可以与其它进程并发执行。
- 独立性:进程是系统中的一种独立实体,是独立请求并占有资源、独立被调度运行的基本单位。
- 异步性:进程是以异步方式运行的,即它的推进速度是不可预知的。
2. 进程控制块的作用
进程控制块(PCB)是操作系统管理进程和资源的关键结构,它描述了进程标识、空间、运行状态、资源使用等信息。操作系统根据PCB来对并发执行的进程进行控制和管理。PCB是进程存在的唯一标志,它包含了进程的当前状态、分配给它的资源、优先级和其他相关数据。操作系统是根据进程控制块来对并发执行的进程进行控制和管理的。
- PCB的主要内容:
- 进程标识信息:
- 进程ID(PID):唯一标识一个进程。
- 父进程ID:标识创建该进程的父进程。
- 处理机状态信息:
- 通用寄存器:包括数据寄存器、段寄存器等。
- 程序计数器(PC):存放下一条要执行的指令的地址。
- 程序状态字(PSW):包含状态信息,如条件码、执行方式、中断屏蔽标志等。
- 堆栈指针:指向进程的堆栈。
- 进程调度信息:
- 进程优先级:影响进程获得CPU时间的顺序。
- 进程状态信息:描述进程当前处于何种状态(如就绪、运行、阻塞)。
- 其他调度信息:如时间片、调度策略等。
- 进程控制信息:
- 程序代码和数据集所在的内存地址。
- 资源清单:列出了进程所需的全部资源及已经分配给该进程的资源。
- 同步与通信信息:如信号量、消息队列等。
- 外存地址:当进程被换出到磁盘时,记录其在外存的位置。
- 家族信息:与该进程相关的其他进程信息。
- 链接指针:用于将PCB组织成队列或表。
- 进程标识信息:
3. 进程状态及转换(状态的含义、特点,转换原因)
-
进程的状态模型包括:
-
两状态模型:运行态和非运行态(阻塞态)。
-
三状态模型:就绪状态、运行状态和阻塞状态。
-
五状态模型:新建态(刚创建但未进入就绪队列)、就绪态、运行态、阻塞态和退出态(释放PCB)。
-
七状态模型:活动就绪态、活动阻塞态、静止阻塞态、静止就绪态、创建态、运行态和终止态。
- 活动:在内存中
- 静止:在外存中
-
-
状态转换的原因通常包括:
- 进程调度:进程从就绪状态转换到运行状态。
- 等待资源:进程从运行状态转换到阻塞状态。
- 资源就绪:进程从阻塞状态转换回就绪状态。
- 进程完成:进程从运行状态转换到结束状态。
4. 进程控制原语(包括原语的概念、控制原语主要工作内容)
- 创建进程(Create):创建新进程并初始化其PCB。
- 给新进程一个编号并申请空白PCB;
- 为新进程分配空间;
- 初始化PCB并填入进程标识;
- 设置合适的链接,将新进程插入就绪队列
- 终止进程(Terminate):结束进程的执行并回收资源。
- 查找被终止进程的PCB,立即终止其和其子孙进程,调度标识置为True;
- 回收PCB登记的全部资源;
- 将PCB从当前队列移除,并启动进程调度程序
- 阻塞进程(Block):将进程从运行状态置为阻塞状态。
- 中断CPU和保存现场;
- 自己阻塞自己,插入阻塞队列;
- 进程调度程序选择新的就绪进程运行
- 唤醒进程(Wakeup):将阻塞状态的进程置为就绪状态。(系统唤醒/事件发生唤醒)
- 将被唤醒进程从相应的等待队列移除,置为就绪态,插入就绪队列;
- 进程调度程序正常执行
- 挂起进程(Suspend):将进程从内存移至外存。
- 检查被挂起进程状态,将活动态改为静止态;
- 把该进程的PCB复制到指定的内存区域;
- 若该进程正在执行,调度程序重新调度
- 激活进程(Active):将外存中的进程调入内存并置为就绪状态。
- 将进程从外存调入内存,检查状态,从静止态修改为活动态;
- 若抢占,则在调入就绪队列后进行检查调度
5. 线程的概念、进程与线程的区别与联系、进程的三种实现方式
-
线程的概念:线程是进程内的一个相对独立的、可独立调度和指派的执行单元。一个进程中至少应有一个线程。
- 线程是进程内的一个相对独立的可执行单元。
- 线程是操作系统中的基本调度单元。
- 一个进程中至少应有一个线程。
- 线程并不拥有资源,而是共享和使用包含它的进程所拥有的全部资源。
- 线程在需要时也可创建其他线程。
-
进程与线程的区别:
- 调度:线程作为调度的基本单位,同进程中线程切换不引起进程切换,当不同进程的线程切换才引起进程切换;进程作为拥有资源的基本单位。
- 并发性:一个进程间的多个线程可并发。
- 拥有资源:线程仅拥有隶属进程的资源;进程是拥有资源的独立单位。
- 系统开销:进程大;线程小。
-
进程的三种实现方式:
-
用户级线程:线程完全在用户空间中实现,操作系统内核不感知线程的存在。
-
内核级线程:线程由操作系统内核支持,每个线程都有对应的内核级线程控制块。内核是根据该控制块而感知某线程的存在的,并对其加以控制。
-
混合级线程:结合了用户级线程和内核级线程的特点,线程创建和管理在用户空间进行,但线程的调度和同步由内核支持。一个应用程序中的多个用户级线程被映射到一些(小于或等于用户级线程的数目)内核级线程上。
-
第三章 同步与通信
1. 进程间的两种制约关系、临界资源、临界区的概念
-
进程间的两种制约关系是互斥和同步:
- 互斥(间接制约关系):多个进程因**竞争一共享资源(该资源不能被同时访问/使用)**而产生的相互制约关系。例如,打印机等硬件资源或内存中的公共数据结构。
- 同步(直接制约关系):多个进程为了合作完成同一个任务,在执行次序上相互协调、相互合作的制约关系。
-
临界资源:以互斥方式使用的共享资源,一次只允许一个进程使用。临界资源的例子包括打印机、磁带机等硬件资源,以及内存中的共享变量、表格、队列、栈等软资源。
-
临界区(Critical Section):每个进程中访问临界资源的那段代码。临界区内的代码需要互斥执行,即一次只有一个进程可以执行其临界区的代码。进入临界区前需要申请并检查是否空闲,退出临界区后应将相应标志恢复。
-
互斥准则
- 空闲让进。当没有进程在临界区时,任何需要进入临界区的进程都允许立即进入。
- 忙则等待。在共享同一对象的所有进程中,一次只能有一个进程进入临界区。其它要求进入临界区的进程只能等待。
- 有限等待。任何一个进程经有限时间等待后都能进入临界区,以免陷入“死等”状态。
- 让权等待。当一个进程不能进入临界区时要立即阻塞自己,释放处理机让其它进程使用,避免“忙等”。
2. 信号量:信号量值的含义、wait操作和signal操作,可以用信号量控制进程间的同步
信号量是一种用于进程同步和互斥控制的机制,由一个整型变量(信号量值)和两个原语(wait和signal)组成。
-
信号量值的含义:
- 正值:表示可用资源的数量。
- 零值:表示没有资源可用,但没有进程在等待。
- 负值:表示没有资源,且有
信号量值
个进程在等待该资源。
-
wait操作:当进程需要资源时,执行wait操作,使信号量值减1。如果信号量值小于0,则进程被阻塞,直到信号量值变为非负。
-
signal操作:当进程释放资源时,执行signal操作,使信号量值加1。如果信号量值小于等于0,则唤醒等待队列中的一个进程。
信号量可以用来控制进程间的同步,通过P/V操作(即wait和signal操作)来确保进程在正确的时序下执行,从而避免竞态条件和死锁。
3. 管程的特点
- 管程是一种并发性的结构,是由一个或多个过程、一个初始化序列和局部数据组成的软件模块,组成:
- 管程名
- 局部于管程的共享变量说明
- 对该数据结构进行操作的一组过程/函数
- 对局部于管程的数据设置初始值的语句
- 管程的特点:
- 局部于管程的共享变量:只能在管程内部访问。
- 进程通过管程的过程进入:进程通过调用管程中的过程而进入管程。
- 单进程执行-互斥:每一时刻只能有一个进程在管程中执行,其他进程将被挂起。
- 条件变量:管程使用条件变量支持同步,条件变量保存在管程中,只能在管程内部访问。
- c.wait()和c.signal():分别用于将进程挂起和唤醒。
4. 三种进程高级通信方式(主要是管道通信)
- 共享存储器系统:通过在内存中开辟共享存储空间,进程通过操作共享数据区进行通信。
- 管道通信系统:通过创建一个共享文件(管道),连接读进程和写进程,实现数据的单向流动。
它允许一个进程(生产者)将数据以字符流的形式写入管道,而另一个进程(消费者)从管道中读取数据。管道可以是简单的,如Unix中的无名管道,也可以是命名管道,允许不在同一会话的进程进行通信。- 互斥问题:对管道文件的访问应当是互斥的进行;
- 同步问题:写进程写完数据到管道后,会自我阻塞,等待读进程取走数据;读数据在读空管道类似;
- 状态测试:以一种方式了解对方是否存在,存在才通信
- 消息传递系统:进程间通过发送和接收格式化的消息进行通信,操作系统提供通信原语支持。
第四章 死锁与饥饿
1. 什么是死锁、死锁产生的原因
死锁是指在一组进程中,每个进程都在等待只能由该组中的其他进程才能引发的事件,导致这些进程无限期地等待,无法继续执行。如果没有任何外力作用,这些进程将无法推进。死锁发生时,涉及的进程处于一种永久性的阻塞状态。
死锁产生的原因主要有两点:
- 竞争资源:当系统中的资源数量少于并发进程所需的资源数量时,可能会引起进程间因争夺资源而产生死锁。
- 进程推进顺序不当:进程在运行过程中,如果请求和释放资源的顺序不当,也可能导致死锁。
2. 死锁的必要条件及预防措施
- 死锁发生的必要条件:
- 互斥条件:资源不能被多个进程同时占有,只能由一个进程独占。
- 请求且保持条件:进程已经保持至少一个资源,但又提出新的资源请求,因未获得资源而阻塞。
- 不可抢占条件:已经分配给一个进程的资源,在该进程使用完毕之前,不能被其他进程或系统强行剥夺。
- 循环等待条件:存在一种进程资源的循环等待关系。
- 死锁的预防措施:
- 破坏请求且保持条件:要求进程一次性申请所有必需资源,或仅在所有资源都可满足时才分配资源。
- 破坏不可抢占条件:允许系统在必要时,从进程中抢占资源。
- 破坏循环等待条件:对资源进行排序,规定进程必须按照特定顺序请求资源。
3. 死锁的避免——银行家算法
- 确保系统总是处于安全状态来避免死锁。
- 当进程请求一组资源时,假设系统同意该资源请求,从而改变了系统的状态,然后确定系统是否还处于安全状态;
- 若系统仍处于安全状态,则系统就同意该资源请求;
- 若系统处于不安全状态,则系统就阻塞该进程。
三类资源分别为9、3、6
4. 死锁的检测和解除方法
-
检测:
-
资源分配图:通过简化资源分配图来判断系统是否处于死锁状态。如果资源分配图是不可完全简化的,则系统处于死锁状态。
-
死锁检测算法:通过维护一个资源分配矩阵和进程的请求矩阵,定期检查是否存在循环等待,从而判断死锁
-
-
解除:
- 撤销所有死锁进程:最常用,但损失大
- 把死锁进程恢复到前面定义的某些检查点
- 逐个撤销死锁进程,直到不存在死锁进程
- 基于最小代价原则,相继剥夺资源,直到不死锁
第五章 处理机调度
1. 三级调度(高、中、低)
-
高级调度(作业调度):外存->内存。
- 主要用于批处理系统。
- 高级调度负责从后备队列中选择多个作业调入内存,为它们创建进程并分配必要的资源,然后链接到就绪队列上。
- 在分时/实时系统中,为了做到及时响应,通过键盘输入的命令或数据等,都被直接送入内存创建进程,因而不需要设置高级调度这个层次。
- 作业的状态:作业自提交进入系统开始,直到运行结束后退出系统,通常经历四种状态:提交状态、后备状态、运行状态和完成状态。
-
中级调度(交换调度):内存->外存
- 为了缓解内存压力,中级调度负责按照一定的策略,把内存中的进程交换到外存交换区,或将外存交换区中的挂起进程调入内存。
- 中级调度常用于分时操作系统和应用虚拟内存技术的系统中,中级调度是交换功能的一部分。
-
低级调度(进程调度):就绪态->运行态
- 低级调度负责按照某种调度算法,从内存的就绪队列中选择一个就绪进程获得CPU,并分派程序执行进程切换的具体操作。
- 低级调度是最基本的一级调度,是各类操作系统必备的功能,其调度算法的优劣将直接影响整个系统的性能。
- 在多线程系统中,线程成为调度的基本单位,此时还存在线程调度这个层次。
2. 批处理系统、分时、实时系统的调度算法评价指标
批处理操作系统会选择资源利用率高、平均周转时间短和系统吞吐量大的调度算法;
分时操作系统会选择交互性好、响应时间短的调度算法;
实时操作系统会选择能够处理紧急任务、保证时间要求的调度算法。
- 批处理系统:
-
周转时间:作业从提交到完成的总时间。(结束-到达)
-
平均周转时间:所有作业周转时间的平均值。
-
带权周转时间:考虑作业执行时间的加权周转时间。(周转/运行)
-
系统吞吐率:单位时间内系统完成作业的数量。
-
- 分时系统:
- 响应时间:用户请求到系统首次响应的时间。
- CPU利用率:CPU被有效使用的时间比例。
- 公平性:确保所有用户或进程公平地获得资源。
- 实时系统:
- 截止时间:任务必须开始和完成的最晚时间。
- 可预测性:系统能够预测任务完成时间的能力。
3. 几种调度算法如何进行调度的、优缺点,会计算周转时间、带权周转时间
-
先来先服务(FCFS):按到达顺序调度。优点是公平和简单;缺点是不利于短作业,可能导致长作业的饥饿。
-
短作业优先(SJF/SPF):优先调度估计运行时间短的作业/进程。优点是减少平均周转时间;缺点是可能导致长作业饥饿,需要准确估计运行时间。
-
优先级调度:根据优先级调度。优点是可以处理紧急任务;缺点是可能导致低优先级进程饥饿。
-
轮转(RR):时间片轮转,所有进程轮流获得CPU时间片。优点是公平和响应性好;缺点是不适合I/O密集型任务。
-
最高响应比优先(HRRN):考虑等待时间和服务时间。优点是平衡长短作业;缺点是计算开销大。
这个R就是带权周转
-
多级队列和多级反馈队列:将进程分配到不同队列,每个队列可以有不同的调度算法。
4. 两种调度方式(抢占、非抢占)及调度时机
- 抢占式调度(抢占式):调度器可以根据抢占原则中断正在运行的进程,将CPU分配给另一个进程。抢占原则包括优先权原则、短进程优先原则和时间片原则。
- 非抢占式调度(非剥夺式):一旦CPU分配给进程,它将一直运行直到完成或阻塞。不允许其他进程抢占CPU。
- 调度时机:调度可能发生在以下情况:
- 进程完成执行。
- 进程阻塞,等待I/O操作。
- 进程主动放弃CPU。
- 有更高优先级的进程进入就绪队列(抢占式)。
- 时间片用完(轮转调度)。
第六章 基本存储管理
1. 逻辑地址与物理地址的概念、地址重定位(动态地址重定位、静态地址重定位)
-
逻辑地址:是程序中使用的地址,也称为虚拟地址,它与物理地址无关,通常从0开始编址。逻辑地址空间是程序的地址空间。
-
物理地址:内存单元的地址。是内存中的实际地址,也称为绝对地址,它反映了数据在内存中的实际存放位置。
-
地址重定位:是存储管理中将逻辑地址映射到物理地址的过程。
-
动态地址重定位:在程序运行过程中进行地址转换。使用重定位寄存器存放用户进程在内存的起始地址,物理地址等于重定位寄存器的值加上逻辑地址。它允许程序在内存中移动,支持离散存储,但需要硬件支持(如重定位寄存器)。
-
静态地址重定位:在程序装入内存时进行地址转换。在程序运行之前完成了地址重定位。物理地址等于程序装入内存的起始地址加上逻辑地址。它不需要硬件支持,但程序装入后不能移动,且用户程序只能装入到一个连续的内存区域。
-
2. 连续分配存储管理方式中的固定分区和动态分区分配(首次、最佳、最坏)、动态重定位分区(拼接)
- 固定分区:内存被划分成固定大小的区域,每个分区只能装入一个程序。分区大小可以相等或不等,不等大的分区可以减少内存浪费。
- 优点:内存利用率高,支持多道程序设计。
- 缺点:分区大小固定,可能导致内存空间浪费。
- 动态分区:内存根据进程的实际需要动态划分。
- 分配算法:首次适应、最佳适应、最坏适应。首次适应算法从低地址开始查找,最佳适应保留大的空闲分区,最坏适应算法从大到小排列空闲分区。
- 优点:更灵活,减少内存浪费。
- 缺点:分配和回收时需要维护空闲分区表,可能产生外碎片。
- 动态重定位分区:通过移动内存中的进程,将分散的空闲分区合并成一个大的空闲分区,支持动态地址重定位。
3. 分页存储管理方式
- 基本思想:将内存和逻辑地址空间都分为固定大小的单元,内存分为物理块,逻辑地址分为页。
- 内存分配和回收:为每个进程创建页表,记录页到物理块的映射。
- 地址转换:逻辑地址由页号和页内地址组成,通过页表转换为物理地址。
- 优点:有效解决内存碎片问题,支持虚拟内存。
- 缺点:页表可能很大,需要额外的存储空间。
行为
位数
;列为块数量
地址变换过程
将逻辑地址分成页号P和页内地址w两部分。
将页号P 与页表寄存器存放的页表长度进行比较——是否越界
若页号大于或等于页表长度,则表示本次访问的地址超出了进程地址空间,系统产生越界中断。
若页号小于页表长度,则
根据页表寄存器存放的页表始址,在内存中找到页表,查得该页号对应的物理块号
将物理块号送入物理地址寄存器的高位部分;同时将页内地址w直接送入物理地址寄存器的块内地址字段。这样就得到了二进制物理地址,完成了从逻辑地址到物理地址的变换。
页表项:一个页号-物理块号的对应关系;题目中的4B指的是一个页表项的大小
计算:
页内地址=页面大小=4KB=2^12
外层页内地址=(页面大小/页表项)=4KB/4B=1K=2^10
外层页号=剩余的=32-12-10=10
4. 分段存储管理方式
- 基本思想:程序的地址空间被划分为逻辑段,每个段是一组有意义的逻辑信息集合。
- 内存分配和回收:以段为单位分配内存,段表记录每个段的基址和长度。
- 地址转换:逻辑地址由段号和段内地址组成,通过段表转换为物理地址。
- 优点:支持动态增长和链接,方便共享和保护。
- 缺点:段内必须连续,可能导致内存碎片。
(0,137):0<=4,137<=10k,所以物理地址为:501024+137=5133
(1,4000):1<=4,但4000>3k,越界中断
(2,3600):2<=4,3600<=5k,所以物理地址为:701024+3600=75280
(5,230):因为5>4,越界中断
5. 段页式存储管理方式
- 页是信息的物理单位。而段是信息的逻辑单位,它含有一组有意义的相对完整的信息。
- 分页是系统管理的需要而不是用户的需要。分段是为了能更好地满足用户的需要。
- 页的大小是固定的,由系统决定,即系统中只能有一种大小的页面。而段的长度是不固定的,取决于用户所编写的程序。
- 分页的逻辑地址空间是一维的,而分段的逻辑地址空间是二维的。
- 基本思想:结合分段和分页的优点,程序按逻辑关系分段,段内再分页。内存划分为若干大小相等的物理块。为每个页分配一个空闲的物理块。
- 内存分配和回收:为每个段建立页表,段表记录每个段的页表信息。
- 地址转换:通过段号找到段表,再通过页号找到页表,最后转换为物理地址。
- 优点:结合了分段的逻辑组织和分页的内存利用率,支持动态增长和共享。
- 缺点:地址转换较为复杂,需要访问段表和页表。
- 在段页式存储管理下,访问内存的一条指令或一个数据,需要访问内存三次。
- 第一次是访问内存中的段表,从中取得页表始址;
- 第二次是访问内存中的页表,从中取得该页所在的物理块号,并将该物理块号与页内地址组合,形成物理地址;
- 第三次是根据物理地址,访问内存的指令或数据。
每一种存储管理方式的基本思想、内存分配和回收、地址转换,优缺点
第七章 虚拟存储技术
1. 虚拟存储器的概念和局部性原理
虚拟存储器是指具有调入功能和置换功能,且能从逻辑上对内存容量进行扩充的一种存储器系统。虚拟存储器是一种存储管理技术,它通过离散分配和部分装入的方式,从逻辑上扩充了内存容量。它允许程序的地址空间大于物理内存的大小,由操作系统负责将内、外存统一管理起来,进程的换入和换出工作由操作系统自动完成。虚拟存储器的逻辑容量由内存容量和外存容量之和所决定,运行速度接近于内存速度,而成本又接近于外存。
- 虚拟存储管理的特征:
- 离散分配
- 部分装入
- 多次交换
- 虚拟扩充
局部性原理是虚拟存储器引入的理论基础,它表现在两个方面:
- 空间局限性:程序在执行时访问的内存单元会局部在一个比较小的范围内。
- 时间局限性:程序中执行的某些指令会在不久后再次被执行,程序访问的数据结构也会在不久后被再次访问。
2. 分页存储的虚拟存储器实现方式
工作原理如下:
- 请求分页存储管理只是将接下来要执行的几个页(不是全部)调入内存
- 在进程执行过程中,当发现要执行的指令或访问的数据不在内存时,引发缺页中断,由操作系统负责将缺的页从外存调入内存。
- 若内存空间充裕,则直接将缺页调入;
- 若内存空间不充裕,则需要将一些不常用的页调出内存,腾出空间,将缺页调入。另外,在置换时,若置换出的页在内存中曾做过改动,还需将改动保存到外存中。
关键问题:
-
如何知道要访问的页不在内存?
- 扩充页表
- 状态位:用于表示该页是否已调入内存。若没有调入内存,则产生一个缺页中断。
- 访问字段:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。访问字段为置换算法在选择换出页面时提供参考。
- 改动位:表示该页调入内存后是否做过改动。若已被改动,则必须将该页重写到外存上,否则直接覆盖即可。
- 外存地址:用于指出该页在外存上的存放地址,供调入该页时使用。
- 扩充页表
-
发现缺页后怎么办?
-
缺页调入后,如何进行地址变换以支持进程的运行?
3. 页面置换算法(先进先出、最佳、最近最久未使用置换算法,驻留集、颠簸、缺页率)
-
页面置换算法决定了哪些页应该被换出内存,以腾出空间给新调入的页。以下是几种常见的页面置换算法:
- 先进先出(FIFO):按照页面进入内存的顺序来置换页面,最先进入的页面最先被置换。它简单易实现,但可能导致页面抖动。
- 最佳置换算法(OPT):理论上的算法,总是选择未来最长时间不会被访问的页面进行置换。由于无法预知未来的页面访问序列,实际上无法实现。
- 最近最久未使用(LRU):置换最长时间未被访问的页面。它是一种性能很好的算法,但实现起来需要额外的开销,通常需要硬件支持。
- Clock置换算法:是一种近似LRU的算法,**使用一个循环队列和访问位(0走1留)**来记录页面的访问情况,选择最久未访问的页面进行置换。
-
驻留集:给每个进程分配的物理块的集合。驻留集的大小会影响缺页率,驻留集越大,缺页率越低,但过多的内存分配会导致资源浪费。
- 驻留集管理涉及两个问题:
- 给每个进程分配的物理块的数目是否固定?
驻留集分配策略:- 固定分配策略:是指为一个进程分配固定数目的内存物理块。
- 可变分配策略:是指分配给一个进程的物理块数可以发生变化。
- 置换范围是否局限于该进程内部?
置换策略:- 全局置换策略:发生缺页需要页面置换时,可以在驻留内存的所有页中进行选择,不管它属于哪一个进程。
- 局部置换策略:发生缺页需要页面置换时,只能从发生缺页的进程在内存的页中进行选择。
- 给每个进程分配的物理块的数目是否固定?
- 调页策略:
- 预调页策略:常用的预测原理是局部性原理,即每次调页时,将相邻的若干个页一并调入内存。
- 请求调页策略:发生缺页时,再将其调入内存的方法。
- 通常,进程首次调入时使用预调页策略。运行过程中,采用请求调页策略。
- 驻留集管理涉及两个问题:
-
颠簸or抖动是指页面频繁地在内存和外存之间交换,这会大大降低系统性能。
-
缺页率是操作系统性能的一个重要指标,表示进程运行过程中发生缺页中断的频率。缺页率越低,系统性能通常越好。
- 页面置换:包括放入空的内存块中。
- 缺页:仅计算满内存块后的页面置换数量。
第八章 设备管理
1. IO系统的层次结构、设备类型
- 块设备接口:
是块设备管理软件与上层的接口。
数据传输以数据块为单位进行的设备称为块设备,最常见的是磁盘。
磁盘的地址需要用磁道号和扇区号表示,当上层发来读命令的时候,该接口会将抽象的命令转换为磁盘的盘面、磁道和扇区。
块设备的基本特征是传输速率较高、可寻址。 - 流设备接口
流设备接口又称字符设备接口,是流设备管理程序与高层之间的接口。
传输数据以字节为单位的设备称为字符设备,也称流设备。
常见的是键盘,打印机。
字符设备的基本特征是传输速率较低、不可寻址。 - 网络通信接口
操作系统提供了网络通信接口,把计算机连接到网络上,以实现网络环境下的通信、网络资源管理、网络应用等特定功能。
I/O系统的层次结构主要分为以下几个部分:
- I/O系统接口:这是I/O系统与高层之间的接口,提供了设备无关的接口。
- 设备驱动程序:与具体的硬件设备直接交互,处理I/O请求。
- 设备控制器:作为CPU与I/O设备之间的接口,控制I/O设备的工作。
设备类型按不同的标准可以分为:
- 按传输速率:低速设备、中速设备、高速设备。
- 按设备的使用特性:存储设备、I/O设备。
- 按信息交换的单位:块设备、字符设备。
- 按设备的共享属性:独占设备、共享设备、虚拟设备。
2. 缓冲区引入的原因
缓冲区(Buffer)的引入主要有以下几个原因:
1. 缓和CPU与I/O设备间速度不匹配的矛盾:提高CPU和I/O设备之间的并行性。
2. 减少CPU的中断频率:放宽对中断响应时间的限制,减少CPU的中断处理时间。
3. 解决数据粒度不匹配的问题:在缓冲区中可以调整数据块的大小,以适应不同的数据传输需求。
3. 设备独立性
设备独立性(Device Independence)是操作系统提供的一种特性,它允许应用程序独立于具体使用的物理设备。这意味着应用程序可以使用逻辑设备名称来请求使用某类设备,而系统在实际执行时,会将逻辑设备名称转换为物理设备名称。这样做的好处是:
- 执行所有设备的公有操作。
- 独立设备的分配与回收;
- 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序;
- 对设备进行保护,禁止用户直接访问设备;
- 缓冲管理。对字符设备和块设备的缓冲区进行有效管理,以提高I/O的效率;
- 差错控制。由于在I/O操作中的绝大多数错误都与设备有关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。
- 向用户层(或文件层)软件提供统一的接口。
- 无论何种设备,它们向用户所提供的接口是相同的。
如:对各种设备的读操作,在应用程序中都使用read,而对各种设备的写操作,则都使用write。
- 无论何种设备,它们向用户所提供的接口是相同的。
4. 磁盘访问时间及磁盘调度算法(平均寻道长度)
磁盘访问时间通常由以下几部分组成:
1. 寻道时间(Ts):磁头移动到指定磁道所需的时间。
2. 旋转延迟时间(Tτ):磁盘旋转到指定扇区所需的时间。
3. 传输时间(Tt):数据从磁盘读出或写入所需的时间。
磁盘调度算法的目标是最小化磁盘的平均寻道时间。常见的磁盘调度算法包括:
1. 先来先服务(FCFS):按照请求的顺序进行服务。
2. 最短寻道时间优先(SSTF):优先服务距离当前磁头位置最近的请求。
3. 扫描算法(SCAN):按照磁盘臂移动的方向,依次服务外侧的请求。不用到头,到最后一个请求后直接回头
4. 循环扫描算法(C-SCAN):规定磁头单向移动,循环服务外侧的请求。
平均寻道长度是指磁头移动到所有请求磁道的平均距离,它是评价磁盘调度算法性能的一个重要指标。不同的调度算法会产生不同的平均寻道长度,从而影响磁盘的整体性能。
第九章 文件管理
1. 文件的逻辑结构类型
文件的逻辑结构是从用户角度观察到的文件组织形式,主要分为以下两种类型:
- 有结构文件(Structured File):由一个以上的记录构成,也称为记录式文件。记录的长度可以是定长的,也可以是不定长的。
- 无结构文件(Unstructured File):由字符流构成,也称为流式文件。
2. 文件目录的作用,多级目录
文件目录的作用主要是:
- 实现“按名存取”:即通过文件名快速定位到文件的存储位置
- 文件存储空间的管理。
- 对文件及文件目录的管理:负责管理文件的属性信息,如文件大小、创建时间、权限等
- 文件组织。
- 提供文件共享和保护等机制。
多级目录结构(如树形目录结构)允许文件系统层次化组织,提高了检索效率,允许重名,便于实现文件共享。用户可以通过路径名访问文件,路径名指明了从根目录到目标文件的一系列目录项。
3. 三种文件的物理结构,即外存的组织方式类型的特点,适用场景
- 连续分配:文件的所有盘块连续存储,形成顺序文件结构。这种方式的优点是访问速度快,适合顺序访问。缺点是容易产生外部碎片,不利于文件扩展。 适用于只读文件
- 链接分配:文件的盘块通过指针链接,形成链接文件。这种方式的优点是可以消除外部碎片,方便文件扩展。缺点是不适合随机访问,且管理开销较大。适用于内部经常变动的文件,如日志
- 索引分配:通过索引块来记录文件的盘块号,形成索引文件。这种方式适合顺序访问和随机访问,易于实现记录的插入和删除,不会产生外部碎片。缺点是索引块可能占用较多空间,对于小文件索引块利用率低。操作系统目前使用的基本都是混合索引。
4. 文件存储空间管理:位示图
位示图是利用二进制的一位(bit)来表示磁盘中一个盘块的使用情况。若bit=0,则表示该盘块空闲;若bit=1,则表示已分配。
- 优点:
- 易于找到一个或一组相邻的空闲盘块。
- 位示图体积小,可以存储在内存中,减少了磁盘I/O操作。
- 分配过程:
- 顺序扫描位示图,找到值为0的位。
- 将找到的位转换成盘块号。
- 修改位示图,将0改为1。
- 回收过程:
- 将回收的盘块号转换成位示图中的位置。
- 修改位示图,将1改为0。
题型
一、单项选择题(15题,总分30分)
二、判断题(10题,总分10分)
三、选择填空(10空,总分10分)
四、应用题(3题,总分20分)
五、综合题(3题,总分30分)