操作系统( 第一章 概述)
前言
为了期末考试复习方便,以及对自己的学习进行监督,写下这一系列有关操作系统的知识。文章内容大都是来自王道考研课以及老师上课所讲加上个人理解。
这里写目录标题
一、概念
1. 计算机系统层次结构
2. 概念
操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
二、操作系统的功能和目标
1. 作为系统资源管理者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
2. 给上层提供服务
- 封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便的使用计算机。
eg: - GUI:图形化用户接口
- 联机命令接口 = 交互式命令接口
- 脱机命令接口 = 批处理命令接口
- 程序接口
3. 最接近硬件的层次
- 需要实现对硬件机器的拓展
- 操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。
三、操作系统的特征
1. 并发
- 指两个或多个事件在同一时间间隔内发生(宏观同时,微观交替)
- 并行:指两个或多个事件在同一时刻同时发生
- 操作系统伴随着“多道程序技术”出现,因此,操作系统和程序并发是一起诞生。
Tips:
- 单核CPU:同一时刻只能执行一个程序,各个程序只能并发地执行。
- 多核CPU:同一时刻可以同时执行多个程序,多个程序可以并行地执行。
2. 共享
- 资源共享,系统中的资源可供内存中多个并发执行的进程共同使用
- 并发 & 共享
3.虚拟
- 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,逻辑上的对应物(后者)是用户感受到的。
4.异步
- 异步是指,在多道程序环境下,允许多个程序并发进行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
四、操作系统的发展
五、操作系统的运行机制
1.程序是如何运行的
- 程序运行的过程其实就是CPU执行一条一条机器指令的过程
- “指令”就是CPU能识别、执行的最基本二进制机器指令
2. 特权指令、非特权指令
- 特权指令eg:
清除内存
输入/输出事件
修改系统时间
启动I/O
从内存中删除进程 - 非特权指令eg:
进行算术运行
阅读系统时间
访管指令(自陷指令)
访管指令(也称为陷入指令、系统调用指令)它用于从目态切换到管态。当程序需要请求操作系统提供服务时,比如打开文件、创建进程、获取系统时间等,就会使用访管指令来发起系统调用。
3. 管态(内核态/特权态)、目态(用户态)
- 处于管态,说明此时正在运行的是内核程序,此时可以执行特权指令
- 处于目态,说明此时正在运行的是应用程序,此时只能执行非特权指令
Tips:
- CPU中的程序状态字寄存器(PSW),其中有个二进制位,1表示“管态”,0表示“目态”
- 管态、目态的切换:
操作系统会用一条特权指令把PSW的标志位设置为目态(管态 ——> 目态)
引发中断信号,使操作系统夺回CPU控制权(目态 ——> 管态)
4. 内核程序、应用程序
- 内核程序:许多内核程序组成操作系统内核(内核是操做系统最核心、最接近硬件的部分)
- 应用程序:普通程序员写的
六、中断和异常
七、系统调用
1. 什么是系统调用
- 程序接口由一组系统调用组成
- “系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
2. 系统调用 & 库函数
3. 系统调用的必要性
- eg:
去学校打印店打印论文,你按下了WPS的“打印”,打印机开始工作。你的论文打到一半,另一位同学按下了Word的“打印”。
如果两个进程可以随意,并发地共享打印机资源,会发生什么?
——两篇论文内容混杂在一起了
- 解决:由操作系统内核对共享资源进行统一管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发送请求,内核会对各个请求进行协调处理。
4. 什么功能要用到系统调用
5. 系统调用的过程
- 传参
- 陷入指令/Trap/访管
- 由操作系统内核程序处理系统调用请求
- 返回应用程序
八、 操作系统体系结构
1.大内核(宏内核、单内核)、微内核
- 计算机系统的层次结构
- 操作系统内核
需要运行在内核态
2. 分层结构、模块化、外核
九、操作系统引导
- 开机的时候,怎样让操作系统运行起来
十、虚拟机
- 传统计算机
两个应用同时在一个操作系统上运行,可能会造成隐患 - 虚拟机:使用虚拟技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine ,VM),每个虚拟机器都能独立运行一个操作系统。
- 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machine Moitor/Hypervisor
- 单核CPU可以将时间片进行划分,每个虚拟机器分配若干个时间片,操作系统看来,是给自己分配了独立的CPU
- 磁盘,内存可以将磁盘空间,内存空间进行划分
- 若上层操作系统想要使用特权指令,会被下层虚拟机管理程序截获,将其进行等价转换,给上层模拟出指令执行成功的感觉
- 常用的第二类VMM:VirtualBox、VMware