操作系统(部分笔记 —— 摘选自王道考研 视频内容)
1 操作系统的基本概念
1.1 操作系统的概念、功能和目标
1.1.1操作系统的定义
操作系统是指控制和管理整个计算机系统的硬件和软件资源, 并合理地组织调度计算机的工作和资源的分配, 以提供用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
1.1.2 操作系统的功能和目标
1.1.2.1 作为系统资源的管理者
进程:一个程序的执行过程, 执行前需要将该程序放到内存中,才能被CPU处理。
QQ和朋友聊天:
1.找到QQ安装的位置 文件
2.该程序的相关数据放入内存 存储器
3.对应的进程被CPU处理 处理机
4.摄像头设备分配给进程所使用 设备
1.1.2.2作为用户和计算机硬件之间的接口
命令接口:允许用户直接使用
程序接口:允许用户通过程序间接使用
GUI接口:现代操作系统中最流行的图形用户接口
联机命令接口:交互式
脱机命令接口:批处理命令
程序接口:调用user32.dll 在程序中调用该dll (该过程即为系统调用)实现创建窗口等功能。
系统调用也被称为广义指令
1.2 操作系统的特征
1.2.1 并发
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的常考易混概念――
并行:指两个或多个事件在同一时刻同时发生。
1.2.2 共享
共享指的是资源共享, 指系统中的资源可供内存中多个并发执行的程序共同使用
两个进程使用摄像头,只能分配给其中一个——互斥
两个进程读取一个硬盘的文件,在宏观上两个都可以读取发送,但是在微观上,两个进程是交替访问硬盘的
1.2.3 虚拟
虚拟是指一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的
1.2.4 异步
多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是程序的异步性
1.2.5 小结
1.3 操作系统的运行机制跟体系结构(单独搜索拓展)
1.4 操作系统的运行机制和体系结构
1.4.1 运行机制
1.4.1.1 什么是指令
CPU能够识别、执行的最基本的命令
1.4.1.2 两种指令
特权指令 : 如内存清零指令 (不允许用户程序使用)
非特权指令: 如普通的运算指令
1.4.1.3 处理器状态
用户态(目态):此时CPU只能执行非特权指令
核心态(管态):特权指令、非特权指令都可以执行
用户程序状态字寄存器(PSW)中的某个标志位来标识当前处理器处于什么状态
如 0 为用户态 1为核心态
1.4.1.4 两种程序
内核程序 : 操作系统的内核程序是系统的管理者, 既可以执行特权指令 , 也可以执行非特权指令 运行在核心态
应用程序:为了保证系统能安全运行, 普通应用程序只能执行非特权指令, 运行在用户态
1.4.1.5 操作系统的内核
进程管理、存储器管理、设备管理等功能
时钟管理、中断处理、原语(设备驱动、CPU切换等)
原语是一种特殊的程序 , 是最接近硬件的部分, 这种程序的运行具有原子性
内核的分类:
1.5 中断和异常
1.5.1 中断的运行机制
本质:发生中断就意味着需要操作系统介入 , 开展管理工作
1.5.2 中断的分类
另一种分类方式:
1.6 系统调用
1.6.1 什么是系统调用, 有何作用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、l/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
1.6.2 系统调用的分类 按功能
1.6.3 系统调用的过程
2 进程与线程
2.1 进程的定义、组成、组织方式、特征
2.1.1 定义
2.1.2 进程的组成
进程由程序段、数据段、PCB组成
2.1.3 进程的组织
2.1.4 进程的特征
2.1.5 小结
2.2 进程的状态与转换
2.2.1 三种基本状态
2.2.2 另外两种状态
在创建进程前,需要先分配好进程的PCB以及数据段 程序段 这个时候称为 创建态
进程结束 需要撤销进程 需要回收该进程占用的资源(撤销分配的打印机 内存资源)这个时候称为 终止态
2.2.3 进程状态的转换
2.2.4 小结
2.3 进程控制
2.3.1 什么是进程控制
2.3.2 实现进程控制
2.3.3 进程控制相关的原语
2.3.3.1 进程的创建
2.3.3.2 进程的终止
2.3.3.3 进程的阻塞和唤醒
2.3.4 小结
2.4 进程通信
2.4.1 什么是进程通信
2.4.2 共享内存
2.4.3 管道通信
2.4.4 消息传递
2.4.5 小结
2.5 线程概念和多线程模型
2.5.1 什么是线程,为什么要引入线程
一个线程中会有多个功能,多个功能要在宏观意义上共同执行, 则需要一个类似“线程”的进程
因此 线程变成了一个基本的CPU执行单元, 也是程序执行流的最小单位
可以把线程理解为“轻量级进程”。
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。