1.操作系统的定义:
管理计算机资源;合理组织和控制工作流程;提高利用率和吞吐量;便于用户使用的程序接口集合
2.单道批处理系统:
特点:
自动性、顺序性、无调度
缺点:系统资源得不到充分的利用、系统cpu利用率低
3.多道批处理系统:
特点:
多道性、无序性、调度性、
多道批处理系统是操作系统形成的标志
优点:
系统资源利用率高、系统吞吐量大
缺点:
平均周转时间长、无交互能力;
4.分时系统:方便用户使用
推动分时系统的主要动力是及时性和交互性
推动多道批系统的主要动力是提高资源的利用率和系统的吞吐量、
特点:
分时性、独立性、及时性、交互性
5.实时系统
应用需求:实时控制、及时处理
6.分时系统与实时系统的比较与区别
实时系统比较稳定,分时系统与用户情况有关,时多时少;
(1)多路性:原则不一样。分时系统主要是按分时原则为多个终端用户分配;实时系统则是系统周期性的对信息采集以及多个对象控制
(2)独立性:彼此相互独立互不干扰;
(3)交互性:分时系统可以向终端用户提供数据处理、资源共享服务。实时系统受限于访问系统某些特定的专用程序;
(4)可靠性:分时系统要求系统更加可靠,实时系统要求系统高度更加可靠;
7.操作系统的四个基本特征:并发、共享、虚拟、异步
并发性:☞两个或多个事件在同一时间间隔发生;宏观上有多个程序同时运行,微观上交替执行
并行性:☞两个或多个事件在同一时刻发生;
8.进程:
系统中能独立运行并作为资源分配的基本单位,它是有一组机器指令、数据和堆栈等组成的,是一个独立运行的活动实体。
进程和并发是现代操作系统中最重要的基本概念
9.操作系统
主要目的和任务:
为多道批处理系统提供良好的环境,保证它能有条不紊、高效的运行,并能最大程度地提高系统中资源的利用率,便于用户使用
处理机管理功能:
进程控制、进程同步、进程通信、调度(作业调度和进程调度);
作业调度:从后备队列按照一定的算法择出作业分配资源,调入内存后建立进程插入就绪队列;
进程调度:从就绪队列按照一定算法 选择进程分配处理机,设置运行投入执行;
作业是任务实体,作业可以由至少一个进程组成,分配的内存位置不一样(就是说作业分配完给进程,进程也需要在对分配一下去执行)
8.2:进程的描述与控制
程序的执行方式是顺序执行的(顺序性、封闭性、可在现性)
程序并发执行(间断性、失去封闭性、不可在现性)
(无前趋关系的动作可以并发)
程序一般作为作业的组成部分,作业可以包含一个或者多个程序
进程:(动态性、并发性、独立性、异步性)
进程是一次性执行的活动实体;
是一个程序及数据在处理机上顺序执行时所发生的活动;
是资源独立分配以及调度的基本单位
三种状态:就绪、阻塞、执行
创建空白PCB,分配必要资源,插入就绪队列中,PCB清零,返还PCB(就绪通过进程调度下执行,执行进行I/O请求,到达阻塞状态,I/O请求完成到达就绪状态,如果执行在时间片下完成又恢复就绪状态;)
创建状态的目的是:保证进程调度,确保调度操作的完整性;
挂起的原因是:为了系统和用户的观察和分析进程的需要,终端用户的需求,父进程的需求,负荷调节的需要、操作系统的需要;
进程控制块PCB是进程存在的唯一标识符
作用:作为独立运行基本单位标志;能实现间断性运行方式;提高进程管理和调度所需要的信息
进程控制:进程是创建而产生,调度而执行,终止而消亡
原语操作:(要么不做,要么全做)
若干指令组成的,用于完成一定功能的一个过程。
进程同步:
对多个相关进程在执行次序上进行协调,使并发执行的进程按照一定规则共享资源
同步机制应遵循的规则:
忙则等待、空闲让进、有限等待、让权等待
进程同步的工具:信号量机制(实现同步的问题)
整型信号量(一个)
记录型信号量(一类一个)
AND型信号量(多类一个)
信号量集(多类多个)
信号量的应用:互斥和前趋关系
三种同步(互斥、前趋、合作)
管程:代表共享资源的数据结构以及对共享数据结构实施特定操作定义为一组过程所组成的资源管理程序共同构成了一个操作系统的资源管理模块
比较一般从该概念、定义、特点、区别来说
线程:
是一种轻型的实体。是独立调度和分派的基本单位,可并发执行,共享进程的资源
进程可以拥有多个线程,线程基本不拥有资源
线程可以进一步提高程序的并行程度、系统的利用率吞吐量,减少时空开销,线程的独立性要比进程低很多
线程的唯一标识是TCB线程控制块
处理机调度
层次
高级调度(作业调度,长程调度)
低级调度(进程调度,短程调度)
中级调度(内存调度)
处理机调度算法的目标
资源利用率(cpu的利用率=cpu有效的工作时间/(cpu有效的工作时间+cpu等待时间)、平衡性、公平性、策略的强制执行
处理机调度的两个准则:
对于用户来说:周转时间短、响应时间快、截止时间的保证、优先权准则
对于系统来说:均衡性、系统的吞吐量高、处理机的利用率高
分时系统的目标是:响应时间快、均衡性
分时系统的目标是:截止时间的保证、可预测性
作业:
不仅包含通常的程序和数据而且还有一份作业说明书(编译作业步,链接装配作业步,运行作业步)
作业在系统存在的标志:作业控制快(JCB)
作业调度的主要任务:
1.接纳多少的作业;2.接纳哪些作业;
先来先服务(FCFS)
优先考虑在系统中等待时间最长的作业,有利于长作业服务
短作业优先(SJF)
以作业的长短来计算优先级,作业越短,优先级越高,
缺点:必须预知作业运行的时间;对长作业非常不利;人机无法实现交互;没有考虑作业的紧迫程度;
优先级调度(PSA)
对于长作业来说,等待时间为作业的优先级,越长优先级越高;对于短作业来说,作业的长短为作业的优先级,运行时间越短优先级越高;仍然没有考虑到作业的紧迫程度;
高响应比优先调度(HRRN)
兼顾了长作业和短作业;
优先权=(等待时间+要求服务时间)/要求服务时间=Rp(响应比)
因为每次调度前都需要进行响应比计算,增加了系统的开销;
进程调度的任务:
保存处理机的现场信息
按某种算法选取进程
把处理机分配给进程
进程调度机制的三个部分:
排队器、分派器、上下文切换器
进程调度的方式
非抢占方式和抢占方式(原则:优先权原则、短进程优先原则、时间片原则)
轮转调度算法(RR)
原理:每隔一定时间间隔产生一次中断,激活系统中的进程调度程序,完成一个调度,将cpu分配给队首进程,令其执行,即让就绪队列上的每个进程每次仅仅运行一个时间片)
切换时机:若时间片未用完,正在运行的进程已经完成,立即激活调度程序,将它从就绪队列删除。然后调度就绪队列的队首进程执行;反之,如果时间片用完,则计时器中断处理程序激活,正在运行的进程尚未完成且调度程序将它送入就绪队列队尾
优先级调度算法
类型:非抢占 和抢占式
优先级的类型:
静态优先级:根据进程的类型、进程的类型、进程对资源的需求、用户要求来确定优先级
动态优先级:等待时间越长优先级越高,且规定在一定的速率后优先权下降,防止长作业的垄断
多队列调度的算法
将进程的就绪队列从一个拆分成若干个,将不同类型或性质的进程固定分配在不同的就绪队列。且采取不同的调度算法(一个就绪队列中的进程可以设置不同的优先级,不同的队列也可以设置不同的优先级)
多级反馈队列:
满足系统中不同用户进程调度策略的不同要求
不必事先知道各种进程所需的执行时间,可以较好的满足各种类型进程的需要(终端型用户、短处理作业用户、长批作业用户)
调度机制:
设置了多个就绪队列
每个队列采取FCFS算法
按照队列优先级调度
实时调度
实时调度的基本条件:
1.提供必要的信息(就绪时间、开始截止时间和完成截止时间、处理时间、资源要求、优先级)
2.系统处理能力强
3.采用抢占式调度机制
4.具有快速切换机制
实时调度算法的分类
1.非抢占式调度算法
2.抢占式调度算法
最早截止时间优先EDF
(第一次响应时间,任务开始的最迟时间)
最低松弛度优先LLF
松弛度=必须完成的时间-其本身的时间-当前时间
优先级倒置
原因:系统中存在影响进程运行的资源而可能产生”优先级倒置“的现象
方法:一进程进入临界区后所占用的处理机就不允许被抢占;二低优先级正在使用优先级资源,让低优先级继承高优先级。不让他们中间的优先级插入阻塞高优先级调度
死锁
概述:
若无外力的作用,这些进程无法推进;计算机资源(系统)和进程所处的一种状态;多个进程因竞争资源造成的一种僵持;
原因:竞争不可剥夺资源、可消耗资源、进程推进的顺序非法
产生死锁的必要条件:
互斥条件、请求和保持条件、不可抢占条件、循环等待条件
解决办法:
预防死锁:
破话”请求和保持条
破坏”不可抢占条件“
破坏”循环等待条件“
避免死锁 实质:系统在进行资源分配时,应使系统不进入不安全状态
系统安全状态:进程在请求和资源分配推进中可以找到一个合法的序列
银行家算法:保证请求数小于等于需求数,不满足则出错,请求数小于等于资源数,如果不满足等待,反之,把资源分配给进程,更新资源(系统的资源数,分配数,需求数)相应的释放,最后执行安全性算法,即找安全序列,设置向量,分配后回收资源,如果可以完成则为合法序列
流程:根据最大需求减去分配资源求得每个进程的需求数,根据系统资源数减去进程分配到的资源数求得剩下的系统资源数,找安全序列前,先走流程判断请求数小于需求数,请求数小于资源数(俩判断),不满足则等待,满足然后把资源数和该进程的分配数一起释放,作为下一个进程判断的资源数。
死锁定理:
在资源分配图中,找出一个既不阻塞也不独立的进程结点,它可获得资源而继续运行完毕后释放其占有的全部资源,相当于消去该请求边和分配边,如此下一个进程获得资源后运行完毕释放后消去,如此简化后,若消去图中所有的边使得进程结点成为孤立的点,则该图为可完全简化的,否则为不可完全简化的
死锁解除:抢占资源,终止进程
程序运行步骤:编译、链接、装入
程序装入,绝对装入、可重定位装入、动态运行时装入方式
程序的链接,静态链接、装入时动态链接、运行时动态链接
连续分配方式:单一连续分配、固定分区分配、动态分区分配、动态可重定位分区分配
基于顺序搜索的动态分配算法
首次适应算法,循环首次适应算法,最佳适应算法,最坏适应算法
基于索引搜索的动态分区分配算法
快速适应算法,伙伴系统,哈希算法
基本地址变换机构
首先判断页号是否小于页表长度,未越界的话,将页表始址与 页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中,再将有效地址寄存器中的页内地址寄存器的页内地址送入物理地址寄存器的块内地址字段中,完成从逻辑地址到物理地址的变换
引入快表的分页存储管理方式,有效访问时间为 EAT=λ×a+(1-a)(t+λ)+t=2t+λ-t×a. (λ表示查找快表所需要的时间,a表示命中率,t表示访问一次内存所需要的时间)
分页和分段的区别
页是信息的物理单位,
页的大小固定且由系统决定
分页的用户程序地址空间是唯一的
虚拟存储的定义:当用户看到自己的程序能在系统中正常运行时,用户所感觉到的内存容量会比实际内存容量大得多,但这只是一种错觉,是虚的,只是逻辑上进行了扩充。是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统
虚拟存储器的特征:多次性,对换性,虚拟性
虚拟存储器的工作(离散分配)
根据局部性原理可知,程序运行前没必要一次性装入,仅需要将少部分需要访问调入内存,如果未调入视为缺页,操作系统将请求调页,如果内存已满,则OS利用置换功能调入内存
局部性原理:程序执行是大部分顺序执行的,过程调用会使执行一部分区域到另一部分区域,多是循环结构,范围小 且在范围内运行
时间局部性和空间局部性
进程分配内存
1.最小物理块数的确定
2.固定还是可变分配策略对于分配内存
3.物理块分配算法
页面调入策略(何时,何处,如何)
缺页率f=F/A
F访问页面失败次数
A页面访问总次数=F+S
S页面成功次数
缺页中断处理时间t=β×ta+(1-β)×tb
β被修改率
ta缺页中断处理时间,tb被置换页面没有被修改的缺页中断时间
页面置换算法
最佳,先进先出,最近最久,最近最少,时钟算法