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