操作系统
引导
参考资源
你当初是如何学会操作系统这门课程的? - happywei的回答 - 知乎
如何学好操作系统原理这门课? - 程序员cxuan的回答 - 知乎
应试技巧 * *
简答题
综合题
进程调度
送分题。
关键:弄懂进程调度算法的规则、周转时间的计算方法(结束时间-达到时间)
PV操作
磁盘优化
移臂调度
页面调度
PV操作
概论/运行环境 *
OS基本概念
从定义、特征、功能、体系结构(*)、分类、设计(*)6个方面阐述:
OS是管理软硬件资源、组织程序运行、为用户提供服务。它本质上也是软件,同样需要定义数据表、数据结构。这样才能动态更新软硬件资源的数据,为资源的有效(效率、利用率)管理做支撑。他的三大特征是:并发;共享,互斥共享和同时共享随机,强调设计OS系统时,要充分考虑各种可能性、突发性。
并发与并行
并发与并行的区别 是否具有同时处理多个任务的能力,有则行,行是并行的行。
CPU状态及转换
**内核态:**可使用特权指令、非特权指令。
**用户态:**可使用非特权指令。
用户态→内核态。中断/异常/陷入机制
内核态→用户态 设置程序状态字(PWS)
中断/异常机制 *
中断/异常机制是操作系统的驱动力。等同于汽车的发动机、飞机的引擎。
中断
中断就是处理器响应系统中或系统外的异步事件。
系统调用 *
体系结构 *
进程管理 100° * **
必知必会必须专研到底!!!
进程与线程
进程
关于进程: 描述和管理程序的“运行过程”。
定义:
- 程序在某个数据集合上的一次运行活动。
- 数据集合:软/硬件环境,多个进程的共存/共享的环境。
特征
- 动态性。进程是程序的一次执行过程,动态产生/消亡。
- 并发性。进程同其他进程一起向前推进。
- 异步性。进程按照各自的速度向前推进。
- 独立性。
分类
按使用资源的权限 (一般都以这种做分类) *
- 系统进程。
- 用户进程。
按对CPU的依赖性
- CPU型进程:侧重于计算
- I/O型进程:侧重于I/O
程序
多道程序设计
作用:充分发挥处理器与外围设备以及外围设备间的并行工作能力,以提高CPU利用率(↑)。
程序的顺序执行 *
- 顺序性。程序按序执行。
- 封闭性。程序运行后,其算法只取决于程序本身,程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。
- 确定性。程序执行结果与时间无关,与速度无关。
- 可再现性。最终得到的结果不变。
程序与进程的区别与联系 *
区别:
- 动态与静态
- 进程是动态的:是程序的一次执行过程
- 程序是静态的:是一组指令的有序集合
- 暂存与长存
- 进程是暂存的:在内存驻留
- 程序是长存的:在介质中存储
联系:
- 进程=程序+数据+PCB
- 进程是程序的一个执行过程
线程
概念
归纳为3点:
- 线程是可以由CPU直接运行的实体;
- 一个进程可以创建多个线程;
- 多个线程共享CPU可以实现并发运行;
线程的实现机制
- 内核级线程:所有线程的创建、撤销、切换都由内核级线程实现。
- 用户级线程:不依赖于内核级线程。
属性
- 每个线程都有一个唯一的标识符和一张线程描述表。
- 不同的线程可以执行相同的程序。
- 同一进程中的各个线程共享该进程的内存地址空间。
- 线程是处理器的独立调度单位
- 一个线程在被创建后便开始了它的生命周期,线程在生命周期内会经历等待、就绪、运行等各种状态的变化。
- 线程不拥有自己的系统资源。
引入线程的好处 *
- 花费时间少,无需额外分配资源。
- 线程之间切换快
- 线程间的通信,更便捷,更快
- 线程可独立运行,能够充分利用和发挥CPU与外部设备的并行工作能力。
(完)
进程状态及转换 100° *
三状态模型
包括了:就绪、等待、运行
就绪状态:具备运行条件但无CPU,暂时不能运行。
运行状态:进程占有了CPU,在CPU上运行。
阻塞状态:进程因等待某事件发生而暂时不能运行。
五状态模型
包括了:运行、就绪、阻塞、创建、退出
七状态模型
七状态模型:可以节省内存储器的内存空间,将暂不运行的进程存储到外存储器中。包括了:运行、就绪(在内存)、就绪挂起(在外存)、阻塞(在内存)、阻塞挂起(在外存)、创建、退出。
就绪状态:进程在内存中,且可立即进入运行状态。
就绪挂起状态:进程在外存中,只要进入内存即可运行。
阻塞状态:进程在内存中,并等待某事件的发生。
阻塞挂起状态:进程在外存中,并等待某事件的发生。
挂起:把一个进程从内存转到外存,可能有以下几种情况(熟读理解):
- 阻塞→阻塞挂起。触发条件:
- 就绪→就绪挂起
- 运行→运行挂起
激活:把一个进程从外存转到内存,可能有以下几种情况:
- 就绪挂起→就绪
- 阻塞挂起→阻塞
PCB:进程控制块
对于PCB需要知道记住下3点:
- PCB是进程的唯一标识。
- PCB是描述进程状态、资源、和相关进程关系的数据结构。
- PCB同进程共存亡,创建进程时创建PCB,撤销进程时撤销PCB。
PCB里有什么?调度信息、现场信息。
name // ---------- 进程名称(标识符)
status // ---------- 状态
next // ---------- 执行下一个PCB的指针
start_addr // ---------- 程序地址
priority // ---------- 优先级
cpu_status // ---------- 现场保留区(堆栈)
comm_info // ---------- 进程通信
process_family // ---------- 家族
own_resource // ---------- 资源
如何组织PCB?组织PCB有三种方式:线性、索引、链接,目的是便于管理。
进程控制与原语
原语 *
原语:可实现进程控制的一个指令序列。(注:一个指令序列由若干指令组成)
原语(进程的控制行为):
- 创建原语
- 撤销原语
- 阻塞原语
- 唤醒原语
进程控制
进程控制:在进程生命周期期间,控制其全部行为。包括四类控制:创建进程;阻塞进程;撤销进程;唤醒进程。主要学习其中的:功能、参数、触发条件、实现。
创建进程
- 功能
创建一个具有指定标识(ID)的进程。
- 参数
进程标识、优先级、进程起始地址、CPU初始状态、资源清单。
- 触发条件
运行一个程序时。
- 实现
撤销进程
- 功能
撤销指定进程
收回进程占用的资源,撤销进程的PCB
- 参数
进程(ID)标识。
- 触发条件
正常结束时;异常结束时;外界干预时。
- 实现
阻塞进程
- 功能
停止进程的执行,变为阻塞。
- 参数
阻塞原因;阻塞队列。
- 触发条件
请求系统服务;启动某种操作;新数据尚未到达;无新工作可作。
- 实现
- 停止运行
- 将PCB“运行态”转“阻塞态”
- 插入相应原因的阻塞队列
- 转调度程序
唤醒进程
- 功能
唤醒处于阻塞队列当中的某个进程
- 参数
被唤醒进程的标识(ID)
- 触发条件
系统服务由不满足到满足;I/O完成;新数据到达;进程提出新请求(服务)
- 实现
NULL。
进程调度 *
按照一定的进程调度算法,策略性地从就绪队列中唤醒进程,并将CPU使用权交付分配给该进程。
因为:进程数 >> CPU核数 ,无限的进程数争夺有限的CPU,为了合理的争夺CPU,进行进程调度是必要的。
调度算法的设计目标
一般地,用吞吐量、周转时间、处理器利用率作为衡量指标。
- 吞吐量。系统每小时完成的进程量。
- 周转时间。
- 处理器利用率。
周转时间

应试地讲,就是:完成时间-到达时间。
专业地讲,就是:进程从达到处理器开始,一直到该进程被执行完毕为止,整个过程花费的总时间就叫做进程的周转时间。
完成时间

运行时间
应试地讲,进程在CPU里跑的时间。
常见的进程调度算法(*:应试关注点):
- 先来先服务算法
- 最短进程优先算法
- 最短剩余时间优化算法
- 最高响应比优先算法
- 轮转算法
- 最高优先级算法 *
先来先服务(FCFS)
最短进程优先(SJF)
规则: m i n min min运 优先,即运行时间最短优先。
应试:
最短剩余时间优化
这里需要搞懂:剩余时间是什么。
规则:先运行剩余时间最短的进程。
最高响应比优先 **
线程
定义
线程,是进程中的一个运行实体,是CPU的调度单位,线程亦称为轻量级进程,它继承了进程的CPU调度属性。
进程在OS中扮演两个属性:资源拥有者、CPU调度单位。
为什么要引入线程?
开销小,无需额外的占用资源
能够独立运行,充分利用处理器与外部设备并行工作能力
线程间切换时,耗时短
线程间通信时,速度快
线程实现机制
-
用户级线程、
-
内核级线程。
前者不依赖内核,后者依赖内核,且所有线程的创建、撤销、切换都由内核级线程来实现。
同步与互斥 **
进程间相互作用
- 相关进程和无关进程
- 与时间有关的错误
相关进程和无关进程
相关进程:进程间有联系,相互协作。
无关进程:进程间无联系,没有协作。
判断进程是相关还是无关,主要地要看进程间是否相互协作。
与时间有关的错误
“进程执行的速度不受控”、“进程可能被中断且断点不固定”。
与时间有关的错误,一般发生在并发环境里,【比如】两个并发进程共享一个变量,必定使得对变量的操作产生多种结果。下面这个软件,如果不考虑“时间有关的错误”,那么会乱套的:

进程同步与互斥
同步
在”相关进程“里,多发生进程同步行为。进程间相互协作、共同完成一件事时,需要”进程同步机制“来避免产生”与时间有关的错误“。
专业地讲:合作进程中某些操作之间需要满足某种**先后关系或某个操作能否进行需要满足某个前提条件,否则只能等待**。
进程同步关系的例子:司机与售票员
司机:起步、行驶、停车
售票员:关门、售票、开门
同步关系:
- 司机起步前,售票员先关门,否则等待。
- 售票员开门前司机先停车,否则等待。
互斥
在使用“共享资源”时,多发生进程互斥行为。
临界区 *
临界资源:一次仅允许一个进程使用的资源,叫临界资源。
临界区:在进程中访问临界资源的程序,叫临界区。
系统对临界区的调度原则 *:【必考】
- 原则1:有空让进 有效利用临界资源
- 原则2:无空等待 临界资源的排他性
- 原则3:多中择一 原则1、2的特殊情况
- 原则4:有限等待 避免忙等或死锁
- 原则5:让权等待 避免忙等或死锁
P、V操作($) * **
应试技巧 **
1910 [^ 1910_PV]
semaphore s1=0,s2=__①__; // User1 进程 while(ture){ W1:X=A+1; V(s1); __②__; W2:X=X+A; 打印X的值; Y=Y+X; } // User2 进程 while(true){ Y=A; __③__; V1:Y=X+B; V2:打印Y的值; V3:X=A+2; __④__ }
1804 [^ 1804_PV]
![]()
2008 1
基本原理
信号量同步机制,对信号量进行初始化、P、V操作。解决“与时间有关的错误”
信号灯机制
(S,q)
// S: 整数,初始非负,称之信号量
// q: PCB队列,初始空集
信号量
信号量用于指示协作进程之间交换的信息,其值表示共享资源的使用情况。
P、V操作
应试技巧:下面两端代码要能说得出
// P操作,P(S,q)
P(S){
S=S-1;
IF(S<0) 阻塞当前进程并加入队列q中,然后转调度函数;
ELSE 继续执行
}
// P操作可能使进程在调度处阻塞
// S的初值很重要,要合理设置初值

// v操作,V(S,q)
V(S){
S=S+1;
IF(S≤0) 当前进程继续并从队列q中唤醒一个进程;
ELSE 继续执行
}
// V操作可能会唤醒阻塞的进程

巧记P、V:P减减V加加。
解决两个问题
P、V操作解决互斥问题 *
实质:实现对==临界区==的互斥访问。即最多仅允许1个进程进入临界区。
应用过程:
- 进入临界区之前先执行P操作;(可能阻塞当前进程)
- 离开临界区之后再执行V操作;(可能唤醒某个进程)

举个例子:例子详解看这里。(不建议把分析过程写出来,在大脑里过一遍即可)
P、V操作解决同步问题 *
实质:
- 运行条件不满足时,进程会暂停。
- 运行条件满足时,进程能立刻继续。
基本思路:
- 暂停当前进程:在关键操作之前执行P操作
- P操作可使进程必要时可暂停
- 继续进程:在关键操作之后执行V操作
- V操作可使必要时唤醒合作进程
- 定义有意义的信号量S,并设置合适的初值
- 信号量S能明确地表示”运行条件“
经典的进程同步互斥问题
进程通信
生产者/消费者
管程
死锁 100° *
对于死锁问题,操作系统采取的是“鸵鸟策略”,因此这一章的重点是记忆与理解相关概念
定义
无限期等待、某个进程一直不可释放资源。
产生死锁的原因
① 资源竞争。
② 进程推进顺序不合理。
产生死锁的四个必要条件
发生死锁时,4个必要条件一定成立;但4个必要条件成立时,未必会发生死锁。
- 互斥条件。进程互斥使用资源。
- 不可剥夺条件。进程得到资源后,在没使用完前是不能被其他进程剥夺的,只能由该进程资源释放。
- 请求和保持条件。进程申请新资源的同时,继续占有已有的资源。
- 循环等待条件。发送死锁时,必定存在一个等待队列{A,B,C},A等待B占用的资源,B等待C占用的资源,C等待A占用的资源。
死锁避免
银行家算法:最著名的死锁避免算法 * (重要,必考)
将操作系统的资源分配问题比作银行家分配贷款资金问题:
操作系统资源 ≈ 银行周转资金
申请资源的进程 ≈ 银行贷款客户
为了保证资金的安全,行长规定:
- 客户对资金的最大需求量≤银行现有的资金
- 客户可以分期贷款,但贷款总额≤最大需求量
- 银行不能满足客户贷款需求时,可推出支付贷款项,但总能在有限时间内给到客户贷款项
- 当客户得到贷款资格时,一定能在一定时间内归还所有资金
考法
怎样确定是否安全?能不能分配,需要考虑在新的系统状态下,是否存在安全序列,若存在,则可分配;若不存在,则不可分配。
条件
- 在固定数量的进程中共享数量固定的资源
- 每个进程预先指定完成工作所需的最大资源数
- 进程不能申请比系统中可用资源总数还多的资源
数据结构:
设系统有
n:系统中进程数量,m:资源数量
avaiable // 可用资源数量
max[i] // 进程所需的最大资源数量
allocation[i] // 当前进程拥有的资源数量
need[i] // 进程需要的资源
request[i] // 当前进程本次申请的资源
// 进程pi提出资源申请后:
if(request[i]≤need[i]){ // 请求的资源量比需要的少
if(request[i]≤avaiable){ // 请求的资源量比可用的少
avaiable=avaiable-request[i];
allocation[i]=allocation[i]+request[i];
need[i]=need[i]-request[i];
}else{
// 进程进入等待状态
}
}else{
// 报错并返回
}
// 分配后,产生新的系统状态,需判断新状态是否安全...
存储管理
概述
存储体系
内存空间与存储管理的实质
系统区
存放操作系统常驻内存部分,用户不可访问该部分数据。
用户区
分配给用户使用,用于装入和存储用户程序和数据,随时变化。
关于内存空间,可以参考内存空间。
综上得,存储管理实质上就是**对用户区的管理**。
内存管理问题主要包括:
- 内存管理方法
- 内存的分配与释放算法
- 虚拟存储器的管理
- 控制内存和外存之间的数据流动方法
- 地址变换技术
- 内存数据保护和共享技术
存储管理的任务:
- 内存的分配与回收
- 存储共享
- 存储保护
- “扩充”内存容量
内存的分配和回收
- 记录:记录每个内存区域的状态,空闲与否
- 分配:用户提出请求,分配内存,包括静态分配、动态分配两种。
- 回收:回收用户释放的区域
存储共享
两个或多个进程共用内存中的相同区域,包括:代码共享和数据共享。
目的:节省内存空间,提高内存利用率;通过内存共享实现进程通信。
存储保护
为多个程序共享内存提供保障,使在内存中的各道程序,只可访问它自己的区域,避免各道程序间相互干扰。
2种方式:① 地址越界保护 ② 权限保护
扩充”内存“容量
通过技术手段提高内存利用率而非增大内存容量。
地址重定位
- 静态重定位
- 动态重定位
分区存储管理
可以参考这篇。
固定分区
🙅♂️。
可变分区 *
基本思想:根据程序大小动态划分内存分区;分区个数可变。
可变分区中的紧缩技术
动态分区后,会产生“碎片分区”,为解决碎片分区问题,引入紧缩技术。
分区划分策略
从底部“切割”分配给程序,这样可以在不改变“空闲区表位置”下,为程序分配内存。
分区分配策略 *
- 最先适应算法
- 最优适应算法
- 最坏适应算法。
最先适应算法
前提:空闲区表按【首址】递增排序
优点:省时。
位置 大小 30K 20K 66K 24K 120K 8K
最坏适应算法
前提:空闲区表按【大小】递减排序
优点:避免形成碎片分区。因为大空闲区切割后剩余部分还很大,可以装下较大的程序。
位置 大小 66K 24K 30K 20K 120K 8K
分区回收策略
覆盖技术
过时
交换技术 *
背景
分时系统中,用户的进程比内存能容纳的数量要多,因此需要在磁盘上保存那些内存放不下的进程。
概念
进程从内存到磁盘,再从磁盘到内存,称为**“交换”**。即将系统中不在运行中的进程或其一部分调出内存,让出内存空间以调入其他需要内存空间的进程。
目的(优点)
尽可能达到“足够快地交换进程”,以提高内存利用率。
缺点
交换需要花费CPU时间,会影响到用户的响应时间,因此减少交换的信息量是交换技术的关键问题,可以通过“在外存中保留每个进程的交换副本,换出时仅将执行时修改过的部分复制到外存。”
应用场景
虚拟页式存储管理 100° *
基本思想与目的
利用外存扩充内存。以支持多道程序设计的实现和大型程序运行的需要,提供系统的处理能力。
优缺点
优点:程序段和数据段在内存中不必连续存放,有效解决碎片问题,提高了内存利用率。
缺点:缺页率高造成颠簸问题。可以使用工作集模型解决缺页率高问题。
页面调度 100° *
必考且不难,参考这个视频。
关键点:页面置换算法、缺页次数、缺页率 f = F ( 缺 页 次 数 ) / A ( 总 访 问 次 数 ) f=F(缺页次数)/A(总访问次数) f=F(缺页次数)/A(总访问次数)、影响缺页率的因素
FIFO下的页面调度
先进先出页面置换算法
规则:淘汰最先进入内存的页面,即丢弃在内存中待最长的页面。
OPT下的页面调度
理想页面置换算法
规则:淘汰以后不需要的或者最长时间以后才会用到的页面(看未来)。
LRU下的页面调度
最近最少使用页面置换算法
规则:淘汰最长时间未使用的页面(看过去)。
文件系统
文件系统:负责各种信息的组织、存取、加工、保管等。
文件的存储介质: 磁带、磁盘、光盘、闪存
![]() | ![]() | ![]() | ![]() |
---|
文件的存取方式:顺序存取和随机存储。
文件的分类 *

文件的结构
流式文件:由有序字符组成,构成文件的基本单位是字符。
记录文件:有定长记录文件和不定长记录文件,构成文件的基本单位是记录。
UNIX的三级索引结构 100° *
UNIX的 i i i结点是一种多级索引文件结构,是多级索引结构在UNIX上的具体实现。
i i i(index)结点
基本思想:给每个文件赋予一张称为 i i i结点的小表,在这张小表中列出了文件属性和文件中中各块在磁盘上的地址。
把文件名和文件信息分开,使文件描述信息单独形成一个称为索引结点的数据结构,即称之为i结点。
UNIX三级索引结构( i i i结点的三级索引结构):
目录项分解法 100° *
磁带空间利用率 100° *
应试
1810

【例题】假设某磁带记录密度为每英寸800个字符,每个逻辑记录长尾160个字符,块与块间的间隔为0.5英寸,那么如果将600个逻辑记录存储到该磁带上,则每个逻辑记录需要占用160/800=0.2英寸。
由于记录块之间的间隔为0.5英寸,所以磁带的空间利用率为0.2/(0.2+0.5)=28.57%
若采用6个逻辑记录为一组的成组操作,则每组逻辑记录需要占用6*160/800=1.2英寸,可求得此时的磁带空间利用率为1.2/(1.2+05)=70.59%
I/O设备管理
设备分类
I/O设备控制方式
可以参考这篇。
I/O设备控制方式有三种:
- 程序I/O方式
- 中断驱动I/O方式
- 直接存储器访问I/O方式(DMA方式)
遵循的原则是尽可能减少CPU对IO操作的控制,提高CPU的利用率。
- DMA(Direct Memory Access)控制方式。
- 通道控制方式
DMA(Direct Memory Access)控制方式
通道控制方式
通道是一个特殊功能的处理器(CPU),分为:
- 选择通道。以数据块为单位进行传输。优点:传输效率高,缺点:通道利用率低。
- 数组多路通道。以数据块为单位进行传输。优点:传输效率高,缺点:通道利用率高。
- 字节多路通道。以字节为单位进行传输。优点:多路并行,缺点:传输效率低。
I/O设备独立性($)
概念
应用程序独立于具体使用的物理设备。
好处
提供设备管理软件的设计效率,当I/O设备更新时,无需重新编写全部软件。
磁盘驱动调度100° *
磁盘驱动调度由移臂调度和旋转调度组成。
移臂调度及算法
- 先来先服务调度算法
- 最短寻找时间优先调度算法
- 电梯调度算法
先来先服务调度算法
不考虑访问的物理位置,只考虑访问请求的先后次序。比如假设磁头在2,访问请求次序为130,199,32,15,那么基于该移臂调度算法的访问过程就是:2→130→199→32→15。
最短寻找时间优先调度算法
总是从等待访问者中挑选寻找时间最短的那个请求先执行,而不考虑访问请求的先后次序。
电梯调度算法
从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个柱访问者,如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。
-
第1种:由里向外(向柱面号减少的方向)
-
第2种:由外向里(向柱面号增加的方向)
以一个例子讲三种移臂调度算法:
已知:磁头在50号柱面上,磁盘请求以:130,199,32,159,15,148,61,99依次到达,求他们在三种调度算法下总共需要移动的距离
![]() | ![]() | ![]() |
---|
信息的优化分布
SPOOLing技术
SPOOLing:允许多个用户共享一台主机。
应试
1804卷 #39
1810卷 #35
1810卷 #39
1904卷 #39
1910卷 #39
2008卷 #39
2104卷 #39
入门→系统编程
背的
2104
填空
- 共享性是指操作系统程序与多个用户程序()系统中的各种资源,这种共享性是在()的控制下实现的。
- 在多道程序环境中,由于系统资源的(),本来并无逻辑关系的程序之间产生了()关系。
- 在七状态进程模型中,被对换至外存的进程可能处在两种进程状态之一,即()和()。
- 采用共享文件解决进程间的大量信息交换的通信方式:()。
- 死锁的解除方式有两大类:()和()。
- 为保证程序正确执行,必须根据分配给程序的内存区域对程序中指令和数据的存储地址进行重定位,即要把()转为()。
- 页式存储管理要求对程序中的逻辑地址空间进行分页,于是系统提供给编程使用的逻辑地址可由两部分组成:()和()。
- 一次磁盘访问的时间由三个部分组成:()、旋转定位时间和信息传输时间。
- 文件的物理结构采用(索引结构),能够支持文件插入、删除要求,适合顺序存取,也适合随机存取。
- 按设备使用可共享性分类,可将I/O设备分为独占设备、()设备和()设备。
简答
- 什么是中断?中断和异常的区别是什么?
- 简述进程最短剩余时间优先调度算法的基本思路以及实现方法?
- 简述可变分区中紧缩技术的主要作用以及实现方法?
- I/O设备的中断控制方式与DMA控制方式的区别是什么?
答案
中断:CPU响应系统内外部的异步事件。中断由外部事件引发,异常由程序指令引发。
最短剩余时间优先算法:进程调度总是选择剩余运行时间最短的那个进程运行。给剩余时间最少的进程分配CPU,即 M I N ( 新 进 程 , 正 在 运 行 的 进 程 ) MIN(新进程,正在运行的进程) MIN(新进程,正在运行的进程)。
紧缩技术:集中碎片空闲区,提高内存利用率。通过移动内存中的程序,一边是空闲区,另一边是程序占用区。
I/O设备的中断控制方式:数据传输是在CPU的控制下完成的;在数据缓存寄存器满之后发出中断要求,由CPU响应中断处理请求。
DMA控制方式: 数据传输是在DMA控制下完成的;数据传输结束后才要求CPU进行中断处理请求。
2008
填空
- 并发性和并行性是操作系统中两个相似但又有区别的概念。在单处理器系统中,多个程序的并发执行不具有任何的并行性,因为他们在微观上是()执行的,没有任何两条指令是()执行的。
- 多道程序设计环境具有()、随机性和()等特点。
- 在多道程序系统中,进程是()和()的基本单位。
- 解决了信号量同步机制中变量及其操作分散于各个进程,但不利于管理的一种高级同步机制是()。
- 死锁定理中,如果资源分配图中没有环路,则系统()死锁。如果资源分配图中出现了环路,则系统中()死锁。
- 存储管理中,地址重定位有两种方式。第一种的地址转换工作是在程序开始执行前集中完成的,这种地址转换方式被称为();而另一种的地址转换工作是在程序执行时完成的,被称为()。
- 采用可变分区存储管理时,内存分配表由()和()两张表格组成。
- 采用()的物理结构,有利于文件动态扩充,解决了存储的碎片问题,但是不适合随机存取。
- I/O设备中,可按照两种方式进行设备的分配,即()分配和()分配。
简答
- 什么是系统调用?画图描述应用程序、函数库、系统调用以及内核之间的调用关系。
- 进程调度的作用是什么?通常有哪些情况会引起进程调度?
- 简述存储管理中交换技术的实现原理以及主要作用?
- 什么是SPOOLing技术,SPOOLing技术的主要作用是什么?
![]()
答案:
- 系统调用:用户在程序中调用操作系统提供的功能。
- 进程调度:按照给定的进程调度算法,策略性地从就绪队列中挑选进程,并为其分配CPU使用权。进程调度一般发生在:
- 正在执行的进程运行结束或出现错误
- 正在执行的进程由于等待I/O而阻塞
- 时间片用完,当前进程从运行态变为就绪态
- 在抢占式优先调度中,等待或阻塞进程优先级高于正在执行的进程。
- 交换技术:将那些不再运行中的进程或其一部分调出内存,暂时存储在外存上。以腾出更多的内存空间,需要的时候再重新载入内存。
1910
1904
填空题
简答题
1810
简答
- 什么是中断?如果同一中断级中的多个设备接口中同时都有中断请求时,如何处理?
- 进程控制通过进程控制原语来实现,请分别描述下创建原语和撤销原语的操作过程。
- 什么是资源有序分配法?请简述此方法能够预防死锁的原因。
- 虚拟存储器的工作原理是什么?
- 磁带空间利用率计算题()。
- 中断是指CPU响应系统内外发生的异步事件。如果同一中断级别中多个设备接口中同时都有中断请求时,可以采用固定优先数或轮转法。
1804
填空题
- 常见的操作系统结构有整体式结构、()结构和()结构。
- 为了便于管理,操作系统把所有的PCB用适当方式组织起来。一般的组织方式有:线性方式、()、()。
- 原语是操作系统核心的一个组成部分,由若干条()组成,用来实现某个特定的操作功能,执行时具有()。
- 管程中的()在管程外部是不可见的,外部只能通过调用管程中所说明的()来间接地对其进行访问。
- 死锁检测的实质是通过检测是否存在()条件,以此来确定死锁的存在与否,并识别出与死锁有关的()。
- 存储管理的主要任务包括内存的分配与回收、内存扩充、()和()。
- 在可变分区存储管理方案中,解决碎片问题的一个有效办法是采用紧缩技术,通过移动内存中的程序,把()合并成一个连续的大空闲区置于内存的一端,把()放在内存的另一端。
脚注
[^ 1910_PV]: 0 P(s2) P(s1) V(s2)
[^ 1804_PV]: P(mutex) 、V(full 、P(mutex) 、j= (j+1) mod k 、V(empty) 、
暂时没有答案 ↩︎