1 操作系统简介
1.1 操作系统简介
操作系统能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
(1)操作系统的主要工作如下:
1)通过资源管理提高计算机系统的效率。
2)改善人机界面向用户提供友好的工作环境。
(2)操作系统有如下4个特征:
1)并发性:指两个或多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生。
2)共享性:指系统中的资源可供内存中多个并发执行的进程共同使用。
3)虚拟性:指把一个物理上的实体变为若干逻辑上的对应物,物理实体是实际存在的,而逻辑对应物是用户感受到的。
4)不确定性:又称为随机性,操作系统的运行是在一个随机的环境中,一个设备可以在任何时间向处理机发出中断请求,系统无法知道运行着的程序会在什么时候做什么事情。
(3)从资源管理的观点来看,操作系统的功能有如下5个部分:
1)处理机管理:又称为进程管理,实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务。
2)文件管理:主要包括文件存储空间管理、目录管理、文件的读写管理和存取控制。
3)存储管理:是对主存储器的“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
4)设备管理:实质是对硬件设备的管理,包括对输入输出设备的分配、启动、完成和回收。
5)作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
1.2 操作系统的分类
操作系统分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、微机操作系统和嵌入式操作系统等,具体描述如下:
(1)批处理操作系统:分为单道批处理和多道批处理。
1)单道批处理操作系统:一种早期的操作系统,单道是指一次只有一个作业装入内存执行。
2)多道批处理操作系统:允许多个作业装入内存执行,在任意一个时刻,作业都处于开始点和终止点之间。每当运行中的一个作业由于输入/输出操作需要调用外部设备时,就把CPU交给另一道等待运行的作业,从而将主机与外部设备的工作由串行改为并行,进一步避免了因主机等待外设完成任务而浪费宝贵的CPU时间。
(2)分时操作系统:在分时操作系统中,一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。分时操作系统主要有4个特点:多路性、独立性、交互性和及时性。
(3)实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反映。实时系统分为实时控制系统和实时信息处理系统,实时控制系统主要用于生产过程中的自动控制,实时信息处理系统主要用于实时信息的处理。
实时系统和分时系统的区别:
1) 应用环境不同。
2)设计目标不同。分时系统是设计成一个多用户的通用系统,交互能力强;而实时系统大都是专用系统。
3)交互性的强弱不同。分时系统是多用户的通用系统,交互能力强;而实时系统是专用系统,仅允许操作并访问有限的专用程序,不能随意修改,且交互能力差。
4)响应时间的敏感程度不同,分时系统是以用户能接收的等待时间为系统的设计依据,而实时系统是以被测物体所能接收的延迟为系统设计的依据。因此实时系统对响应时间的敏感程度更强。
(4)网络操作系统:这种操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
(5)分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面,标准的接口,用户通过这一界面实现所需要的操作和使用系统资源,是系统中若干台计算机相互协作完成共同的任务,有效控制和协调各个任务的并行执行,并向系统提供统一、有效的接口的软件集合。
(6)微机操作系统:微型计算机操作系统简称微机操作系统,常用的有Windows、Mac、OS和Limux等。
(7)嵌入式操作系统:该操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。嵌入式的主要特点有:微型化、可定制、实时性、可靠性和易移植性。
2 处理机管理
2.1 处理机管理概述
处理机也称为进行管理,进程是资源分配和独立运行的基本单位,进程是程序的一次执行,该程序可以与其它程序并发执行。进程的组成如下:
1)程序:程序部分描述了进程需要完成的任务。
2)数据:数据部分包括程序执行时所需要的数据及工作区。该部分只能为一个程序所专用,是进程的可修改部分。
3)进程:简称PCB,进程控制块是进程存在的唯一标志。包括进程的描述信息,控制信息,资源管理信息和CPU现场保护信息等,反映了进程的动态特征。
进程一般有3种基本状态:运行、就绪和阻塞,也称三态模型:
(1)运行状态:当一个进程在处理机上运行时,称该进程处于运行状态。
(2)就绪状态:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。
(3)阻塞状态:也称等待状态或睡眠状态,一个进程正在等待某一事件发生而暂时停止运行,这时即使把处理机分配给该进程,它也无法运行,故称该进程处于阻塞状态。
关于三态模型,有如下注意事项:
1)阻塞状态的进程不能直接进入执行状态。
2)就绪状态的进程不能直接进入阻塞状态。
3)在任何时刻,任何一个进程都只能处于某一种状态。
对于一个实际的系统,进程的状态及其转换将更复杂,此时可以引入新建态和终止态构成五态模型。
1)新建态对应于进程刚刚被创建且没有被提交的状态,并等待系统完成创建进程的所有必要信息。
2)设置终止态的目的是防止系统进行善后处理时引起资源分配不当等问题。
由于进程的不断创建,系统资源特别是主存资源已不能满足进程运行的要求,这时就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载。下图是具有挂起状态的进程状态及其转换:
1)活跃就绪:活跃就绪是指进程在主存并且可被调度的状态。
2)静止就绪:静止就绪是指就绪进程被对换到辅存时的状态,它是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级时,系统才把挂起就绪态进程调回主存并转换为活跃就绪。
3)活跃阻塞:活跃阻塞是指进程在主存,一旦等待的事件产生便进入活跃就绪状态
4)静止阻塞:静止阻塞是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。
2.2 进程概述
进程控制是由操作系统内核中的原语实现的。原语是指由若干条机器指令组成的、用于完成特定功能的程序段。原语的特点是在执行时不能被分割,即原子操作要么都做,要么都不做。
进程通信是指各个进程交换信息的过程,进程通信包括同步和互斥。具体如下:
1)进程间的同步:指多个并发执行的进程都以各自独立的、不可预知的速度向前推进,但是有时需要在某些确定点上协调相互合作进程间的工作。可以理解为“千军万马过独木桥”,属于间接制约。
2)进程间的互斥: 在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源,如打印机、共享变量等。进程间的互斥是指系统中互斥使用临界资源。
信号量机制是一种有效的进程同步与互斥工具。信号量英文为Semaphore,简写S,信号量分为如下两种:
1)公用信号量:实现进程间的互斥,初值为1或资源的数目。
2)私用信号量:实现进程间的同步,初值为0或某个正整数。
信号量S的物理意义:S0表示某资源的可用数;若S<0,则其绝对值表示阻塞队列中的等待该资源的进程数。
PV操作是实现进程同步与互斥的常用方法,P操作和V操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,V操作表示释放一个资源。如下图:1)
1)P操作定义:S:=S-1, 若S0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
2)V操作定义:S:=S+1,若S>0,则执行V操作的进程继续执行;若S0,则从阻塞状态唤醒一个进程,将其插入就绪队列,然后执行V操作的进程继续。
2.3 死锁
死锁是指两个以上的进程互相都要求使用对方已经占有的资源而导致无法继续运行的现象。产生死锁的4个必要条件如下:
1)互斥条件:进程对其所要求的资源进行排他性控制,即一次只允许一个进程使用,此时若有其他进程请求该资源,则请求进程只能等待。
2)请求保持条件:之前申请了资源,还想再次申请资源,但是之前申请的资源继续占用,除非完成任务后释放,否则其他进程都不能用。
3)不可剥夺条件:进程已获得的资源在未使用完之前不能被剥夺,只能在使用完的时候由自己释放,并且只能是主动释放。
4)环路条件:又称为循环等待条件,当发生死锁时,在进程资源有向图中必然构成了环路。
如下图:方框表示资源,方框中有几个圆表示有几个资源,圆圈表示进程,资源使用的原则是先分配后申请:
1)分配资源:方框指向圆圈,即箭头由资源指向进程
2)请求资源:圆圈指向方框,即箭头由进程指向资源
先分配后申请,R1先向P2分配一个,分配后剩一个资源,R2先向P1分配一个资源,R2中就没有资源了,然后P1向R1申请资源,因为R1中还剩有一个资源,这时是可以满足P1的请求的,P2向R1申请资源,因为R2已经向P1分配了资源,没有剩余资源给P2了,此时就出现了死锁。
系统不发生死锁的最小资源数公式(m 为系统中资源数,n 为进程数,k为每个进程都要求的资源数):
m=n(k-1)+1
2.4 线程
进程有两个基本属性,一是拥有资源,二是可以独立调度和分配资源。引入线程,可以将传统进程的两个基本属性分开,线程作为调度和分配资源的基本单位,而进程作为独立分配资源的单位。用户可以通过线程来完成任务,以减少程序并发执行时付出的时空开销。
要注意的是,线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点允许中必不可少的资源,如程序计数器,一组寄存器和栈等。
3 存储管理
存储器管理概述
一般存储器的结构有“寄存器 — 主存 — 外存”结构和“寄存器 — 缓存 —主存 — 外存”结构。
我们把程序中由相对地址组成的空间称为逻辑地址空间,相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也称为物理地址空间。逻辑地址空间是逻辑地址的集合;物理地址空间简称存储空间,是物理地址的集合。将逻辑地址转换成主存物理地址的过程称为地址重定位。
存储管理的主要目的是解决多个用户使用主存的问题。其管理方案主要包括分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理等。
1)分区存储管理:该方案的基本思想是把主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行。
2)分页存储管理:将一个进程的地址空间划分成若干个大小相等的区域,称为页。响应的将主存空间划分成与页相同大小的若干个物理块,称为块或页框。为进程分配主存时,可将进程中的若干页分别装入多个不相邻的块中。其地址结构分为页号和页内地址:
页号 | 页内地址 |
3)分段存储管理:在分段存储管理方式中,作业的地址空间被划分为若干段,每段是一组完整的逻辑信息,如主程序段、子程序段、数据段及堆栈段等,每段都有自己的名字,都是从零开始编码的一段连续的地址空间,各段长度不等。逻辑地址由段号和段内地址两部分组成。
段号 | 段内地址 |
4)段页式存储管理:先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,并为每个段赋予一个段名,再将每个段划分成若干页,以页框为单位离散分配。在段页式系统中,其地址结构由段号、段内页号和页内地址三部分组成。
段号 | 段内页号 | 页内地址 |
5)虚拟存储管理:一个作业的部分内容装入主存便可开始启动运行,其余部分暂时留在磁盘中,需要时再装入主存,这样可以有效地利用主存空间,我们把这样的存储器称为虚拟存储器。虚拟存储器是为了扩大主存容量而采用的一种设计方法,其容量是由计算机的地址结构决定的。
4 设备管理
设备是计算机与外界交互的工具,具体负责计算机与外部的输入输出工作,称为外部设备。
设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口和设备的访问与控制。提高设备的利用率就是提高CPU与输入输出设备之间的并行操作程度,采用的技术主要包括中断技术、DMA技术、通道技术和缓冲技术等。
(1)通道技术:CPU只需要向通道发出输入输出命令,通道收到命令后,从内存中取出本次输入输出要执行的通道程序加以执行,当通道完成输入输出任务后,才向CPU发出中断信号。
(2)DMA技术:DMA是指直接内存存取,是指数据在内存与输入输出设备之间实现直接成块传送,不需要CPU的任何干涉。实际操作过程由DMA硬件直接执行完成,CPU在此传送过程中可执行别的任务,不需参与。
(3)缓冲技术:是为了协调吞吐速度相差很大的设备之间数据传送而采用的技术。缓冲技术用到了缓冲区,而缓冲区的引入是为了缓和CPU和I/O设备的不匹配,减少对CPU的中断频率,提高CPU和I/O设备的并行性。
(4)Spooling技术:Spooling是指外部设备联机并行操作,是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
5 文件管理
5.1 文件概述
文件的英文名是File,文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。文件的存取方法是指读写文件存储器上的一个物理块的方法,通常分为顺序存取和随机存取。顺序存取是指对文件中的信息按顺序依次读写的方式;随机存取是指可以按任意的次序随机地读写文件中的信息。文件按照性质和用途、保存期限和保护方法等通常可进行如下分类:
1)按文件性质和用途可将文件分为系统文件、库文件和用户文件。
2)按信息保存期限可将文件分为临时文件、档案文件和永久文件。
3)按文件的保护方式可将文件分为只读文件、读写文件、可执行文件和不保护文件。
4)UNIX系统将文件分为普通文件、目录文件和设备文件(也称特殊文件)。
文件分类的目的是对不同文件进行管理,提高系统效率以及用户界面友好性。
5.2 文件目录和存储空间管理
文件目录是由文件控制块(FCB)组成的,专门用于文件检索。文件控制块包含以下3类信息:
(1)基本信息类: 如文件名、文件的物理地址、文件长度和文件块数等。
(2)存取控制信息类:文件的存取权限,如读、写、执行权限等。
(3)使用信息类:如文件建立日期、最后一次修改日期、最后一次访问日期、当前使用的信息、打开文件的进程数,以及在文件中的等待队列等。
文件目录结构的组织方式直接影响文件的存取速度,关系到文件共享性和安全性。常见的目录结构由3种:一级目录结构、二级目录结构和多级目录结构。
文件系统就是对磁盘空间进行管理,外存空闲空间管理的数据结构通常称为磁盘分配表(DAT)。常用的空闲空间的管理方法由以下4种:
(1)空闲区表:将外存空间上一个连续未分配的区域称为空闲区。操作系统为磁盘外存中的所有空闲区建立一张空闲表,每个表对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数和状态等信息。空闲表适用于连续文件结构。
(2)位示图:简称Bitmap,这种方法是在外存中建立一张位示图,记录文件存储器的使用情况。每一位对应文件存储器中的一个物理块,取值0和1分别表示空闲和占用。位示图的大小由磁盘空间的大小(物理块总数)决定,其描述能力很强,适合各种物理结构。
(3)空闲块链: 这种方法要求每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置中,不需要磁盘分配表,可以节省空间。每次申请空闲物理块只需要根据链表的头指针取出第一个空闲物理块,根据第一个空闲物理块的指针找到第二个空闲物理块,以此类推。
(4)成组链接法:将空闲块分成若干组,设定固定数量的空闲块为一组,每一组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数,假如一个组的第一个空闲块号等于0的话,一位着改组是最后一组,没有下一组空闲块。
6 作业管理
6.1 作业
作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作的总和。作业由如下图所示的三部分组成:
其中,作业说明书包括作业基本情况、作业控制、作业资源要求的描述,它体现用户的控制意图。其中,作业基本情况包括用户名、作业名、编程语言和最大处理时间等;作业控制包括作业控制方式、作业步的操作顺序、作业执行出错处理;作业资源要求的描述包括处理时间、优先级、主存空间、外设类型和数量、实用程序要求等。
作业的状态分为4种:提交、后备(收容)、执行和完成,其状态及转换如下图所示:
(1)提交: 作业提交给计算机中心,通过输入设备送入计算机系统的过程称为提交状态。
(2)后备(收容):通过Spooling系统将作业输入到计算机系统的后备存储器(磁盘)中,随时等待作业调度程序调度时的状态。
(3)执行:一旦作业被作业调度程序旋转,为其分配了必要的资源,并建立相应的进程后,该作业便进入了执行状态。
(4)完成:当作业正常结束或异常终止时,作业进入完成状态。此时,由作业调度程序对该作业进行善后处理。如撤销作业的作业控制块,收回作业所占的系统资源,将作业的执行结果形成输出文件放到输出井中,由Spooling系统控制输出。
6.2 作业调度算法
作业调度选择的算法应与系统的整个设计目标一致,常用的作业调度算法有如下5种:
(1)先来先服务算法:按作业到达的先后进行调度,即启动等待时间最长的作业。
(2)短作业优先算法:以要求运行时间的长短进行调度,即启动要求运行时间最短的作业。
(3)响应比高优先算法:响应比高的作业优先启动,其中作业响应时间为作业进入系统后的等候时间与作业的执行时间之和,在每次调度前都要计算所有被选作业的响应比,然后选择响应比最高的作业执行。
(4)优先级调度算法:由用户指定优先级,优先级高的作业先启动。
(5)均衡调度算法:根据系统的运行情况和作业本身的特性对作业进行分类,作业调度程序轮流地从这些不同类别的作业中挑选作业执行。