IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 操作系统第二章:进程管理 -> 正文阅读

[系统运维]操作系统第二章:进程管理

进程的概念、组成、特征

1.进程的概念

程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。

进程(Process):是动态的,是程序的一次执行过程

同一个程序多次执行会对应多个进程

2.进程的组成

在这里插入图片描述
在这里插入图片描述
PID:操作系统给进程分配的一个唯一的、不重复的“身份证号”—— PID(Process ID,进程ID)

UID:记录用户是谁(User ID)

这些信息都被保存在一个数据结构PCB (Process Control Block)中,即进程控制块。操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中

程序段、数据段、PCB三部分组成了进程实体(进程映像)

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

注意:PCB是进程存在的唯一标志!

3.进程的特征

在这里插入图片描述

小结

在这里插入图片描述

进程的组织

在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。

注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

1.链接方式

在这里插入图片描述
指针指向排好队的进程队列

阻塞队列还可能再细分为多个不同原因的阻塞队列

2.索引方式

在这里插入图片描述
指针指向索引表,再从索引表中去查找相应的进程

小结

在这里插入图片描述

进程的状态与转换

1.进程的状态

创建态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源(分配一些空间装程序段、数据段)、初始化PCB

就绪态:具备所有运行条件,不过还没获得CPU,在等待。(万事俱备,只欠CPU)

运行态:如果一个进程此时在CPU上运行,那么这个进程处于“运行态”。

阻塞态:在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。 在这个事件发生之前,进程无法继续往下执行,它会请求操作系统让它下CPU,并进入阻塞态
然后CPU会让另一个“就绪态”进程上CPU运行

终止态:进程运行结束或者遇到不可修复的错误,会进入终止态,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。 当终止进程的工作完成之后,这个进程就彻底消失了。

2.进程的转换

在这里插入图片描述
阻塞态——就绪态:不是进程自身能控制的,是一种被动行为 。(比如请求的打印机资源准备好了,那打印机会给CPU发信号。之后,CPU会执行"原语",让进程会进入就绪态)

运行态——阻塞态:是一种进程自身做出的主动行为(进程用“系统调用” 的方式申请某种系统资源,或者请求等待某个事件发生)

注意:不能由阻塞态直接转换为运行态, 也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要 进程在运行时才能发出这种请求)

除了运行态,就绪态和阻塞态也可能直接进入终止态(比如你拿任务管理器杀进程)

小结

在这里插入图片描述

进程的控制

进程控制就是要实现进程状态转换

用原语实现,一气呵成(如果不能“一气呵成”,就有可能导致操作系统中的某些关键数据结构信息不统一的情况, 这会影响操作系统进行别的管理工作)

1.原语

原语的执行具有原子性,即执行过程只能一气呵成,期间不允许被中断。 可以用 “关中断指令”和“开中断指令”这两个特权指令实现原子性

CPU执行了关中断指令之后,就不再例行检查中断信号,直到执行开中断指令之后 才会恢复检查。这样,关中断、开中断 之间的这些指令序列就是不可被中断的,这就实现了“原子性”

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

小结

在这里插入图片描述

进程通信

各进程拥有的内存地址空间相互独立

为了保证安全,一个进程不能直接访问另一个进程的地址空间。 但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。

1.共享存储

两个进程对共享空间的访问必须是 互斥(一个读另外一个就不能使用了) 的(互斥访问通过操作系统提供的工具(P、V)实现)。
在这里插入图片描述

基于数据结构的共享

比如共享空间里只能放 一个长度为10的数组。这种共享方式速度慢、限制多,是一种低级通信方式

基于存储区的共享

在内存中划出一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种高级通信方式。

2.管道通信

在这里插入图片描述
本质上是一个共享的缓冲区

半双工通信意味着,一个管道只能让一个进程写另一个进程读,如果想实现另一边的话就要再来一个管道

还是互斥的,一个写的时候另外一个就不能读了(读的时候同理)

3.消息传递

在这里插入图片描述

直接通信方式

消息直接挂到接收进程的消息缓冲队列上

间接通信方式

要先发送到中间实体(信箱)中
进程1用发送原语发到信箱里,进程2再用接受原语去取

小结

在这里插入图片描述

线程概念

1.线程的概念

在这里插入图片描述
可以把线程理解为“轻量级进程”。

线程是一个基本的CPU执行单元,也是程序执行流的最小单位。

引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)

引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。
线程则作为处理机的分配单元。(CPU分配给线程)

在这里插入图片描述

2.线程的属性

在这里插入图片描述

线程的实现方式、多线程模型

1.线程的实现方式

用户级线程

在这里插入图片描述
这些用户级线程都由线程库管理和实现(在用户态下就可以,包括线程切换),线程库再接入内核态中的内核级线程由操作系统管理

其中一个用户级线程阻塞了,那么对应内核级线程里其他的用户级线程也会阻塞(因为他们对应的是一个内核级线程),而且多个线程也只能在一个核里运行,并发度不高。

注意:在计算机中,“透明”是指看不见的,“不透明”才是指看得见的,透明也就是隐身的意思。

内核级线程

在这里插入图片描述
TCB:和PCB差不多,操作系统通过TCB对线程进行管理

2.多线程模型

一对一模型

在这里插入图片描述

多对一模型

在这里插入图片描述
多个用户级线程映射到一个内核级线程。且一个进程只被分配一个内核级线程。

重点:
操作系统只“看得见”内核级线程,因此只 有内核级线程才是处理机分配的单位。

多对多模型

在这里插入图片描述

多对多模型就是上面两种模型的折中,克服了多对一模型并发度不高的缺点(一个阻塞全体阻塞),又克服了一对一模型中一个用户进程占用太多内核级线程,开销太大的缺点。

内核级线程才是处理机分配的单位。例如:多核CPU环境下,左边这个进程最多能被分配两个核。

内核级线程中可以运行任意一个有映射关系的用户级线程代码,只有两个内核级线程中正在运行的代码逻辑都阻塞时,这个进程才会阻塞

小结

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:57:23  更:2021-07-11 16:58:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:48:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计