操作系统 – 计算机系统概述(一)
1. 前言
操作系统是我们计算机专业需要掌握的一门课程,由于操作系统较为难以理解,因此我将操作系统知识点进行整理。
我主要将操作系统分为5个大知识点进行整理:
- 计算机系统概述
- 进程管理
- 内存管理
- 文件管理
- IO外设管理
本篇博客就是对计算机系统概述进行知识点解析。
2. 计算机系统概述 – OS特征
OS特征主要分为四个:并发、共享、虚拟、异步。
并发:指两个或多个事件再同一时间间隔发生。这些事件宏观上是同时发生的,但微观上时交替间隔发生的。我们与之容易混淆的并行:两个或多个事件在同一时刻同时发生。
共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。而共享又分为两种方式:互斥共享方式(系统中的某些资源,算然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源)、同时共享方式(系统中的某些资源,允许一个时间段内由多个进程"同时"对它们进行访问)。注:所谓的"同时"往往是宏观上的,而微观上,这些进程可能是交替地对资源进行访问的。
虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是一个实际存在的,而逻辑上的对应物(后者)是用户感受到的。而虚拟技术也分为两种:空分复用技术(如虚拟存储技术)、时分复用技术(如虚拟处理器)。
异步:是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。只有系统拥有并发性,才有可能导致异步性。
3. 计算机系统概述 – OS的运行机制和体系结构
3.1 运行机制
主要介绍两种指令、两种处理状态、两种程序。
首先我们要了解什么是指令:是指处理器(CPU)能够识别、执行的最基本命令。
两种指令:特权指令(如内存清零指令)、非特权指令(如普通的运算指令)。
那么CPU如何判断当前指令是否可以执行特权指令?因此引入一下概念。
两种处理状态:用户态(目态,此时CPU只能执行非特权指令)、核心态(管态,此时CPU可以执行特权指令和非特权指令)。
由上面两个知识点,那么我们就能够理解两种程序:内核程序(指系统的管理者,既可以执行特权指令、也可以执行非特权指令,运行在内核态)、应用程序(为保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态)。
3.2 操作系统内核
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的程序就是内核程序。
操作系统内核包含一下方面:
时钟管理:实现计时功能。
中断处理:负责实现中断机制。
原语:是一种特殊的程序,处于操作系统最底层,是最接近硬件的部分,这种程序的运行具有原子性,运行时间较短、调用频繁。
对系统资源进行管理的功能:进程管理、存储器管理、设备管理。
3.3 操作系统的体系结构
分为大内核和微内核。
大内核:将操作系统主要功能模块都作为系统内核,运行在核心态。优点:高性能。缺点:内核代码庞大,结构混论,难以维护。
微内核:只把最基本的功能留在内核。优点:内核功能少,结构清晰,方便维护。缺点:需要频繁地在核心态和用户态之间切换,性能低。
4. 计算机系统概述 – 中断和异常
中断概念和作用:
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的程序暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配IO设备等)需要使用特权指令,因此CPU要从用户态转为核心态。**中断可以使CPU从用户态转为核心态,使操作系统获得计算机的控制权。**有了中断,才能实现多道程序并发执行。
了解了以上原理,我们能够知道:
用户态转核心态,是通过中断实现的,并且中断是唯一途径。
核心态转用户态,是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为"用户态"。
中断还分为内中断(而我们也成为异常)、外中断。它们区别的方式是:
内中断信号的来源:CPU内部与当前执行的指令有关
外中断信号的来源:CPU内部与当前执行的指令无关
那么我们来看一下外中断的处理过程:
- 每条指令执行结束后,CPU检查是否由外部中断信号
- 若有外部中断信号,组需要保护被中断进程的CPU环境
- 根据中断信号类型转入相应的中断处理程序
- 恢复原进程的CPU环境并推出中断,返回原进程继续往下执行
5. 计算机系统概述 – 系统调用
”系统调用“是操作系统提供给应用程序(程序员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用的请求来获得操作系统的服务。
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,音系在用户程序中,凡是与资源有关的操作(如分配内存、IO操作、文件管理),都必须通过系统调用的方式向操作系统发出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
举个例子:你去打印机打印资料,按下”打印“后,打印机开始工作。如果当你资料打印到一半时,另一个同学也按下了”打印“。那么,你的资料就会和同学的资料混杂在一起,出现错误。
解决方法:这时,操作系统就提供了”系统调用“这个功能,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统发出请求。操作系统会对各个请求进行协调管理。
系统调用按功能分类:
- 设备管理:完成设备的 请求/释放/启动 等功能
- 文件管理:完成文件的 读/写/创建/删除 等功能
- 进程控制:完成进程的 创建/撤销/阻塞/唤醒 等功能
- 进程通信:完成进程之间的 消息传递/信号传递 等功能
- 内存管理:完成内存的 分配/回收 等功能
系统调用的过程:
传递系统调用参数 --> 执行陷入指令(用户态) --> 执行系统调用相应服务程序(核心态) --> 返回用户程序
我们需要注意的是:
- 陷入指令实在用户态执行的,执行陷入指令之后立即引发一个内中断,从CPU进入核心态
- 发出系统调用请求是在用户态,为对系统调用的相应处理在核心态下进行
- 陷入指令是唯一一个只能在用户态执行,而不可以在核心态执行的指令
6. 小结
以上都是对操作系统的简单概述,主要讲了OS特征、OS的运行机制和系统结构、中断和异常、系统调用。
下一篇我们来了解进程管理的部分内容。
本文深入解析操作系统的四大特性:并发、共享、虚拟与异步,阐述其运行机制与体系结构,探讨中断、异常处理及系统调用,为读者提供全面的操作系统基础知识。

被折叠的 条评论
为什么被折叠?



