本系列文章力求用最简洁的语言整理出操作系统的知识框架,帮助求职的同学对操作系统的知识做一个梳理。
1. 操作系统的基本概念
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源,合理组织调度计算机工作与资源分配,为用户及其他软件提供方便的接口和环境的程序集合。
操作系统是运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
2. 操作系统的目标与作用
可以从不同的观点来观察操作系统的作用。
从资源的管理角度出发,可将操作系统视为计算机系统软件与硬件资源的管理者;从用户角度出发,操作系统则是用户与计算机硬件系统间的接口。此外,操作系统还实现了对计算机资源的抽象,隐藏了硬件的操作细节。
2.1 操作系统作为计算机系统资源的管理者
-
处理机管理
在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位。因此,对处理机的管理可归结为对进程的管理。其主要的职责包括:进程控制、进程同步、进程通信、死锁处理以及处理机调度等。
-
存储器管理
存储器管理的目标是给多道程序提供良好的环境,方便用户使用以及提高内存的利用率。其主要职责包括内存分配、地址映射、内存扩充等。
-
文件管理
计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读/写管理和保护等。
-
设备管理
设备管理的主要任务是完成用户的I/O请求,方便用户对各种设备进行方便地使用,并提高各类设备的利用率。主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
2.2 操作系统作为用户与计算机硬件系统之间的接口
为方便用户使用计算机,操作系统提供了用户接口。
操行系统提供的接口分为两类:一类是命令接口,用户利用操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以利用这些接口来请求操作系统的服务。
2.3 操作系统实现了对计算机资源的抽象
没有任何软件支持的计算机称为裸机,它向用户提供实际的硬件接口,用户必须对各类物理接口有一定的了解,并利用机器指令进行编程才能使用,使用难度较大。
为了方便用户使用计算机硬件,人们在裸机上覆盖上操作系统,由操作系统提供资源管理功能和各种服务,将裸机改造成功能更强、 使用更方便的机器。操作系统对隐藏了对硬件操作的细节,实现了对计算机资源的抽象。
3. 操作系统的基本特征
操作系统的基本特征包括:并发、共享、虚拟和异步。其中,并发和共享是操作系统的两个最基本的特征。
3.1 并发
并发是指两个或者多个事件在同一时间间隔内发生。值得一提的是,并行是指两个或者多个事件在同一时刻发生。在单处理机操作系统中,进程间只能并发,但设备与设备,设备与进程间是可以并发执行的。
通常,程序是静态实体。在多道程序系统中,引入进程的目的是为了使多个程序能够并发执行。进程由程序、数据和PCB构成,是一个能够独立运行的活动实体。同时,进程也是资源的基本分配单位,在没有引入线程的操作系统中,进程也是独立调度的基本单位。
线程比进程更小,基本不拥有资源。因此,对线程的切换开销比进程切换小得多,因而有效地提高了并发的程度。关于进程与线程间的讨论将在以后的章节进一步展开。
3.2 共享
共享(资源共享)是指系统中的资源可供内存中多个并发执行的进程共同使用。共享进一步可以分为互斥方式共享和同时访问共享。
-
互斥方式共享
系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。此类资源被称为临界资源或者独占资源。
-
同时访问共享
系统中还有另一类资源,允许在一段时间内由多个进程在宏观上“同时”对它们进行访问。(而在微观上,这些进程可能是交替地对该资源进行访问即 “分时共享”)典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。
3.3 虚拟
”虚拟“是指通过某种技术,把物理实体变为若干个逻辑上的对应物。用于实现虚拟的技术被称为虚拟技术。
在操作系统中利用两种方式实现虚拟技术:时分复用,空分复用。时分复用被用来实现虚拟处理机、虚拟设备等功能,空分复用的应用场景则为虚拟磁盘技术与虚拟存储器技术等。
3.4 异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程只有在获得所需的资源后才能执行。因此,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
异步性使得操作系统运行在一种随机的环境下,可能导致进程出现与时间交错有关的错误。但是,只要运行的环境相同,操作系统必须保证多次运行程序,获得的结果是相同的。