1.1 操作系统的基本概念
1.1.1 操作系统的概念
- 计算机由上到下的四部分:硬件,操作系统,软件,用户
- 操作系统(Operating System,OS)是指:
- 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配
- 提供给用户和其他软件方便的接口和环境
- 计算机系统中最基本的系统软件
1.1.2 操作系统的特征
- 并发:两个或者多个事件在同一时间间隔内发生
- 操作系统的并发是通过分时实现的;使得系统具有处理和调度多个程序同时执行的能力
- 并行是指多个操作同时发生,需要硬件支持
- 共享
- 互斥共享方式:例如打印机、磁带,虽然可供多个进程使用,但在一段时间内只允许一个进程访问该资源;这种资源称作临界资源或者独占资源;计算机中的大多数物理设备都是临界资源
- 同时访问方式:例如磁盘,一段时间内允许多个进程“同时”访问该资源;这里的同时是宏观的概念,在微观上实际是交替的分时访问
- 虚拟
- 一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术
- 虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器(时分复用技术)
- 虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器(空分复用技术)
- 将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备
- 异步
- 多道程序走走停停,进程以不可预知的速度向前进
- 并发和共享的关系
- 操作系统的并发指同时运行多个程序
- 操作系统的共享指资源可供多个并发的程序共同使用
- 因此, 共享是并发的前提 ; 并发是共享的存在原因
- 并发和虚拟的关系
- 虚拟性的应用是为解决用户对硬件资源的独占, 即用虚拟设备为用户提供独占资源的假象
- 失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义
- 并发与异步的关系
- 并发的条件之下才会有异步的发生
- 因此, 并发与共享是最基本的特征
- 并发和共享的关系
- 多道程序走走停停,进程以不可预知的速度向前进
1.1.3 操作系统的目标和功能
- 系统资源的管理者
- 处理机管理: 即进程管理
- 存储器管理: 即内存管理
- 文件管理: 计算机中的信息均以文件形式存在,文件系统的管理是操作系统的功能
- 设备管理: 完成I/O设备的请求, 方便使用, 提高设备利用率
- 为用户和计算机硬件之间提供接口
- 命令接口: 通过操作命令行来控制作业的执行
- 联机命令接口: 交互式命令,说一句答一句
- 脱机命令接口: 批处理命令,说一堆做一堆
- 程序接口: 请求操作系统的打包服务
- 程序接口由一组系统调用(广义指令)组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务
- 图形用户界面(GUI), 调用命令属于操作系统的一部分
- 命令接口: 通过操作命令行来控制作业的执行
- 操作系统用以扩充机器
- 将覆盖了软件的机器称为扩充机器或虚拟机
库函数和系统调用的区别与联系
- 需要向操作系统请求服务, 只能通过系统调用的方式
- 库函数是编程过程中使用的封装手段,以使编程方便直观
- 应用程序实现功能时,既可以通过库函数,也可以通过系统调用
- 将覆盖了软件的机器称为扩充机器或虚拟机
1.2 操作系统的发展与分类
1.2.1 手工操作阶段 (无操作系统)
- 所有工作都需要人工干预,当计算机的计算速度越来越快时,人机矛盾也越来越大
缺点: 一个用户独占全机, 资源利用率低 ; CPU等待时间长, CPU利用不充分
1.2.2 批处理阶段 (操作系统出现)
单道批处理系统
- 系统成批的处理作业, 内存中只有一个程序
- 自动地, 顺序地, 单道地完成一个作业 ; 当出现I/O请求时,CPU等待I/O设备完成操作后再运行
多道批处理系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
- 用户请求可以被即时响应, 实现了人机交互问题, 时间片很短时, 用户感觉自己在独占资源
缺点: 不能优先处理一些紧急任务, 操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性
1.2.4 实时操作系统
为解决紧急任务而不需要时间片排队
- 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
1.2.6 个人计算机系统
个人计算机操作系统:如Windows XP、MacOS,方便个人使用
1.3 操作系统的运行
1.3.1 运行机制
- CPU中的程序有两种, 一种是操作系统的内核程序,运行在核心态;一种是用户的自编程序,运行在用户态
操作系统的内核功能与硬件的关联会很高,一般有:
系统区分核心态和用户态以保护系统程序,用户态下不能使用特权指令,当用户态的程序请求进入核心态时,就需要发出访管指令,进入中断状态,实现状态的切换
- 中断时需要保存的数据,程序计数器PC,以及程序状态字PSW由硬件专门保存;而通用寄存器和其他需要保存的内容由操作系统负责
外中断的响应发生在指令执行完成后,而异常的响应发生在指令的执行过程中;一旦发生异常,CPU内部自动检测,并立即停止执行当前指令
1.3.3 系统调用
为保证系统的安全才区分核心态和系统调用,所以,也有不需要调用且权限很大的操作系统
- 因为系统中的资源由操作系统统一管理,因此凡是与资源有关的操作都必须向操作系统发出服务请求,让操作系统代为完成
进入核心态才能实现系统调用,即在用户态下发出陷入指令(访管指令,trap指令)实现状态的转换,过程由硬件完成
1.4 操作系统的体系结构
大内核
- 主要功能模块作为一个整体运行在核心态,性能更高;但是计算机规模越来愈大时,将难以定义清晰的关系或界限
- 微内核
- 内核只保留最基本的功能,而将其他操作放到用户态中,降低了内核的维护难度,接口更清晰,各部分独立的发展演化,保证了操作系统的可靠性,但是因为需要频繁切换状态会让性能变低