一、进程管理
1.1 基本概念
进程由程序、数据、进程控制块(PCB)组成。
1.2 进程状态
三态模型
五态模型
1.3 进程间通信
同步与互斥
同步:进程之间的合作。
互斥:临界资源的分配。
临界资源的管理原则:有空即进,无空则等,有限等待,让权等待。
PV操作
只要有一个进程在使用临界资源,那么s就小于0。其它进程再调用它,也小于0,进入休眠。
当所有进程都没有使用临界资源时,那么s=0,可以继续执行。
procedure p(var s:semaphore) begin
s:=s-1;
if s<0 then
// 进程休眠
else
// 继续执行
end;
procedure v(var s:semaphore) begin
s:=s+1;
if s<=0 then
// 唤醒进程
else
// 继续执行
end;
利用PV操作可以实现互斥(对变量进行加锁),用于访问临界资源。
p(mutex)
临界区
v(mutex)
1.4 管程
由于需要合理安排PV操作的位置来实现互斥,这就导致编程上容易出错,导致死锁。
管程:管理进程。使用了更为安全的方法来实现互斥。
管程将所有对临界资源的申请(生产者)和释放(消费者)都放入缓冲区中,对缓冲区进行集中管理。
1.5 进程调度
三级调度:高级调度、中级调度、低级调度。
调度算法:先来先服务、时间片轮转、优先级调度、多级反馈调度(时间片和优先级结合)。
1.6 死锁
产生死锁的必要条件:互斥、请示保持、不可剥夺、环路。
死锁的处理策略:鸵鸟策略(不理睬策略)、预防策略、避免策略、检测与解除死锁。
死锁避免算法:银行家算法。进程申请临界资源就相当于到银行贷款,当银行有能力提供贷款时,就给进程分配临界资源,当进程用完临界资源后,释放资源,相当于还贷。也就是分配临界资源前,先检测,后分配。
1.7 线程
线程与进程类似,但是所消耗的资源较少,也叫轻量级进程。
线程在进程内部运行。如:一个软件为一个进程,而这个软件中画图是一个线程,而其它按钮是另一个线程,那么画图和按钮可以分别操作,互不影响。如果画图和按钮都属于同一个线程,那么画图时,再点击按钮,该软件可能会卡住。
二、存储管理
2.1 基本概念
存储器的结构
虚拟地址:并非真实的地址,又称相对地址、逻辑地址。
地址空间:相对地址空间可以转换为绝对地址空间。绝对地址空间又称物理地址空间。
存储空间:逻辑地址空间简称地址空间,物理地址空间简称存储空间。
地址重定位
地址重定位是指逻辑地址转为物理地址的过程。
静态重定位:程序装入主存时已经完成了地址重定位,缺点是必须分配连续的存储区域,且不能扩充存储空间,也不能移动。
动态重定位:程序在运行期间完成地址重定位,优点是存储空间可以扩充和移动,不必分配连续的存储区域。
2.2 存储管理方案
分区存储:每个进程分配一个存储区域,只能在该区域中运行。
分区存储有:固定分区,可变分区,可重定位分区。
分区保护:上界/下界寄存保护、基址/限长寄存器保护。
上界寄存器<=物理地址<=下界寄存器;基址寄存器<=物理地址<基址寄存器+限长寄存器。
2.3 分页存储
纯分页存储管理
分页原理:将进程的地址空间划分为若干个大小相等的区域,称为页。将主存空间划分为和页大小相等的物理块。对该进程分配主存时,将页分别装入不相邻接的物理块中。
地址结构:分页系统的地址由两部分组成,页号和偏移量(页内地址)。
页表:当进程的多个页被分配到多个物理块时,就会产生一个映射关系,即映射表,称为页表。
快表
页式存储至少要访问两次主存,要想提高速度,就在地址映射机构增加一个小容量的联想存储器(称为快表),用于存储访问频率高的少数页。
两级页表机制
为了提示页表的查询效率,对页表分为两级:第一级为外层页表,用于存入页表的物理地址、第二级为页表,用于存入页的物理块号。
2.4 分段存储
将地址空间分为若干个段,段也是连续的存储空间,但是各个段的长度不相等。与分页存储类似,这里也有映射表,称为段表,记录了段在主存中的基地址和长度。
2.5 段页式存储
结合了分页和分段存储的优点,得到段页式存储。
将主存分为若干个大小相等的物理块,将进程的地址空间分为若干个段,再将每个段划分为若干页,以页为单位离散分配。
2.6 虚拟存储
程序局部性原理
程序在执行时会表现出时间和空间的局限性。同一指令可能被反复执行,同一地址(或附近的地址)可能被反复访问。
虚拟存储器的实现
在主存不足时,可以使用硬盘当做主存,即虚拟存储。将暂时不运行的程序置换到硬盘中。
虚拟存储的置换算法有:最佳置换算法、先进先出(FIFO)转换算法、最近最少未使用(LRU)算法、最近未用置换(NUR)算法。
虚拟存储的置换会带来额外的开销,为了减少开销,必须把程序的工作集(即需要运行的那部分程序)驻留在主存中。正确选择工作集的大小(窗口尺寸),可以有效减少开销。
三、设备管理
3.1 概述
在设备管理中,主要利用中断技术、DMA技术、通道技术和缓冲技术。
3.2 IO软件
IO软件分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件、用户软件。
3.3 设备管理的相关技术
通道技术
通道使得数据传输独立于CPU。如串口发送,CPU向串口的通道发命令,串口完成发送后,发出中断信号,无需CPU模拟串口时序。
DMA技术
数据的存取独立于CPU,适用于大量的数据移动。
缓冲技术
如串口接收,引入了FIFO用于缓冲接收到数据,等接收完一帧,再处理数据,可以提高效率。
Spooling技术(外围设备联机操作)
将一台打印机共享给多个用户使用。
3.4 磁盘调度
磁盘调度分为移臂调度和旋转调度两类,先进行移臂调度,再进行旋转调度。
磁盘调度的目标是使磁盘的平均寻道时间最少。
磁盘驱动调度
常用的磁盘调度算法:先来先服务、最短寻道时间优先、扫描算法、单向扫描调度算法。
旋转调度算法
当移动臂定位后,旋转调度应该考虑如下情况:
访问同一磁道不同扇区时,先达到扇区的先进行传送。
访问不同磁道不同扇区,先达到扇区的先进行传送。
访问不同磁道相同扇区,任选一个扇区进行传送。
四、文件管理
4.1 文件与文件系统
常用的文件系统有:FAT、Vfat、NTFS、Ext、HPFS。
4.2 文件的结构与组织
文件的逻辑结构
文件的逻辑结构分为:有结构的记录式文件、无结构的流式文件。
在unix系统中,所有文件都被看作成流式文件。
文件的物理结构
文件的物理结构分为:连续结构、链接结构、索引结构、多个物理块的索引表。
4.3 文件目录
文件目录由文件控制块组成
文件控制块包含:基本信息类、存取控制信息类、使用信息类。
目录结构
目录结构常常使用多级目录结构,也称为树型目录结构。
4.4 存取方法和存储空间的管理
常用的空闲空间管理方法有:空闲区表、位示图、空闲块链、成组链接法。
4.5 文件的使用
操作系统在操作级和编程级向用户提供文件的服务,在操作级提供的命令有:目录管理类命令、文件操作类命令、文件管理类命令。
4.6 文件的共享和保护
文件共享
使用文件链接可以减少文件的复制,是一种文件共享的方法。
常用的文件链接和硬链接和符号链接。
硬链接:与普通文件没区别,但是允许有不同的文件名。
符号链接:与快捷方式相似,并非真实文件。
文件的保护
文件的保护方式有:存取控制矩阵、存取控制表、用户权限表、密码。
4.7 系统的安全与可靠性
系统的安全
从4个级别对文件进行安全性管理:系统级、用户级、目录级、文件级。
文件级的管理,可以对文件设置以下几种属性:只执行、隐藏、只读、读写、共享、系统。
文件系统的可靠性:转储和恢复、日志文件、文件系统的一致性。