王道考研——操作系统(第二章 进程管理)(进程;线程)
创始人
2024-04-19 07:10:04
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的核心;如果给这个进程分配多个内核级线程的话,那么在多核环境下,这些内核级线程可以并行运行。但在考试中,如果提到“多对一的线程模型”,那么我们默认一个进程只被分配了一个内核级线程

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

在这里插入图片描述

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

知识回顾与重要考点

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...