第一章操作系统:为裸机配置的一种系统软件。
作用:有效的控制和管理计算机系统中的各种硬件和程序软资源,未用户提高更好的服务。
操作系统的主要特性:并发性:多个事件或活动在同一段时间间隔内同时发生。
共享性:操作系中的资源可被多个并发执行的进程共同使用。
异步性:进程以不同的速度向前推进,执行时间是不可预知的。
操作系统的分类及其特点:一、批处理操作系统:服务于一系列称为批(batch)的作业。
特点:批量集中处理、多道程序运行、作业脱机工作。
二、分时操作系统:多到程序的一个变种,cpu被多个交互式用户多路复用。
特点:①同时性;②独立性;③及时性;④交互性三、实时操作系统:当外部事件或数据产生时,能够接收并以足够快的速度处理。
特点:提供及时响应和高可靠性多道程序设计:是指允许多个作业(程序)同时进入计算机系统的内存并发并启动交替计算的方法。
目的:为了实现cpu和外部设备的并行工作提供坚实的基础。
优点:提高cpu、内存和设备的利用率;提高系统吞吐率,使单位时间内完成的作业数量增加;充分发挥系统的并发性,使设备与设备,cpu与设备之间都可以并行工作。
缺点:作业周转的时间变长。
实现多到程序设计必须解决的3个问题:(1)存储保护与程序浮动(2)处理器管理与分配(3)资源管理与调度系统调用:由系统提供给用户的特殊接口系统调用的作用:(1)内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性;(2)系统调用对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,大大提高了编程效率系统调用的分类(4个管理+2个信):(1)进程管理。
包括创建和撤销进程、终止或异常终止进程、阻塞和唤醒进程、挂起和激活进程、监视和追踪进程、获取和设置进程的属性。
(2)文件管理。
(3)设备管理。
(4)存储管理。
包括申请和释放内存。
(5)进程通信。
包括建立和断开通信连接、发送和接收消息、链接和断开共享内存、套接字操作、传送状态信息。
(6)信息维护。
获取和设置日期及时间、获取和设置系统数据、生成诊断和统计数据。
系统调用和函数调用的区别:(1)调用的形式和实现方式不同;(①函数调用所转向的地址是固定不变的,但系统调用中不包含内核服务例程入口地址,仅提供功能号,按功能号调用;②函数调用是在用户态执行的,只能访问用户栈;③系统调用要通过系统陷阱机制,从用户态转到内核态,服务例程在内核态执行并访问核心栈)(2)被调用代码的位置不同;(①函数调用时静态调用,调用程序和被调用代码处于同一线程序内,经链接后可作为目标代码的一部分,这是用户级程序,当函数升级或修改时,必须重新编译和链接;②系统调用时动态调用,系统调用的服务例程是在操作系统中,这时系统级程序,所以当系统调用的服务例程升级或修改时与调用程序无关,而且调用程序的长度大为缩短,能减少其所占用的内存空间)(3)提供方式不同。
(函数调用有编程语言提供,系统调用由操作系统提供)响应时间:从终端发送命令道操作系统,以及应答所需的时间影响响应时间的因素:时间片大小、用户数量、切换进程时的交换信息量第二章特权指令与非特权指令:特权指令:仅在内核状态下才能使用的指令;飞特权指令:在目态和管态下都能工作的指令。
目态:用户程序被执行时机器所处的状态管态:又称为核心态中断中断:(外中断或异步中断)指来至处理器之外的中断信号(与现执行的指令无关)异常:(内中断或同步中断)来至处理器内部的中断信号,通常由于在程序执行过程中,出现与当前指令关联的、不正常的或错误的事件。
中断异常的响应处理:(1)发现中断源。
(2)保护现场。
(3)转向中断/异常事件处理程序执行。
(4)恢复现场。
中断优先级:根据中断源的迫切程度分级,级别高的优先获得响应的权利。
中断装置所预设的响应顺序称为中断优先级。
中断屏蔽:防止同级的中断源相互干扰,给多级中断系统中断级别的设置带来很大的灵活性。
进程:是操作系统对资源分配、保护和调度的基本单位。
提出进程的原因:刻画系统的动态性,发挥系统的并发性,解决资源的共享性,提高资源的利用率。
进程的属性:(1)动态性:进程具有一定的生命周期(2)共享性:多个进程可执行同一个程序,进程可以共享同公共资源(3)独立性:每个进程是操作系统的一个独立体,邮自己的虚存空间,程序计数器和内部状态(4)制约性:进程因共享资源或协同工作产生相互制约的关系(5)并发性:执行时间上有所重叠(6)结构性进程的组成元素:(1)进程控制块(动态):用来存储进程的标志信息、现场信息和控制信息(2)进程程序块(静态):规定进程一次运行应完成的功能(3)进程核心栈(动态):用来保存中断/异常现场,保存函数调用的参数,局部变量和返回地址等(4)进程数据块(静态):是进程的私有空间,存放各种私有数据进程控制快:是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。
进程控制块包含三类信息:(1)标识信息(2)现场信息(3)控制信息进程创建的过程:(1)从PCB池中申请一个空闲的PCB,为新进程分配唯一的进程标识符(2)为新进程映像分配地址空间(3)为新进程分配各种资源(4)初始化PCB(5)把新进程的状态设置为就绪态(6)通知操作系统进程切换步骤:(1)保存现场信息(2)修改被中断进程PCB的相关信息(3)把被中断进程的PCB加入相关的队列(4)选择占用处理器运行的另一个进程(5)修改被选中进程PCB的相关信息(6)设置被选中进程的地址空间,恢复存储管理信息(7)根据被选中进程的上下文信息来恢复现场三态模型:运行态:进程占有处理器正在运行的状态。
就绪态:进程具备运行条件,等待系统分配处理器(cpu)。
等待态:又称阻塞态或睡眠态,进程不具备运行的条件,正在等待某个事件完成。
进程挂起状态的原因:资源不足、出现故障、请求挂起。
线程引入线程的目的:减少程序并发时所需的时空开销,使得并发粒度更细,并发性更好进程间的并性发粒度较粗,并发程度不高进程作为系统资源分配和保护的独立单位。
线程作为系统调度和分派的基本单位。
作业调度和低级调度算法1、先来先服务算法(非剥夺式FCFS)按照作业进入系统后备作业队列的先后次序来挑选作业,先进入系统的作业优先执行。
2、最短作业优先算法(非剥夺式SJF)算法以进入系统作业所要求的cpu运行时间长短为标准,总是选取预计计算时间最短的作业投入运行。
3、最短剩余时间优先算法(剥夺式)新进程/线程一如就绪队列,若它所需的cpu运行时间比当前运行进程/线程所需的剩余时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程/线程执行。
4、最高响应比优先算法(非抢占式HRRF)介于FCFS和SJF算法之间的一种折中的非剥夺式算法,既考虑作业等待时间又考虑作业处理时间。
响应比=作业周转时间/作业处理时间= 1 + 作业等待时间/作业处理时间5、轮转调度算法(剥夺式RR)及时间片调度,调度程序每次把cpu分配给就绪队列首进程/线程使用规定的时间间隔,称为时间片。
第三章顺序程序设计的特性:(1)执行的顺序性(2)环境的封闭性(3)结果的确定性(4)过程的课再现性优点:为程序的编制和调试提供了很大的方便缺点:系统执行效率不高并发程序设计的特点(与顺序程序设计相反):(1)程序的执行不再是顺序的(2)一个程序执行未结束另一个程序就已经开始执行(3)程序与计算不再是一一对应优点:提高系统资源的利用率缺点:使程序失去封闭性、顺序行、确定性和可再现性。
程序的并发性与并行性:并发:多个事件在同一个时间间隔内发生(时间段)并行:多个事件在同一个时刻发生(时间点)与时间有关的错误:(1)结果不唯一(2)永远等待临界区:并发进程中与共享变量有关的程序段临界资源:共享变量所代表的资源临界区调度的三个原则:(互斥使用,有空让进;忙则要等,有限等待;择一而入,算法可行)(1)一次最多只有一个进程进入临界区执行(2)如果已经有进程在临界区中,则试图进入临界区的进程应该等待(3)进入临界区的进程应该在有限的时间内推出,以便等待队列中的一个进程进入信号量:(1)一般信号量a)P(s):将信号量value的值减1,若结果小于0,则执行P操作的进程被阻塞,排入与s信号量有关的list所指队列中;若结果大于等于0,则执行P操作的进程继续执行。
b)V(s):将信号量value的值加1,若结果不大于0,则执行V操作的进程从信号量s有关的list所指的队列中释放一个进程,使其转换为就绪态,若结果大于0,则执行V操作的进程继续执行。
死锁:一个进程集合中的每个进程都在等待只能由此进程中的其他进程才能引发的事件,而无限制的等待陷入僵持的局面就叫死锁。
根本原因:系统拥有的资源数量不足,资源分配策略不当,进程对资源的使用要求不加限制以及并发进程的推进顺序不当。
死锁产生的条件:(1)互斥条件(2)占有和等待条件(3)不剥夺条件(4)循环等待条件死锁反之策略:破坏死锁产生的条件死锁避免:银行家算法死锁解除:(1)结束所有进程的执行并重启操作系统(损失最大)。
(2)撤销所有处于死锁的进程,解除死锁,继续运行。
(3)逐个撤销处于死锁的进程,回收其资源并重新分配,直到死锁解除。
(4)剥夺所有陷于死锁的进程所占用的资源,但并不撤销进程,直到死锁解除(代价最小)。
(5)根据系统保存的检查点回退进程,直到死锁解除(要求系统建立保存检查点、回退及重启机制)。
第四章地址重定位:(1)静态地址重定位(2)动态地址重定位(3)运行时链接地址重定位固定分区存储管理:内存空间被划分为数目固定不变的分区,各个分区的大小不等,每个分区之装入一个作业,若多个分区中都装有作业则它们可以并发的执行。
可变分区存储管理:按照作业大小来划分分区,划分的时间、大小、位置都是动态的。
可变分区的5种分配算法:(1)最先适应分配算法(2)下次适应分配算法(3)最优适应分配算法(4)最坏适应分配算法(5)快速适应分配算法连续分配内存不够处理方法:(1)移动技术(2)对换技术(3)覆盖技术分页式存储管理:(1)页面:进程逻辑地址空间分成大小相等的区,每个区称为页。
(2)页框:把内存物理地址空间分成大小相等的区,每个区的大小和页面大小相等。
(3)逻辑地址:分页存储器的逻辑地址由页号和页内位移两部分组成。
(4)内存页框表:表的长度取决于内存划分的物理块数,编号可与物理块号一致。
(5)页表:每个页面设立一个重定位寄存器,重定位寄存器的集合叫做页表。
物理地址=页框号×块长+页内位移影响缺页中断率的因素:f = F/A (f为缺页中断率,F为不成功方位次数,A为方位总次数)(1)内存页框数(2)页面大小(3)页面替换算法(4)程序特性全局页面替换策略:(1)最佳页面替换算法(2)先进先出页面替换算法(3)最近最少使用页面替换算法(4)第二次机会页面替换算法(5)始终页面替换算法Belady异常:当分配给进程的页框数变多时,缺页异常非但没有减少反而增加的现象。