上节宏观上讲到操作系统的工作流程,这节主要讲述操作系统的功能,以及操作系统的分类。
操作系统的功能
1、进程管理
主要有进程控制,进程调度,进程通信这几个管理方面。
2、内存管理
3、设备管理
给应用程序分配设备,设备无关性,设备和数据之间的传输
4、文件管理
5、操作界面/可视化
计算机构成图
操作系统是一个承上启下的作用,为硬件和应用程序之间的沟通建立起了一个桥梁。
操作系统的发展阶段
1、手工操作
在50年代早期,计算机的运行还需要大量的操作员用打孔的纸带和卡片表示二进制程序,放入计算机进行操作,并掌控开关门,才可以运行程序,这时候还是无操作系统时代。
2、单道批处理系统
管理员事先将多个作业输入到磁盘形成作业队列
操作系统依次自动处理队列中的每个作业
装入——运行——撤出
程序的装入和撤出自动完成,效率高
特点:批量(作业队列)、自动(识别作业,装入撤出)、单道(依次、串行)。
外设和CPU交替空闲和忙碌(就是这两个同一时刻只能一个在工作),CPU和外设效率低。
3、多道批处理系统
在内存中存放多道程序。当某道程序因某种原因(例如:I/O操作请求时),不能再继续运行而放弃CPU时,操作系统便调度另一程序投入运行。这样使得CPU尽量忙碌。提高CPU利用率。
特点:多道(内存同时存放多道程序),并行(宏观上多程序并行),串行(微观上,CPU只有一个,任何时候都只有一个程序占用CPU,意思就是说,比如有A,B两个程序,A如果不中断,假设要1分钟可以结束运行,那么这一分钟CPU都只为A程序服务,B程序就做冷板凳了。后面介绍的分时系统就解决了这个问题。)
4、分时系统
事务性任务的涌现,要求交互性高,响应速度快,支持多用户/任务,多终端计算机。就出现了高性能主机+多个终端的分时操作系统。主机负责:运算,CPU+内存性能优越;终端:输入和显示。
主机采用分时技术轮流为每个终端服务,每个终端都感觉“独占”到主机。
分时技术
主机以很短的“时间片”(大概50ms)为单位,把CPU轮流分配给每个终端使用,直到全部作业被运行完。由于时间片很短,在终端数量不多的情况下,每个终端都能很快的重新获得CPU,使每个终端都能得到及时响应。
等待周期=时间片*终端数
特点:多路调制性(多用户联机使用同一台计算机),独占性(用户感觉独占计算机),交互性(及时响应用户的请求)。
UNIX:第一个实用化的分时操作系统,实现了操作系统的可移值性,实现了硬件无关性,引进“特殊文件”的概念把外设看作文件,实现了外设的统一管理。
常见的操作系统
1、微机操作系统
进入个人计算机时代(PC机)时代,1973年,CP/M操作系统,BIOS把操作系统和硬件分隔,让操作系统具有可移植性。
2、实时操作系统
实时事务:军事,工业控制,智能仪器
要求:某些任务要优先紧急处理。
特点:强调作业完成的时限。
3、嵌入式操作系统
嵌入式操作系统约等于实时操作系统,软硬件可裁剪,软硬件一体化系统。
典型的嵌入式系统:Android,Linux。
4、网络操作系统
普通操作系统+网络通信+网络服务
UNIX/LINUX/WINDOW
适合学习的开源操作系统
小型
MiNix OS,代码约12000行,微内核架构,类似unix操作系统。
大型
Linux内核版,但是代码量太大了。
推荐书籍
操作系统真相还原、Orange’s一个操作系统的实现、30天自制操作系统、x86汇编语言从实模式到保护模式、操作系统的设计与实现。
哎,不知道啥时候可以有空看看,感觉要读论文去了,不能一直看基础,太慢了,而且现在还开始上课了更加没有时间。