第二章 进程与线程
操作系统最核心的概念是进程:这是对正在运行程序的一个抽象
即使可以使用的CPU只有一个,但它们也具有支持(伪)并发操作的能力,它们将一个单独的CPU变换成多个虚拟的CPU
2.1 进程
伪并行
2.11 进程模型
进程:一个正在执行程序的实例,包括程序计数器、寄存器和变量当前的值
2.1.2 进程的创建
导致进程创建的4种主要事件
前台进程、后台进程(守护进程)
fork()、exec()
写时复制
2.1.3 进程的终止
进程终止的条件
2.1.4 进程的层次结构
2.1.5 进程的状态
就绪态:该时刻进程占用CPU
运行态:可运行,但因为其他进程正在运行而终止
阻塞态:除非外部事件发生,否则进程不能运行
2.1.6 进程的实现
2.1.7 多道程序设计模型
2.2 线程
2.2.1 线程的使用
线程的必要性
2.2.2 经典的线程模型
线程共享内容与独立内容
线程状态
线程具备自己的堆栈
线程调用
线程可能出现的问题
2.2.3 POSIX线程
2.2.4 在用户空间中实现线程
用户空间线程优点
缺点
2.2.5 在内核中实现线程
2.2.6 混合式实现
2.2.7 调度程序激活机制
2.2.8 弹出式线程
2.3 进程间通信
进程通信需要解决的问题
2.3.1 竞争条件
2.3.2 临界区
2.3.3 忙等待的互斥
1、屏蔽中断
2、锁变量
3、严格轮换法
4、Peterson算法
5、TSL指令
2.3.4 睡眠与唤醒
2.3.5 信号量
2.3.6 互斥量
2.3.7 管程
、
2.3.8 消息传递
2.3.9 屏障
2.3.10 避免锁:读-复制-更新
2.4 调度
2.4.1 调度简介
1、进程行为
2、何时调度
3、调度算法分类
4、调度算法的目标
2.4.2 批处理系统中的调度
1、先来先服务
2、最短作业优先
3、最短剩余时间优先
2.4.3 交互式系统中的调度
1、轮转调度
2、优先级调度
3、多级队列
4、最短进程优先
5、保证调度
6、彩票调度
7、公平分享调度
2.4.4 实时系统中的调度
2.4.5 策略和机制
2.4.6 线程调度