第一章 操作系统引论
操作系统的目标
方便性,有效性,可扩充性和开放性
操作系统的作用
1.OS作为用户与计算机硬件系统之间的接口
2.OS作为计算机系统资源的管理者
3.OS实现了对计算机资源的抽象
操作系统的发展过程
1.单道批处理系统
2.多道批处理系统(Multiprogrammed Batch Processing System)
3.分时系统(Time Sharing System)
4.实时系统(Real Time System)
单道和多道批处理系统
单道批处理系统
概念:为实现对作业的连续处理,需要先把一批作业以脱机的方式输入到磁带上,在系统中配上监督程序(Moniter),在他的控制下,是这笔作业能一个接一个地连续处理
缺点:系统中的资源得不到充分的利用
多道批处理系统
概念:用户提交的作业先放在外存上,排成“后备队列”,作业调度程序按照一定算法选择若干作业调入内存,共享CPU和系统中的各种资源。
优缺点:
1)资源利用率高
2)系统吞吐量大
3)平均周转时间长
4)无交互能力
操作系统的概念
操作系统(Operating System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
分时系统的特点
多路性,独立性,及时性,交互性
实时系统
实时系统是指系统能够及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。
实时系统与分时系统特征的比较 *
- 多路性
信息查询系统和分时系统:系统按分时原文为多个终端用户服务
实时控制:系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制 - 独立性
信息查询系统:每个终端用户彼此相互独立互不干扰
实时控制系统:对信息的采集和对对象的控制也都是彼此互不干扰 - 及时性
信息查询系统:人所能接受的等待时间
实时系统:以控制对象所要求的截止时间来确定的,秒级,毫秒级 - 交互性
信息查询系统:访问系统中某些特定的专用服务程序
分时系统:能像终端用户提供收据处理、资源共享等服务 - 可靠性
分时系统:系统可靠
实时系统:系统高度可靠,多级容错措施
操作系统基本特性
- 并发(Concurrence):最重要的特性,使OS有效地提高系统中的资源利用率,增加系统的吞吐量
并行与并发:
并行性是指两个或多个事件在同一时刻发生。
并发性值两个或多个事件在同一时间间隔内发生。宏观并行,微观串行
- 共享(Sharing):资源共享或资源复用,指系统中的资源可供内存中多个并发执行的进程共同使用
- 虚拟(Vitual):通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能成“虚拟”
- 异步(Asynchronism):系统允许多个进程并发的执行,只有在进程获得所需资源后才执行相应操作
操作系统的主要功能
- 处理机管理功能:进程控制,进程同步,进程通信,调度
- 存储器管理功能:内存分配,内存保护,地址映射,内存扩充
- 设备管理功能:缓冲管理,设备分配,设备处理
- 文件管理功能:文件存储空间的管理,目录管理,文件的读/写保护
- (作业管理功能)
用户接口
用户接口:用户也发出命令以控制作业的运行
联机用户接口,脱机用户接口,图形用户接口
程序接口:为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。由一组系统调用组成。
第二章 进程的描述与控制
程序顺序/并发执行的特征
顺序执行:顺序性、封闭性、可再现性
并发执行:间断性、失去封闭性、不可再现性
进程
概念(定义):进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
组成:程序段、相关的数据段、PCB三部分构成进程实体(进程映像)
特征:
动态性、并发性、独立性、异步性
进程的基本状态及转换
三种基本状态:就绪(Ready)态、执行(Running)态、阻塞(Block)态
进程控制块(PCB)
PCB是进程实体的一部分,是进程存在的唯一标志
进程控制块包括的内容:
1)进程标识符 2)处理机状态 3)进程调度信息 4)进程控制信息
原语(Primitive)
由若干条指令组成的,用于完成一定功能的一个过程。是“原子操作(Action Operating)”。原语在执行过程中不允许被打断
多道程序环境下进程的制约关系 *
1.间接相互制约关系
多个程序在并发执行时,由于共享系统资源,(CPU,I/O设备)使这些程序形成相互制约的关系。对于打印机,磁带机等临界资源,必须保证多个进程对之间只能互斥的访问。
2.直接相互制约关系
为了完成某些任务而建立了两个或多个进程,他们为完成同一个任务而相互合作。直接制约关系源于相互合作。
临界资源(Critical Resource)
许多硬件资源如打印机,磁带机等,都属于临界资源,诸进程间应采取互斥方式,实现对这种资源的共享。
临界区(Critical section)
每个进程中访问临界资源的那段代码称为临界区
16字规则
同步机制应遵循以下准则:
空闲让进:临界区空闲时允许进入
忙则等待:已有进程访问临界区,其他进程等待
有限等待:请求访问的进程,应保证有限时间内进入临界区
让权等待:进程不能进入临界区时,立即释放处理器
信号量机制 **大题
原语:
P操作:wait(S)
V操作:signal(S)
wait(S){
while(s<=0){
}
s=s-1;
}
signal(S){
s=s+1;
}
“前”后V,“后”前P
生产者-消费者问题
一组生产者和一组消费者进程共享一个初始为空,大小为n的缓冲区,没满可放,不空可取,临界资源,放取互斥
同步:缓冲区没满(v)->生产者生成(P),缓冲区没空(V)->消费者消费(P)
互斥:缓冲区临界资源
!实现互斥的P操作要在实现同步的P操作之后
semaphore mutex=1;//互斥
semaphore empty=n;//同步
semaphore full=0;//同步
producer(){
while(1){
生产一个产品;
P(empty);
p(nurtex);
产品放入缓冲区;
V(nutrex);
V(full);
}
}
consumer(){
while(1){
p(full);
p(nutex);
从缓冲区取出一个产品;
V(mutex);
V(empty);
使用产品;
}
}
哲学家进餐问题
信号量设置chopsick[5]={1,1,1,1,1}
仅当一个哲学家左右两只筷子都可用时才允许他抓起筷子
semaphore chopstick[5]={1,1,1,1,1};
semaphore mutex=1;
Pi(){
while(1){
p(nutex);
P(chopstick[i]);//拿左
P(chopstick[(i+1)%5]);//拿右
v(nutex);
吃饭;
V(chopstick[i]);
V(chopstick[(i+1)%5]);
思考;
}
}
管程(Monitors)
定义:一个管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据
组成:
1.管程的名称
2.局部于管程的共享数据结构说明
3.对该数据结构进行操作的一组过程
4.对局部与管程的共享数据设置初始值的语句
进程通信的类型
1.共享存储器系统(Shared-Memory System)
2.管道(Pipe)通信系统
3.消息传递系统(Message Passing System)
4.客户机-服务器系统(Client-Server System)
信箱
信箱属于间接通信方式,进程之间的通信,需要通过某种中间实体来完成。该实体建立在随机存储器的公用缓冲区上,用来暂存发送进程发送给目标进程的消息;接收进程可以从该实体去除发送进程发送给自己的消息,此中间实体称为信箱,每个邮箱都有一个唯一的标识符。
结构:信箱头,信箱体
类型:使用邮箱,公用邮箱,共享邮箱
第三章 处理机调度与死锁
处理机调度层次
1.高级调度(High Level Scheduling)
又称长程调度或作业调度,调度对象:作业,外存调入内存
2.低级调度(Low Level Scheduling 重要
又称进程调度或短程调度,调度对象:进程,决定就绪队列中的哪个进程上处理机
3.中级调度(Intermediate Scheduling)
内存调度。把不能运行的进程调至外存,此时进程挂起状态。
为什么引入??啥
调度算法
先来先服务(FCFS)
可用于作业调度和进程调度
后备队列中选择最先进入队列的调入内存分配资源,创建进程放入就绪队列
特点:算法简单,效率低;利于长作业,不利于短作业;利于CPU繁忙型作业,不利于I/O繁忙型作业
短作业优先(SJF)
作业/进程
后备队列选运行时间最短的作业
缺点:
长作业不利,可能产生“饥饿”现象;未考虑紧迫程度;作业长短是用户估计的执行时间
!SJF调度算法的平均等待时间,平均周转时间最短
时间片轮转调度算法
主要用于分时系统,抢占式
就绪进程按到达时间先后次序排成一个队列,先来先服务,仅运行一个时间片,然后排到队尾
时间片大小对系统性能影响很大
时间片长短的决定性因素:系统的响应时间,就绪队列中的进程数目,系统的处理能力
死锁(Deadlock)
死锁的概念:
如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。
死锁产生的原因:
1.竞争不可抢占性资源引起死锁
2.竞争可消耗资源引起死锁
3.进程推进顺序不当引起死锁
死锁产生的必要条件:
1.互斥条件。某资源只能被一个进程占用
2.请求和保持条件。已保持了至少一个资源,又提出新的资源请求,该资源已被其它进程占有,请求被阻塞,但已获得的资源保持不放。
3.不可抢占条件。已获得的资源为使用完之前不能被抢占,只能用完自己释放
4循环等待条件。存在进程-资源的循环链,互相等待。
解决死锁的基本方法:
1.预防死锁。设置限制条件,破坏四个死锁产生条件中的一个或几个
2.避免死锁。资源动态分配的过程中,用某种方法防止系统进入不安全状态。
3.检测死锁。通过检测机构及时地检测出死锁的发生,采取适当的措施,把进程从死锁中解脱出来
4.解除死锁。已发生死锁,将进程解脱。常用方法:撤销一些进程,回收它们的资源,将它们分配给已处于阻塞状态的进程。
1-4对死锁的防范成都逐渐减弱,资源利用率提高,进程因资源而阻塞的频度下降。
银行家算法
死锁避免算法
安全序列:按安全序列分配进程,每个进程都能顺利完成
核心思想:在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,依此决定是否大于分配请求
数据结构描述
可利用资源向量(Available):
最大需求矩阵(Max):Max[i,j]=K
分配矩阵(Allocation):Allocation[i,j]=K
需求矩阵(Need):Need[i,j]=K
Need=Max-Allocation
第四章 存储器管理
存储器的存储结构层次
通用计算机存储结构至少应有三级:最高层CPU寄存器,中间为主存,最底层为辅存。
可重定位装入方式(Location Loading Mode)
可以根据内存的具体情况将装入模块装入到内存的适当位置
连续分配方式 *(熟知熟记掌握)
- 单一连续分配
内存在此方式下分为系统区和用户区两部分。
系统区:仅供OS使用,地址
用户区:仅装有一道用户程序,整个内存的用户空间由该程序独占
优点:简单,无外部碎片,可以采用覆盖技术
缺点:只能用于单用户,单操作系统,有内部碎片(没用上的区域),存储器的利用率极低 - 固定分区分配
是最简单的一种多道程序存储管理方式,将用户空间划分为若干个固定大小的区域,在每个分区中中装入一道作业。有空闲,则从后备作业队列中选择作业调入分区。
划分分区:分区大小相等,分区大小不等
内存分配:将分区按大小进行排队,并为之建立一张分区使用表,各表项包括:分区的起始地址、大小以及状态
优缺点:无外部碎片,有内部碎片,存储空间利用率低 - 动态分区分配
根据进程的实际需要,动态地为之分配内存空间。
数据结构:1空闲分区表 2空闲分区链 - 动态可重定位分区分配
动态分区分配算法 **
首次适应算法(First Fit ,FF)
空闲分区地址以递增顺序链接,分配内存时顺序查找,找到大小能满足要求的第一个空闲分区。
循环首次适应算法(next fit ,NF)
又称邻近算法
与首次适应算法类似,不同之处是,分配内存时从上次查找结束的位置开始继续查找
最佳适应算法(Best Fit ,BF)
将空闲分区按容量递增的方式形成分区链,找到第一个能满足要求的空闲分区。
最坏适应算法(Worst Fit,WF)
又称最大适应算法
空闲分区以容量递减的次序链接,找到第一个能满足要求的空闲分区,几条选出最大的分区。
可重定位分区分配(我不会)
“紧凑”:将内存中的所有作业进行移动,使它们全都相邻接。
对换(Swapping)
概念:所谓“兑换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据换入内存。
改善内存利用率的有效措施,可以提高处理机的利用率和系统的吞吐量
基本分页存储管理 *(结合图说原理)
把主存空间划分为大小相等且固定的块,块相对较小,作为驻村的基本单位。每个进程也以块为单位进行划分,进程在执行时,以块为单位逐个申请主存中的块空间。
内存中的块称为页框(Page frame)
外存称为块(block)
页面:分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页。
页表:系统又为每个进程建立了一张页面映像表,简称页表。
##### 基本分段存储管理
分页和分段的主要区别
分页:页是信息的物理单位;分页对用户不可见;页大小固定,系统决定;地址空间一维
分段:段是信息的逻辑单位;对用户可见;段长不固定;地址空间二维。更容易实现信息的共享和保护。
段页式管理方式
三次访问:1.段表 2.页表 3.目标内存
虚拟存储器
虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
页面置换算法 *
缺页中断数
页面置换数
最佳置换算法(OPT)
选择的被淘汰页面是最长时间内不再被访问的页面,以便保证获得最低的缺页率。
无法实现
先进先出页面置换算法(FIFO)
优先淘汰最早进入内存的页面
Belady异常:分配的物理块数增大而页故障数不减反增
最近最久未使用置换算法(LRU)
选择最近最长时间未访问过的页面予以淘汰
时钟置换算法(CLOCK)…了解
每帧关联一个使用位
使用位,修改位
第一轮:淘汰(0,0)
第二轮:淘汰(0,1),访问位置置0
第三轮:淘汰(0,0)
第四轮:淘汰(0,1)
//4.7节了解 4.7 请求分页:逻辑物理空间分部分 和基本分页:没在内存中可以进行请求(感觉会考点啥、
第五章 设备管理
IO设备分类
1.按使用特性分
- 存储设备:外存,辅存。存储速度比内存满,容量大
- I/O设备:分输入设备(键盘,鼠标,扫描仪,视频摄像),输出设备(打印机,绘图仪)和交互式设备(显示器)。
2.按传输速率分
- 低速设备:每秒几个或上百个字节。键盘、鼠标器
- 中速设备:每秒数千至数十万个字节。行式打印机、激光打印机
- 高速设备:数十万字节到千兆字节。磁带机、磁盘机、光盘机
I/O通道技术
在CPU和设备控制器之间增设了I/O通道。
目的:为了建立独立的IO操作,不仅是数据的传输能独立与CPU,也希望对IO操作的组织,管理及借书处理尽量独立,以保证CPU有更多的时间去进行数据处理。
I/O通道是一种特殊的处理机,具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。与一般处理器区别:一操作指令类型单一,二通道无自己的内存,与CPU共享内存
中断技术
中断:指CPU对I/O设备发来的中断信号的一种响应。外中断
内中断:陷入
中断处理程序
1.测定是否有未响应信号
2.保护被中断进程的CPU环境
3.转入相应的设备处理程序
4.中断处理
5.恢复CPU现场并退出中断
SPOOLING
假脱机
当系统中引入多道程序设计后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低俗IO设备上的数据传送到高速磁盘上。再用另一道程序模拟脱机输出时外围控制及的功能,把数据从磁盘传送到低俗输出设备上。
这样,可以在主机的直接控制下,实现以前的脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行。
在联机情况下实现的同时外围操作的技术称为SPOOLING技术。
磁盘调度算法 *
- 先来先服务(FCFS)
根据进程请求访问磁盘的先后次序进行调度
平均寻道时间较长 - 最短寻道优先(SSTF)
要求访问的磁道与当前磁头所在的距离最近
每次寻道时间最短 - 扫描算法(SCAN)
优先考虑磁头移动方向,找距离最近
59263
扫描56932
循环扫描56923
5.1.2 可能名词解释
5.1.4 不要
5.2重点! 大题:5.2.2 中断 5.2.4 IO通道
5.3稍微看看考得少
5.2.2与5.2.4结合理解
5.5.1概念看一下 好像要考
5.6磁盘 5.6.1稍微看一下
5.6.2重点! 算法;三部分时间:寻道旋转数据传输
5.6.3可以稍微看一下
第六章 输入输出系统
文件的逻辑结构
- 按是否有结构来分:
1.有结构文件(记录式文件):定长记录,变长记录(记录的长度)
2.无结构文件(流式文件) - 按文件的组织方式分类:
1.顺序文件:记录顺序排列所形成的文件
2.索引文件:为可变长记录文件建立一张索引表
3.索引顺序文件:为一组记录中的第一个记录建立一个索引表
FAT运算
目录
为什么有目录:
为了能对存储的大量文件实施有效的管理,必须对它们加以妥善组织,这主要是通过文件目录实现的。
不考:6.7 6.6 6.5.3
6.4为什么有目录;如何保证允许重命名!
6.4.3 相对路径 绝对路径
6.3.3 FAT运算!知道磁盘空间大小 FCB 一个盘块能放多少FCB 启动一次平均查找多少盘块