基础知识
- 操作系统提供:
文件管理
,存储器管理
(将程序放在内存哪里),CPU处理
(处理进程),设备管理
- 接口:
命令借口
、程序接口
、GUI
从而方便用户使用;命令接口一般是交互式(如指令等)或者批处理(如windows下.bat)
- 操作系统特征:
并发、共享、虚拟、异步
,前两个是基础
并发vs并行
并发:宏观同时,微观交替
并行:微观同时
异步:多个程序可以并发执行,但资源有限,进程执行是走走停停,依赖于并发
- 操作系统运行机制:两种指令(特权指令,非特权指令)、两种处理器状态(核心态、用户态)、两种程序(内核程序、应用程序)
- 操作系统内核:时钟管理、中断处理、原语(特殊程序,运行不可中断)、对系统资源的管理(进程管理、存储器管理、设备管理)
- 操作系统体系结构:大内核(高性能但代码庞大难以维护)、微内核(结构清晰但需频繁在用户态和核心态切换)
- 中断:发生中断就意味着需要操作系统开展管理工作,实现多道程序并发执行,当中断发生时,CPU立即进入核心态(用户态和核心态的转换就是通过中断,改变程序状态字(PSW))
- 中断分为内中断(信号来源是CPU内部如系统调用、缺页)和外中断(信号来源是CPU外部)
- 系统调用与库函数的区别:
- 系统调用的背后:
传递系统调用参数 — 执行int x(陷入trap指令)(系统调用发生在用户态)— 执行系统调用相应服务程序(系统调用的处理在核心态)— 返回用户程序
陷入指令让用户态切换到核心态,是唯一一个可以在用户态执行的指令
进程
-
系统会为每个执行的程序配置一个数据结构
进程控制器PCB
,用来记录各种信息比如代码存放位置 -
进程实体由
程序段
、数据段
、PCB
组成,PCB主要存放的一些管理的数据(进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息) -
进程的特征:
动态性
(基本)、并发性、独立性
(进程是系统进行资源分配、调度的独立单位)、异步性
(运行结果的不确定性)、结构性 -
进程的组织形式:
链接方式
(按进程状态将PCB分为多个队列)、索引方式
(按状态建立几张索引表,各表项指向PCB) -
进程状态的转换:
-
进程控制
(实现状态的转换,用原语实现,创建、终止、阻塞、唤醒、切换) -
进程通信分为
共享存储
、消息传递
、管道通信
-
共享存储
分为基于数据结构的共享(限制多、低级)和基于存储区的共享(高级、速度更快,数据形式、存放位置都由进程控制,而不是操作系统) -
管道通信
:用于连接读写进程的一个共享文件,又名pipe文件(内存中开辟一个固定大小的缓冲区)。管道只能采用半双工通信,某一时间段内只能实现单向传输。如果没写满就不允许读。读进程最多只能有一个。 -
消息传递
:传递结构化(信息头/体)的消息,系统提供发送/接收原语。两种方式:直接通信、信箱通信 -
进程是资源分配的基本单位,而线程是cpu调度的基本单位;操作系统只能看得见
内核级线程
(才是cpu分配的单位) -
多线程模型
:多对一(一个线程阻塞会导致其他线程阻塞)、一对一(进程管理开销大)、多对多 -
cpu调度
:
-
临界资源
:一个时间段内只允许一个进程使用的资源 -
临界区
:访问临界资源的那段代码,可以调度 -
内核程序临界区
:一般是用来访问某种内核数据结构的,比如进程的就绪队列,