前言
这里只把一些课上讲的重点和一些常考的题做汇总,难免多有遗漏,仅供参考~
1.操作系统引论
1.什么是操作系统:
控制和管理计算机硬件和软件资源,合理组织计算机工作流程,方便用户使用的程序集合。
2.基本操作系统类型/发展过程:
单道批、多道批处理, 分时、实时系统,微机、嵌入式、网络、分布式操作系统
3.多道批操作系统(操作系统的形成标志)的优缺点:
- 优点:CPU、内存以及I/O设备等资源的利用率高;系统吞吐量(单位时间内完成的总工作量)大。
- 缺点:平均周转时间(作业进入内存到运行结束时间)长;没有交互能力。
4.分时系统的特点:
- 多路性、独立性、交互性、及时性
5.实时系统的特点:
- 可靠性、实时性、多路性、独立性、交互性
6.操作系统的基本特征:
- 并发:多个程序同时执行,并不是绝对的并行(多个事件同一时刻发生),而是在一段时间内交替进行
- 虚拟:通过软件将一个物理资源变成多个虚拟的对等资源。时分复用技术(虚拟处理机、虚拟设备),空分复用技术(虚拟储存)
- 共享:系统资源可供多个并发执行的程序共同使用,分为互斥(临界资源如打印机)和非互斥共享(磁盘)
- 异步:多个程序的执行顺序和一个程序的执行与中断无法确定,但结果始终确定。
7.操作系统的功能:
处理机管理功能:进程控制
存储器管理功能:内存分配、内存保护、内存扩充以及地址转换
设备管理功能:缓冲区管理、设备分配和回收、设备驱动
文件和磁盘存储管理功能:目录管理、文件读写、存取控制、磁盘空间分配、空闲空间管理
用户接口:操作接口(分命令接口和图形接口)
2.进程的描述与控制
1.进程的含义和组成:
进程由程序和PCB组成,是程序在一组数据集合上的一次运行过程。是资源分配的单位。所依赖的这个数据集合叫做进程控制块(PCB),是进程存在的唯一标志。
2.进程特点:
- 动态性:最基本特征,程序的一次并发执行过程,具有生命期
- 并发
- 独立:进程实体是一个能独立运行的基本单位,是系统中独立获得资源和独立调度的基本单位
- 异步:各自独立不可预知的速度向前推进
- 结构:每个进程都由程序(包括代码和数据)和PCB组成
3.进程的状态:
就绪Ready:较大程序由若干个程序段组成,执行时先后顺序逐个执行。前一操作执行完成,才执行后继。
执行Running:获得CPU,单处理机,一个进程处于执行状态;多处理机,多个进程处于执行状态。
阻塞Blocked:执行是发生如请求I/O、申请缓冲空间等典型事件无法继续执行。由于存在多个阻塞进程,根据阻塞原因,设置多个阻塞队列。
4.进程的状态转换关系:
3.处理机调度与死锁
1.处理机调度分为哪三级?各自的主要任务是什么?
- 作业调度:给作业分配资源,建立进程,挂入就绪队列,执行完回收资源
- 进程调度:在就绪队列中根据某个策略选取一个进程,使之占用CPU
- 交换调度:按照给定的原则和策略,将外存交换区中的进程调入内存,把内存中的非执行进程交换到外存交换区中。
2.进程调度算法:
- 先来先服务(FCFS):优先考虑再系统中等待时间最长的作业
- 短作业优先调度算法(SJF):运行时间越短,优先级越高
- 优先级调度算法(PR):
- 高响应比优先调度算法(HRRN):
- 轮转调度算法:就绪进程按FCFS排列,按时间片大小逐个执行。时间片太小:频繁切换;太大:退化为FCFS,无法满足短作业和交互式用户需求
周转时间 =完成时间-到达时间
带权周转时间=周转时间-服务(运行)时间
等待时间=周转时间-服务时间
死锁:多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力条件将永远不能向前推进。
死锁的四个必要条件:
- 互斥:一段时间内某资源只能被一个进程占用
- 请求和保持:
- 不可抢占
- 循环等待
预防死锁: 破坏死锁必要条件中一个或几个,但互斥条件不能破坏,其是共享资源必须的,不仅不能改变,还应加以保证。
银行家算法关于死锁
银行家算法:是否满足某进程的资源请求。安全序列不唯一!!!!
2)不能,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。
4.进程同步
1.进程同步的四个基本原则:
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
进程同步信号量机制:
利用信号量实现进程互斥,设置互斥信号。
// 定义信号量
semaphore a = 0; // P1 完成后释放
semaphore b = 0; // P2 完成后释放
semaphore c = 0; // P3 完成后释放
semaphore mutex = 1; // 确保 P2 和 P3 互斥执行
void P1() {
// 执行 P1
// ...
signal(a); // P1 完成后释放信号量 a
}
void P2() {
wait(a); // 等待 P1 完成
wait(mutex); // 确保 P2 和 P3 互斥执行
// 执行 P2
// ...
signal(b); // P2 完成后释放信号量 b
signal(mutex); // 释放互斥信号量,允许 P3 执行
}
void P3() {
wait(a); // 等待 P1 完成
wait(mutex); // 确保 P2 和 P3 互斥执行
// 执行 P3
// ...
signal(c); // P3 完成后释放信号量 c
signal(mutex); // 释放互斥信号量,允许 P2 执行
}
void P4() {
wait(b); // 等待 P2 完成
wait(c); // 等待 P3 完成
// 执行 P4
// ...
}
思考互斥和同步的关系,他们有哪些地方相同?哪些地方不同?
相同点:确保并发访问的正确性;防止竞争条件
不同的:定义和目的,实现方式
经典的进程同步问题:
生产者消费者
2.在生产者—消费者问题中,能否将生产者进程的wait(empty)和wait(mutex)语句互换,为什么?
不能。因为这样可能导致系统死锁。当系统中没有空缓冲时,生产者进程的wait(mutex)操作获取了缓冲队列的控制权,而wait(empty) 导致生产者进程阻塞,这时消费者进程也无法执行。
5.存储器管理
内存管理:内存分配连续,动态(这部分没有设置数值,可能不考),考概念更有可能
1.连续分配方式:为一个用户程序分配一个连续的内存空间
- 单一连续分配
- 固定分区分配
- 可变分区分配:动态分区分配、动态可重定位分区分配
2.动态分区式内存分配的含义:
根据所要运行的程序大小,在内存中动态地划分出一个区域,并将程序转入该区域 。等到程序运行结束时又回收此区域。
过程:数据结构(空闲分区表、链)-->分配算法-->分配操作(分配内存、回收内存)
3.常用的动态分区分配算法及其思想:
首次适应算法:从上往下找空闲
最佳适应算法:全局找最小的空闲块分配
离散分配存储管理方式:分段,分页方式,是两种常见的内存保护机制。用于确保程序在运行过程中不会越界访问或者篡改其他进程的内存空间。
4.分页式存储管理方法的基本原理:
一维地址。用户程序开始执行时,根据CPU中规定的大小 ,把用户程序(逻辑内存)划分成固定大小的块(称为“页面”)。每个页面装入内存中相同大小的不连续区域(该区域称为“物理块”,由物理内存分成的固定大小的块)。同时建立该进程的页表,记录哪个页面装在哪个块内。存在页内碎片:进程最后一页经常装不满,而形成不可利用的碎片。
5.分页式存储管理方法的地址变换:
- 将程序指令从内存读入CPU
- 根据块大小,将指令中的地址划分成两个部分:页号、页內地址
- 从内存页表中查找与页号对应的页表项,得到块号;
- 将指令中的页号替换成块号,完成地址转换
重定位:再装入时目标程序对指令和数据的修改过程。即逻辑地址变为物理地址
1kb为1024字节,即块号*1024+余数
4500/1k=4.....404,产生越界终端
6.分段式存储管理方法的原理:
二维地址。用户程序划分为大小各不相同的逻辑段,把各个段离散的装入到内存的不连续的分区中,每个分区只装入一个段。用段表记录段和分区的对应关系,段表包括段名, 段长和段在内存的首地址。
7、分段存储管理方式中的地址变换过程:
- 将程序指令从内存读入CPU
- 指令中的地址包括两个部分:段号、段内偏移
- 从内存段表中查找与段号对应的表项,得到分区首地址;
- 将分区首地址+偏移量,得到物理地址
8.比较页表、段表长度
6.虚拟存储
1.虚拟存储器:
具有请求调入和置换功能,能从逻辑上扩充内存容量的存储管理系统。该系统由硬件和软件配合实现。实际容量为内存容量和交换空间容量,最大容量为内存容量+外存容量。
实现方式:请求分页、请求分段
2.虚拟存储:三个主要特点,多次,对换,虚拟这三个概念要清楚:
- 多次性:作业中的程序和数据允许被分成多次调入内存允许
- 对换性:作业运行时无须常驻内存
- 虚拟性:从逻辑上扩充了内存容量,使用户看到的内存容量远大于实际内存容量
3.常见的页面置换算法:
最佳,先进先出,最近最久()三个算法要了解。蓝底ppt带数据“当时有颜色”的有一个例题要注意,要会计算
缺页率=缺页次数/页面访问总数
最佳页面置换算法OPT:选择未来最长时间不访问的页面置换
先进先出FIFO:驻留时间最久的置换,注意区分和最近最久未使用的区别
最近最久未使用LRU:最近最久未使用的页面淘汰
7.输入/输出系统
1.设备分类:
- 按使用特性分类:存储设备、I/O设备
- 按传输速率分类:低速(键盘鼠标)、中速(打印机)、高速(磁带、磁盘、光盘机)
- 按信息交换单位分类:块设备、字符设备
- 按设备的共享属性分类:独占设备、共享设备
2. I/O的四种控制方式
- 使用轮询的可编程I/O方式(程序访问方式):鼠标、键盘
- 使用中断的可编程I/O方式(中断控制方式):鼠标、键盘
- 直接存储器访问(DMA)方式:磁盘中读取数据块、硬盘、网卡等需要高速数据传输
- I/O通道控制方式:通道程序:由一系列通道指令所构成的,不同于CPU指令,包含:操作码、内存地址、计数、通道程序结束位P、记录结束位R。
3.通道:
通道是特殊处理机,与普通处理机一样能通过执行I/O指令来控制I/O操作,不同在于:指令类型单一 没有自己的内存(与CPU共享内存)
目的:使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来
I/O通道(属于硬件)类型:
- 字节多路通道、数组选择通道、数组多路通道
4.缓冲区分类:
- 单缓冲、双缓冲、循环缓冲、缓冲池
引入缓冲可以提高CPU与设备之间的并行程度
5. SPOOLing的含义是什么?试述SPOOLing系统的特点、功能以及控制过程。
又称假脱机技术,即外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为SPOOLing
特点:
- 提高了I/O的速度、将独占的设备改造为共享设备、实现了虚拟设备功能
控制过程及功能:
由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。
6.设备管理功能,了解对文件传输的四种控制方式:
- 队列控制、优先级控制、并发控制、带宽控制
7.什么是设备独立性,它是如何实现的?
即应用程序独立于使用的物理设备,在应用程序中使用逻辑设备名称来请求使用某类设备。系统在执行时,是使用物理设备名称。要实现设备独立性必须由设备独立性软件完成,包括执行所有设备的公有操作软件提供统一的接口,其中逻辑设备到物理设备的映射是由逻辑设备表LUT完成的。
8.文件管理
1.文件分类:
- 按逻辑结构划分:有结构文件、无结构文件
- 按物理结构划分:顺序文件、链接文件、索引文件
- 按存取控制划分:可执行文件、只读文件、可读写文件
2.外存空间的管理方式:
- 连续方式、链接方式、索引方式
3.磁盘调度算法:
对于多个磁盘访问请求,OS根据不同策略完成不同顺序的访问操作。其目的是减少磁头移动距离,提高整体访问性能。
常见的磁盘调度算法:
- 先来先服务(FCFS算法):根据进程请求访问磁盘的先后顺序进行调度。
- 最短寻道时间优先(SSTF):选择与当前磁头所在磁道距离最近的磁道进行访问,以使每次的寻道时间最短。
- 扫描算法(SCAN算法):在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。
- 循环扫描算法(CSCAN算法):为了减少SCAN算法造成的某些进程的请求被严重推迟,CSCAN算法规定磁头单向移动。在磁头移动方向上选择与当前磁头所在磁道距离最近的请求进行服务。
文件管理功能
逻辑结构:从用户观点所观察的文件组织形式
无结构文件:流式文件,如源程序、可执行文件、库函数
有结构文件:记录式文件,定长记录、变长记录
- 顺序文件:排列方式,串结构,按存入时间先后排序,记录间顺序与关键字无关、顺序结构,指定一个字段为关键字,所有记录按关键字排序。检索算法:折半、插值、跳步查找法。
- 索引文件:按关键字建立索引、具有多个索引表的索引文件
- 索引顺序文件:有效克服了变长记录文件不便于直接存取的缺点;保留了顺序文件的关键特征:记录按关键字的顺序组织。新增特征:引入文件索引表实现随机访问、增加溢出文件,记录新增删除修改的记录。
- 直接文件:关键字本身决定了记录的物理地址。 键值转换:关键字到记录物理地址的转换。
- 哈希文件:利用Hash函数将记录键值转换为记录的地址。
物理结构:文件的存储结构,指系统将文件存储在外存上所形成的一种存储组织形式。