操作系统漫游(一)引论

什么是操作系统(Operating System)

操作系统是配置在计算机硬件上的第一层软件。主要作用是管理好硬件设备,以提高硬件的利用率和吞吐量。同时,操作系统为用户和应用程序提供接口,便于计算机的使用。


操作系统发展过程

人工和纸带

自1945年第一台计算机发明到20世纪50年代期间,还处于无操作系统时代,操作计算机主要是靠人工操作或者纸带脱机输入输出的方式。

批处理系统

后来到50年代中期出现了单道批处理系统多道批处理系统

单道批处理系统的程序是顺序执行的,缺点是在程序调度IO的时候,CPU就空闲下来了,直到程序调度完毕,才载入第二个程序,CPU才能继续工作。

多道批处理系统解决了这个问题。它将需要处理的作业按照队列(称为后备队列)放在外存上,依照一定的算法选择若干作业调入内存,使它们共享CPU和其他资源。这样,当程序A执行IO调度的时候,CPU可以处理程序B,提高了系统资源利用率和吞吐量,充分利用了CPU资源。但是平均周转时间长,也没有和用户交互的能力

分时系统

直到60年代,出现了分时系统,简单地说就是一台主机配有多台显示器和键盘,允许多个用户同时操作自己的终端,且互不干扰。分时系统引入了时间片的概念,也就是每个作业只能运行一小段时间,然后暂停,调度下一个作业,然后暂停,然后调度下一个作业……一直循环。分时系统实现了多用户以及交互性。

实时系统

后来又出现了实时系统,所谓实时,指的是及时。实时系统能响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地执行。

微机操作系统

之后又出现了微机操作系统,包括单用户单任务的MS-DOS,单用户多任务的Windows(从Windows 1.0 -Windows 10)、多用户多任务的Unix OS及其延伸Solari OS 和 Linux。


操作系统的目标

方便性

操作系统提供了一系列接口和命令,让用户很方便地使用计算机。同时它提供的编译命令使程序员可以采用高级语言编程。

有效性

  • 提高系统资源的利用率
  • 提高系统的吞吐量

可扩充性

无结构 -> 模块化结构 -> 层次化结构 -> 微内核结构

开放性

遵循世界标准规范,尤其是OSI国际标准


操作系统的作用

作为用户与计算机硬件系统之间的接口

操作系统提供了一系列接口和命令,甚至是图形界面,让用户很方便地使用计算机。

操作系统同时提供系统调用,供软件开发时的函数调用。用户程序通过系统调用获得操作系统的服务。

管理计算机系统资源

所谓资源,包括了处理机、存储器、IO设备、文件(数据+程序),操作系统可对这些资源进行有效的管理。

同时,在多用户操作系统中,操作系统协调多个用户对共享资源的使用。


操作系统的特性

操作系统的共同特征有:并发共享虚拟异步

并发(Concurrence)

并行(parallel) 是指多个时间同一时刻同时发生。并发(Concurrence) 是指宏观上同时执行,但微观上多个事件在时间间隔内(交替)发生。操作系统中最能体现并发的,就是引入进程的概念。并发和进程是现代操作系统最重要的基本概念。

共享(sharing)

共享包括互斥共享方式同时访问方式。互斥共享方式规定一段时间内,只允许一个进程访问某资源。而同时访问方式则没有这个限制,所有进程都能同时访问某资源。

值得注意的是,这里的同时,指的是宏观上的同时,在微观上,多个进程访问某一资源,是交替进行的。

虚拟(virtual)

OS 利用时分复用技术让用户或应用程序感觉计算机只为其服务。 利用空分复用技术实现内存利用率,比如,一个100M的应用程序之所以能运行在30M的内存空间上,是因为内存只把暂时需要的数据调入内存,等到运行完成后释放掉这部分数据,调入下一部分的数据。

异步(Asynchronism)

不同的进程,有些CPU运算多一点,有些IO调度多一点,因为CPU速度比IO快得多,因此,后运行的进程可能比先运行的进程提前结束。进程的异步性指的就是进程是以人们不可预知的速度向前推进的。如果多个进程共享了同一个数据资源,那么由于并发,可能导致多次执行的结果不可再现,因此要在操作系统中配置完善的进程同步机制


操作系统的功能

OS的基本功能包括:处理机管理存储器管理设备管理文件管理。同时还需向用户提供方便的 用户接口

处理机管理

处理机,可以理解为CPU。处理机管理包括进程控制进程同步。进程控制指的是创建新的和撤销已结束的进程,以及控制进程在运行过程的状态转换。进程同步指OS利用进程互斥或者同步的方式,对多个进程的运行进行协调。

除此之外,进程与进程之间有时候需要通信,也是由OS来管理。由于处理机一个时刻只能处理一个进程,OS还要按照一定的算法把处理机分配给进程,称为调度。其中包括作业调度进程调度

存储器管理

包括内存的分配、内存的保护、地址映射和内存扩充。

设备管理

包括缓冲管理、设备分配、设备处理以及虚拟设备等功能。

文件管理

包括文件存储空间管理、目录管理、文件的读写管理以及文件的共享和保护等功能。