前言:线上复试!他来了!他来了!他还是来了!!!o(╥﹏╥)o
本人为20考研党,所考专业为计算机科学与技术,考虑到线上复试笔试会更加侧重概念的考察,在复试准备期间找了大量笔试题,面试题,整理了很多资料。
本文作为本人的考研复试收尾笔记,先梳理全面精炼的基本知识,文末会附加我自己整理加搜集的大量面试概念题,大家可以用来自测,看是否真正掌握,如果对大家有帮助,希望大家点赞哦~(^▽ ^)
本文仅针对考研复试,祝大家复试顺利,若本文有任何不对欢迎大家留言指正!ヽ( ̄▽ ̄)و
PS:正在复试准备期间,复试科目为计网、操作系统、数据库三门,计网知识点已整理完毕(入口如下链接),三门课的复试面试题还在攒着,后一周内会陆续全部发布,本系列持续更新…
《数据库》传送门:《数据库》_考研复试_概念篇
《计算机网络》传送门: 《计算机网络》_考研复试_概念篇
- 参考书籍
- 王道《操作系统考研复习指导》
- 汤子瀛《计算机操作系统》第四版
目录
第1章 OS概述
1.1 概念和功能
概念:操作系统是指控制和管理整个计算机系统的最基本的系统软件。
功能:(计算机系统自下而上分为:硬件、操作系统、应用程序、用户)
- 向上提供接口(用户:命令接口,编程员:程序接口);
- 对下层功能的拓展;
- 对系统资源的管理(处理机、存储器、文件、设备).
1.2 特征
并发性:指两个或多个事件在同一时间间隔内发生;(并行性:在同一时刻…)
共享性:系统中的资源可供内存中多个并发执行的进程共同使用;
虚拟性:把一个物理上的实体变成若干个逻辑上的对应物;
异步性:进程的执行并不是一气呵成的,而是以不可预知的速度向前推进.
1.3 发展与分类
- 手工OS
- 特点:
- 用户独占全机,资源利用率低;
- 所有工作都需要人工干预,速度慢.
- 批处理OS:
- 单道批处理:自动性、顺序性、单道性
- 多道批处理:多道、宏观上并行、微观上串行
-
特点:
多道程序共享计算机资源,资源利用率高;
无人机交互能力. - 分时OS
- 把处理机的时间分片轮流分配
-
特点:
具有人机交互能力;
不能优先处理紧急事件. - 实时OS
- 在时间限制内优先处理紧急任务.
1.4 运行机制
- CPU执行两种程序
- OS内核程序(内核态)
- 应用程序(用户态)
- CPU的两种状态
- 用户态(目态):不可以执行特权指令
- 内核态(管态)
- CPU“变态”的唯一条件: 中断/异常
- 实现“变态”的机制:通过 硬件实现
- 中断和异常
- 中断(外中断):指来自CPU执行指令以外的事件发生;
- 异常(内中断、trap):指源自CPU执行指令内部的事件.
- 系统调用
- 概念:指用户在程序中调用OS所提供的一些功能。
- 目的:用户必须通过调用系统调用才能操作系统资源(OS代为完成),以保证系统稳定性和安全性。
- 如何引起? 用户程序执行trap指令
- 执行过程:用户程序执行trap指令引发系统调用,请求操作系统提供服务。操作系统作出相应处理,将CPU由用户态转为内核态,执行系统调用,执行完后退出内核态,回到用户态。
- 注意:发出系统调用请求是在用户态,执行系统调用是在内核态,故trap不是特权指令。
第2章 进程管理
2.1 进程的概述
- 概念
- 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
- 组成
- PCB:进程存在的唯一标志
- 程序段
- 相关数据段
- PCB的组织方式
- 链接方式
- 索引方式
- 特征(注意与程序的区别)
- 动态性(最基本):进程是程序的一次执行过程。进程是动态的,程序是静态的;
- 并发性:多个进程同时存在于内存中,能在一段时间内同时运行。引入进程的目的就是为了使程序能够并发运行;
- 独立性:进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。而程序不能作为一个独立的单位参与运行
- 异步性:异步性导致执行结果的不可再现性,因此OS中必须配置进程同步机制;
- 结构性:每一个进程都配置一个PCB对其进行描述。
2.2 进程的状态与转换
- 状态转换关系
-
五状态:就绪态、运行态、阻塞态、创建态、结束态
(若引入挂起态,则还有就绪挂起态和阻塞挂起态)
(注意每种状态的资源分配情况)
2.3 进程的控制
概念:进程控制的主要功能是实现进程状态的转换。
实现方法:用原语实现。原语是一种特殊的程序,采用开/关中断实现
相关原语:
- 进程创建:
-
引发进程创建的事件:
用户登录系统、作业调度、系统提供服务、用户程序的应用请求; -
创建进程的基本过程:
1.创建PCB;2.为进程分配资源;3.初始化PCB;4.将进程插入就绪队列。 - 进程终止:
- 引发进程终止的事件:正常结束、外界干预、异常结束
- 进程的阻塞和唤醒
- Block原语
- Wakeup原语
- 进程的切换
- 从一个进程的运行转换到另一个进程的运行。
2.4 进程的通信
- 方式
- 低级通信方式:PV操作
- 高级通信方式:共享存储、消息传递、管道通信
- 共享存储
- 设置共享空间,互斥访问
- 低级:基于数据结构的共享
- 高级:基于存储区的共享
- 消息传递
- 传递格式化的消息;两个原语:发送消息和接收消息
- 直接通信方式:发送进程直接把消息挂在接收进程的消息队列上,接收进程从消息缓冲队列中取得消息;
- 间接通信方式:发送方把消息放到中间实体(信箱),接收方从中间实体接收消息.
- 管道通信
- 管道,即共享文件;
- 半双工通信。没读完就不能写,没写完就不能读。
2.5 线程
- 引入进程的目的
- 为了更好地使多道程序并发执行,提高资源利用率和系统吞吐量。
- 引入线程的目的
-
为了减小程序在并发执行的过程中所付出的时空开销,提高操作系统的并发性能。
(为什么线程可以提高系统的并发性呢?由于有了线程,线程的切换有可能会引发进程切换,也有可能不发生进程的切换,于是平均而言的开销就小了) - 线程与进程的比较
- 调度。在传统的操作系统中,进程是拥有资源和独立调度的基本单位,在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位。
- 拥有资源。进程是拥有资源的基本单位,线程除了本身所必须的一点资源,基本上不拥有资源。
- 并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,多个线程之间也可以并发执行,从而操作系统具有更好的并发性
- 系统开销。由于创建和撤销进程时,系统都要为之分配和回收资源,因此所付出的开销远远大于创建和撤销线程时的开销。
- 线程的实现方式
- 用户级线程:线程的管理工作都由应用程序完成,应用程序通过使用线程库实现多线程程序;
- 内核级线程:线程的所有工作由内核完成。
- 多线程模型
-
多对一:将多个用户级线程映射到一个内核级线程,线程管理在用户空间完成。
优点:开销小;
缺点:一个线程被阻塞,整个进程就会被阻塞,并发度低。 -
一对一:一个用户级线程映射到一个内核级线程。
优点:当一个线程被阻塞时,允许另一个线程继续执行,并发度高;
缺点:开销大。 -
多对多:将n个用户级线程映射到m个内核级线程上(m<=n)
特点:并发度高,开销小
2.6 处理机调度
- 概念
- 处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法选择一个进程,并将处理机分配给它运行。
- 三个层次
- 作业调度(高级调度):将处于外存中后备队列的作业挑选一个调入内存,并分配相应资源。
- 内存调度(中级调度):将内存中已具备运行条件,但内存紧张时,将这些内存调至外存等待,此时进程为挂起态;当内存有空闲时,再将其调入内存 ,并将状态修改为就绪态。
- 进程调度(低级调度):从内存中的就绪队列中选取一个进程分配处理机。
- 三层调度之间的联系和区别
- 作业调度:次数最少;外存调至内存
- 内存调度:次数中等;外存调至内存
- 进程调度:次数最多;内存调至CPU
- 何时能调度和切换
- 发生引起调度条件且当前进程无法继续运行下去时;
- 中断或异常处理结束后。
- 何时不能调度和切换
- 在处理中断的过程中;
- 进程在操作系统内核程序临界区中;
- 需要屏蔽中断的原子操作过程。
- 调度方式
- 非抢占式
- 抢占式
- 调度的性能准则
- CPU利用率:应该尽量使CPU处于“忙”状态;
- 系统吞吐量:表示单位时间内系统完成作业的数量;
- 周转时间:作业从提交到完成的时间;
- 等待时间:处于等处理机状态的时间;
- 响应时间:从用户提交到系统首次响应。
- 调度算法
- FCFS、SJF、优先级、高响应比、时间片轮转、多级反馈队列
2.7 进程同步与互斥
- 概念
- 进程的并发执行带来了异步性问题,进程同步机制用以解决异步性问题。
- 临界资源和临界区
- 临界资源:一次仅允许一个进程使用的资源,必须互斥访问;
- 临界区:每个进程中,访问临界资源的那段代码。(进入区、临界区、退出区、剩余区)
- 实现进程互斥的方法
- 软件实现方法:在进入区设置并检查一些标志来标明是否有进程在临界区中,若有,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。
-
硬件实现方法:
中断屏蔽法:使用“开/关中断”指令,禁止一切中断的发生,只适合单CPU、OS内核进程;
硬件指令法(TSL/Swap):原子操作,适合多处理机。
2.8 信号量机制
- 整型信号量
-
S用于表示资源数目。
如果资源不够,就会一直循环等待,使得进程可能处于“忙等”,为满足让权等待。 - 记录型信号量
-
value代表资源数目,链表L链接了所有等待该资源的进程。
当value<0时,进程会进入阻塞态,并插入L等待队列中。
不会出现“忙等”。 - 实现同步
- 设置公共信号量S=0,前V后P
-
分析步骤:
1.分析问题,找出哪里需要实现一前一后同步关系;
2.设置同步信号量S;
3.在前操作之后执行V操作,在后操作之前执行P操作。 - 实现互斥
- 设置互斥信号量S=1,临界区之前设置P,之后设置V
-
分析步骤:
1.分析问题,确定临界区;
2.设置信号量S=1;
3.临界区之前,对信号量执行P操作,之后执行V操作。 - 经典同步问题
- 生产者-消费者,哲学家进餐,吸烟者问题,读者-写者问题
2.9 管程
- 概念
- 信号量机制的存在问题是让编写程序困难、易出错。管程用来实现进程同步、互斥,该机制让写程序时不用关心复杂的P、V操作。
- 组成
- 局部于管程的数据结构;
- 对数据结构进行操作的函数过程;
- 数据结构的初始化。
- 基本特性
- 局部于管程的数据只能被局部于管程的过程所访问;
- 一个进程只能通过调用管程内的过程才能进入管程访问共享数据;
- 每次仅允许一个进程在管程内执行某个内部过程。
2.10 死锁
- 定义
- 多个进程因竞争资源而造成的一种互相等待的局面,若无外力作用,这些进程将无法向前推进。
- 产生的原因
- 系统资源的竞争、进程推进顺序不当。
- 产生的必要条件(缺一不可)
-
互斥条件、不可剥夺条件、请求并保持条件、循环等待条件
注意:发生死锁时一定有循环等待,反之不一定。资源分配图含圈而不一定死锁的原因:同类资源数大于1. - 死锁的处理策略
- 死锁预防:设置某些限制条件,破坏死锁的4个必要条件中的一个或几个,以防止死锁的发生;
- 避免死锁:在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁;
- 死锁的检测与解除:通过系统的检测机构及时地检测出死锁的发生,然后采取某些措施解除死锁。
- 死锁预防
-
破坏互斥条件:使系统资源都能共享;
(这种方法不太可行) -
破坏不剥夺条件:当进程已保持了一些不可剥夺资源且又申请新的资源而得不到满足时,它必须释放已经保持的所有资源,待需要时重新申请;
(这种方法实现复杂,会增加系统开销,降低系统吞吐量) -
破坏请求并保持状态:进程在运行前一次性申请完他所需要的全部资源;
(这种方法实现简单,但是会严重浪费系统资源,还会导致饥饿现象) -
破坏循环等待状态:给系统中的资源编号,规定每个进程必须按照编号递增的顺序请求资源,同类资源一次申请完;
(这种方法限制了新类型设备的增加,给用户编程带来麻烦) - 避免死锁
- 概念:进程可以动态地申请资源,但系统在进行资源分配前,需要先计算此资源分配的安全性,若此次分配不会导致系统进入不安全状态则分配,否则让进程等待。
-
安全序列:指系统能按照某种顺序为每个进程分配其所需的资源,直到满足每个进程对资源的最大需求,使得每个进程都可以顺利完成。
(并非所有的不安全状态都是死锁状态,反之,只要系统处于安全状态,就不会进入死锁状态) - 死锁的检测与解除
- 资源分配图
- 死锁定理:死锁的条件是当且仅当资源分配图是不可完全简化的。
- 死锁解除
康康我!!
操作系统全部知识点框架已搭好,以下知识点的详解这两天补齐,便于大家冲刺阶段快速复习,未补齐的部分大家可以先用来自问自答,其实这也就相当于变相的面试题,看看是否已经掌握!(* ^ ▽ ^ * )
第3章 内存管理
3.1 内存管理的功能
- 四大功能
- 内存的分配与回收
- 地址转换
- 内存空间的扩充
- 存储保护
3.2 进程运行的基本原理
- 从写程序到程序运行
- .
- 三种链接方式
- .
- 三种装入方式
- .
3.3 内存保护
- 概念
- .
- 两种方式
- .
3.4 内存扩充:覆盖与交换
- 覆盖技术
- 基本思想:
- 特点:
- 交换技术
- 基本思想:
- 特点:
3.5 连续内存分配
- 三种方式
- 单一连续分配
- 固定分区分配
- 动态分区分配
- 单一连续分配
- 特点:
- 固定分区分配
- 特点:
- 动态分区分配
- 特点:
- “紧凑”技术:
- 4种分配算法:
3.6 非连续分配管理
- 基本方法
- 分页存储管理:基本分页存储管理、请求分页存储管理
- 分段存储管理
- 基本分页存储管理
- 分页存储的几个基本概念:
- 分页的特点:
- 基本地址变换机构:
- 具有快表的地址变换机构:
- 两级页表:
- 分段存储管理
- 分段的特点:
- 分段和分页的区别:
- 段页式存储管理
- 段页式的特点:
3.7 虚拟内存
- 传统存储管理方式的特征
- 一次性:
- 驻留性:
- 局部性原理
- 时间局部性:
- 空间局部性:
- 虚拟存储器的定义和主要特性
- 定义:
- 主要特性:
- 虚拟内存技术的实现
- 三种方式:
- 硬件支持:
3.8 请求分页管理方式
- 概念
- .
- 页表机制
- .
- 缺页中断机构
- .
- 地址变换机构
- .
3.9 页面置换算法
- 四种算法:
- .
3.10 页面分配策略
- 驻留集
- .
- 页面分配与置换策略
- 固定分配 vs 可变分配
- 局部置换 vs 全局置换
- 三种策略:
- 何时调入页面
- .
- 从何处调入页面
- .
- 抖动
- 概念:
- 主要原因:
- 工作集
- 概念:
第4章 文件管理
4.1 文件管理的概述
- 文件的定义
- .
- 文件的属性
- .
- 文件的基本操作
- .
4.2 文件的逻辑结构
- 概念
- .
- 无结构文件
- .
- 有结构文件
- .
4.3 文件目录
- 目录的实现
- .
- 索引结点
- .
- 目录结构
- .
4.4 文件物理结构
- 概念
- .
- 连续分配
- .
- 链接分配
- .
- 索引分配
- .
4.5 文件存储空间管理
- 概念
- .
- 存储空间的划分与初始化
- .
- 空闲块的组织、分配与回收
- 空闲表法:
- 空闲链表法:
- 位示图法:
- 成组链接法:
4.6 文件共享
- 概念
- .
- 两种方式
- .
4.7 文件保护
- 概念
- .
- 方式
- .
4.8 磁盘调度算法
- 4种算法
- .
第5章 输入输出管理
5.1 I/O设备的分类
- 按使用特性分类
- 人机交互类外设:打印机
- 存储设备:磁盘、光盘
- 网络通信设备:网络接口
- 按传输速率分类
- .
- 按信息交换的单位分类
- .
5.2 I/O控制方式
- 程序直接控制方式
- 工作原理:
- 传输单位:
- 数据流向:
- CPU干预频率:
- 中断驱动方式
- 工作原理:
- 传输单位:
- 数据流向:
- CPU干预频率:
- DMA方式
- 工作原理:
- 传输单位:
- 数据流向:
- CPU干预频率:
- 通道控制方式
- 工作原理:
- 传输单位:
- 数据流向:
- CPU干预频率:
5.3 I/O控制器
- 主要功能
- .
- 组成
- .
- 两种寄存器编址方式
- .
5.3 I/O子系统的层次结构
- 层次组成
- .
- 各层的功能
- .
5.4 SPOOLing技术
- 脱机技术
- 实现设备组成:
- 作用:
- 假脱机技术
- 引入目的:
- 实现原理:
- 主要特点:
5.5 缓冲区管理
- 概念
- .
- 单缓冲
- .
- 双缓冲
- .
- 循环缓冲
- .
- 缓冲池
- .
5.6 设备的分配与回收
- 设备分配概述
- .
- 设备分配的数据结构
- .
- 合理的分配原则主要考虑的因素
- .
- 设备分配策略
- .
- 设备分配策略
- .
- 设备分配的改进
- .