1 运行环境
1.1 内核态和用户态
什么是操作系统内核?
内核是一个提供硬件抽象、磁盘与文件系统控制、多功能的系统软件
1.2 中断与异常
1.3 系统调用
2 进程与线程
2.1 基本概念
2.1.1 进程
进程定义
PCB
进程状态:状态切换
2.1.2 什么是线程
用户级线程,内核级线程
线程控制块
2.2 进程通信
- 共享内存
- 消息队列
- 管道
- 信号量
- 套接字
- 信号
2.3 cpu调度与上下文切换
2.3.1 进程/线程切换
上下文:cpu寄存器和程序计数器
更新PCB
系统进行用户态和内核态的切换时会发生进程调度吗?
2.3.2 调度
【调度算法分类】
- 非抢占式调度:当有新的更高优先级进程需要使用处理机,正在运行的进程不会被剥夺资源。
- 抢占式调度:剥夺cpu使用权
【调度算法】
- FCFS:先来先服务
- SJF:短作业优先
- 优先级调度
- 高响应比优先:$响应比 = \frac{等待时间+服务时间}{服务时间} $,使用这一算法不会饿死
- 时间片轮转
- 多级队列调度
2.4 并发程序设计
2.4.1 同步与互斥
解决临界资源访问或实现互斥的方法
- 互斥锁
- 信号量
- 管程
- 条件变量