1.2 OS的发展过程
- 20世纪50年代中期,第一个简单的批处理系统
- 60年代中期,多道程序批处理系统,随后出现分时系统
- 上世纪80年代开始至21世纪初,微型机、多处理机、计算机网络大发展年代→微机OS、多处理机OS和网络OS的形成和大发展年代。
1.2.1 无OS的计算机系统
这一时期有两种操作方式:
- 人工操作方式
- 脱机输入/输出(Off-Line I/O)方式
(20世纪50年代末 )
- 人工操作方式
程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机);
再启动输入机将程序和数据输入计算机;
然后启动计算机运行。
当程序运行完毕并取走计算结果后,才让下一个用户上机。
- 缺点:用户独占全机;
- CPU等待人工操作
- 脱机输入/输出方式
优点(1)减少了CPU的空闲时间
(2)提高了I/O速度
1.2.2 单道批处理系统
1. 单道批处理系统的处理过程
-
- 把一批作业以脱机方式输入到磁带上;
- 在监督程序(Monitor)控制下使这批作业
一个接一个地连续处理。
参看下页的图1-3
它是OS的前身,而非现在人们理解的OS。
2. 单道批处理系统的特征
自动性
在磁带上的作业能自动地逐个地依次运行,而无需人工干预。
顺序性
磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序相同,即先调入内存的作业先完成。
3单道性
在内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行
1.2.3 多道批处理系统
- 多道程序设计的基本概念
- 用户提交的作业事先存放在外存上,形成“后备队列”
- 作业调度程序按一定算法从后备队列中选择若干作业调入内存,使它们共享CPU和系统中的各种资源。
好处(1)提高CPU利用率
(2)提高内存和I/O设备利用率
(3)增加系统吞吐量
多道批处理系统的特征
多道性多道程序在内存中并发执行。提高了资源利用率和系统吞吐量。
无序性
先进入内存的作业可能后完成;后进入内存的作业可能先完成
调度性
作业从提交到完成,需经过两种调度:作业调度和进程调度
多道批处理系统的优缺点
多道批处理系统需要解决的问题
(1)处理机管理问题(处理机分配、提高利用率)
(2)内存管理问题(分配、保护等)
(3)I/O设备管理问题(方便用户、提高利用率)
(4)文件管理问题(方便用户、数据安全一致)
(5)作业管理问题(计算型、I/O型不同处理)
1.2.4 分时系统
- 分时系统——是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
- 1. 分时系统的产生
是为了满足用户的以下需求而产生的
(1)人-机交互
(2)共享主机
(3)便于用户上机
2.分时系统实现中的关键问题
(1)及时接收
(2)及时处理
要做到上述两条,必须彻底改变批处理系统的运行方式,即
- 用户作业不能先进入磁盘,然后再调入内存
- 不允许一个作业长期占用处理机,直至它运行结束或出现I/O请求后,方才调度其它作业运行
- 应该规定每个作业只运行一个很短的时间(称为时间片)
- 3.分时系统的特征
1.2.5 实时系统
实时系统(Real-Time System)
——是指系统能及时响应外部事件的请求,在规定时间内完成该事件的处理,并控制所有实时任务协调一致地运行。
1.应用需求
(1)实时控制
实时数据采集处理;执行机构;自动控制
(2)实时信息处理
飞机或火车的订票系统、情报检索系统等
2.实时任务
在实时系统中必然存在着若干个实时任务,这些实时任务通常与某个(某些)外部设备相关,能反映或控制相应的外部设备,因而带有某种程度的紧迫性
分类:按执行是否周期性划分
周期性实时任务
按指定周期循环执行,以便周期性地控制某外部设备
非周期性实时任务
外部设备发出的激励信号无明显周期性,但都必须联系着一个截止时间。
①开始截止时间——任务在某时间以前必须开始执行
②完成截止时间——任务在某时间以前必须完成
分类:实时任务按对截止时间要求划分
硬实时任务
系统必须满足任务对截止时间的要求,否则可能出现难于预测的结果
软实时任务
它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大
3.实时系统与分时系统特征的比较
1.2.6 微机操作系统的发展
1.单用户单任务操作系统
- CP/M 上世纪70年代(8位机)
- MS-DOS 上世纪80年代(16位机/32位机)
2.单用户多任务操作系统
Windows 95
Windows 98
Windows XP
Windows NT
- 多用户多任务操作系统
UNIX OS(AT&T的Bell实验室)
Solaris OS(SUN公司)
Linux OS(UNIX重要变种,芬兰学生;集体开发)
操作系统的定义
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。