众所周知,软件是计算机的灵魂,没有软件,计算机就像一个漂亮的花瓶,徒有其表。计算机软件可以大致分为两类,及系统软件和应用软件。系统软件负责管理计算机本身的运作,而应用软件则负责完成用户所需要的各种功能。最基本的系统软件就是操作系统,它负责管理计算机的所有资源并提供一个可以在其上编写应用程序的平台。
一. 什么是操作系统
可以从两个不同的角度观察操作系统,一是扩展,二是资源管理。下面分别对这两个功能进行讨论。
1. 从扩展的角度看操作系统
对多数计算机而言,在机器语言一级上编程是比较困难的。对于我们更希望用一种简单的,高度抽象的接口。对于磁盘而言,一种典型的抽象是:磁盘内包含了一组文件。
从这个角度说,操作系统的功能就是为用户提供一台等价的扩展计算机。
2. 从资源的角度看操作系统
现代计算机都包含处理器,存储器,定时器,磁盘,鼠标,网络接口,打印机以及其他的各种设备,从这个角度来看,操作系统的任务就是在相互竞争的程度之间,如何有序地控制这些硬件设备的分配。
二 操作系统的发展历史
1. 无操作系统的计算机
从第一代计算机诞生到20世纪50年代中期还未出现操作系统,这时的计算机采用人工操作方式。
2. 单道批处理系统与多道批处理系统及执行系统 所谓批处理系统是指加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地成批地处理一个或多个用户的作业。
3.分时系统
分时技术是把处理机的时间分成很短的时间片,这些时间片轮流地分配给各个联机的各作业使用。如果某作业在分配给它的时间片用完时仍未完成,则该作业就暂时中断,等待下一轮运行,并把处理机的控制权让给另一个作业使用。这样在一个相对较短的时间间隔内,每个用户作业都能得到快速响应,以实现人机交互。
4.实时操作系统
实时操作系统分为两类
实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构。通常,我们把要求对信息进行实时处理的系统称为实时信息处理系统。
5. 分布式操作系统
大量的实际应用要求一个一体化的系统,用户希望以统一的界面,标准的接口去使用系统的各种资源,实现所需的各种操作。这就导致了分布式系统的出现。一个分布式系统是若干计算机的集合,它们都有自己的局部存储器和外部设备,但分布式系统是一个一体化的系统,在系统中有一个全局操作系统,即分布式操作系统,它负责整个系统的资源分配和调度、任务划分、信息传输、控制协调等工作,为用户提供一个统一的界面,标准的接口,用户通过这一界面实现所需的操作和使用系统的资源,但操作和计算是在哪一台计算机上执行或使用哪个计算机的资源则由操作系统自动完成,用户不用知道,即分布或操作系统是透明的。
三 操作系统基本功能
进程管理
进程控制,进程同步,进程通信,调度
I/O设备管理
缓冲管理,设备分配,设备处理,设备独立性和虚拟设备
存储管理
内存分配,内存保护,地址映射,内存扩充
文件管理
文件存储空间的管理,目录管理,文件的操作
参考资料:《操作系统设计与实现》Andrew S. Tanenbaum,Albert S. Woodhull