操作系统知识
操作系统是计算机系统必不可少的核心系统软件,其他软件建立在操作系统的基础之上,并在操作系统的统一管理和支持下运行的,是用户与计算机之间的接口。
1.操作系统概述
1.1操作系统的基本概念
- 定义:能有效的组织和管理系统中的各种软硬件资源合理地组织计算机系统工作流程控制程序的执行并且向用户提供一个良好的工作环境和友好的接口。
- 作用:一,通过资源管理提高计算机系统的效率;二,改善人机界面向用户提供友好的工作环境。
- 特征:并发性,共享性,虚拟性和不确定性。
- 功能:
- 进程管理:实质上是对处理器的执行时间进行管理采用多道程序等技术将CPU的时间合理的分配给每一个任务主要包括进程控制,进程同步,进程通信和进程调度。
- 文件管理:主要包括文件存储空间管理,目录管理,文件的读写管理和存取控制。
- 存储管理:存储管理是对主存储器空间进行管理,主要包括存储分配与回收,存储保护,地址映射和主存扩充。
- 设备管理:实质上是对硬件设备的管理,包括对输入输出设备的分配,启动,完成和回收。
- 作业管理:包括任务,界面管理,人机交互,图形界面,语音控制和虚拟现实等。
1.2操作系统分类及特点
- 批处理操作系统:
- 单道批处理操作系统:单道的含义是一次只有一个作业装入内存执行。当一个作业运行结束后随即立即调入同批的下一个作业,从而节省了作业之间的人工干预时间提高了系统的资源的利用率。
- 多道批处理操作系统:允许将多个作业装入内存执行,在任意时刻作业都处于开始点和终结点之间。每当运行中的一个作业由于输入输出操作需要叫外部设备时就把CPU交给另一个等待运行的作业,从而将主机与外部设备的工作由串行改为并行。进一步避免了因主机等待外设完成任务而浪费宝贵的CPU时间。多道批处理系统主要有3个特点:多道,宏观上并行运行,微观上串行运行。
- 分时操作系统:在分时操作系统中一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片轮流为各个终端的用户服务。分时操作系统主要有4个特点:多路性,独立性,交互性和及时性。
- 实时操作系统:实时是指计算机对于外来信息要有足够快的速度进行处理,并在被控制对象允许的时间范围内做出快速反应。实时操作系统对交互能力要求不高,但要求可靠性有保障。
- 网络操作系统:网络操作系统试试联网计算机能方便而有效的共享网络资源,为用户提供各种服务的软件和有关协议的集合。一个典型的网络操作系统的特征包括硬件独立性,多用户支持等。
- 集中模式
- 客户端服务器模式
- 对等模式
- 分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机没有主次之分,任意两台计算机可以通过通信交换信息。
- 微型计算机操作系统
- 嵌入式操作系统:嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及他说的操作控制的各个部件装置等资源进行统一协调处理指挥和控制。嵌入式操作系统有以下特点:微型化,可定制,实时性,可靠性,易移植性。
1.3操作系统的发展:
计算机各代的划分主要是硬件和操作系统软件技术的创新为标志。促使操作系统发展的因素主要有三方面:第一,软件的不断升级与新的硬件产品出现,需要操作系统提供更多更复杂的支持。第二,新的服务需求,操作系统为了满足系统管理者和用户需求需要不断扩大服务范围。第三,修补操作系统自身的错误,操作系统在运行的过程中其自身的错误也会被不断的发现,因此需要不断的修补操作系统自身的错误。
2.进程管理
2.1基本概念
- 程序顺序执行的特征:顺序性,封闭性,可再现性。
- 程序并发执行的特征:失去封闭性,程序和机器执行程序的活动不再一一对应,并发程序间相互制约
- 进程的组成:进程是程序的一次执行。该程序可以和其他程序并发执行。进程通常由程序,数据和进程控制块(PCB)组成,PCB是进程存在的唯一标志。
- 进程的状态及其状态间转换
- 三态模型:
- 运行:当一个进程在处理机上运行时则称该进程处于运行状态。显然对于单处理器系统处于运行状态的进程只有一个。
- 就绪:一个进程获得了除处理器外的一切所需资源一旦得到处理机即可运行则称此进程处于就绪状态。
- 阻塞:注射也称等待或睡眠状态,一个进程正在等待某一事件发生而暂停运行,这时即使把处理机分配给进程也无法运行。故称该进程处于阻塞状态。
- 五态模型:相较于三态模型多了新建态和终止态。
- 具有挂起态的进程状态以及转换:
- 活跃就绪:活跃就绪是指进程在主存并且可被调度的状态。
- 静止就绪:静止就绪是指就绪进程被对换到辅存时的状态。是不能被直接调度的状态,当主存中没有活跃就绪态进程或者是挂起态进程具有更高的优先级时系统就把挂起就绪态进程调回主存转换变为活跃就绪态。
- 活跃阻塞:回页阻塞是指进程在主存一旦等待的事件产生便进入活跃就绪态。
- 静止阻塞:静止阻塞是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪态。
- 三态模型:
2.2进程的控制
进程控制就是对系统中所有进程从创建到消亡的全过程实施有效的控制。进程控制是由操作系统内核中的原语实现。内核是计算机系统硬件的首次延伸,是基于硬件的第一层软件扩充。原语是指由若干条机器指令组成的用于完成特定功能的程序段。原语的特点是执行时不能被分割。
2.3进程间的通信
- 进程间的同步:所谓进程间的同步是指系统中一些需要相互合作协同工作的进程。这样的相互联系称为进程的同步。
- 进程间的互斥:进程的互斥是指系统中多个进程因征用临界资源而互斥执行。一次只能供一个进程使用的资源称为临界资源。
- 临界区管理的原则:临界区是进程中对临界资源实施操作的那段程序。有空则进,无空则等,有限等待,让权等待。
- 信号量机制:信号量的物理意义:当S>=0表示某资源的可用数,S<0则其绝对值表示阻塞队列中等待该资源的进进程数。 PV操作是低级的通信原语,在执行间不可分割。P操作表示申请一个资源,V操作表示释放一个资源。
- 高级通信原语:共享存储模式,消息传递模式,管道通信。
2.4管程
管程的引入:采用资源集中管理的方法将系统中的资源用某种数据结构抽象的表示出来。采用这种方式对共享资源的管理,就可以借助数据结构及其上的实施操作的若干过程来进行,对共享资源的申请和释放可以通过过程在数据结构上的操作来实现。
2.5进程调度优先级调度优先级调度
进程调度方式是指当有更高优先级的进程到来时如何分配CPU。调度方式分为可剥夺和不可剥夺两种。可剥夺式是指当有更高优先级的进程到来时强行将正在运行的CPU分给高优先级的进程,不可剥夺是是指当有更高优先级的进程到来时必须等待正在运行陈庆城自动释放占用的CPU然后将CPU分配给高优先级的进程。
- 三级调度:
- 高级调度:又称为长调度,作业调度或者接纳调度。他决定处于输入池中的哪个后备作业可以调入主系统,做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。
- 中级调度:又称为中程调度或对换调度。它决定处于交换区中的哪一个就绪进程可以调入内存,以便直接参与对CPU的竞争。
- 低级调度:又称为短程调度或进程调度。它决定处于内存中的哪一个就绪进程可以占用CPU。低级调度是操作系统中最活跃最重要的调度程序,对系统的影响很大。
- 调度算法:
- 先来先服务(FCFS): FCFS按照作业提交或进程成为就绪状态的先后次序分配CPU,其进程调度总是将就绪队列头的进程投入运行。主要用于宏观调度。
- 时间片轮转:主要用于微观调度其设计目标是提高资源利用率。
- 优先级调度:优先级调度算法是让每个进程拥有一个优先数,数值大的表示修仙极高。系统在调度时总选择优先数大的占用CPU。优先级调度分为静态优先级和动态优先级,静态优先级是指进程的优先级在创建时确定,直到进程终止时都不会改变动;态优先级是指创建进程时赋予一个优先级,在进程运行中可以改变。
- 多级反馈调度
- 进程优先级确定:…
2.6死锁
死锁是指2个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
- 原因:产生死锁的原因为竞争资源以及进程推进顺序非法。
- 必要条件:产生死锁的4个必要条件是互斥条件,请求保持条件,不可剥夺条件和环路条件。
- 处理:
- 死锁预防:采用某种策略限制并发进程对资源的请求破坏死锁产生的4个必要条件之一使系统在任何时候都不满足死锁的必要条件。
- 预先静态分配法:破坏了不可剥夺条件。预先分配所需资源保证不等待资源。该方法的问题是降低了对资源的利用率,降低进程的并发程度,有时可能无法预先知道所需的资源。
- 资源有序分配法:破坏环路条件,把资源分类排序保证不存成环路。该方法存在的问题是限制进程对资源的请求,由于资源的排序占用系统开销。
- 死锁避免:需要很大的系统开销。银行家算法对于进程发出的每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不予分配;如果分配资源后系统仍处于安全状态,则实行分配。与死锁预防策略相比,它提高了资源的利用率,但检测分配资源后系统是否安全增加了系统开销。
- 死锁检测:系统定时的运行一个死锁检测程序判断系统是否发生死锁若检测到有死锁则设法加以解除。
- 死锁解除:
- 资源剥夺法。从一些进程那里强行剥夺足够数量的资源分配给死锁进程
- 撤销进程法。依据某种策略逐个的撤销死锁进程直到解除死锁为止
- 死锁预防:采用某种策略限制并发进程对资源的请求破坏死锁产生的4个必要条件之一使系统在任何时候都不满足死锁的必要条件。
2.7线程
引入线程的原因是进程在创建,撤销和切换中系统必须为之负担较大的时空开销;故在系统设置的进程数目不宜过多,进程切换频率不宜太高,这就限制了并发程序的提高。引入线程后将传统进程的2个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。线程是进程中的一个实体,是被系统独立分配和调度的基本单位。
存储管理
3.1基本概念
- 存储器的结构:寄存器+高数缓存+主存+外存
- 虚拟(逻辑)地址:对于程序员来说,数据的存放地址是由符号决定的。所以称符号名地址或者称为名地址。而把源程序的地址空间称为符号名的地址空间或者名空间,它是从0号单元开始编制定顺序分配所有的符号名所对应的地址单元。所以它不是主存中的真实地址,故称为相对地址,程序地址,逻辑地址或虚拟地址
- 地址空间:逻辑地址的集合
- 存储空间:物理地址的集合
- 地址重定位:将逻辑地址变换成主存物理地址的过程。
- 静态重定位:是指在程序登录祖传时已经完成了逻辑地址到物理地址的变换在程序执行期间将不再发生变化
- 动态重定位:是指在程序运行期间完成逻辑地址到物理地址的变换
3.2存储管理方案
- 分区存储管理:基本思想是把主存的用户区划分为若干个区域,每个区域分配给一个用户作业,使用。并限定他们只能在自己的区域中运行。(固定分区+可变分区+可重定位分区(解决碎片问题))对于可变分区的请求和释放分区主要有以下4种方法
- 最佳适应算法:假设系统中有N个空白区每当用户申请一个空间时将从这N个空白区中找一个最接近用户需求的分区。(容易产生外碎片)
- 最差适应算法:系统总是将用户作业装入最大的空白区(不容易产生外碎片)
- 首次适应算法:每当用户申请一个空间时系统总是从主存的低地址开始选择一个能装入作业的空白区(当用户释放空间时该算法更容易实现相邻的空白区合并)
- 循环首次适应算法:每次分配都是从刚分配的空白区开始寻找一个能满足用户要求的空白区。
- 分区保护:防止未经核准的用户访问分区
- 采用上界+下界寄存器保护
- 采用基址+限长寄存器保护
3.3分页存储管理
- 纯分页存储管理
- 分页原理:将一个进程的地址空间划分成若干个大小相等的区域,称为页。将主存空间划分成和页大小相同的若干个物理块,称为块或页框。在为进程分配主存时,将进程中若干页分别装入多个不相邻接的块中。
- 地址结构:页号+页内地址
- 页表:页号到物理块号的地址映射(逻辑地址到物理地址的映射)
- 块表:在地址映射机构中增加一个小容量的联想存储器,联想存储器由一组高速存储器组成,称之为快表。用来保存当前访问频率较高的少数活动页的页号及相关信息。
- 两级页表机制:第一级是页目录表,其中的每个表项是存放某个页表的物理地址;第二级是页表,其中的每个表项所存放的是页的物理块号。(j减少页表占的空间)
3.4分段存储管理
- 分段原理:作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段的长度是不等的。
- 地址结构:段号+段内地址
- 段表:每个段在表中占有一个表项,在其中记录了该段在主城中的起始地址和段的长度。
3.5 段页式存储管理
分页的优点是:分页的过程是由系统操作完成的,对用户是透明的。所以用户不必关心分页的过程,其缺点是不易实现程序段的共享;分段的优点:段是信息的逻辑单位,其优点是易于实现段的共享。
- 段页式原理: 将整个主存化分成大小相等的页框,将用户程序按照程序的逻辑关系分为若干个段,并为每一个段赋予一个段名,并且将每一个段划分成若干页,以页框为单位离散分配。
- 地址结构:段号+段内页号+页内地址
- 段表+页表:段表内存放页表始址和页表长度。
虚拟存储管理
一个作业只是部分装入主存便可以开始运行,其馀部分暂时留在磁盘上,在需要时再装入主存,这样可以有效利用主存空间。虚拟存储器是具有请求调入功能和置换功能,能仅把作业的一部分装入主存便可以运行作业的存储系统,是能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。
- 程序局部性原理:
- 时间局部性:如果程序中的某条指令一旦执行则不久的将来该指令可能被再次执行,某个储存单元被访问则不久以后该储存单元可能再次被访问。产生时间局部性的典型原因是因为程序中存在的大量的循环操作。
- 空间局部现:一旦程序访问了某个存储单元哲在不久的将来其附近的存储单元也最有可能被访问。产生空间局部性的典型原因是程序是顺序执行的。
- 虚拟存储器的实现:(添加请求调页功能和页面置换功能)。。。
- 请求分页管理的实现:在页表中增加若干项(如状态位,访问字段,和辅助字段等)供程序再换入换出时参考;在分页系统的地址变换结构的基础上增加某些功能(如产生缺页中断,换出一页现实虚拟存储等)每当所访问的页面不在主存时便要产生一次缺页中断,请求操作系统将所缺的页调入主存,这是由缺页中断机构完成的。
- 抖动:刚被换出的页很快又被访问,需要重新调入,导致系统频繁的更换页面。于是一个进程在运行中大部分时间花费在完成页面置换工作上。
- Belady现象:如果一个进程未分配他所需要的全部页面,有时就会出现分配的页数增多缺页率反而提高的异常现象
- 页面置换算法:
- 最佳置换算法:选择那些永不使用的或者在长时间内不再被访问的页面置换出去(一种理想化的算法,通常用来评价其他算法)
- 先进先出置换算法:选择在主存中驻留时间最久的页面淘汰(最直接,性能最差的算法,有Belady现象)
- 最近最少未使用算法:选择最近最少未使用的页面淘汰。
- 最近未用置换算法:选择最近一段时间没有引用过的页面淘汰。
- 工作集 :某段时间间隔里进程实际要访问的页面的集合。(目的:解决究竟需要为每个进程分配多少个物理块才能使缺页率保持在一个合适的水平)
4.设备管理
- 目标:提高设备利用率,为用户提供方便,统一的界面。
- IO软件:设计的目标是设备独立性和统一命名。一般分为中断处理程序,设备驱动程序,与设备无关的系统软件,用户级软件。
- 通道技术:引入通道的目的是使数据的传输独立于cpu时cpu从繁琐的io工作中解脱出来。
- DMA技术:直接主存存取是指数据在主存与IO设备间直接成块传送,主存与IO设备间传送一个数据块的过程不需要cpu的任何干涉。
- 缓冲技术:提高外设利用率。
- Spooling技术:外围设备联机操作,实际上是用一类物理设备模拟另一类物理设备的技术,是使独占使用的设备变成多台虚拟设备的一种技术,也是一种速度匹配技术。
- 磁盘驱动调度:
- 先来先服务:根据进程访问磁盘先后次序进行调度
- 最短寻道时间优先:要访问的磁道与当前磁头所在的磁道距离最近
- 扫描算法:优先考虑磁头当前移动方向
- 单向扫描调度算法
- 旋转调度算法
5.文件管理
文件是具有符号名的在逻辑上具有完整意义的一组相关信息项的集合。一个文件包括文件体,文件说明。
- 文件的逻辑结构:有结构的记录式文件+无结构的流式文件。
- 文件的物理结构:顺序结构+链接结构+索引结构+多个块的索引表
- 文件目录:文件控制块+目录结构
- 文件存取方法:顺序存取+随机存取
- 文件存储空间管理:空闲区表+位示图+空闲块链+成组链接法
- 文件共享:硬链接+软链接
- 文件安全:读写控制+用户权限+密码
- 文件系统的安全性和可靠性
6.作业管理
作业是系统为了完成一个用户计算任务所作的工作总和。
- 作业控制:脱机控制+联机控制
- 作业状态:提交+后备+执行+完成
- 作业调度算法:
- 先来先服务
- 短作业优先
- 响应比高优先
- 优先级调度算法
- 均衡调度算法