世界上任何书籍不能给你带来好运,但是它们能让你悄悄成为你自己—今日语句
想必大家上课看老师讲的感觉很散乱,很乏味的概论。那我从整体上谈谈我对操作系统的理解。
操作系统的概念
下面讲解操作系统研究中的不同观点,这些观点彼此并不矛盾,而是站在不同角度对同一事物(操作系统)分析的结果。每一种观点都有助于理解、分析和设计操作系统。
1.用户观点
操作系统的用户观点即根据用户所使用计算机的不同而设计不同类型的操作系统。比如,大多数人使用的是个人计算机(PC),此类计算机主要包括主机、显示器、键盘等,这种系统设计是为了使用户更好地进行单人工作,因此操作系统要达到的目的就是方便用户使用,资源利用率显得不是很重要。而有些用户使用的是大型机或者其终端等,此类计算机用来完成大型计算或作为公共服务器等工作,因此其操作系统的设计目的就是使资源利用最大化,确保所有资源都能够被充分使用,并且保障稳定性。而智能手机的操作系统所追求的则是界面友好、使用便捷及耗电量低等。
2.系统观点(资源管理的观点)
从资源管理的角度来看,操作系统是计算机系统的资源管理程序。在计算机系统中有两类资源:硬件资源和软件资源。按其作用又可以将它们分为4大类资源:处理器、存储器、外设和信息(程序和数据)。这4类资源构成了操作系统本身和用户作业赖以活动的物质基础和工作环境。它们的使用方法和管理策略决定了整个操作系统的规模、类型、功能和实现。与上述4类资源相对应,操作系统可被划分成处理器管理、存储器管理、设备管理和信息管理(即文件系统),并分别进行分析研究。由此,可以用资源管理的观点组织操作系统的有关内容。
3.进程观点
这种观点把操作系统看作由若干个可以独立运行的程序和一个对这些程序进行协调的核心所组成的。这些运行的程序称为进程,每个进程都完成某一项特定任务(如控制用户作业的运行,处理某个设备的输入/输出……)。而操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信;它从系统各部分以并发工作为出发点,考虑管理任务的分割和相互之间的关系,通过进程之间的通信来解决共享资源时所带来的竞争问题。通常,进程可以分为用户进程和系统进程两大类,由这两类进程在核心控制下的协调运行来完成用户的要求。
4.虚拟机观点
虚拟机的观点也称为机器扩充的观点。从这一观点来看,操作系统为用户使用计算机提供了许多服务功能和良好的工作环境。用户不再直接使用硬件机器(称为裸机),而是通过操作系统来控制和使用计算机。计算机被扩充为功能更强大、使用更加方便的虚拟计算机。 从功能分解的角度出发,考虑操作系统的结构,将操作系统分为若干个层次,每一层次完成特定的功能,从而构成一个虚拟机,并为上一层提供支持,构成它的运行环境。通过逐层的功能扩充,最终完成操作系统虚拟机,从而为用户提供全套的服务,满足用户的要求。
操作系统的特征
虽然不同的操作系统具有不同的特征,但它们都具有以下4个基本特征。
1.并发性
并发性和并行性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指宏观上在一段时间内有多道程序在同时运行,但在单处理器系统中,每一时刻仅有一道程序在执行,故微观上这些程序是交替执行的。举一个简单的例子,该例子在后续章节还会提到:假如对于哲学家来说,用餐和思考是哲学家唯一需要做的两件事,一般的哲学家在早上9:00-9:30用餐,9:30一 10:30思考,10:30–11:00再次用餐,那么在9:00–11:00这个时间间
隔内,用餐和思考是两件并发执行的任务;而某些优秀的哲学家可以一心二用,用餐的同时可以思考问题,则此时用餐和思考同时进行,即两个任务并行执行。
程序的并发执行能有效改善系统的资源利用率,但会使系统复杂化,因此操作系统必须具有控制和管理各种并发活动的能力。
注:并发性和并行性是一对容易混淆的概念,因此尤其要注意两者在概念上的区别。
2.共享性
资源共享是指系统中的硬件和软件资源不再为某个程序所独占,而是供多个用户共同使用。并发和共享是操作系统的两个最基本的特征,二者之间互为存在条件。一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
根据资源性质的不同,可将资源共享方式分为两种。
.互斥共享。系统中可供共享的某些资源,如打印机、某些变量、队列等一段时间内只能供一个作业使用的资源,只有当前作业使用完毕并释放后,才能被其他作业使用。
.同时访问。系统中的另一类资源,如磁盘、可重入代码等,可以供多个作业同时访问。虽然这种“同时”是指宏观上的“同时”,微观上可能是作业交替访问该资源,但作业访问资源的顺序不会影响访问的结果。
并发性和共享性是操作系统最基本的特征。
3.虚拟性
在操作系统中,虚拟是指把一个物理上的实体变为若干个逻辑上的对应物,前者是实际存在的,后者是虚拟的,这只是用户的一种感觉。例如,在操作系统中引入多道程序设计技术后,虽然只有一个CPU,每次只能执行一道程序,但通过分时使用,在一段时间间隔内宏观上这台处理器能同时运行多道程序。它给用户的感觉是每道程序都有一个CPU为其服务。也就是说,多道程序设计技术可以把一台物理上的CPU虚拟为多台逻辑上的CPU。此外还有虚拟存储器(从逻辑上扩充存储器的容量)、虚拟设备(独占设备变为共享设备)等技术。
4.异步性
在多道程序环境中,由于资源等因素的限制,程序是以“走走停停”的方式运行的。系统中的每道程序何时执行、多道程序间的执行顺序以及完成每道程序所需的时间都是不确定的,因而也是不可预知的。
操作系统的主要功能和提供的服务
如前所述,操作系统的职能是负责系统中软硬件资源的管理,合理地组织计算机的工作流程,并为用户提供一个良好的工作环境和友好的使用界面。下面来说明操作系统的五大基本功能:处理器管理、存储器管理、设备管理、文件管理和用户接口。
1.处理器管理
处理器管理的主要任务是对处理器的分配和运行实施有效的管理。在多道程序环境下,处理器的分配和运行是以进程为基本单位的,因此对处理器的管理可归结为对进程的管理。
进程管理应实现下述主要功能:
.进程控制。负责进程的创建、撤销及状态转换。
.进程同步。对并发执行的进程进行协调。
.进程通信。负责完成进程间的信息交换。
.进程调度。按一定算法进行处理器分配。
2.存储器管理
存储器管理的主要任务是对内存进行分配、保护和扩充。存储器管理应实现下述主要功能:
.内存分配。按一定的策略为每道程序分配内存。
.内存保护。保证各程序在自己的内存区域内运行而不相互干扰。
.内存扩充。为允许大型作业或多作业的运行,必须借助虚拟存储技术去获得增加内存的效果。
3.设备管理
计算机外设的管理是操作系统中最庞杂、琐碎的部分。设备管理的主要任务是对计算机系统内的所有设备实施有效管理。设备管理应具有下述功能:
.设备分配。根据一定的设备分配原则对设备进行分配。为了使设备与主机并行工作,还需采用缓冲技术和虚拟技术。
.设备传输控制。实现物理的输入/输出操作,即启动设备、中断处理、结束处理等。
.设备独立性。即用户程序中的设备与实际使用的物理设备无关。
4.文件管理
操作系统中负责信息管理的部分称为文件系统,因此称为文件管理。文件管理的主要任务就是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题。文件管理应实现下述功能:
.文件存储空间的管理。负责对文件存储空间进行管理,包括存储空间的分配与回收等功能。
.目录管理。目录是为方便文件管理而设置的数据结构,它能提供按名存取的功能。
.文件操作管理。实现文件的操作,负责完成数据的读写。
.文件保护。提供文件保护功能,防止文件遭到破坏。
5.用户接口
为方便用户使用操作系统,操作系统还提供了用户接口。通常,操作系统以如下3种接口方式提供给用户使用。
.命令接口。提供一组命令供用户直接或间接控制自己的作业。主要有两种命令接口控制方式,即联机命令接口和脱机命令接口。
联机命令接口又称交互式命令接口,适用于分时或实时操作系统,它由一组键盘操作命令组成,用户通过控制台或终端输入操作命令,向系统提出各种服务要求,用户每输入完一条命令,控制权就转入操作系统的命令解释程序,然后由命令解释程序对输入的命令解释并执行,完成执行的功能。之后控制权又转回到控制台或终端,此时用户又可以输入下一条命令。
脱机命令接口又称批处理命令接口,即适用于批处理系统,它由一组作业控制命令(或称作业控制语句)组成,脱机用户不能直接干预作业的运行,应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或控制语句逐条解释执行从而间接地控制作业的运行。
.程序接口。也称为系统调用,是程序级的接口,由系统提供一组系统调用命令供用户程序和其他系统程序调用。用户在程序中可以直接使用这组系统调用命令向操作系统提出各种服务要求,如使用外设、申请分配内存、磁盘文件的操作等。
.图形接口。近年来出现的图形接口(也称图形界面)是联机命令接口的图形化。
由操作系统的功能可以知道操作系统提供哪些服务:操作系统提供了一个用以执行程序的环境,提供的服务有程序执行、I/O操作、文件操作、资源分配与保护、错误检测与排除等。