王道考研——操作系统(第二章 进程管理)(进程;线程)
创始人
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)

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...