知识框架
- 概论
- 特征
- 并发(最基本)
- 共享(最基本)
- 虚拟
- 异步
- 目标和功能
- 计算机系统资源管理者
- 扩充机器
- 用户与计算机系统之间的接口
- 命令接口
- 程序接口
- GUI
- 发展
- 批处理操作系统$\rightarrow$分时操作系统$\rightarrow$实时操作系统$\rightarrow$网络和分布式操作系统
- 运行机制
- 中断和异常
- 系统调用
- 体系结构
- 大内核
- 微内核
- 特征
操作系统的基本概念
操作系统的概念
操作系统是只控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。
操作系统是计算机系统中最基本的系统软件
操作系统的特征
基本特征包括并发、共享、虚拟和异步
并发
并发指两个或多个事件在同一时间间隔内发生
操作系统的并发性指计算机系统中同时存在多个运行的程序,因而具有处理和调度多个程序同时执行的能力。
同一时间间隔(并发)和同一时刻(并行)的区别:
- 宏观上有多道程序同时进行,微观上这些程序依旧是分时交替执行的,操作系统的并发性正是分时得以实现的
- 并行性则是具有同时进行运算或操作的特性,同一时刻能完成两种或两种以上的工作,需要硬件的支持
共享
共享通常指系统中的资源可供内存中多个并发执行的进程共同使用,拥有两种资源共享方式
- 互斥共享方式
互斥式共享:
当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统将其分配给进程A使用,此后有其他进程也要访问该资源时,就必须等待。仅当进程A访问完并释放该资源后,才允许另一个进程对该资源进行访问。
临界资源(独占资源):
一段时间内只允许一个进程访问的资源
互斥共享要求一种资源在一段时间内(哪怕是很小的时间)只能满足一个请求,否则就会出现严重的问题
- 同时访问方式
宏观上存在一些资源允许多个进程同时访问,微观上这些进程是交替地对该资源进行访问,即分时共享
并发和共享是操作系统两个最基本的特征,两者互为存在的条件:
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
- 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行
虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
操作系统中采用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等
虚拟技术可归纳为:
- 时分复用技术,如处理器的分时共享
- 空分复用技术,如虚拟存储器
异步
程序的异步性:
多道程序环境允许多个程序并发执行,但由于资源有限,进程执行并非一贯到底,而是走走停停,以不可预知的速度向前推进
异步性导致的问题:
异步性会使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。然而在运行环境相同的情况下,操作系统就需要保证多次运行进程后得到的结果相同
操作系统的目标和功能
操作系统应具有以下功能来给多道程序提供良好的运行环境
- 处理机管理、存储器管理、设备管理和文件管理
- 需向用户提供接口以方便用户使用
- 可用于扩充机器来提供更方便的服务、更高的资源利用率
操作系统作为计算机系统资源的管理者
- 处理机管理
在多道程序环境下,处理机的分配和运行都以进程(线程)为主要单位
处理机的管理可归结为对进程的管理,因此进程创建、撤销、管理、避免冲突、合理共享就是进程管理的主要任务
进程管理的主要功能:
- 进程控制
- 进程同步
- 进程通信
- 死锁处理
- 处理机调度
- 存储器管理
存储器管理用于给多道程序的运行提供良好环境,便于用户使用及提高内存利用率
主要功能:
- 内存分配与回收
- 地址映射
- 内存保护与共享
- 内存扩充
- 文件管理
负责文件管理的部分称为文件系统
主要功能:
- 文件存储空间的管理
- 目录管理
- 文件读写管理和保护
- 设备管理
主要任务是完成用户I/O请求,方便用户使用设备,提高设备利用率
主要功能:
- 缓冲管理
- 设备分配
- 设备处理
- 虚拟设备
操作系统作为用户与计算机硬件系统之间的接口
命令接口
- 联机命令接口
联机命令接口又称为交互式命令接口,适用于分时或实时系统的接口
可由用户在控制台或终端输入命令,经命令解释程序解释并执行后,控制权再转交回控制台或终端,这一过程往往强调交互性
常见为 命令提示符中输入单条指令
- 脱机命令接口
脱机命令接口又称为批处理命令接口,适用于批处理系统
脱机用户不能干预作业运行,事先使用作业控制命令编写"命令清单",系统调度到该作业时,命令解释程序逐条解释并执行,从而间接控制作业的进行
常见为 使用命令编写脚本后运行
程序接口
该接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务
常见为用户图形界面(GUI),如linux的KDE桌面
操作系统用作扩充机器
没有任何软件支持的计算称为裸机,它仅是计算机系统的物质基础。操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强,使用更方便的机器
通常将覆盖了软件的机器称为扩充机器或虚拟机