操作系统漫游(一)引论
1753字约6分钟
操作系统
2018-03-08
什么是操作系统(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还要按照一定的算法把处理机分配给进程,称为调度
。其中包括作业调度和进程调度。
存储器管理
包括内存的分配、内存的保护、地址映射和内存扩充。
设备管理
包括缓冲管理、设备分配、设备处理以及虚拟设备等功能。
文件管理
包括文件存储空间管理、目录管理、文件的读写管理以及文件的共享和保护等功能。