操作系统-计算机系统概述
¶简介
操作系统系列其一,主要是针对中国大陆考研所要求的内容对操作系统的知识体系进行总结和梳理,对于重点内容会使用黑体加粗,本篇内容主要包含以下几点:
- 操作系统的基本概念
- 操作系统发展历程
- 程序运行环境
- 操作系统结构
- 操作系统引导
- 虚拟机
¶大纲
- 操作系统的基本概念
- 操作系统的特征
- 操作系统接口
- 操作系统的发展历程
- 批处理阶段
- 分时操作系统
- 实时操作系统
- 操作系统的运行环境
- 处理器的运行模式$\star$
- 中断和异常
- 操作系统结构
- 操作系统引导
- 虚拟机
- 典型例题
¶操作系统的基本概念
操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序,同时也是计算机系统的内核与基石。
¶操作系统的特征
- 并发
并发:两个或者多个事件在同一个时间间隔内发生。这些事件在宏观上是同时发生的,在微观上是交替发生的。操作系统的并发是通过分时实现的
并行:是指两个或者多个事件在同一时刻发生 - 共享
资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用- 互斥共享方式:系统中的某些资源,可以提供给多个进程使用,但在同一时间段内,只允许一个进程访问
- 同时共享方式:系统中的某些资源,允许一个时间段内,多个进程"同时"对该资源进行访问
- 虚拟
把一个物理上的实体变为若干个逻辑上的对应物。 - 异步
在多道程序环境下,运行多个程序并发执行,但是由于资源有限,进程的执行并不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
只有具有并发性才可能导致异步性
¶操作系统作为接口
- 命令接口
- 联机命令接口又称交互式命令接口。例如Linux的terminal终端
- 脱机命令接口又称批处理命令接口。例如Windows的bat批处理
- 程序接口
程序接口是一组系统调用(System call),也称广义命令。操作系统提供给应用程序的接口就是系统调用。
¶操作系统的发展历程
¶手工操作阶段(无操作系统)
缺点:人机速度矛盾
- 用户独占全机,资源利用率低
- CPU等待手工操作,CPU利用不充分
¶批处理阶段(开始出现操作系统)
-
单道批处理系统
- 优点:缓解人机速度矛盾
- 缺点:资源利用率低
-
多道批处理系统
多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行 (系统由一个程序转而运行另一个程序时需要使用中断机构中断正在运行的程序) 。两个或两个以上程序在计算机系统中同处于开始和结束之间的状态。其技术运行的特征:多道、宏观上并行、微观上串行。- 优点:多道程序并发执行,资源利用率高
- 缺点:没有人机交互功能
¶分时操作系统
- 优点:提供人机交互功能
- 缺点:不能优先处理紧急任务
¶实时操作系统
优点:能优先处理紧急任务
¶操作系统的运行环境
¶处理器的运行模式$\star$
在计算机系统中,CPU通常执行两种不同性质的程序:
- 操作系统的内核程序
- 用户自编的应用程序
其中,内核程序是应用程序的管理者。因此,内核程序需要执行一些特权指令,而应用程序不可以执行这些指令
- 特权指令:不允许用户直接使用的指令,如I/O指令、置中断指令、存取用于内存保护的寄存器等的指令
- 非特权指令:是用户可以直接使用的指令,它不能直接访问系统中的软硬件资源,仅能访问用户的地址空间
在具体实现上,可以将CPU的运行模式划分为用户态和核心态(或内核态、管态)。(通过修改PSW中的标志位)
应用程序运行在用户态,操作系统内核程序运行在核心态。应用程序向操作系统请求服务时通过访管指令,从而产生中断事件将操作系统转换为核心态。
内核是计算机上配置的底层软件,大多数操作系统的内核包括四个方面:
- 时钟管理
时钟的第一功能是计时,其次,通过时钟中断管理可以实现进程的切换。 - 中断机制
- 原语
原语是一些可被调用的公用小程序,它们具有以下特点:- 处于操作系统的最底层,是最接近硬件的部分
- 原语的运行具有原子性,其操作只能一气呵成的完成(不可中断)
- 运行时间较短,且调用频繁
- 系统控制的数据结构及处理
常见的操作一般有以下三种:- 进程管理:进程状态管理、调度和分派、创建和撤销进程控制块(PCB)
- 存储器管理:存储器的空间分配和回收、内存信息保护程序等
- 设备管理:缓冲区管理、设备分配和回收等
¶中断和异常
¶定义
- 中断:也称外中断,是指来自CPU执行指令外部的事件(与当前执行的指令无关)
如设备发出的I/O结束中断、时钟中断,表示一个固定的时间片已到 - 异常:也称内中断,是指来自CPU执行指令内部的事件(与当前执行的指令有关)
如程序的非法操作码、地址越界、运算溢出。
异常不能被屏蔽,一旦出现,就应该立即处理
¶分类
-
外中断可分为可屏蔽中断和不可屏蔽中断
-
异常可分为故障、自陷和终止
- 故障:通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等
- 自陷:是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序(要先传递需要内核执行的参数,再进入自陷)
- 终止:是指出现了使得CPU无法继续执行的硬件故障
¶中断和异常的处理过程
不同的中断信号(通过“中断向量表”查询)需要用不同的中断处理程序(一定是内核程序,要在内核态运行)来处理
¶系统调用
系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。
应用程序可以通过系统调用来请求获得操作系统内核的服务
tips:程序运行由用户态转到核心态,会用到访管指令。因为访管指令是在用户态使用的,所以它不可能是特权指令
¶操作系统结构
¶分层法
- 优点:
- 便于系统的调试和验证,简化了系统的设计和实现
- 易拓展和维护
- 缺点:
- 合理定义各层比较困难
- 效率较差
¶模块化
模块化是将操作系统按功能划分为具有一定独立性的模块。内核=主模块+可加载的内核模块
- 优点:
- 提高了操作系统设计的正确性、可维护性和可理解性
- 增强了操作系统的可适应性
- 加速了操作系统的开发过程
- 如何模块可直接调用其他模块,效率高
- 缺点:
- 模块的接口规定很难满足对接口的实际需求
¶宏内核
- 优点:
- 高性能
- 缺点:
- 内核代码庞大,难以维护
¶微内核
- 优点:
- 方便维护
- 缺点:
- CPU状态切换频繁(核心态和用户态之间切换)性能差
¶外核
¶总结
¶操作系统引导
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块——主引导记录 读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即 启动管理器)并执行,完成“开机”的一系列动作
¶虚拟机
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统
同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machine Monitor/Hypervisor
¶典型例题
待补充
参考文献:
《王道考研-操作系统复习指导》
《Computer Systems A Programer’s Perspective Third Edition》
中文维基百科