背景¶
本文旨在整理学习《OSETP》一书中的知识点,以供自己复习之用。
操作系统¶
基本特征¶
-
并发
并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
操作系统通过引入进程和线程,使得程序能够并发运行。
-
共享
系统中的资源可以被多个并发进程共同使用。两种方式:互斥共享(同步机制来实现临界资源的互斥访问)和同时共享。
-
虚拟
将一个物理实体转换为多个逻辑实体。
主要为时分复用(多个进程在同一处理器上并发执行)和空分复用(虚拟内存的页面置换)。
-
异步
不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
基本功能¶
-
进程管理
进程控制、进程通信、进程同步、处理机调度、死锁处理等
-
内存管理
内存分配、地址映射、内存保护和共享、虚拟内存等
-
文件管理
存储空间的管理、文件读写管理和保护、目录管理等
-
设备管理
完成IO请求,方便用户使用各种设备。
主要包括缓冲管理、虚拟设备、设备分配、设备处理等
系统调用¶
如果一个进程在用户态需要使用内核态的功能,通过系统调用陷入内核态,由操作系统代为完成。
中断分类¶
-
外中断
由CPU执行以外的事件引起。
-
异常
由CPU执行指令的内部事件引起。
-
陷入
在用户程序使用系统调用。
进程与线程¶
进程是资源分配的基本单位,线程不拥有资源,只能访问隶属于进程的资源。
进程控制块(PCB)描述进程的基本信息与运行状态。创建进程和撤销进程都是对PCB的操作。
线程是独立调度的基本单位。同一进程中的线程切换不会引起进程切换。不同进程之间的线程切换会导致进程切换。
一个进程可以有多个线程,共享进程资源。
进程的系统开销远大于线程的系统开销。
线程之间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助IPC。
进程状态的切换中,主要有三种情况:就绪状态、运行状态、阻塞状态。只有就绪和运行之间可以相互切换(CPU时间片的切换),其他都是单向转换。
阻塞状态是缺少需要的资源由运行状态转换来的,但是其中的缺少的资源不包括CPU时间。
进程调度算法¶
批处理系统¶
调度算法的目标是保证吞吐量和周转时间(从提交到终止的时间)。