这是我自己看王道系列视频总结的,我是在专注笔记里写好然后粘过来的(给大家安利专注笔记,是我用过无数笔记软件后留下的😂),需要原笔记文件的可以给我评论哈
第一章计算机系统概述 总结:https://blog.youkuaiyun.com/Tangli_yzy/article/details/113737141
第二章进程管理 总结:https://blog.youkuaiyun.com/Tangli_yzy/article/details/113772355
计算机系统概述
- 操作系统管理系统资源(硬件和软件)
- 执行一个程序之前需要将该程序相关数据放在内存中,才能被CPU处理
- 资源的管理者(2-4章)
- 操作系统提供给上层(用户和其他软件)方便的接口和环境
- 封装思想:操作系统把硬件功能封装成简洁易用的服务,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可
- 服务:
- GUI:图形化用户接口
- 狭义的用户接口
- 命令接口
- 联机命令接口=交互式命令接口
- 脱机命令接口=批处理命令接口 .bat文件
- 程序接口:程序员--库函数--程序接口(一系列系统调用/广义指令)--硬件
- 命令接口
- 操作系统是一种系统软件,功能和目标:需要实现对硬件机器的拓展(扩充机器/虚拟机)
- 操作系统四特征:
- 并发
- 并发是宏观上同时发生,并行是同一时刻同时发生 单核CPU:并发;多核CPU:并行
- 操作系统和程序并发(多道程序技术)是一起诞生的
- 共享:资源共享
- 互斥共享:一个时间段内只允许一个进程访问该资源 如摄像头
- 同时共享:允许一个时间段内由多个进程同时(宏观)访问 如硬盘资源
- 并发和共享的关系:互为存在条件 并发和共享是操作系统的最基本的特征
- 虚拟:物理上的实体--逻辑上的对应物
- 空分复用技术(虚拟存储技术)
- 时分复用技术(虚拟处理机技术)
- 没有并发性就谈不上虚拟性
- 异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。没有并发性就谈不上异步性,只能串行。
- 并发
- 操作系统的历史
- 手工操作阶段:
- 用户独占全机
- 人机速度矛盾--资源利用率极低
- 批处理阶段:
- 单道批处理系统
- 引入脱机输入/输出技术,并由监督程序(os的雏形)负责控制作业的输入/输出
- 内存中只能用一道程序运行,CPU有大量的时间在空闲等待IO,资源利用率依然很低
- 多道批处理系统:操作系统诞生
- 多道程序并发执行,共享计算机资源,资源利用率大幅提升
- 没有人机交互系统(无法调试和在运行过程中输入参数)
- 单道批处理系统
- 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,解决了人机交互问题;不能优先处理紧急任务
- 实时操作系统:能优先处理紧急任务 及时性,可靠性
- 硬实时系统:导弹控制系统
- 软实时系统:12306
- 手工操作阶段:
- 操作系统的运行机制
- 两种指令:CPU能够区分
- 特权指令:影响重大,只允许os内核使用
- 非特权指令:应用程序只能使用非特权指令
- 两种CPU状态 (CPU中程序状态字寄存器PSW标记状态)
- 核心态/内核态/管态:此时正在运行内核程序,可以执行特权指令
- 用户态/目态:此时正在运行应用程序,执行非特权指令
- 两种状态的切换:
- 两种程序
- 内核程序:
- 操作系统内核kernel,内核是os最重要最核心的部分,也是最接近硬件的部分
- 应用程序:普通程序员写的
- 内核程序:
- 两种指令:CPU能够区分
- 中断和异常:
- 中断的作用:使CPU由用户态变为内核态(唯一的方式),使os夺回对CPU的控制权;如果没有中断,那么一旦应用程序在CPU上运行,CPU就会一直运行它,并发也就不存在了
- 中断的类型
- 内中断/异常:与当前执行的指令有关,中断信号源于CPU内部
- trap 陷入指令/访管指令:应用系统想要请求操作系统内核的服务,如系统调用。注意:陷入指令不是特权指令,因为它可以在用户态下执行
- fault 故障:由错误条件引起,可能被内核程序修复,如缺页故障。修复后会把CPU使用权还给应用程序
- abort 终止:由致命错误引起,内核程序无法修复。会直接终止该应用程序,如:非法使用特权指令,除零情况
- 外中断(狭义的中断):与当前执行的指令无关,中断信号源于CPU外部
- 时钟中断:由时钟部件(cpu外部)发来的中断信号
- IO中断:由IO设备发来的中断信号
- 内中断/异常:与当前执行的指令有关,中断信号源于CPU内部
- 中断机制的基本原理:
- 检查中断信号:
- 内中断:CPU在执行指令时会检查是否有异常发生
- 外中断:每个指令周期末尾,CPU会检查是否有外中断信号需要处理
- CPU根据中断信号的类型查询【中断向量表】--找到对应的中断处理程序在内存中的位置。中断处理程序一定是内核程序。
- 检查中断信号:
- 系统调用:
- 与库函数的区别:
- 与库函数的区别:
- 操作系统的体系结构