一、操作系统的目标、作用和模型
1.操作系统的目标
(1)方便性(用户无需了解底层)
(2)有效性(提高资源的利用率)
(3)可扩充性(扩充软件和硬件)
(4)开放性(网络环境,遵循开放互联原则)
2.操作系统的作用
(1)作为用户与计算机硬件系统之间的接口(达成方便性的目标)
(2)作为计算机系统资源的管理者(达成有效性的目标)
(3)实现了对计算机资源的抽象(用作扩充机器)(实现了可扩充性和开放性)
二、操作系统的发展过程
1.人工操作方式
(1)工作方式:
用户:既是程序员又是操作员;用户是计算机专业人员;
编程语言:机器语言;
输入输出:纸带或卡片;
(2)计算机工作特点:
用户独占全机,资源利用率极低,CPU等待用户,计算前,手工装入纸带或卡片;
计算完成后,手工卸取纸带或卡片;CPU利用率低;
主要矛盾:
人机矛盾----人工操作严重降低了计算机资源的利用率
提高效率的途径:
脱机输入/输出技术
2.脱机输入/输出
(1)事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上,当CPU需要这些程序和数据时,再从磁带上高速的调入闪存
(2)等待人工操作纸带输入数据的不是CPU,而是外围机,一定程度上解决人机矛盾。
(3)主要优点:
减少了CPU的空闲时间
提高I/O速度
(4)主要缺点:
系统开销大
3.单道批处理系统
(1)作业成批、脱机方式输入到磁带或磁盘上
进一步减少脱机I/O中装卸磁带等耗时操作
系统监督程序(Monitor)控制作业自动过渡,一个接一个的连
(2)特征:
单道性
顺序性
自动性
(3)优点:
一定程度解决人机矛盾,CPU与I/O速度矛盾;
提高了资源利用率和系统吞吐量;
算做OS的前身,但还不是现在所理解的OS;
4.多道批处理系统
(1)多道批处理系统的特征:
多道性
无序性
作业入内存由算法决定,不按提交顺序。入内存后顺序执行。
调度(包括作业调度、进程调
(2)多道批处理系统的优点:
资源利用率高:CPU和内存利用率较高;
系统吞吐量大:单位时间内完成的工作总量大;
(3)多道批处理系统的优点:
平均周转时间长:短作业的周转时间显著增长;
无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改
(4)多道批处理系统解决的五大问题
处理机管理问题
内存管理问题
I/O设备管理问题
文件管理问题
作业管理问题
(5)操作系统定义
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度(多道),方便用户使用的程序的集合。
5.分时系统
(1)分时系统的产生:
用户的新需求是主要动力:
人—机交互
共享主机
便于用户上机
(2)分时系统实现中的关键问题:
交互:当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令, 再将结果返回给用户。
共享:强调即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
a、及时接收:多路卡,缓冲区
b、及时处理:终端请求作业直接进入内存,设置时间片
(3)分时系统的实现方法
改变批处理系统的运行方式:
多个用户连接主机
请求的作业发送到主机后,直接进入主机内存以快速响应
系统采用时间片轮转方式处理服务请求
响应时间RT(response time)≈时间片×用户数
时间片:就是分配给进程运行的一段时间
(5)分时系统是指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使 用计算机,共享主机中的资源。
分时系统是多道程序的逻辑扩
(6)分时系统的特征:
多路、独立、及时、交互
多路性:多个用户同时使用一台计算机,共享CPU和其他资源,充分利用系统资源。
宏观上:是多个人同时使用一个CPU
微观上:多个人在不同时刻轮流使用CPU
独立性:用户感觉不到计算机为其他人服务,各用户独立操作,互不干扰。
及时性:通过时间片技术和轮转调度算法保证及时响应。
交互性:系统及时响应用户的请求,显著提高调试和修改程序的效率:缩短了周转时间。
6.实时系统
(1)实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
(2)实时系统的实现
系统必须有能够保证其承担的多个任务在规定的时间完成,调度和能力是关键。
① 按任务执行时是否呈现周期性来划分
周期性实时任务
非周期性实时任务——截止时间
②根据对截止时间的要求来划分
硬实时任务
软实时任务
7.
8.
9.操作系统分类
(1)单用户OS:一次只能支持一个用户作业的运行。
(2)批处理OS:用户作业以成批的方式提交给计算机。
(3)分时OS:允许多个用户同时与计算机系统交互。
(4)实时OS:能够及时响应随机发生的外部事件,并对外部事件做出快速处理,对来自外部的请求和信号在限定的时间范围内做出响应。实时性和可靠性是其重要特点。
(5)网络OS:面向网络上多用户,提供基本的网络操作所需要的功能,如文件共享,内存管理和进程任务调度等。
(6)分布式OS:是最高级的操作系统,管理整个系统(包括网络)中的所有资源,负责所有资源的分配和调度、任务的划分和具体安排、信息传递和控制。
(7)嵌入式OS:与应用紧密结合、专用性很强、可裁剪。
分布式操作系统的主要特点是各节点的自治性;资源共享的透明性;各节点间的协同性;系统的坚定性。
10.分布式OS与网络OS的比较
(1)分布性(控制和处理都是分布的)
①分布式OS不是集中地驻留在某一个站点,而是较均匀地分布在系统的各个站点上,所以OS的处理和控制功能是分布式的。
②计算机网络也具有分布处理功能,但网络的控制功能,是集中在某个主机或网络服务器中,或说控制方式是集中式的。处理是分布的。
(2)并行性
①分布式处理系统,具有多个处理单元,分布式OS的任务分配程序可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速了任务的执行。
②计算机网络中,每个用户的一个或多个任务通常都在自己(本地)的计算机上处理,所以,在网络OS中无任务分配功能
(3)透明性
①分布式OS能很好地隐藏系统内部的实现细节,如:对象的物理位置,并发控制,系统故障等,对用户都是透明的,当用户访问某个文件时,只需提供文件名而无须知道它是驻留在哪个站点上,即可对它进行访问,即物理位置是透明的。
②网络OS,也有一定的透明性,但主要是指在操作实现上的透明性。如:当用户要访问服务器上的文件时,只需发出相应的文件存取命令,而无须了解对该文件的存取是如何实现的。
(4)共享性
①分布式系统中,分布在各个站点上的软、硬件资源,可供全系统中的所有用户共享,并能以透明方式对它们进行访问。
②网络OS也能提供资源共享,但所共享的资源大多是设置在主机或网络服务器中,而在其它机器上的资源,只能由使用该机的用户独占。
(5)健壮性
①分布式系统的处理和控制功能是分布的,任何站上的故障,都不会给系统造成太大的影响,并且,当某设备出现故障时,可通过容错技术实现系统重构,使系统能正常运行,所以,系统具有健壮性,即具有较好的可用性和可靠性。
②网络OS中,其控制功能大多集中在主机或服务器中,使系统具有潜在的不可靠性,此外,系统的重构功能也较弱
三、操作系统的基本特征
1.各种典型操作系统各有特色,但均具有共同的基本特征:
并发、共享、虚拟、异步
多道并发是最根本的特征,并发引出五大管理功能,同时也使OS有了更多的特征
2.并发
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时段发生
理解CPU并发:单处理器系统中,多道程序在宏观上看似并行,实际在微观上是多道程序占用cpu交替执行的,并不是真正的“并行”。多处理器系统才有CPU并行。
单处理器系统中的并行:在硬件技术支持的条件下,CPU 和 I/O操作能实现并行,这也是多道程序设计能够提高效率的原因之一。
3.共享
系统中的资源可供内存中多个并发执行的进程(线程)共同使用。主要有两种共享方式:
互斥共享方式:对临界资源(如打印机)采用该方式,资源分配给某进程后未释放前,不能被其他进程所用。
临界资源(独占资源):一段时间内只允许一个进程访问的资源。
同时访问方式:对允许“同时”访问的资源(如磁盘)采用该方式,但“同时”仍然是“宏观并行微观串行”的,不是真正的同时
4.并发和共享互为存在的条件
多个程序并发才导致了资源需要共享
资源共享若没有协调好,必然影响程序的并发执行
5.虚拟:通过某种技术把一个物理实体变为若干个逻辑对应物(用户感觉上的东西),两种实现方式:
(1)时分复用:一个物品被多人分时使用,在一段时间内就表现为每个人都有一个该物品可用,1虚拟为n。
(2)空分复用:一个物品划分为多个部分,多个人每人都有一部分可用,主观上看也是1虚拟成n。
(3)虚拟处理机
时分复用:多道程序分时间使用一个cpu,直观上似乎n个程序有n个CPU一样。
(4)虚拟打印机
时分复用:对一台打印机的n个打印请求进行时间的合理调配,直观上就产生互斥性质的打印机可共享使用,似乎有n个打印机的效果。
(5)虚拟磁盘
时分复用:多个程序可“同时”读写
空分复用:1个硬盘对应成4个逻辑区
(6)虚拟内存
时分复用:一块内存空间分时的分配给多个进程使用,逻辑上扩大内存空间。
空分复用:充分利用内存空闲空间,提高内存利用率
(7)虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。用于实现虚拟的技术,就称为虚拟技术。
6.异步性:指进程的执行顺序和执行时间的不确定性进程的运行速度不可预知,由于资源等因素限制,进程通常不能一气呵成地执行完,多个进程并发执行是“时走时停”的,不可预知每个进程的运行推进快慢;允许异步,但结果应正确只要环境相同,无论快慢,结果应该相同(可再现性),这需要进程互斥和同步手段来保证。
四、操作系统的主要功能
即处理机管理功能(作业管理)、储器管理功能、设备管理功能、文件管理功能、用户接口
1、处理机管理功能
传统多道程序系统,处理机分配和运行都以进程为基本单位,对处理机的管理,就是对进程的管理。引入线程后,也包括对线程的管理。主要解决内存中多道并发执行的“进程”如何占用CPU,如何运行的问题。
1)进程控制:为作业创建进程、撤销已结束的进程,控制进程在运行过程中的状态转换。以及线程的创建撤销等。(可理解为对单个进程基本信息进行管理)
2)进程同步:为多个进程运行进行协调(包括互斥和同步)
3)进程通信:用来实现在相互合作进程间的信息交换;(直接通信和网络通信)
4)调度:作业调度(入内存)和进程调度(分配CPU)
2、存储器管理功能
1)内存分配:为每道程序分配内存空间(包产到户)具体分配涉及许多细节:
分配方式:动态、静态
分配机制需要的数据结构、分配算法、回收内存功能
2)内存保护:确保每道用户程序都只在自己的内存空间中运行
需要一个硬件——界限寄存器,存放正在执行进程的内存上下界,每条指令的访问地址都要进行越界检查,一般用硬件实现检查
3)地址映射(变换):进程的逻辑地址到内存物理地址的映射。
程序编译形成的目标程序地址都是从0开始,是逻辑地址
真正调入内存某个空间存放的地址是物理地址
4)内存扩充:用虚拟存储技术解决内存容量不足的问题;
请求调入功能
页面置换功能
3.设备管理功能
1)缓冲管理:匹配CPU和外设的速度,提高两者的利用率和并行操作程度;
2)设备分配:按某种设备分配策略,为之分配所需的设备;
应设置设备控制表等数据结构记录设备及其控制器的标识符和状态;不同的设备,分配方式不同
3)设备处理:设备处理程序即驱动程序,及时X响应设备控制器请求,实现CPU和设备控制器之间的通信。
4、文件管理功能
1)存储空间的管理:分配外存空间,提高外存的利用率,提高文件系统的运行速度;
需要相应的数据结构,记录文件存储空间的使用情况;要有对存储空间分配和回收的功能
2)目录管理:为文件建立目录项,并有效组织,实现方便的按名存取;提供快速的目录查询手段,提高文件检索速度;还需实现文件共享。
3)文件的读写管理和保护:读写操作与有效的存取控制功能。
5、用户接口
1)命令接口
用户可通过键盘终端发出命令以控制作业的运行。
联机用户接口:由一组磁盘操作命令和命令解释程序组成。
脱机用户接口:由一组作业控制语言组成,如批处理文件。
2)程序接口
用户程序在执行中访问系统资源而设置,由一组系统调用组成。
早期汇编语言才能使用,后高级语言及C语言中都给出了系统调用对应的库函数。
3)图形接口
五、操作系统的结构
1.传统的OS结构
1)无结构OS
早期开发OS,只追求实现和效率,缺乏贯穿的设计思想。是一组过程的集合。
问题:
过程互相调用,没有清晰的结构
程序错误很多,调试复杂,阅读维护困难
2)模块化OS结构
20世纪60年代出现的一种程序设计技术。基于“分解”和“模块化”原则来控制大型软件的复杂度。
制定功能模块
规定各模块接口
划分子模块
称为模块——接口的设计方法,关键是模块的划分和规定接口。
优点:
提高设计的正确性、可理解性和可维护性;
增强了OS的可适应性,可选用相应功能模块,也可进行增减和修补以满足新需求;
加速了开发过程;
3)分层式OS结构
改进设计方式,变无序为有序——分层的思想
在物理机器上逐渐添加具有一定功能的软件层,每一层仅使用底层提供的功能和服务。(功能流水线)
优点:
易保证系统正确性
易扩充和维护
缺点:
分层单向依赖,执行一个功能,总要自下而上地穿越多层,增加系统通信开销,降低了效率。
2.微内核OS结构
Micro Kernel操作系统结构于20世纪80年代后期发展起来。尤其在多处理机环境下,更适用微内核技术。
与客户/服务器技术,面向对象技术同时发展起来的。微内核OS结构以OS为核心,以C/S为基础,采用了面向对象程序设计方法。
1)Client/Server模式
三部分组成:客户端、服务器、网络系统
交互方式:客户请求,服务器接收消息,回送消息,客户接收消息,四步。
优点:数据分布处理和存储;灵活可扩充,易于修改维护,仍方便集中管理。
2)面向对象编程技术
Object-Orientated Programming
具有相同属性、规则的事物抽象成对象,利用被封装的数据结构对具体对象实例进行操作。
进程、线程、消息、存储器都可抽象成对象。
可修改、扩充,具有继承性,容易保证正确和可靠性。
3)微内核
精心设计、实现一个可在其上构建通用OS的基础内核,该内核程序运行在核心态,开机常驻内存。
当前微内核操作系统结构仍没有一致公认的定义,但可从以下4方面进行描述:
①足够小的内核
微内核并非一个完整的OS。与硬件紧密相关,实现较基本功能,复杂客户和服务器通信。
②基于C/S模式
③应用”机制与策略分离“原理
机制——实现某一功能的具体执行机构,位于基层;策略——借助某些参数和算法实现功能优化或达到不同功能目标,位于系统高层。
④采用面向对象技术
微内核的优点
灵活、可扩充:可选配功能服务器模块
增强可靠性:内核是稳定的核心,只有它能直接访问硬件。服务器在用户态出错绝不会导致系统瘫痪。
可移植性:操作系统绝大部分(各种服务器程序)与硬件平台无关,在不同硬件平台间移植时修改比较小。
该机制尤其适用于分布式系统
采用面向对象技术,减少开发开销
微内核存在的问题
运行效率降低
一次客户请求需要多次消息传递和用户/内核模式的上下文切换,开销增大。
有的服务需要借助其他服务,则需要的切换开销更大。
如何改善:
重新把一些常用基本功能由服务器移入内核。代价就是内核容量增大,接口定义和性能也将受影响。