王道考研——操作系统(第二章 进程管理)(进程;线程)
创始人
2024-03-02 02:09:28
0次

一、进程的概念、组成、特征

进程的概念

在这里插入图片描述

进程的组成——PCB

在这里插入图片描述
在这里插入图片描述

进程的组成——程序段、数据段

在这里插入图片描述

知识滚雪球:程序是如何运行的?

在这里插入图片描述

进程的组成

在这里插入图片描述

进程的特征

在这里插入图片描述

知识回顾与重要考点

在这里插入图片描述

二、进程的状态与转换

进程的状态——创建态、就绪态

在这里插入图片描述

进程的状态——运行态

在这里插入图片描述

进程的状态——阻塞态

在这里插入图片描述

进程的状态——终止态

在这里插入图片描述

进程状态的转换

在这里插入图片描述

进程的状态

在这里插入图片描述

进程的组织——链接方式

在这里插入图片描述

进程的组织

在这里插入图片描述

进程的组织——索引方式

在这里插入图片描述

进程的组织

在这里插入图片描述

知识回顾与重要考点

在这里插入图片描述

三、进程控制

什么是进程控制?

在这里插入图片描述

如何实现进程控制?

在这里插入图片描述

原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,不可中断

如何实现原语的“原子性”?

在这里插入图片描述
在这里插入图片描述

进程控制相关的原语

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

那么什么是“进程运行环境信息”呢?

知识滚雪球:程序是如何运行的?

在这里插入图片描述

CPU中会设置很多“寄存器”,用来存放程序运行过程中所需的某些数据。

这些指令顺序执行的过程中,很多中间结果是放在各种寄存器中的

在这里插入图片描述
当原来的进程再次投入运行时,可以通过PCB恢复它的运行环境

知识回顾与重要考点

在这里插入图片描述
学习技巧:进程控制会导致进程状态的转换。无论哪个进程控制原语,要做的无非三类事情:

  1. 更新PCB中的信息
    a.所有的进程控制原语一定都会修改进程状态标志
    b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    c.某进程开始运行前必然要恢复其运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源

在这里插入图片描述

四、进程通信(IPC)

什么是进程间通信?

进程间通信(Inter-Process Communication, IPC)是指两个进程之间产生数据交互。

为什么进程通信需要操作系统支持?

在这里插入图片描述
因此,操作系统为进程通信提供了三种方式:
(1)
(2)
(3)

共享存储

在这里插入图片描述
在这里插入图片描述

消息传递

在这里插入图片描述

消息传递(直接通信方式)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

消息传递(间接通信方式)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程通信——管道通信

在这里插入图片描述

知识回顾与重要考点

在这里插入图片描述

修正

在这里插入图片描述

五、线程概念(多线程模型)

什么是线程,为什么要引入线程?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引入线程机制后,有什么变化?

在这里插入图片描述

线程的属性

在这里插入图片描述

六、线程的实现方式(多线程模型)

线程的实现方式(用户级线程)

在这里插入图片描述
在这里插入图片描述

很多编程语言提供了强大的线程库,可以实现线程的创建、销毁、调度等功能。

  1. 线程的管理工作由谁来完成?
  2. 线程切换是否需要CPU变态?
  3. 操作系统是否能意识到用户级线程的存在?
  4. 这种线程的实现方式有什么优点和缺点?

在这里插入图片描述

线程如果是用”用户级线程“的方式来实现,cpu的调度单位依然是进程,操作系统是给进程分配cpu时间的。因此,即便我们的电脑是多核处理机,但是由于此时进程才是cpu调度的基本单位,因此,进程只能被分配一个核心,因此,这些线程并不能并行运行

线程的实现方式(内核级线程)

大多数现代操作系统都实现了内核级线程,如Windows、Linux

  1. 线程的管理工作由谁来完成?
  2. 线程切换是否需要CPU变态?
  3. 操作系统是否能意识到内核级线程的存在?
  4. 这种线程的实现方式有什么优点和缺点?

在这里插入图片描述

内核级线程的线程实现方式下,内核级线程是处理机调度的基本单位,而进程只作为分配资源的基本单位,因此在多核cpu的环境下,这几个线程可以分别分派到不同核心下并行执行

多线程模型(一对一模型)

在这里插入图片描述

多线程模型(多对一模型)

在这里插入图片描述

这些用户级线程不可能并行运行,因为只有内核级线程才是处理机的分配单位,如果一个进程只对应一个内核级线程,那么在同一时刻,这个进程只能被分配一个cpu的核心;如果给这个进程分配多个内核级线程的话,那么在多核环境下,这些内核级线程可以并行运行。但在考试中,如果提到“多对一的线程模型”,那么我们默认一个进程只被分配了一个内核级线程

多线程模型(多对多模型)

在这里插入图片描述

由于此时一个进程它有两个内核级线程,因此,其中一个内核级线程被堵塞了的话,另一个内核级线程可以继续运行下去,克服了多对一并发度不高的缺点

知识回顾与重要考点

在这里插入图片描述

上一篇:Quartz深度实战

下一篇:python练习(1)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...