引论
OS定义
通常把计算机硬件系统上配置的第一个大型软件称为OS。该软件满足:
- 管理计算机系统的硬件和软件。
- 控制计算机系统的工作流程。
- 为其他软件和用户提供安全、方便的运行、操作环境。
- 提高计算机系统的效率。
多道程序设计并发执行与现代操作系统的关系(p5,例子)
多道程序设计是指:在内存中同时存放多道程序,这些程序可以并发执行(图1-3)。
与现代OS的关系:现代OS都采用了并发执行的工作流程。
OS基本类型及特征
类型分三种:批处理OS,分时操作OS,实时操作OS。
批处理OS特征:
- 批量处理,方便操作
- 自动执行,资源利用率高
- 缺少人-机交互能力,不便于调试程序
分时操作OS特征:
- 同时性
- 独立性
- 及时性
- 交互性
实时操作OS特征:
- 高及时性
- 高可靠性。
OS的基本功能
- 用户接口及作业管理
- 处理器管理
- 存储器管理
- 文件系统
- 设备管理
操作系统的接口
OS用户接口类型
- 命令接口
- 程序接口及系统调用
- UNIX的用户接口
系统调用含义
系统调用包含了以下两个方面的含义:
- 一组操作系统设计人员事先编写的子程序,这些子程序作为内核的一部分
- 程序员使用这组子程序的办法。
OS内核组成,基本特点
组成:
- 与硬件密切相关的操作
- 关键数据结构
- 基本中断处理程序
- 使用频繁的功能模块
基本特点:
- 常驻内存
- 运行在核心态
进程管理
多道程序设计并发执行和顺序执行的含义
顺序:处理器在开始执行一道程序后,只有在这道程序运行结束后(程序指令运行完成,或程序运行过程中出错终止运行),才能开始执行下一道程序。(DOS)
并发:在多道程序设计环境下,处理器在开始执行一道程序的第一条指令后,在这道程序完成之前,处理器可以开始执行下一道程序,同样的,更多其他的程序也可以开始运行。
进程定义、进程基本特征
一道程序在一个数据集上的一次执行过程,称为进程。
5个特征:动态、并发、独立、结构、异步(性*5)。
进程基本状态及转换
就绪、运行、阻塞(状态*3)。转换模型如下(p41):
进程的表示(PCB)及作用
PCB:进程控制块。
- 是OS对并发执行的进程进行控制和管理的根据
- 也是系统用来赶制进程存在的根据,即PCB是进程存在的唯一标志
进程管理的5个功能
控制、同步、通信、调度、死锁。
进程控制的原语(创建的主要操作,阻塞、唤醒对进程状态的变化)
创建的主要操作:
生成一个PCB——生成pid——初始化PCB各项内容——加入合适的就绪队列
阻塞:
修改PCB的进程状态——运行→阻塞。
现场保护——将处理器现场的内容保存在PCB。
将进程加入合适的等待队列。
唤醒:
从等待队列中移出进程。
修改PCB的进程状态——阻塞→就绪。
讲进程加入合适的就绪队列。
临界资源、临界区含义
一次只能让一个进程使用的资源称为临界资源。
这里“一次”的含义:在一个进程申请、分配得到资源起,到归还资源为止的这段时间内进程对该资源的使用过程称为一次使用。
临界区是指进程对应的程序中访问临界资源的一段程序代码。
信号量机制的含义(P,V操作定义)
信号量的struct简化定义如下:
struct semaphore(){
int value;
PCB *bq;
}
p(s){
s.value --;
if (s.value < 0) blocked(s);
}
v(s){
s.value ++;
if (s.value <= 0) wakeup(s);
}
blocked(s):阻塞原语,把当前调用p操作的进程设置为阻塞状态并加入到信号量s对应的等待队列bq中。
wakeup(s):唤醒原语,从信号量s对应的等待队列bq中唤醒一个进程。
在信号量机制中,p、v操作定义为原语。
pv操作意义:用信号量及PV操作实现进程的同步与互斥
互斥关系和PC问题(一般PC问题和复杂PC问题)
互斥关系:
两个或两个以上的一组并发程序,称其具有互斥关系,是指这组进程至少共享一类临界资源。当一个进程在临界资源对应的临界区内执行时,其他要求进入相关临界区执行的进程必须等待。
…
p(s);
临界区;
v(s);
…
(s:互斥信号量)
PC问题
假定生产者进程个数n,消费者进程个数m,缓冲区单元格个数k。
把PC问题分为以下四类
type | condition |
---|---|
简单PC问题 | n=m=k=1 |
一般PC问题 | n=m=1, k>1 |
复杂PC问题 | n>1, m>1, k>1 |
特殊PC问题 | n+m=3(or n+m=4), k=1 |
进程通信的含义,为什么需要通信
两个或多个进程之间交换数据的过程称为进程通信
其中提供数据的一方称为发送进程,得到数据的一方称为接收进程。
为什么需要通信?
- 任务协作
- 进程的独立性
- 进程通信的可行性
进程通信方式
- 共享存储区通信
- 消息缓冲通信
- 信箱通信
- 管道通信
什么是线程?引入的目的,线程的两种类型
把进程细化成若干个可以独立运行的实体,每个实体称为一个线程。
引入线程的目的
- 实现进程内部的并发执行,提高并行程度
- 减少处理器切换带来的开销
线程的类型
- 用户级线程
- 系统级线程
进程调度与死锁
操作系统中的几种调度
- 作业调度
- 进程调度
- 交换调度
- 设备调度
作业的四个状态(批处理系统作业的四个阶段)
- 提交状态
- 后备状态
- 执行状态
- 完成状态
作业调度基本算法的周转时间、平均周转时间的计算(P98例2)
- FCFS 最单纯的算法,谁先来谁先执行
- SJF 当一个任务完成之后,从后备队列中找耗时最短的执行
- HRN 当一个任务完成之后,从后备队列中找响应比最大的执行
任务J的响应比计算方法:(当前时间-J进入队列时间)/J任务所需耗时
进程调度两种方式
- 抢占方式
- 非抢占方式
进程调度基本算法[RR(P102例),优先级]
RR算法:设定一个时间片,作为允许进程占用的最长时间。
优先级算法:每个进程给予一个优先数,调度时选择优先级最高的进程。
进程死锁的含义,产生原因、四个必要条件
对于两个处于阻塞进程的进程pi,pj,
pi的阻塞需要pj的某个操作执行才能唤醒,
pj的阻塞需要pi的某个操作执行才能唤醒。
于是谁都解不开谁,这就是死锁。
死锁产生的根本原因:系统拥有的资源数量小于各进程对资源的需求总数。
四个必要条件:
- 互斥条件
- 不剥夺条件
- 请求与保持条件
- 环路等待条件
死锁预防的含义及预防方法
在资源分配上采取一些限制措施,来破坏死锁产生的4个必要条件之一。
(以上方法的作用都太有限。所以死锁预防其实是缺乏有效的办法的。)
安全状态的判断
在某一时刻,程序对于系统的所有进程,都可以找出一个处理器执行这些进程的顺序,按照这个顺序依次执行各个进程,每个进程都可以运行完成。
(PS:在某一时刻,若系统处于不安全状态,说明系统一定存在一组进程,他们将进入死锁状态。只有在之后的每次资源分配后都能保证系统处于安全状态,才能保证不存在进程死锁。)
死锁判断例子(P123例2)
假设某程序运行时需要访问临界资源R,该程序可供n个用户同时运行。设系统拥有资源R的数量为k,程序申请使用R的数量为x(每次只申请1个,申请x次)。
那么,k、x、n满足什么条件下,可以保证用户运行时不被死锁掉?
答案:当k-n(x-1) >= 1时即可。
系统一共有k个R。n个用户程序,每个程序都使用x-1次R(除掉现在在使用的这一次)
所以,剩余空间等于总数k减去总使用量n(x-1)。只要还有多出的空间,剩下的值一定大于1。死锁也就可以避免了。
存储器管理
存储管理主要功能
- 存储空间的分配和回收
- 重定位
- 存储空间的共享与保护
- 虚拟存储器
重定位、两种方式含义
由于一个作业装入到与其他地址空间不一致的存储空间,需要对其有关地址进行调整的过程称为重定位。
- 静态重定义
在程序装入时,把所有的虚拟地址全部一次的转换为物理地址。在创建相应的进程后,进程运行过程不再需要地址转换,则这种重定位方式称为静态重定位。
(DOS就是这种方法) - 动态重定义
程序装入时没有进行地址转换,而是在运行过程中,对将要访问的指令或数据的虚拟地址转换为物理地址。
简言之,CPU需要时,才将其转换为物理地址。
固定分区基本思想的数据结构、固定表现
基本思想:操作系统启动时,根据事先的配置,把用户区分成若干个存储区域,每个区域称为一个分区,各个分区的长度可以不相等。
启动成功后,分区的个数和每个分区的长度不再改变。
程序装入时,一个分区只能分配一道程序,而一道程序也只能占用一个分区,这种分配方式也成为连续分配。
动态分区基本思想,FF、BF、FF分配算法
FF算法:分配到能满足程序需求的第一个空闲区
BF算法:分配到能满足程序需求的,长度最小的空闲区
WF算法:分配到能满足程序需求的,长度最大的空闲区
静态分页基本思想及例子(P158)
在分页存储管理的内存分块,进程分页的基础上,如果程序装入时,要求把程序的所有页一次性的全部装入内存,那么这种分页管理称为静态分页存储管理,简称静态分页或基本分页。
虚拟存储器思想、请求分页的扩充页表的结构,其中A、M位的作用
结构主要又页号、块号、外存地址、中断位P、访问位A、修改位M组成
访问位A是页面调度参数之一。针对不同的页面调度置换算法,访问位A具有不同的含义。
修改位M表示该页装入内存后是否被修改,即该页是否被执行了写操作。M=0表示没有被修改,M=1表示已经被修改。修改位M在页面调度时使用。在执行具体写操作时,M=1。
FIFO、LRU算法的思想及淘汰页面的计算例子(P166-167)
二次机会置换算法的思想及淘汰页面的计算
抖动现象和Belady现象
在一段较短的范围内,集中在少数的几个页之间,系统频繁的进行调入和调出操作。把这种状况称为抖动现象。
按理说随着内存的快速增加,缺页率应该下降,但是对于FIFO算法,存在个别进程,分配给内存的块数增加,缺页率不降反升。这种情况称为belady现象
段页存储管理中段页和页表的关系及重定位过程
P188-189
分页与分段的主要区别
- 存储空间的分配单位粒度
分页:以页为单位分配存储空间,页长度固定
分段:以段为单位分配存储空间,长度由程序员设计决定 - 虚拟地址空间的维数
分页:一维
分段:二维 - 内存分配
分页:把内存空间堪称由一组大小相等的块组成
分段:采用动态分区 - 碎片
分页:每个进程的最后一个页可能不足一个块的长度,按页分配内存块时,存在内碎片。
分段:随着分配和回收的不断进行,可能存在很小的空闲区,造成外碎片。
文件系统
按名存取的含义
有了操作系统的文件管理,用户通过文件名访问文件内容,而无须了解文件内容在存储介质上的存放形式和存取细节,用户也就不必关心存储介质的物理特性。
这种使用方式称为文件的按名存取
文件逻辑结构的分类
- 流式文件(无结构)
- 记录式文件(有结构)
三种文件物理结构及其主要特点
连续结构
管理简单
存取速度快
存储空间连续分配,存储空间利用率不高链接结构
非连续的存储分配,提高了存储空间的利用率
方便文件内容的增加或删除
只适合顺序存取,存取速度慢
指针信息造成物理块信息不完整,并导致数据无法控制索引结构
非连续的存储分配,提高了存储空间的利用率
方便文件内容的增加和删除
实现随机存取
索引表占用额外的开销空间
增加检索的开销
FAT结构理解
FAT链接系统是改进的连接结构。
在FAT中每一个物理块对应一个表项,并按物理块号顺序组织。在FAT16中,一个表项占2B,FAT32为4B
以FAT16为例:
FFFFH——对应的物理块为空闲
0000H——对应的物理块为文件的最后一个块/或对应物理块已损坏不能使用
xxxxH——其他值表示该物理块的下一个物理块号
二级目录的名称及结构关系图
名称:用户文件目录+系统文件目录
结构简单容易实现,减少了检索的开销
解决了不同用户之间的文件重名问题
容易实现用户之间的共享
二级目录访问过程
- 按照用户名查找系统主目录,得到用户文件目录;
- 接着,按照文件名查找用户文件目录,得到文件FCB。
- 从而得到文件在外存中的存储位置。
文件保护的含义和方法
文件保护是指防止文件内容的破坏。
文件保护的主要方法是文件的备份和恢复。
文件保密的含义和基于存取权限的访问控制方式
文件保密是对文件存取的控制,防止文件的非法访问。
方式:存取控制矩阵,存取控制表,权能表。
设备管理
分类(按数据组织方式、固有属性的分类原则)
数据组织方式:
字符设备、块设备
固有属性:
独占设备、共享设备
设备独立性含义、PNP技术
用户在程序中使用的设备与具体物理设备无关,用户或程序使用的是逻辑设备,当进程运行时,由操作系统在逻辑设备与物理设备之间建立连接,即设备的分配。把这种设备使用方法的特点称为设备独立性。
PNP:一种设备的自动配置技术,不需要用户的手工跳线等操作,插入就可以使用,并且可以在开机状态下直接操作;当设备拔出/拆卸后,系统自动取消配置。
需要硬件、软件配合完成。
I/O控制方式
- 程序查询方式
- 中断方式
- DMA方式
- 通道方式
缓冲技术及其引入的目的
在I/O操作过程中,利用一种存储部件或其中的部分(如内存的一个区域),暂时存放要交换的数据,将来再把数据传输到目标位置。这种数据暂存的技术称为缓冲技术。
目的
- 提高系统工作的并形程度
- 减少I/O操作的次数
- 减少中断次数
- 提高系统的及时性,方便用户操作