一、进程概念与进程控制
多道程序设计->进程的引入
1.进程:并发环境下程序的执行过程。
2.进程和程序的区别:
- 程序是永存的,进程是暂时的
- 程序是静态的,进程是动态的
- 进程=程序+数据+进程控制块(PCB)
- 进程和程序不是一一对应的{①多个进程可以执行一个程序 ②一个进程可以执行一个或多个程序}
3.进程的特征:动态性、并发性、调度性、异步性、结构性
4.进程的基本状态及其转换
- 运行:进程正在占用CPU
- 就绪:进程具备运行条件,但尚未占用CPU
- 阻塞:进程由于等待某一事件不能享用CPU
运行->就绪:调度程序选择另一个进程
就绪->运行:调度程序选择当前进程
运行->阻塞:等待输入
阻塞->就绪:出现有效输入
5.进程控制块(PCB)的作用及组织方式
进程控制块是进程组成中最关键的部分
- 每个进程有唯一的PCB
- 操作系统根据PCB对进程进行控制和管理
- 进程动态、并发等特征是通过PCB表现出来的
- PCB是进程存在的唯一标志
进程控制块的组织方式:线性队列、链接表、索引表
二、进程调度
1.进程调度方式
- 非抢占方式:进程被选中就一直运行下去,直至完成工作、自愿放弃CPU、因某事件而被阻塞才把CPU让出给其他进程。
- 抢占方式:新进程到达、出现中断且阻塞->就绪、用完时间片。
2.评价调度算法的指标
- 调度性能评价准则:CPU利用率、吞吐量、周转时间、就绪时间、响应时间
- 吞吐量:单位时间内CPU完成作业的数量
- 周转时间:周转时间=完成时刻-提交时刻;平均周转时间=周转时间/n;带权周转时间=周转时间/实际运行时间;平均带权周转时间=带权周转时间/n。
3.调度算法(处理机调度算法详细说明)
(1)FCFS:First come first served,也成为先进先出(FIFO)
- 非抢占机制
- 有利于长作业(进程),不利于短作业(进程)
- 有利于CPU繁忙型作业(进程),不利于I/O繁忙型作业(进程)
- FCFS算法具体实现方法
(2)SJF:Shortest job first
- 非抢占机制
- SJF偏向于短作业;只要不断地有短作业进入系统,长作业可能一直得不到运行
- SJF算法具体实现方法
(3)HRP:最高响应比
- 非抢占机制
- R=(响应时间+运行时间)/运行时间,选择响应比高的进程
(4)SRT:Shortest remaining time
- 抢占机制
- SRT是SJF的强化,具有更好的性能
- 从平均周转时间和平均带权周转时间看,SRT好于FCFS、SJF、HRP
- SRT算法具体实现方法
(5)RR:Round Robin
- 抢占机制
- FCFS+时间片
- RR算法具体实现方法
三、进程通信
1.进程通信:并发进程之间相互交换信息,这种信息交换的量可大可小
2.进程通信的目的:数据传输、数据共享、通知事件、资源共享、进程控制
3.进程通信的方法:管道(匿名管道和有名管道)、消息方法、共享内存、剪贴板方法、套接字方法
四、进程同步
1.互斥与同步的概念
进程间两种形式的制约关系->进程的同步或互斥
(1)两种形式的制约关系
- 直接制约关系:进程间的相互联系是有意识安排的
- 间接制约关系:进程间要通过某种中介发生联系,是无意识安排的
(2)进程的同步、互斥
- 进程同步(直接制约):多个相互合作的进程,在一些关键点上可能需要相互等待或相互交换信息,这种相互制约的关系称为进程同步
- 进程互斥(间接制约):各进程要求资源共享,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系称为进程互斥
2.临界区(互斥区)
- 临界资源:系统中某些资源一次只允许一个进程使用
- 进程中涉及到临界资源的程序段叫临界区
3.使用临界区的原则
- 空闲让进、忙则等待、有限等待、让权等待
4.信号量PV机制:对一信号量执行P操作,检查其值是否大于零。若该值大于零,则将其值减一并继续;若该值为零,则进程将睡眠。
5.信号量分类:整型信号量、记录型信号量、AND型信号量、信号量集
6.经典同步问题
- 生产者-消费者问题
- 哲学家就餐
五、线程
1.线程的基本概念及组成:
线程是进程内一个相对独立的进程流或控制流,是处理机分配的实体。线程有自己的执行堆栈、程序计数器、通用寄存器组、状态标记、线程控制块。同一进程的多个线程共享该进程的全部资源。
2.引入线程的好处:
充分提高了操作系统的共享性、并发性,提高了机器的响应速度,提高了多处理机体系结构的利用率。
3.线程同步:临界区、互斥量、事件、信号量
六、死锁
1.死锁的基本概念:
由于多个进程竞争资源而引起的一种僵局,若无外力作用,则这些进程永远不能向前推进。在一组进程中,每个进程都在等待被改组进程中其他进程占用的资源,却又无法得到该资源,这种现象称为进程死锁。
2.死锁产生的四个必要条件
- 互斥:在一段时间内,一个资源只能由一个进程独占使用
- 持有并等待:允许一个进程在持有已占有资源的条件下等待另一个已经被其他进程占有的资源
- 不可抢占:进程所占有的资源只能由他自己释放
- 循环等待
3.死锁的处理方法
- 预防死锁:破坏死锁的四个必要条件中的一个或几个
- 避免死锁:在资源的动态分配过程中使用某种方法防止系统进入不安全状态
- 银行家算法
- 检测死锁和解除死锁:允许系统进入死锁状态,然后检测并恢复
- 资源分配图
错题集
1.在下列选项中,属于解除死锁的方法是()
A 剥夺资源法
B 资源分配图简化法
C 银行家算法
D 资源静态分配法
2.下面4个选项中,属于处理死锁的基本方法是( )
A 资源独占
B 资源共享
C 进程并发
D 预防死锁
3.产生死锁的原因可以归结为两点:____和_____
4.当发现有进程死锁时,便应立即把它们从死锁状态中解脱出来,常采用的两种方法是_____和_____
答案
1.A
2.D
3.资源竞争 进程推进顺序非法
4.剥夺资源 撤销进程