【操作系统】24王道考研笔记——第二章 进程与线程

第二章 进程与线程

一、进程与线程

1.进程的概念

程序:是静态的,就是个存放在磁盘里的可执行文件,如:QQ.exe。

进程:是动态的,是程序的一次执行过程,如:可同时启动多次QQ程序

引入进程的概念,以便更好地描述和控制程序的并发进行,实现操作系统的并发性和共享性(最基本的两个特征)

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

PCB是进程存在的唯一标志:(进程控制块)

操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中。

【操作系统】24王道考研笔记——第二章 进程与线程_第1张图片

进程的组成:

【操作系统】24王道考研笔记——第二章 进程与线程_第2张图片

PCB是给操作系统用的,程序段、数据段是给进程自己用的

进程的特征:

【操作系统】24王道考研笔记——第二章 进程与线程_第3张图片

2.进程的状态转换

进程的状态:

【操作系统】24王道考研笔记——第二章 进程与线程_第4张图片

一个进程从运行态变成阻塞态是主动的行为,而从阻塞态变成就绪态势别动的行为,需要其他相关进程的协助。

进程的组织方式:

【操作系统】24王道考研笔记——第二章 进程与线程_第5张图片

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第6张图片

3.进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。

简化理解:反正进程控制就是要实现进程状态转换

【操作系统】24王道考研笔记——第二章 进程与线程_第7张图片

在操作系统,一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,是一个不可分割的基本单位。(原子性)

【操作系统】24王道考研笔记——第二章 进程与线程_第8张图片

进程的创建:

【操作系统】24王道考研笔记——第二章 进程与线程_第9张图片

进程的终止:

【操作系统】24王道考研笔记——第二章 进程与线程_第10张图片

进程的阻塞和唤醒:

【操作系统】24王道考研笔记——第二章 进程与线程_第11张图片

进程的切换:

【操作系统】24王道考研笔记——第二章 进程与线程_第12张图片

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第13张图片

如何实现:

【操作系统】24王道考研笔记——第二章 进程与线程_第14张图片

4.进程通信

进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。各个进程可使用操作系统内核提供的同步互斥工具(如P、V操作)

共享存储:

image.png

消息传递:

【操作系统】24王道考研笔记——第二章 进程与线程_第15张图片

  • 直接通信方式:【操作系统】24王道考研笔记——第二章 进程与线程_第16张图片
  • 间接通信方式:(信箱)【操作系统】24王道考研笔记——第二章 进程与线程_第17张图片

管道通信:

【操作系统】24王道考研笔记——第二章 进程与线程_第18张图片

  • 写进程往管道写数据,即便管道没被写满,只要管道没空,读进程就可以从管道读数据
  • 读进程从管道读数据,即便管道没被读空,只要管道没满,写进程就可以往管道写数据

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第19张图片

5.线程和多线程模型

引入线程的原因:

【操作系统】24王道考研笔记——第二章 进程与线程_第20张图片

引入线程后的变化:(与进程比较)

【操作系统】24王道考研笔记——第二章 进程与线程_第21张图片

线程的属性:

【操作系统】24王道考研笔记——第二章 进程与线程_第22张图片

线程的实现方式:(以下三种)

用户级线程:【操作系统】24王道考研笔记——第二章 进程与线程_第23张图片

内核级线程:【操作系统】24王道考研笔记——第二章 进程与线程_第24张图片

组合方式:上述两种方式的结合

多线程模型:

  • 多对一【操作系统】24王道考研笔记——第二章 进程与线程_第25张图片
  • 一对一【操作系统】24王道考研笔记——第二章 进程与线程_第26张图片
  • 多对多【操作系统】24王道考研笔记——第二章 进程与线程_第27张图片

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第28张图片

线程的状态转换:(大致与进程相似)

【操作系统】24王道考研笔记——第二章 进程与线程_第29张图片

二、处理机调度

1.调度的概念、层次

调度:当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。

调度的三个层次:

高级调度(作业调度)。按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。

低级调度(进程调度/处理机调度)—— 按照某种策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。

中级调度(内存调度)——按照某种策略决定将哪个处于挂起状态的进程重新调入内存。一个进程可能会被多次调出、调入内存,因此中级调度发生的频率要比高级调度更高。

联系、对比:

【操作系统】24王道考研笔记——第二章 进程与线程_第30张图片

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第31张图片

2.调度的目标

即调度算法的评价指标

CPU利用率:

【操作系统】24王道考研笔记——第二章 进程与线程_第32张图片

系统吞吐量:

【操作系统】24王道考研笔记——第二章 进程与线程_第33张图片

周转时间:

【操作系统】24王道考研笔记——第二章 进程与线程_第34张图片

【操作系统】24王道考研笔记——第二章 进程与线程_第35张图片

等待时间:

【操作系统】24王道考研笔记——第二章 进程与线程_第36张图片

响应时间:响应时间,指从用户提交请求到首次产生响应所用的时间。

3.进程调度的时机

即切换与过程调度方式

临界区:

【操作系统】24王道考研笔记——第二章 进程与线程_第37张图片

进程调度时机:

【操作系统】24王道考研笔记——第二章 进程与线程_第38张图片

进程调度方式:

【操作系统】24王道考研笔记——第二章 进程与线程_第39张图片

进程切换以及过程

image.png

4.调度器、闲逛进程

调度器:

【操作系统】24王道考研笔记——第二章 进程与线程_第40张图片

调度程序的处理对象:

【操作系统】24王道考研笔记——第二章 进程与线程_第41张图片

闲逛进程:

【操作系统】24王道考研笔记——第二章 进程与线程_第42张图片

5. 调度算法

先来先服务:

image.png

短作业优先:

【操作系统】24王道考研笔记——第二章 进程与线程_第43张图片

【操作系统】24王道考研笔记——第二章 进程与线程_第44张图片

高响应比优先:

【操作系统】24王道考研笔记——第二章 进程与线程_第45张图片

三者对比:

【操作系统】24王道考研笔记——第二章 进程与线程_第46张图片

时间片轮转:

【操作系统】24王道考研笔记——第二章 进程与线程_第47张图片

优先级调度:

【操作系统】24王道考研笔记——第二章 进程与线程_第48张图片

多级反馈队列调度:

【操作系统】24王道考研笔记——第二章 进程与线程_第49张图片

三者对比:

【操作系统】24王道考研笔记——第二章 进程与线程_第50张图片

多级队列调度算法:

【操作系统】24王道考研笔记——第二章 进程与线程_第51张图片

三、同步与互斥

1. 进程同步与互斥

【操作系统】24王道考研笔记——第二章 进程与线程_第52张图片

【操作系统】24王道考研笔记——第二章 进程与线程_第53张图片

2.进程互斥的实现

软件实现:

【操作系统】24王道考研笔记——第二章 进程与线程_第54张图片

硬件实现:

中断屏蔽方法:

【操作系统】24王道考研笔记——第二章 进程与线程_第55张图片

TestAndSet指令:

【操作系统】24王道考研笔记——第二章 进程与线程_第56张图片

Swap指令:

【操作系统】24王道考研笔记——第二章 进程与线程_第57张图片

3.互斥锁

【操作系统】24王道考研笔记——第二章 进程与线程_第58张图片

【操作系统】24王道考研笔记——第二章 进程与线程_第59张图片

4.信号量机制

【操作系统】24王道考研笔记——第二章 进程与线程_第60张图片

整型信号量

【操作系统】24王道考研笔记——第二章 进程与线程_第61张图片

记录型信号量

【操作系统】24王道考研笔记——第二章 进程与线程_第62张图片

总结

【操作系统】24王道考研笔记——第二章 进程与线程_第63张图片

信号量的值 = 这种资源的剩余数量(信号量的值如果小于0,说明此时有进程在等待这种资源)

  • P( S ) —— 申请一个资源S,如果资源不够就阻塞等待
  • V( S ) —— 释放一个资源S,如果有进程在等待该资源,则唤醒一个进程

实现进程互斥:

【操作系统】24王道考研笔记——第二章 进程与线程_第64张图片

实现进程同步:

【操作系统】24王道考研笔记——第二章 进程与线程_第65张图片

总结:

【操作系统】24王道考研笔记——第二章 进程与线程_第66张图片

5.管程

【操作系统】24王道考研笔记——第二章 进程与线程_第67张图片

【操作系统】24王道考研笔记——第二章 进程与线程_第68张图片

6.经典问题

生产者消费者问题:

【操作系统】24王道考研笔记——第二章 进程与线程_第69张图片

多生产者多消费者问题:

【操作系统】24王道考研笔记——第二章 进程与线程_第70张图片

吸烟者问题:

【操作系统】24王道考研笔记——第二章 进程与线程_第71张图片

读者写者问题:

【操作系统】24王道考研笔记——第二章 进程与线程_第72张图片

哲学家进餐问题:

【操作系统】24王道考研笔记——第二章 进程与线程_第73张图片

四、死锁

1.概念

【操作系统】24王道考研笔记——第二章 进程与线程_第74张图片

2.预防死锁

破坏死锁产生的条件
【操作系统】24王道考研笔记——第二章 进程与线程_第75张图片

3.避免死锁

安全序列

【操作系统】24王道考研笔记——第二章 进程与线程_第76张图片

使用银行家算法

【操作系统】24王道考研笔记——第二章 进程与线程_第77张图片

4. 检测和解除死锁

死锁的检测:

【操作系统】24王道考研笔记——第二章 进程与线程_第78张图片

死锁的解除:

【操作系统】24王道考研笔记——第二章 进程与线程_第79张图片

主要参考:王道考研课程
后续会持续更新考研408部分的学习笔记,欢迎关注。
github仓库(含所有相关源码):408数据结构笔记

你可能感兴趣的:(操作系统,笔记,操作系统)