放一些选择填空会出的点
相关链接|
¶操作系统概述
¶知识点
¶操作系统四个基本特征
并发、共享、虚拟、异步
¶操作系统的主要功能包括
-
处理机管理
-
存储管理
-
设备管理
-
文件管理
-
用户接口
¶人机交互的历程
-
手工操作阶段
- 人机速度矛盾
-
单道批处理阶段
- 系统资源利用率还是很低
-
多道批处理阶段
- 缺乏人机交互,进程运行无法终止
-
分时操作系统
- 不支持插队,不能处理紧急事件
- 分时系统中,时间片一定,用户数越多,响应时间越长
- 分时系统中,像是给每个用户分一个时间片,排队的进行访问,故用户数越多,排到的时间越长,响应时间越长
-
实时操作系统
¶基本概念
-
特权指令:不允许用户程序使用(只允许操作系统使用)如IO指令,中断进程
-
非特权指令:普通的运算指令
-
内核程序:系统的管理者,可执行一切指令、运行在核心态
-
应用程序:普通引用程序只能执行非特权指令,运行在用户态
还有一个**“访管指令”**,访管指令是在用户态使用的,该指令的还以是用户资源进入核心态。
核心态无需再次进入核心态
故,CPU处于核心态时,它可以执行出“访管”指令外的全部指令
¶处理机状态
-
用户态(目态):CPU只能执行非特权指令
-
核心态(又称管态、内核态):可以执行所有指令
-
用户态到核心态:通过中断(是硬件完成的)
用户态到核心态的转换时通过中断,即硬件完成的,并不是操作系统,也不是中断处理程序。
核心态到用户态的转换,是通过操作系统完成的。
¶原语
-
处在操作系统最底层,是最接近硬件的部分
-
这些程序的运行具有原子性其操作只能一气喝成
-
这些程序的运行时间都较短,而且调用频繁
¶中断、系统调用、体系结构
-
内中断(异常,信号来自内部)
- 自愿中断————指令中断
- 强迫中断:硬件中断、软件中断(eg:0/0)
-
外中断(中断,信号来自于外部):外设请求、人工干预(打印机)
-
系统调用:
- 系统给程序员(应用程序)提供的唯一接口,可获得OS的服务,在用户态发生核心态处理
-
体系结构:大内核、微内核
¶进程管理
进程的组成
包括程序、数据、进程控制块

¶处理机调度
是对处理机进行分配,即从就绪队列中按照指定的算法,选择一个进程并将处理机分配给它运行,以实现进程并发的执行
¶分类
-
高级调度(作业调度
-
中级调度(内存置换
-
多级调度(进程调度
¶进程同步
¶原因
-
协调进程之间相互制约关系
¶制约关系
-
同步:进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作层次而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作
-
互斥:也称间接制约关系。当一个进程进入临界区使用临界资源时,另给进程必须等待,当占用临界资源的进程退出临界区后,另进程才允许去访问此临界资源
¶临界资源
-
一次仅允许一个进程使用的资源
¶临界区
-
在每个进程访问临界资源的那段程序,当多个线程并发执行时,如果它们都能够访问和修改同一资源,就可能导致数据的不一致和程序的错误行为。为了避免这种情况,临界区通常通过限制同时执行这段代码的线程数量,来确保对共享资源的访问是互斥的
¶临界区的作用
-
保护共享资源
-
防止竞态条件
-
提高程序稳定性
临界区的实现通常依赖于同步机制,如互斥锁、信号量、或条件变量
¶同步机制
-
互斥锁(Mutex):互斥锁是最常用的同步机制之一。当一个线程进入临界区时,它会获取一个互斥锁;当进程退出临界区时,它会释放互斥锁。其他进程进入临界区时,如果锁已被占用,则会被阻塞,直到互斥锁被释放
-
信号量(Semaphore):信号量是一种更通用的同步机制,它可以用来控制多个线程对多个资源的访问。在临界区场景中,信号量可以被设置为1,以模拟互斥锁的行为
-
条件变量(Condition Variable):条件变量通常与互斥锁一起使用,用于在多个进程之间传递信号。虽然条件变量不直接用于实现临界区,但它可以在线程鞥带进入临界区时提供有效的等待和唤醒机制
¶临界区互斥
¶原则
-
空闲让进
-
忙则等待
-
有限等待
-
让权等待
¶PV操作
PV必须成对出现

¶死锁
¶定义
多个进程因争夺资源而造成的一种僵局,如果没有外力,这些进程将无法推进
¶产生的原因
非剥夺资源的竞争和进程的不恰当推进顺序
¶必要的条件
-
互斥
-
环路等待
-
不可剥夺
-
请求和保持
¶解决方法
-
预防死锁
- 破坏互斥条件
- 破坏不剥夺条件
- 破坏请求和保持条件
- 破坏循环等待条件
-
避免死锁
- 安全状态、银行家算法
-
检测死锁
- 利用死锁定理
-
解除死锁
- 资源剥夺法
- 撤销进程法
- 进程回退法
¶内存管理
¶内存管理的目的和意义
¶引入目的
更好的至此多道程序的并发执行,提高系统性能
¶主要功能
-
内存空间的分配与回收
-
存储的保护与共享
保证各道作业在各自的存储空间内运行,互不干扰
-
地址变换
在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址
-
内存扩充
利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存
¶用户程序的主要处理阶段
-
编辑阶段:创建源文件
-
编译阶段:由编译程序将用户进程源代码编译成若干目标模块,生成目标文件
-
链接阶段:由链接程序编译后形成的一组目标模块及所需的库函数链接到一起,形成一个完整的装入模块,生成可执行文件
-
装入阶段:由装入程序将装入模块装入内存运行
-
运行阶段:
¶相关概念
¶程序的装入
¶绝对装入
在编译时,如果知道程序将驻留在内存什么位置,那么,编译程序将产生绝对地址的目标代码。即按照物理内存的位置赋予实际的物理地址
-
优点:在时间上效率很高
-
缺点:
- 由于内存大小限制,能够装入内存的并发执行的进程大大减少
- 编译程序必须知道内存当前空闲地址部分和其地址,而在多道程序下,编译程序根本不可能知道当前空闲地址的部分,因此绝对装入方式只适用于弹道程序环境
¶静态重定位
在程序装入对目标代码装入内存的过程中完成,是指在程序开始运行前,程序中指令数据的各个地址均已完成重定位,即完成虚拟地址到内存地址的映射。地址变换通常是在装入时一次完成的,以后不会改变
-
优点:不需要硬件支持(这里的硬件,指的是后文提到的重定位寄存器)(对比动态重定位)
-
缺点:程序在静态重定位之后就不能在内存中搬动了,并且要求程序的存储空间是连续的(对比动态重定位)
¶动态重定位
动态重定位的方式是把地址转换推迟到程序真正执行时才进行。但这种方式需要硬件支持,也就是重定位寄存器的支持,否则会影响指令执行速度
-
优点:可以解决碎片问题。(因为不需要像静态重定位一样要求程序装入,每个模块之间的存储位置不一定需要相联,只需要由自己的重定位寄存器就行)
-
缺点:需要硬件支持
¶程序的链接
-
静态链接:在程序运行之前,先将各目标及他们所需要的库函数链接生成一个完整的可执行程序,以后不在拆开
-
装入式链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式
-
运行时链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。其优点时便于修改和更新,便于实现对目标模块的共享。
¶内存空间的分配与回收
¶连续分配管理方式
-
单一连续分配:分配到内存固定的区域(单用户/单任务的操作系统)
-
固定连续分配:分配到内存不同的固定区域,分区可以相等可以不等,但要求一定是固定。
-
动态连续分区:
- 最佳适应
- 最坏适应
- 邻近适应
¶分页分段


¶页面置换算法

¶文件系统
文件是以计算机硬盘为载体的存储在计算机上的信息集合
文件系统:就是操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便文件“按名存取”
¶功能
-
文件管理
-
目录管理
-
文件空间管理
-
文件共享和保护
-
提供方便的接口
¶文件的逻辑结构
-
无结构文件
- 无结构文件按顺序组织起记录并积累保存,他是有序相关信息项的集合,以字节为单位(或称,字节流文件)
-
有结构文件(记录式文件)
- 顺序文件:文件中的记录一个接一个的顺序排列,在访问时需要顺序搜索文件
- 索引文件:通过一个索引表来检索文件
- 索引顺序文件:上述两者结合
¶目录和目录结构
¶文件控制块
在文件系统内部给每个文件唯一的设置一个文件控制块,它用于描述和控制文件的数据结构,与文件一一对应
FCB中包含了文件的基本信息(文件名,物理地址,逻辑地址,物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)
最重要,最基本的还是文件名、文件存放的物理地址。
¶目录结构
单级目录,二级目录,树形目录,图形目录
¶文件实现
¶文件分配方式
连续分配,链接分配,索引分配
对应的结构分别是顺序结构,链式结构,索引结构
¶文件存储空间管理
-
空闲表法

-
空闲链表法

-
位示图法

¶磁盘管理
¶磁盘的物理结构
-
柱面号、盘面号、扇面号
¶磁盘调度算法
-
先来先服务(FCFS
-
最短查找时间优先算法(SSTF
-
扫描算法(电梯算法(SCAN
-
循环扫描算法(CSCAN
¶设备管理
¶目标
使用方便、与设备无关、效率高、管理统一
¶IO设备
¶分类
存储设备或者输入输出设备、块设备或字节设备、低速中高速设备。
¶IO控制方式
-
程序直接控制方式(查询方式
CPU不断的去查询设备控制器是否将数据放到了数据存储器中,或者从数据存储器存到设备中,当完成IO时CPU才能去干别的事
-
中断方式:
这种方式当CPU发出指令后就可以去干别的时,当设备控制器把数据存在数据寄存器后向CPU发出中断请求,然后CPU再来处理这部分数据。
-
DMA方式:
虽然中断方式提高了CPU的利用率,但是数据基础器有限,中断是以字节单位进行中断,也就是说读取或存储一个字节后就需要进行中断,那么其实CPU的利用率还是很低的,所以就诞生了DMA方式,这种方式由DMA控制器直接将设备中的数据以数据块为单位直接传输到内存中,当传输结束后才向CPU发起总段
-
IO通道控制方式:
DMA虽然大大提升了CPU的利用率,但是DMA只能传输一个连续的数据块。所以引入了IO通道的控制方式,IO通道控制方式可以传输不连续的数据块,减少了CPU干预。CPU通过对IO通道发出指令,然后让IO通道自己工作,等待数据传输完才向CPU发起中断
¶缓冲区
¶引入目的
-
缓和CPU与外设间速度不匹配的矛盾
-
提高CPU与外设之间的并行性
-
减少CPU的中断次数
¶设置方式
-
单缓冲
当数据到达率与离去率相差很大时,可采用单缓冲方式
-
双缓冲
当信息输入和输出率相同(或相差不大)时,可利用双缓冲区,实现两者的并行
-
多缓冲
对应阵发性的输入、输出,为了解决速度不匹配问题,可以建立多个缓冲区
¶设备的分类
-
独占设备:
不能共享的设备,即:在一段时间内,该设备只允许一个进程独占。如打印机
-
共享设备:
可由若干各进程同时共享的设备,如磁盘
-
虚拟设备:
是利用某种技术把独占设备改造成可由多个进程共享的设备
¶三种分配技术
-
独占分配技术
-
共享分配技术:通常用于高速、大容量的直接存取存储设备
-
虚拟分配技术:利用共享设备去模拟独占设备,从而使独占设备变成可共享的、快速IO的设备。实现虚拟分配的最有名的是SPOOLing技术,也称作假脱机操作