1. 操作系统的基本概念
1.1 操作系统的概念
计算机系统自下而上可大致分为4部分:硬件、操作系统、应用程序和用户。
操作系统是指控制和管理整个计算机系统的软件与硬件资源,合理地组织和调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口和环境的程序集合。
1.2 操作系统的特征
1.2.1 并发
并发是指两个或多个事件在同一时间间隔内发生。并发性在宏观上是有多道程序同时执行,而在微观上这些程序仍是分时交替执行的。操作系统的并发性是通过分时得以实现的。
操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的是使程序能并发执行。
并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。并行性需要有相关硬件的支持。
1.2.2 共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用。
共享分为以下两种方式:
- 互斥共享方式:在一段时间内只允许一个进程访问该资源。如打印机和磁带机。
- 同时访问方式:允许在一段时间内由多个进程同时访问。同时通常是宏观的,而在微观上,这些进程可能是交替地对该资源进行访问。如磁盘。
1.2.3 虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。用于实现虚拟的技术,称为虚拟技术。
- 虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的,利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。
- 虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。
- 虚拟设备技术将一台物理上的I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
1.2.4 异步
异步性是指多道程序环境下允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
1.3 操作系统的目标和功能
1.3.1 操作系统作为计算机系统资源的管理者
- 处理机管理:在多道程序环境下,处理机的分配和运行都是以进程为基本单位的,因而对处理机的管理可归结为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理和处理机调度等。
- 存储器管理:存储器管理是为了给多道程序运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
- 文件管理:计算机中的信息都是以文件的形式存放的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
- 设备管理:设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
1.3.2 操作系统作为用户与计算机硬件系统之间的接口
- 命令接口:允许用户直接使用。使用命令接口进行作业控制的主要方式有两种,联机控制方式与脱机控制方式,按作业控制方式的不同,可将命令接口分为联机命令接口与脱机命令接口。
- 程序接口:允许用户通过程序间接使用。程序接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务。
- GUI:现代操作系统中最流行的图形用户接口
1.3.3 操作系统用作扩充机器
操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器。
2. 操作系统的发展与分类
2.1 手工操作阶段
用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行和结果的输出等。
缺点:
- 用户独占全机,资源利用率低
- CPU等待手工操作,CPU的利用率不充分
2.2 批处理阶段
为了解决人机矛盾及CPU和I/O设备之家速度不匹配的矛盾,出现了批处理系统。
2.2.1 单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统是在解决人机矛盾及CPU和I/O设备速率不匹配的矛盾中形成的。
特点:
- 自动性:在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预
- 顺序性:先调入内存的作业先完成
- 单道性:内存中仅有一道程序运行,当该程序完成或发生异常时,才换入其后继程序进入内存运行
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
2.2.2 多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种软硬件资源。
多道程序的特点时多道、宏观上并行、微观上串行。
- 多道:计算机内存中同时存放多道相互独立的程序
- 宏观上并行:同时进入系统的多道程序都处于运行过程中,即他们先后开始各自的运行,但都未运行完毕
- 微观上串行:内存中的多道程序轮流占有CPU,交替执行
- 主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。
- 主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)
2.3 分时操作系统
分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
2.4 实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
实时操作系统分为硬实时系统和软实时系统。
实时系统的主要特点是及时性和可靠性,缺点是资源利用率低。
2.5 网络操作系统和分布式计算机系统
- 网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信。
- 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
2.6 个人计算机系统
个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格和游戏中,常见的有Windows、Linux和Macintosh等。
3. 操作系统的运行环境
3.1 操作系统的运行机制
计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序,另一种是用户自编程序。
特权指令是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态寄存器等指令。
在具体实现上,将CPU的状态划分为用户态和核心态。用户自编写的程序运行在用户态,操作系统内核程序运行在核心态。
不同系统对内核的定义稍有区别,大多数操作系统内核包括四个方面的内容。
- 时钟管理:实现计时功能。通过时钟中断的管理,可以实现进程的切换。
- 中断机制:引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础,如:键盘或鼠标的信息输入、进程的管理和调度、系统功能的调用、设备驱动和文件访问等。
- 原语:定义原语的直接办法是关闭中断,让其所有动作不可分割地完成后再打开中断。
- 系统控制的数据结构及处理:系统中用来登记状态信息的数据结构很多,如:作业控制块、进程控制块、各类链表、消息队列、缓冲区、空闲区登记表和内存分配表等。
3.2 异常和中断的概念
中断是CPU从用户态进入核心态的唯一途径,发生中断就意味着需要操作系统接入开展管理工作,CPU会立即进入核心态。有了中断,多道程序才能并发执行。
- 中断:也称外中断,指来自CPU执行指令以外的事件的发生,如时钟中断、I/O发出的中断请求等。这一类中断通常是与当前指令执行无关的事件。
- 异常:也称内中断、例外或陷入,指来自CPU执行指令内部的事件。如程序的非法操作码、地址越界、算数溢出、虚存系统的缺页及专门的陷入指令等引起的事件。
3.3 系统调用
系统调用是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。
系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作,都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统调用按功能大致可分为如下几类:
系统调用的执行过程:
若程序的运行是由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不可能是特权指令。
4. 操作系统的体系结构
4.1 大内核与微内核
- 大内核:大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。
- 微内核:微内核系统将内核中最基本的功能保留在内核,如进程的管理等,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核设计的复杂性。
微内核结构将操作系统的很多服务移动到内核以外,且服务之间使用进程间通信机制进行信息交换,这种通过进程间通信机制进行的信息交换影响了系统的效率。所以相对来说,大内核使系统更加高效,微内核使系统更加稳定。