第1章 操作系统笔记教学内容
第1章操作系统笔
记
操作系统的定义:
操作系统(Operating System, OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充
1.1操作系统的目标和作用
在计算机系统上配置操作系统主要目标与计算机系统的规模和应用环境有关。
1.1.1操作系统的目标
方便性
●硬件只能识别机器代码(0、1)
●OS提供命令,方便用户使用计算机
有效性
●使CPU、I/O保持忙碌,充分利用
●使内存、外存数据存放有序,节省空间
●合理组织工作流程,改善资源利用率,提高吞吐量
可扩充性
●计算机技术的发展:硬件/体系结构/网络/Internet
●OS应采用层次化结构,便于扩充和修改功能层次和模块
开放性
●支持网络环境,兼容遵循OSI标准开发的硬件和软件
1.1.2 操作系统的作用
1. 用户与计算机硬件系统之间的接口
●命令方式
用户通过键盘输入联机命令(语言)
●系统调用方式
用户程序通过系统调用,操纵计算机
●图形、窗口方式
用户通过窗口、图标等图形界面操纵计算机
2.计算机系统资源管理者
●4大类资源:处理机;存储器;I/O设备;信息(文件:程
序、数据)
3.对计算机资源的抽象(扩充机器)
●裸机:只有硬件的计算机,难以使用
●虚机器:在裸机增加软件(OS等),功能增强,使用方便
1.1.3 推动操作系统发展的主要动力
1.不断提高计算机资源利用率
早期计算机很昂贵,为提高资源利用率,产生了批处理系统
2.方便用户
为改善用户上机、调试程序时的条件,产生了分时系统
3.器件的不断更新换代
OS随之更新换代,如:8位->16位->32位
4.计算机体系结构的不断发展
单处理机OS->多处理机OS->网络操作系统
1.2 操作系统的发展过程
无操作系统时代
OS尚未出现,人们如何使用计算机?
人工操作方式
人工操作方式的缺点
用户独占全机
CPU等待人工操作
结果:资源利用率低下
脱机输入输出系统
低速设备
?纸带机/卡片机
高速设备
?磁带/磁盘
?I/O速度提高,缓解了I/O设备与CPU的速度
矛盾
主机:用于计算的主计算机
外围机:也是计算机,处理输入输出,使之不占用主机
CPU时间
外围机控制输入/输出
?输入:低速设备->高速设备
?输出:高速设备->低速设备
?输入和输出使用独立于主机的外围机,不占用主
机的CPU时间,是脱机过程,因此叫做脱机输入
/输出方式
单道批处理系统
计算机发展的早期,没有任何用于管理的软件,所有的运行
管理和具体操作都由用户自己承担,任何操作出错都要重
做作业,CPU的利用率甚低。
解决的方法有两个:
首先配备专门的计算机操作员,程序员不再直接操
作机器,减少操作机器的错误。
另一个是进行批处理,操作员把用户提交的作业分
类,把一批中的作业编成一个作业执行序列。每一
批作业将有专门编制的监督程序(monitor)自动依
次处理。
说明:
监督程序的作用:用来装入用户作业,和用户作业交
替地使用CPU。
“批”的含义:供一次加载的磁带或磁盘,通常由若干
个作业组装成,在处理中使用一组相同的系统软件
(系统带)。
关于“作业”的说明:通常,把计算机完成用户算题任
务所需进行的各项工作称为一道作业。
多道批处理系统
早期的批处理可能出现两种情况:
?对于以计算为主的作业,输入输出量少,外围设
备空闲;
?对于以输入输出为主的作业,主机空闲。
问题的提出
在早期的单道批处理系统中,内存中仅有单个作业在运行,致
使系统中仍有许多资源空闲,设备利用率低,系统性能较差。
多道程序设计技术
若当前作业因等待I/O而暂停,CPU只能空闲直至该I/O完成对于科学计算问题,CPU操作密集,CPU浪费时间少
对于商业数据处理,I/O操作密集,I/O等待时间常占80%-
90%
解决办法
将内存分几个部分,每部分放不同的作业
当一个作业等待I/O时,CPU可被另一作业使用
在主存中同时驻留多个作业
多道程序设计
多道程序设计是指允许多个程序同时进入一个计算机系统的主
存储器并启动进行计算的方法。
合理搭配I/O为主和计算为主的程序交替运行,充分利用资
源,提高系统效率。
多道程序的运行特点:
多道:计算机内存中同时存放多道相互独立的程序。
宏观上并行运行:同时进入系统的几道程序都处于运行状态,
但都未运行完。
微观上串行运行:各作业轮流使用CPU,交替执行。
实现技术:当正在运行的程序因I/O暂停执行时,系统可调度
另一道程序运行,使CPU保持忙碌。
例题:有两道程序A、B,按下图以多道程序方式运行,要求在右图画出它们的运行轨迹,并计算在60ms内,CPU的利用率,假设起始时首先运行B,并允许忽略监督程序切换A、B的时间(不考虑I/O的冲突)。
分时系统
概念:时间片、终端、响应时间
分时(Time Sharing)是把计算机的系统资源(尤其是CPU时
间)进行时间上的分割,每个时间段称为一个时间片(Time
Slice) ,每个用户依次轮流使用时间片。
分时技术:把处理机的运行时间分为很短的时间片,按时间片
轮流把处理机分配给各联机作业使用
分时系统的定义
分时操作系统:是一种联机的多用户交互式的操作系统。一般
采用时间片轮转的方式,使一台计算机为多个终端服务。对
每个用户能保证足够快的响应时间,并提供交互会话能力。
分时系统的特点
多路性
?系统支持单主机多个终端,按分时原则服务
独立性
?各用户独立操作,互不干扰。
及时性
?对用户请求的响应时间短(1~3s)
交互性
?用户向系统提出服务请求更方便,也更广泛
?通过终端
实时系统
产生背景:虽然多道批处理操作系统和分时操作系统获得了较佳
的资源利用率和快速的响应时间,从而使计算机的应用范围日益
扩大但它们难以满足实时控制和实时信息处理领域的需要。
于是,便产生了实时操作系统,目前典型的实时系统:实时控制
系统、实时信息处理系统。
什么是实时系统?
有高可靠性和安全性,系统的效率则放在第二位
典型的实时系统(1)
实时控制系统:计算机用于生产过程控制时,要求系统能现场实时
采集数据,并对采集的数据进行及时处理,进而能自动地发出控
制信号控制相应执行机构,使某些参数(压力、温度、距离、湿
度)能按予定规律变化,以保证产品质量。
导弹制导系统,飞机自动驾驶系统,火炮自动控制系统都是实时
过程控制系统。
典型的实时系统(2)
实时信息处理系统:计算机还可用于控制进行实时信息处理。
计算机接收成干上百从各处终端发来的服务请求和提问,系
统应在极快的时间内做出回答和响应。
机票订购系统、情报检索系统是典型的实时信息处理系统微机操作系统
1.单用户单任务OS
只允许一个用户上机,且只允许用户程序作为一个任务运行。
典型代表:
?CP/M
?8位机上的主流操作系统
?MS-DOS
?最早的PC操作系统
?16位机上的主流操作系统
2.单用户多任务操作系统
只允许一个用户上机,但允许用户把程序分为若干个任务,使
它们并发执行。
典型代表:
?微软公司推出的windows
3.多用户多任务OS
允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行。
典型代表:UNIX
1.3 操作系统的基本特性
以多道程序设计为基础的现代操作系统具有以下几个主要特
征:
?并发性(Concurrence)
?共享性(Sharing)
?异步性(Asynchronism)或称不确定性
(Nondeterministic)
?虚拟性(Virtual)
1.3.1并发性
概念:并发、并行、进程
并发性(Concurrence)是指两个或两个以上的运行程序在同一时
间间隔段内同时执行。
操作系统是一个并发系统,并发性是它的重要特征,它应该具
有:处理多个同时执行的程序的能力。
并行与并发的不同:
①并行性是指两个或多个事件在同一时刻发生
②并发性是指两个或多个事件在同一时间间隔内发生
引入进程
在多道程序系统中,为了能够并发执行,系统必须为每个程序建立进程。
?程序是静态的,进程是动态的。
?进程能支持并发,程序不能。
进程由一组机器指令、数据和堆栈组成,是一个能独立运行的活动实体。
进程是资源分配的独立单位。
多个进程能并发执行,进程运行时要占用一定的系统资源,如 CPU、存储空间和I/O设备等。
1.3.2共享性(sharing)
概念:互斥访问、临界资源、同时访问
共享指操作系统中的资源(包括硬件资源和信息资源)可被
多个并发执行的进程所使用。
发生条件
?多个进程并发执行
?多个进程需要同一资源
资源共享的方式
资源共享的方式可以分成两种:
第一种是互斥共享。系统中的某些资源如打印机、磁带机、卡
片机,虽然它们可提供给多个进程使用,但在同一时间内却
只允许一个进程访问这些资源。
这种同一时间内只允许一个进程访问的资源称临界资源,许多
物理设备,以及某些数据和表格都是临界资源,它们只能互
斥地被共享。
第二种是同时访问。系统中的还有许多资源,允许同一时间内
多个进程对它进行访问,这里“同时”是宏观上的说法。典型
的可供多进程同时访问的资源是磁盘。
共享与并发
共享性和并发性是操作系统两个最基本的特征,它们互为依
存:
?一方面,资源的共享是因为运行程序的并发执行而引
起的,若系统不允许运行程序并发执行,自然也就不
存在资源共享问题。
?另一方面,若系统不能对资源共享实施有效地管理,
必然会影响到运行程序的并发执行,甚至运行程序无
法并发执行,操作系统也就失去了并发性,导致整个
系统效率低下。
1.3.3 虚拟技术
虚拟是指操作系统中的一种管理技术,它是把物理上的一个实体
变成逻辑上的多个对应物,显然,前者是实际存在的而后者是虚
构假想的。
时分复用
?虚拟处理机
?通过多道程序和分时使用CPU技术,物理上的一个CPU 变成逻辑上的多个CPU
?虚拟设备
?打印机
?若某物理设备通过时分复用虚拟为N台,则虚拟设备速度是原设
备的1/N
空分复用
?虚拟磁盘
?1个硬盘实体->多个逻辑卷
?虚拟存储器
?虚拟存储器则是把物理上的多个存储器(主存和辅存)
变成逻辑上的一个(虚存)的例子
?内存空分复用提高内存空间利用率
?结合时分复用,可实现在逻辑上扩大内存,使程序中
远小于它的空间运行
?若某物理设备通过空分复用虚拟为N台,则虚拟设备占用空
间是原设备的1/N
1.3.4异步性
异步性(Asynchronism)亦称不确定性,( Nondeterministic )进程
以人们不可预知的速度向前推进,即进程的异步性。
在多道程序环境中,允许多个进程并发执行,由于资源有限而进程众
多,进程的执行往往不是一气呵成,而是“走走停停”,其运行、暂停和完成的时间都无法确定。
a.系统中的进程何时执行?
b.何时暂停?
c.以什么样的速度向前推进?
d.进程总共要多少时间执行才能完成?
这些都是不可预知的,或者说该进程是以不确定的方式运行的,不确定性给系统带来了潜在的危险,有可能导致与时间有关的错误。
但只要运行环境相同,操作系统必须保证多次运行作业,都会获得完全相同的结果。设计操作系统必修考虑异步性带来的问题。\
1.4操作系统功能