提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
3.操作系统的功能 1.5 操作系统的分类(对应1.2 操作系统的发展过程)
5. 进程控制由什么来实现: 有哪些原语(创建原语、进程撤消原语、阻塞原语、唤醒原语、挂起原语、激活(解挂)原语、改变进程优先级)
8. 采用信号量和wait,signal原语来实现进程的互斥和同步
13.调度算法(先来先服务(FCFS)、最短作业优先(SJF),最高优先比算法,最高优先级优先算法…,如何计算各种算法下的平均周转时间、带权周转时间等。
3. 段式管理的原理、地址结构、地址转换、访问数据或者指令至少访问2次内存
5. 虚拟存储器的定义、理论基础(程序局部性原理)和容量以及实现的方法(虚拟页式管理和虚拟段式管理)
6、页面置换算法(最近最久未使用算法LRU、先进先出TIFO、理想置换算法OPT)
一、绪论
硬件相关,应用无关
DOS操作系统:即磁盘操作系统,是单用户单任务操作系统
设计实时操作系统时,(资源利用率 )不是主要追求的目标。
unix属于分时操作系统
分时
1.操作系统的定义和作用 1.1
操作系统是在硬件基础上的第一层系统软件,管理计算机所有软件和硬件资源,提供用户接口。
作用:作为用户与计算机硬件系统之间的接口(用户接口);
作为计算机系统资源管理者;
实现了对计算机资源的抽象。
2.操作系统的特征 1.3
并发、共享、虚拟、异步
并发:若干事件同一时间段发生
并行:若干事件同一时刻发生
并发和共享事OS的两个最基本的功能,二者互为条件
3.操作系统的功能 1.5 操作系统的分类(对应1.2 操作系统的发展过程)
功能:处理管理:进程控制、进程同步、进程通信、调度
存储器管理:内存分配、内存保护、地址映射、内存扩充
设备管理:缓冲管理、设备分配......
文件管理:文件存储空间管理、目录管理......
操作系统与用户之间的接口:命令接口、程序接口、图形接口
现代OS的新功能:系统安全、网络、支持多媒体
操作系统分类:(1)手工无操作系统
(2)单道批处理(顺序执行程序):(1)联机:CPU直接控制作业输入输出 (2)脱机
(3)多道批处理(并发执行):用户提交作业先存于外存,再I/O请求时,CPU空闲则调用作业。内存同时存在多个作业,宏观上并行;微观上串行(首先考虑系统效率和吞吐量)
(4)分时系统:在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘以交互方式使用计算机,共享计算机资源。(作业直接进入内存),时间片轮转
(5)实时操作系统:系统能及时响应外部事件的请求,在规定时间内完成该事件的处理
......
4. 处理机的状态及分类: 指令分类、中断的定义
计算机设置了两种状态:系统态(也称为管态或核心态)和用户态(也称为目态);
执行用户程序时处于用户态;
用户程序通过系统调用请求OS服务时,从用户态切换到系统态
指令:
特权指令:在系统态下运行的指令;
非特权指令:在用户态下执行的指令。
中断定义:指计算机运行过程中,出现某些意外情况需要主机干预时,机器能自动停止正在运行的程序转入新程序,处理完后又恢复到被暂停的程序继续执行。
中断:操作系统是中断驱动的;中断是硬件引起的;陷入(异常)是软件引起的
5. 用户接口的定义及分类 1.5.5
定义:用户与计算机系统交互的环境和方式
分类:应用编程接口API、操作命令
6. 系统调用的定义及实现 1.7
定义:提供用户程序和操作系统之间的的接口,目的是请求系统服务
计算机设置了两种状态:系统态(也称为管态或核心态)和用户态(也称为目态)。操作系统在系统态运行,应用程序只能在用户态运行。
步骤:处理机状态用户态->系统态->分析调用类型,转入相应系统调用子程序->执行完后恢复中断或设置新进程CPU现场->返回到中断或新进程往下继续执行
二、第2/3/4章 进程管理、调度、进程同步
先来先服务
10D
安全状态一定是没有死锁发生的,不安全状态不一定就是死锁
程序是构成进程的组成部分之一;作业是提交的任务实体,进程是执行任务;进程动态,程序静态。
无 环路不会死锁,有环路可能死锁;死锁了则表明进程资源图中一定有环路
1. 进程的定义
进程是程序执行的过程,是系统进行资源分配和调度的基本单位
2. 进程的组成
程序段、相关的数据集、PCB(程序控制块)
3. 进程的状态以及之间的转换 PPT 2-26~30
运行态:占有CPU,并在CPU上运行
就绪态:已分配到除CPU以外的所有必要资源,只要获得CPU就可立即执行(PCB仍然在内存)
阻塞态:指进程因等待某种事件的发生而暂时不能运行的状态(PCB仍然在内存)
4. 进程控制块的作用 PPT2-37
OS中用于管理控制的数据结构
PCB是OS中最重要的记录型数据结构
PCB是OS感知进程存在的唯一标志。
进程与PCB是一一对应的。
PCB随进程创建而建立,随进程结束而回收
PCB应常驻内存
作用:将一个不能独立运行的程序变成一个可以独立运行的基本单位,一个能与其他进程并发执行的进程。
进程描述信息:
进程标识符(process ID):唯一,通常是一个整数
进程名:通常基于可执行文件名(不唯一)
用户标识符(user ID):进程组关系
5. 进程控制由什么来实现: 有哪些原语(创建原语、进程撤消原语、阻塞原语、唤醒原语、挂起原语、激活(解挂)原语、改变进程优先级)
进程控制一般是由操作系统内核中的原语来实现的
创建原语、进程撤消原语、阻塞原语、唤醒原语、挂起原语、激活(解挂)原语、改变进程优先级
6. 互斥、同步的概念
互斥:竞争使用系统共享资源,进程间彼此无关
同步:进程间合作,彼此相关
同步机制应遵循的规则
空闲让进
忙则等待
有限等待(有限时间等待,以免“死等”)
让权等待(不能进入自己的临界区时,应及时释放处理机,以免进程陷入“忙等”)
7. 临界资源和临界区
临界资源(Critical Resource/CR):一次仅允许一个进程访问的资源。
临界区(Critical Section/CS):临界段,在每个程序中,访问临界资源的那段程序。
如程序段A、B有关于变量X的临界区,而C、D有关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。
8. 采用信号量和wait,signal原语来实现进程的互斥和同步
互斥信号量mutex初始为1;
同步信号量s初始值为0;
进程同步练习题:
1、桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。
试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。
提示:设置一个信号量表示可否向盘中放水果,一个信号量表示可否取桔子,一个信号量表示可否取苹果。
解:
设置三个信号量S,So,Sa 。
S:表示可否向盘中放水果,初值为1。
So:表示可否取桔子,初值为0。
Sa:表示可否取苹果,初值为0。
2、有一个仓库,可以存放A和B两种产品。存储空间充分大,但要求:
(1) 每次只能存入一种产品(A或B)
(2) -N<A产品数量-B产品数量<M。
其中,N和M是正整数。试用P、V操作描述产品A与B的入库过程。
提示:设两个信号量Sa、Sb
Sa:表示允许A产品比B产品多入库的数量
Sb:表示允许B产品比A产品多入库的数量
解:设:
互斥信号量mutex,初值为1。
Sa:表示允许A产品比B产品多入库的数量,初值为M-1; 即B的数量为0,A最多为M-1
Sb:表示允许B产品比A产品多入库的数量,初值为N-1;即A的数量为0,B最多为N-1
3、问题描述:假定阅览室最多容纳100人阅读,读者进入时,必须在门口的登记表上登记,内容包括:姓名、座号等;离开时要撤销登记内容。用P、V操作描述读者进程的同步算法。
4、问题描述:理发店由一个有几张凳子的等待室和一个放有一张理发椅的理发室组成。若没有理发的人员,理发师睡觉;若顾客到来,且所有的椅子占满,则该顾客离开理发店;若理发师正在理发,则该顾客就找一张椅子坐下等待;若理发师在睡觉,则该顾客唤醒理发师。设计一个理发师和顾客的协调程序。
9. 原语,wait,signal原语的物理意义
wait原语的物理意义是:申请一个信号量代表的资源或者资源的使用权
signal的物理意义是:释放一个资源或者资源的使用权
10. 进程的通信方式
进程通信:指进程之间信息交换。即在进程之间数据的传递过程
(1)低级通信:传递控制信息,如信号量和管程机制。
(2)高级通信:用户可直接利用OS提供的一组通信命令高效传送大量数据。
11. 线程的定义,与进程的区别
线程:是进程中的一个实体,是被系统独立调度的最小单位。
引入进程的目的是为了使多个程序更好的并发执行,改善资源利用率、提高系统效率。
引入线程则是为了减少并发执行时所付出的时空开销,使并发粒度更细、并发性更好。
区别:引入线程并发性更好;线程几乎不拥有资源;线程独立性比进程低;线程系统开销更小。
12. 处理机调度的层次:
(高级调度)宏观调度(作业调度)、中级调度(挂起与解挂)、微观调度(进程调度)
13.调度算法(先来先服务(FCFS)、最短作业优先(SJF),最高优先比算法,最高优先级优先算法…,如何计算各种算法下的平均周转时间、带权周转时间等。
周转时间:进程完成时间-进程到达时间
带权周转时间:周转时间/进程本身服务时间
平均即除以进程数
先来先服务(FCFS)、最短作业优先(SJF):
最高响应比:
此时优先级:1 +(等待时间 / 要求服务时间)
14.死锁的定义、产生的根本原因和必要条件
定义:一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到该资源,这种现象称为进程死锁(Deadlock),这一组进程就称为死锁进程。
根本原因:(1)互斥进程竞争共享资源引起进程死锁(资源分配策略)(可剥夺和非剥夺资源)
(2)进程推进顺序不当引起死锁
必要条件:
- 互斥条件:设计的资源是非共享的
- 不可抢占条件:不能强行剥夺进程拥有的资源
- 请求和保持条件:进程在等待一新资源时继续占有已分配的资源
- 循环等待(环路):存在一种进程的循环链,链中的每一个进程已获得的资源同时被下一个进程所请求
15、预防死锁的方法,死锁的避免,死锁的检测与解除
预防死锁:通过设置某些限制条件,去破坏死锁四个必要条件(不包括互斥)中的一个或多个,来防止死锁。
避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。——银行家算法
检测死锁:允许死锁发生,但及时检测出死锁的发生,并精确确定与死锁有关的进程和资源,然后采取适当措施,将系统中已发生的死锁清除掉。
解除死锁:与检测死锁相配套,用于将进程从死锁状态解脱出来。常用的方法是撤消或挂起一些进程。以回收一些资源,再将它们分配给处于阻塞状态的进程,使之转为就绪状态
三、第 5/6章 存储管理
单一连续分配——最简单,适用于单用户、单任务的OS。
固定分区分配——把内存划分为个数固定、大小相等或不等的多个区域。(大小可以不同但预先固定)
动态分区分配——指在系统运行的过程中建立分区,并使分区的大小刚好与作业的大小相等。这种存储管理的方法解决了固定分区严重浪费内存的问题。是一种较为实用的存储管理方法。
内存“扩充”:指在现有物理内存的基础上扩大内存的使用效率。
常用的内存扩充技术:对换、覆盖、紧缩、虚拟存储
1. 基于顺序搜索的动态分区分配方法
最先适应算法(空闲分区地址递增排序)、
最佳适应算法(空闲分区大小递增排序)、
最坏适应算法(空闲分区大小递减排序)
2. 页式管理的原理、地址结构、地址转换
页面大小等于每个物理块大小
访问数据或者指令至少访问2次内存
3. 段式管理的原理、地址结构、地址转换、访问数据或者指令至少访问2次内存
段号超过段表长度,则产生越界中断
段内地址是否大于该段的段长
4.段式和页式的区别
(1)页的大小固定且由系统决定,段大小由用户编写;
(2)页式管理是把内存视为一维线性空间;而段式管理是把内存视为二维空间,与进程逻辑相一致。
(3)页是信息的物理单位,段是信息的逻辑单位。
5. 虚拟存储器的定义、理论基础(程序局部性原理)和容量以及实现的方法(虚拟页式管理和虚拟段式管理)
定义:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
理论基础:程序的局部性原理(1)时间局限性:某条指令或数据被执行或访问后不久可能被再次执行或访问,典型原因是程序中存在大量循环操作
(2)空间局限性:程序在一段时间内所访问的地址肯集中
一定范围之内,典型情况是程序的顺序执行
(逻辑)容量:其逻辑容量由内存容量和外存容量之和所决定(虚拟地址大小有计算机编址范围决定),其运行速度接近于内存速度,而每个存储位的成本却又接近于外存。
请求分页存储管理方式:
页表:
状态位:表示该页是否装入内存;
访问位:此页在一段时间被访问的次数,可用来决定淘汰哪页(由不同的算法决定);
修改位:查看此页是否在内存中被修改过;
外存地址:该页在外存上的位置
在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。
请求分段;请求分段的段表机制、缺段中断机构、地址变换机构
6、页面置换算法(最近最久未使用算法LRU、先进先出TIFO、理想置换算法OPT)
最佳页面置换算法(OPT):选择“未来不再使用的”或“在离当前最远位置上出现的”页面被置换。(是一种理想情况,实际执行中是无法预知的,因而不能实现。可用作其他算法性能评价的依据)
先进先出(FIFO):选择建立最早的页面被置换。可以通过链表来表示各页的建立时间先后。
Belady现象:采用FIFO算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多,缺页率反而提高的异常现象。
最近最久未使用算法(LRU):选择最近最久未访问的页面予以淘汰。
缺页率=缺页次数/总次数
例:有一虚拟存储系统,采用先进先出的页面淘汰算法。在内存中为每个进程分配3块。进程执行时使用页号的顺序为 4 3 2 1 4 3 5 4 3 2 1 5
(1) 该进程运行时总共出现几次缺页。
(2) 若每个进程在内存有4块,又将产生几次缺页。
(3) 如何解释所出现的现象。
(1)
(2)
(3)FIFO页面淘汰算法会产生异常现象(Belady现象),即:当分配给进程的物理页面数增加时,缺页次数反而增加
7. 段页式管理的基本原理:访问数据或者指令至少访问3次内存。
总结
后续章节会陆续更新