本文内容来自我自己的笔记软件,所有跳转链接都为无效链接 (懒得调)
笔记内容来源与考研书籍和自己写过的一些简单项目结合
如若有疑问或者想询问可以+Q1403145273
处理机(就是计算机),处理机资源(分派CPU时间片,这里大部分指的就是CPU)
特征 :: 并发(宏观上同时发生,微观上是交替发生),共享,虚拟,异步
操作系统的目标和功能
作为系统资源管理者 {功能(处理机管理,存储器管理,设备管理,文件管理),目标(为多道程序提供良好的运行环境)}
为上层提供简单易用的服务
功能
命令接口
联机命令接口(分时操作系统和实时操作系统接口)
批处理命令接口(批处理系统)
程序接口(操作系统不提供直接管理硬件设备的指令,只能间接) :: 操作系统为应用程序使用内核功能所提供的接口
目标(为用户提供方便,快捷的操作计算机)
对计算机资源的扩充
单道批处理系统(解决人机速度矛盾)
特征(自动性,顺序性,单道性)
内存中仅能有一道程序运行,CPU大量时间在空闲等待
引入脱机输入/输出技术,由监督程序控制
多道批处理系统(允许多个程序进入内存并允许CPU交替执行)
特征(多道,宏观并行,微观串行)
资源利用率高,吞吐量大
无人机交互,进程响应时间较长
多道程序失去了 封闭性 和 顺序性
非抢占式调度方式
特点(同时性,交互性,独立性,及时性)
抢占式调度方式
优先响应紧急任务,某些紧急任务不需要时间片排队
特点(及时性,可靠性),抢占式调度方式
CPU执行程序的性质(内核程序,应用程序)
特权指令(可能会影响到其他程序的指令,不允许用户直接使用)
非特权指令(不能直接访问软硬件资源)
内核 :: 操作系统最重要最核心的部分,最接近硬件的部分,有多个内核程序组成
时钟管理 :: 实现计时功能
中断机制 :: 负责实现中断机制,只有一小部分保护现场的属于内核
原语(位于系统最底层,具有原子性,执行时间短且频繁) 使用 关中断指令 和 开中断指令 这两个特权指令实现原子性
系统控制的数据结构及操作
进程管理
进程切换属于系统调用,所以只能在内核发生
存储器管理
寄存器也属于存储器,对寄存器的操作(清零)不一定在核心态运行
设备管理
用户态(表示此时运行的是应用程序)可以执行非特权指令
当执行特权指令时会引发中断信号,CPU监测到中断信号后立即强行切换为核心态,执行中断程序(内核程序)
核心态(表示此时运行的是内核程序)可以执行特权指令
程序状态寄存器内有一个二进制位(0表示用户态,1表示内核态(也有可能相反))
异常和中断机制
访管指令
注意中断的发生和执行,中断程序执行一定在内核态,但是发生不一定
OS要保存的是通用寄存器,因为中断隐指令已经保存了断点
除了中断隐指令,中断处理过程中其他所有的信息保存都属于操作系统完成的
系统调用
功能类型 :: 设备管理,文件管理,进程管理,进程通信,内存管理
用户执行陷入程序发起系统调用(执行陷入指令就会让CPU从用户态向内核态转换)(执行中断周期)
也就是会进入中断,执行系统调用越多,中断的次数越多,相对性能就会降低
宏内核 将操作系统的主要功能模块都作为系统内核,运行在核心态
高性能
内核代码庞大,结构混乱,难以维护(注释内容)
目前主流的结构,win的结构是混合型(逻辑上属于微内核,最后编译则是全部写入内核)
微内核 只把最基本的功能保留
内核结构清晰,方便维护
频繁切换状态,性能低