一、操作系统概述
1、基本概念
操作系统两个作用:第一,通过资源管理提高计算机系统的效率;第二,改善人机界面向用户提供友好的工作环境。系统软件分层:
特点及功能:P181
4个特征:并发性、共享性、虚拟性、不确定性
5个功能:处理机管理(进程管理)、文件管理、存储管理、设备管理、作业管理
2、操作系统分类
分类 | 特点 |
批处理操作系统 | 单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行 |
分时操作系统 | 采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统特点:多路性、独立性、交互性和及时性 |
实时操作系统 | 实时控制系统和实时信息系统交互能力要求不高,可靠性要求高(规定时间内响应并处理) |
网络操作系统 | 方便有效共享网络资源,提供服务软件和有关协议的集合主要的网络操作系统有: Unix、 Linux 和 Windows Server 系统 |
分布式操作系统 | 任意两台计算机可以通过通信交换信息是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性 |
微机操作系统 | Windows: Microsoft 开发的图形用户界面、多任务、多线程操作系统Linux:免费使用和自由传播的类 Unix 操作系统,多用户、多任务、多线程和多 CPU 的操作系统 |
嵌入式操作系统 | 运行在智能芯片环境中特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL 和 BSP 支持) |
嵌入式操作系统 -- 特点
微型化。从性能和成本角度考虑,希望占用资源和系统代码量少,如内存少、 字长短、运行速度有限、能源少(用微小型电池)。
可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
实时性。嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求高。
可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。
易移植性。为了提高系统的易移植性,通常采用硬件抽象层 (HAL) 和板级支持包 (BSP) 的底层设计技术。
二、进程管理
1、基本概念
程序:是指令和数据的有序集合,是存放在磁盘文件中的可执行文件,是一个静态的概念。
进程:是程序的一次执行过程,是一个动态的概念。由程序、数据和进程控制块PCB组成。
前趋图:在前趋图中,前趋活动完成后通知所有后继活动;后继活动开始之前要检查是否前趋活动已经全部完成。
2、进程状态
(1)三态模型
运行态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。
就绪态:当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。
等待态:一个进程正在等待某一事件发生而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
【总结:运行:处在CPU中;就绪:仅需cpu资源;等待:还需其他资源。】
(2)五态模型
(3)线程共享内容
3、进程间通信
(1)同步与互斥
同步:是合作进程间的直接制约问题。各进程速度有差异,在一定情况下需等待,是进程间的协作关系。
互斥:是申请临界资源进程间间接制约问题。是各进程对同类资源的竞争关系。
临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、 磁带机等。
临界区:每个进程中访问临界资源的那段代码称为临界区。【4个原则:有空即进、无空则等、有限等待、让权等待】P190
信号量:是一种特殊的变量,表示资源数。当信号量小于 0 时,还可以表示排队进程数。
(2)信号量(★★★★)
信号量分为两类:
【1】公用信号量:实现进程间互斥,初值为1或资源的数量
【2】私用信号量:实现进程间同步,初值为0或某个正整数
信号量S的物理意义:
S>=0 表示某资源的可用数量
S<0 其绝对值表示阻塞队列中等待该资源的进程数量
(3)PV操作(★★★★)
PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),针对信号量进行相应的操作。
P(S): ①将信号量S的值减1,即S=S-1; ②如果S<0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。
V(S): ①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。
P操作表示申请一个资源,V操作表示释放一个资源。
【解题技巧】
前趋图与 PV 操作结合,根据前趋图箭线标注信号量,再根据进程图填空。
针对箭线标注信号量:
箭线的起点位置是V操作(即前趋活动完成后以V操作通知后继活动);
箭线的终点位置是P操作(即后继活动开始前以P操作检查前趋活动是否完成)。
4、进程调度
【1】基本概念
进程调度是指当有更高优先级的进程到来时如何分配CPU。
调度方式分为2种:可剥夺、不可剥夺。P195
【2】调度算法
1、先来先服务
2、时间片轮转
3、优先级调度
4、多级反馈调度
5、死锁
所谓死锁,是指两个以上的进程互相都需要对方已经占有的资源,导致无法继续运行下去的现象。
1、进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。
如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。
2、根据题干给出的进程和资源分配,判断形成死锁的最小资源数或其他参数:对于这种情况,分配资源时每个进程得到可以完成进程的资源数减一,此时是形成死锁的最差情况,在此情况下多 1 个资源即可解决死锁问题,即不可能形成死锁。假设 m个进程各自需要 w 个 R 资源,系统中共有 n 个 R 资源,此时不可能形成死锁的条件是:m*(w-1)+1<=n。
3、避免死锁>>>银行家算法:当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。进程可以分期请求资源,但请求的总数不能超过最大需求量。当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。根据银行家算法判断相关进程序列是否会形成死锁,是则为不安全序列。
三、存储管理
1、基本概念
物理地址:给内存的存储地址进行编址,可以理解成为内存中的某个存储单元编号。
虚拟地址:又称逻辑地址,是从0号单元开始编址并顺序分配所有对应地址单元的。
地址重定位:将逻辑地址转变成内存物理地址的过程
2、分页存储管理
(1)分页原理
页:将一个进程的地址空间划分为若干个大小相等的区域。
块:将内存空间划分成与页相同大小的若干个物理块。
在为进程分配主存时,将进程若干页分别装入到多个不相邻的块中。
(2)地址结构
分页系统地址结构由两部分组成:页号+偏移量。如图中地址长度为32位,其中0~11位是页内地址(每页大小4kb),12~31位是页号,允许地址空间大小最多为1Mb个页。
(3)页表
当进程多个页面离散地分配到主存的多个物理块时,系统应能保证在主存中找到进程要访问的页面所对应的物理块。为此,系统为每个进程建立了一张页表。页表中的一条记录代表某个页在主存中对应的物理块号。
3、分段存储管理
(1)基本原理
在分段存储管理方式中,作业地址空间被划分为若干个段,每个段是一组完整的逻辑信息,每个段都有自己的名字,都是从0开始编址的一段连续的地址空间,各段长度不相等。
(2)地址结构
分段系统地址结构有2部分:段号+段内地址。如图为长度32位的地址结构,允许一个作业最多有64kb个段,每个段最大长度为64kb。
(3)段表
分段式存储系统会为每个段分配一个连续的分区,进程中的各个段可以离散地分配到主存的不同分区中。为此,系统会为每个进程建立一张段表。段表中记录了某段的长度及该段在主存中的起始地址。
4、段页存储管理
(1)基本原理
先将整个主存划分成大小相等的块,将用户程序划分为若干段,再将每个段划分成若干页,以块为单位离散分配。
系统要同时配置段表和页表。
(2)地址结构
段页式管理的地址结构:
(3)变换过程
在段页式系统中,逻辑地址>>>>>>物理地址变换过程:
【1】根据段号s查段表,得到页表的起始地址
【2】根据页号p查页表,得到物理块号b
【3】将物理块号b+页内地址w,得到物理地址
5、虚拟存储管理
(1)程序局部性原理
在一段时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域。
【1】时间局限性:指如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行;如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。其原因是在程序中存在着大量循环操作
【2】空间局限性:一旦程序访问了某个存储单元,则不久的将来,其附近的存储单元也最有可能被访问。其原因为程序是顺序执行的。
(2)虚拟存储器的实现
【1】请求分页系统
【2】请求分段系统
【3】请求段页式系统
(3)请求分页管理
请求分页是在纯分页系统基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。它是目前常用的一种虚拟存储器方式。
请求分页系统,每当所要访问的页面不在主存时,便会产生一个缺页终端,请求OS将所缺页调入主存。
(4)页面置换算法
在进程运行时,如果发生缺页,而此时主存中又没有空闲块时,未来保证进程能正常运行,必须从主存中调出一页程序或数据送磁盘的对换区。但究竟将那个页面调出,需要一定的页面置换算法。
【1】最有算法OPT(理想型)
【2】随机算法 RAND(随机性)
【3】先进先出 FIFO(可能产生“抖动”):“抖动”>>>>>>刚被置换出去的页很快又被访问,需重新调入。
【4】最近最少使用 LRU(依据局部性原理):最常用
【解题技巧】
页面淘汰时,主要依据原则(考试中默认按照此原则进行淘汰):
首先,淘汰最近未被访问的(访问位为 0),
其次,淘汰被访问但未被修改的(即修改位为 0,因为修改后的页面淘汰时代价更大)。
6、解题总结
(1)知道页面大小时,可以依此判断页内地址的长度,并据此知道该地址的页号;
(2)页号与页帧号的转换可以通过查表进行;
(3)段地址的格式,段号后跟段内地址不能超过段长;
(4)页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。
(5)段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
(6)段页式存储:段式与页式的综合体。先分段,再分页。1 个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。