第二部分 进程管理

目录:

 第四章 进程

 第五章 线程

 第六章 CPU调度

 第七章 进程同步

 第八章 死锁

 

第4章 进程

第1节 进程的概念

1. 进程状态

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 进程控制块PCB

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

进程间切换

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第2节 进程调度

1. 调度队列

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

作业队列, 就绪队列, 设备队列

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 调度图

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 调度程序

长期调度程序/作业调度, 短期调度程序/CPU调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. 上下文切换

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第3节 进程操作

1. 进程的创建

进程树

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

进程需要资源及初始化
读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

Unix下的fork来生成子进程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 进程的终止

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第4节 进程协作

生产者-消费者问题

第5节 进程间通信

1. 消息传递系统

直接通信

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

间接通信

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 同步

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

缓冲: 零容量, 有限容量, 无限容量

 

第6节 客户机-服务器通信

1. 套接字

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

本章小结

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

第5章 线程

第1节 概述

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

1. 多线程的优点

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 用户线程与内核线程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第2节 多线程模型

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第3节 若干线程问题

1. 线程取消

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 线程池

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第4节 Pthread线程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第5节 Solaris 2线程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第6节 Windows 2000线程
读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第7节 Linux线程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

本章小结

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第6章 CPU调度

第1节 基本概念

1. CPU-I/O区间周期

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. CPU调度程序

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 可抢占式调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. 分派程序

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

第2节 调度准则

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第3节 调度算法

1. 先到先服务调度FCFS

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 最短作业优先SJF

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

利用指数平均对下一个CPU区间进行预测

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

SJF分为抢占式和非抢占式的

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 优先权调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

优先权调度可以是抢占式或非抢占的.

优先权调度的一个主要问题是无穷阻塞(饥饿)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. 轮转法调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

RR算法的性能在很大程度上依赖于时间片的大小。上下文切换也对RR调度有影响。

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

5. 多级队列调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

6. 多级反馈队列调度

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

多级反馈队列调度是CPU上使用比较普遍的算法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第4节 多处理器调度

第5节 实时调度

第7节 进程调度模型

1. 用户级线程和内核级线程的区别之一是它们如何被调度的

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. Solaris2

Solaris 2采用基于优先级的调度。

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. Windows 2000

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. Linux

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

本章小结

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第7章 进程同步

第1节 背景

竞争条件, 进程同步

第2节 临界区问题

1. 临界区满足的三个条件:

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 两个进程的解法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

算法1: 两个进程必须进行严格的交替, 满足了互斥的条件, 并且是有限等待的,但是不满足有空让进的条件. 比如下面提到的turn==0并且P1就绪要进入临界区, 但是此时P0如果在剩余区话, P1是无法进入的. 因为必须等P0再执行一遍使得turn==1,这样P1才有机会进入临界区. 所以, 现在虽然没有进程在临界区(有空),但是P1却无法进入, 不满足有空让进的条件.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

算法2: 这种使用两个布尔量的方可以解决算法1中的问题, 因为只要对方的flag不为true的话, 自己有可以进入临界区, 没有必要等待对方跑完一遍再设置. 所以解决了有空让进的问题. 但是如果flag[i]=flag[j]=false的话, 两个进程会同时,出现在临界区, 如果flag[i]=flag[j]=true的话, 两个进程会进入无限循环等待.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

算法3: 结合算法1和算法2可以得到一个正确的解答:turn可以满足互斥和有限等待的条件, flag可以解决有空等待的问题.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 多个进程竞争临界区的问题

面包店算法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

第3节 同步硬件

硬件原子操作

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

TestAndSet: 检测lock是否为false,如果为false的话, 则进入临界区, 并同时设置其为true, 表明有程序在临界区.

如果lock为true, 则一直进行循环测试lock, 直到在临界区中操作的进程离开临界区同时将lock设为false,这样在while循环中进行等待的进程其中一个会进入临界区同时将lock再次设置为true. 这样可以完成对临界区的保护.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

Swap

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第4节 信号量

P,V操作

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

1. 解决n个进程临界区问题

n个进程共享一个信号量mutex, 并且mutex的初值为1

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

使用信号量解决同步问题

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 忙等待问题, 自旋锁

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

进程进行P操作时, 如果信号量为负, 进行可以阻塞自己, 进入等待队列, 等待唤醒. 接着CPU可以调度其他程序.

当进行V操作的时候, 唤醒一个在等待队列中的进程, 使其进入CPU调度的就绪队列.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

新的信号量定义

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

带有阻塞和唤醒的PV操作

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 单处理器和多处理器对PV操作的实现.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. 死锁与饥饿

 

第5节 经典同步问题

1. 有限缓冲问题

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 读者-写者问题

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 哲学家就餐问题

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第6节 临界区域

第7节 管程

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

管程解决哲学家就餐问题

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第8 节 操作系统同步

1. Solaris2 同步

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第9节 原子事物

1. 系统模型

2. 基于日志的恢复

3.检查点

4. 并发事务

本章小结

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第8章 死锁

第2节 死锁的特点

1. 死锁的必要条件

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 资源可分配图

如果资源分配图中没有环, 则就不存在死锁, 如果资源分配图中存在环, 就可能存在死锁.

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第3节 死锁的处理方法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第4节 死锁预防

1. 互斥

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 占有并等待

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 非抢占

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

4. 循环等待

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第5节 死锁避免

死锁的预防方法通过限制资源申请的方法来预防死锁, 这种方法的副作用就是使设备使用率低, 系统吞吐率低.

1. 安全状态

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

2. 资源分配图算法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

3. 银行家算法
读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

数据结构定义

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

安全状态检测算法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

第6节 死锁检测

对于每种资源只有单个实例的情况,可以使用资源分配图的变种——等待图来判断是否有死锁。

对于每种资源类型多个实例的情况,使用银行家算法的变种来进行检测。

何时应用检测算法

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

第7节 死锁恢复

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

本章小结

读书笔记之: 操作系统概念(第6版)-第二部分 进程管理(进程, 线程, CPU调度, 进程同步, 死锁)

 

相关文章:

  • 2021-04-16
  • 2021-11-16
  • 2022-12-23
  • 2022-01-19
  • 2022-02-03
  • 2021-08-03
  • 2021-07-04
  • 2021-07-23
猜你喜欢
  • 2022-12-23
  • 2021-04-08
  • 2021-08-25
  • 2021-09-04
  • 2021-06-04
  • 2021-04-28
  • 2021-04-26
相关资源
相似解决方案