进程的奥德赛:并发世界中的核心概念与动态管理

  
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭~✨✨

🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。

我是Srlua,在这里我会分享我的知识和经验。🎥

希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮

记得先点赞👍后阅读哦~ 👏👏

📘📚 所属专栏:操作系统

欢迎访问我的主页:Srlua 获取更多信息和资源。✨✨🌙🌙

目录

进程概念

多道程序设计

顺序程序活动的特点 

多道程序设计

程序并发执行的特征

​1.失去封闭性。

2.失去对应性:程序与计算不再一一对应。

3.并发程序在执行期间相互制约。

进程概念

1.引入:

2.进程概念

3.进程和程序的区别

(1)动态性

(2)并发性

(3)非对应性

(4)异步性

4.进程的基本特征

(1)动态性

(2)并发性

(3)调度性

(3)异步性

(5)结构性

进程的状态和组成

进程的状态及其转换

1.进程的基本状态

(1)运行状态(Running)

(2)就绪状态(Ready)

(3)阻塞状态(blocked)又称等待态

(4)新建状态(New)

(5)终止状态(Terminated)

2.UNIXS 5进程状态及其变迁图

3.进程状态的转换

进程描述

1.进程映像

2.进程控制块的组成

3.进程控制块的作用


现代操作系统的重要特性是程序的并发性和资源的共享性。这二者相互联系、相互依赖。

为了满足多用户并发计算的要求,现代操作系统是围绕进程这个概念设计和构造的。

进程概念

在操作系统中,进程是一个极其重要的概念

传统的操作系统中,进程是资源分配独立运行的基本单位。

操作系统所具有的三大特征也是基于进程而形成的,应从进程的角度来研究操作系统。

多道程序设计

在早期的单道程序或单用户系统中,计算机按顺序执行程序,各个用户程序也是顺序执行的。

顺序程序活动的特点 
  • 程序执行的顺序性
  • 程序运行环境的封闭性

独占资源,执行过程中不受外界影响

  • 程序执行结果的可再现性

程序运行结果与程序执行速度无关,只要初始状态相同,结果应相同

多道程序设计
  • 内存中同时存放多道程序程
  • 序并发执行
  • 提高资源利用率和系统吞吐量
程序并发执行的特征
1.失去封闭性。

由于程序的并发执行,系统中的资源不再为一个程序独占,因此资源的状态也不再由一个程序决定,而是由并发执行的多道程序决定。

2.失去对应性:程序与计算不再一一对应。
3.并发程序在执行期间相互制约。

程序并发执行时,由于资源共享,使得一些逻辑上相互独立的几道程序之间发生了相互制约关系。相互制约将导致并发程序具有“执行一暂停-执行”这种间断性的活动规律。

进程概念

1.引入:

程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。

2.进程概念

进程定义:一个具有独立功能的程序关于某个数据集合的一次运行活动。

简言之,进程是程序在并发环境中的执行过程。

进程最根本的属性是动态性和并发性

        “进程”是操作系统中最基本、最重要的概念之一,它对理解、描述和设计操作系统都有非常重要的意义。

3.进程和程序的区别
(1)动态性

进程是程序的一次执行过程,是一个动态和主动的概念;程序是完成某个特定功能的指令的有序序列,是一个静态和被动的概念。

程序可以作为一种软件资源长期保存;进程有一定生命期,动态生成和消亡。

(2)并发性

进程是可以并发执行的

系统中多个进程可按照自己独立的、不可预知的速度推进;程序通常不能作为一个独立运行的单位而并发执行

进程是资源申请和调度单位,进程切换要通过进程调度来实现;而程序的不同模块间通过相互调用实现控制转移。

(3)非对应性

程序和进程无一一对应关系:

一个程序可被多个进程共用;

一个进程在其活动中又可顺序地执行若干程序

(4)异步性

各进程在并发执行过程中相互制约,造成各自前进速度的不可预测性。

程序是静态的,不具备异步特征。

4.进程的基本特征
(1)动态性

进程是程序的一次执行过程,它是临时的、有生命期的。表现在它由创建而产生,完成任务后被撤消。

(2)并发性

进程是可以并发执行的。系统中的各个进程可以按照自己独立的、不可预知的速度推进。

(3)调度性

进程是系统进行资源分配和调度的一个独立单位.

(3)异步性

各进程向前推进的速度不可预知

(5)结构性

进程有一定的结构(程序+数据+PCB)

进程的状态和组成

进程的状态及其转换

1.进程的基本状态
(1)运行状态(Running)

进程占有CPU,并在CPU上执行

处于这种状态的进程的个数不能大于CPU的数目

(2)就绪状态(Ready)

一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)

如果系统中共有N个进程,则就绪进程至多为N-1

(3)阻塞状态(blocked)又称等待态

指进程因等待某种事件的发生而暂时不能运行的状态。

(即使CPU空闲,该进程也不可运行)


上述三种状态是进程最基本的状态,在实际的操作系统实现中,进程远不止这三种状态。

(4)新建状态(New)

进程从无到有是由创建而产生,故它的起点应为新建状态(New)

(5)终止状态(Terminated)

当进程运行完成时要消亡,此时的状态为终止状态(Terminated)

终止状态(Terminated)


三种状态的相互转换如下图所示


进程的5种基本状态及其转换

2.UNIXS 5进程状态及其变迁图

3.进程状态的转换

在进程生存期间,由于进程自身进展情况及外界环境的变化,进程的状态可以依据一定的条件相互转换:

①新建→就绪

②就绪→运行

③运行→阻塞

④阻塞→就绪

➄运行→就绪

⑥运行一终止


就绪 -->运行

  • 调度程序选择一个就绪态的进程投入运行

运行 --> 就绪

  • 运行进程用完了时间片
  • 运行进程被中断,因为一高优先级进程处于就绪状态

运行 -->阻塞

当一进程必须等待时

  • OS尚未完成服务
  • 对一资源的访问尚不能进行
  • 初始化I/0 且必须等待结果
  • 等待某一进程提供输入

阻塞 --> 就绪

  • 当所等待的事件发生时

进程描述

1.进程映像

进程在系统中存在和活动的实体‘

进程映像通常由4部分组成:

1.程序        2.数据集合        3.栈       4.PCB

2.进程控制块的组成

进程控制块:(Process Control BlockPCB)也称为进程描述块,它是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。

进程控制块一般包括以下内容
(1)进程标识信息

  • 进程标识号PID
  • 父进程标识号PPID
  • 用户标识号UID

(2)处理器状态信息

  • 用户可用寄存器
  • 控制和状态寄存器
  • 栈指针

(3)进程控制信息

  • 调度和状态信息
  • 链接信息
  • 进程间通信信息
  • 存储管理信息
  • 资源需求、占有和控制方面的信息
3.进程控制块的作用
  • 每个进程有唯一的进程控制块
  • 系统利用PCB来控制和管理进程
  • 进程的动态、并发等特征是利用PCB表现出来的
  • PCB是进程存在的唯一标志

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图神经网络实战(2)——图论基础

图神经网络实战(2)——图论基础 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图和非加权图1.3 连通图和非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前…

力扣hot10---大根堆+双端队列

题目&#xff1a; 大根堆思路&#xff1a; 维护最大值&#xff0c;应该首先想到大根堆。C中对应着priority_queue&#xff0c;这里用pair<int,int>来记录对应的值和在nums中的索引。所以有priority_queue<pair<int,int>> q。在大根堆中&#xff0c;用q.top()…

【框架学习 | 第一篇】一篇文章读懂MyBatis

文章目录 1.Mybatis介绍1.1Mybatis历史1.2Mybatis特点1.3与其他持久化框架对比1.4对象关系映射——ORM 2.搭建Mybatis2.1引入依赖2.2创建核心配置文件2.3创建表、实体类、mapper接口2.4创建映射文件2.4.1映射文件命名位置规则2.4.2编写映射文件2.4.3修改核心配置文件中映射文件…

priority_queue 优先级队列

从大到小排序&#xff1b; #include<cstdio> #include<queue> using namespace std; priority_queue <int> q; int main() {q.push(10),q.push(8),q.push(12),q.push(14),q.push(6);while(!q.empty())printf("%d ",q.top()),q.pop(); }输出 14 1…

Linux基本命令

一、基本命令 修改mysql端口号 vim /etc/my.cnf云服务器ssh端口修改 vim /etc/ssh/sshd_config1.1 关机和重启 关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机重启 shutdown -r now 立刻重启 shutdown -r 5 5分钟后重启 reboot 立刻重启1.2…

【python--读取文件夹下所有文件读取关键词】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; python练习题 抽取关键词 抽取关键词 import os import json import pandas as pd# 指定文件夹路径和关键…

信息熵、KL散度、交叉熵、互信息、点互信息

信息熵 信息量 信息量是对信息的度量&#xff0c;衡量事件的不确定性&#xff0c;越小概率的事件发生了产生的信息量越大。我们应该用什么形式的函数表达信息量呢&#xff1f;除了随着概率增大而减少&#xff0c;这个函数还有具有以下性质&#xff1a; 如果有两个事件x和y彼…

STM32标准库——(18)Unix时间戳、BKP备份寄存器、RTC实时时钟

1.Unix时间戳 1.1 简介 32位有符号数所能表示的最大数字是2^32/2-1这个数是21亿多&#xff0c;这其实是有溢出风险的&#xff0c;因为目前到2023年时间戳已经计到16亿了&#xff0c;32位有符号数的时间戳会在2038年的1月19号溢出&#xff0c;64位的时间戳能存储的时间范围非常…

C++对象模型剖析(六)一一Data语义学(三)

Data 语义学&#xff08;三&#xff09; “继承” 与 Data member 上期的这个继承的模块我们还剩下一个虚拟继承&#xff08;virtual inheritance&#xff09;没有讲&#xff0c;现在我们就来看看吧。 虚拟继承&#xff08;Virtual Inheritance&#xff09; 虚拟继承本质就是…

Linux笔记--make

使用上一节的 main.c、add.c、sub.c文件进行编译&#xff0c;编译的过程有很多步骤&#xff0c;如果要重新编译&#xff0c;还需要再重来一遍&#xff0c;能不能一步完成这些步骤?将这些步骤写到makefile文件中&#xff0c;通过make工具进行编译 一个工程中的源文件不计其数&a…

java 获取项目内的资源/配置文件

【getResourceAsStream】是java中用于获取项目内资源的常用方法&#xff0c;能够返回一个数据流&#xff0c;从而允许我们读取指定路径下的资源文件。这个方法可以用来读取各种类型的资源文件&#xff0c;包括但不限于文本文件、图像文件、配置文件等。 要使用getResourceAsStr…

高端相亲婚恋平台有哪些?分享五款高端靠谱相亲交友软件

如今市场上的相亲软件越来越多&#xff0c;但很少有人能找到自己心仪的相亲软件。在选择相亲软件时&#xff0c;大家最看重的就是安全性和真实性&#xff0c;因此我想向大家分享几款我用过且觉得可靠的高端相亲软件&#xff0c;希望能得到你们的认可。 1、丛丛 这是我用的最久的…

【[STM32]标准库-自定义BootLoader】

[STM32]标准库-自定义BootLoader BootloaderBootloader的实现BOOTloader工程APP工程 Bootloader bootloader其实就是一段启动程序&#xff0c;它在芯片启动的时候最先被执行&#xff0c;可以用来做一些硬件的初始化或者用作固件热更新&#xff0c;当初始化完成之后跳转到对应的…

LeetCode 热题 100 | 图论(二)

目录 1 基础知识 1.1 什么是拓扑排序 1.2 如何进行拓扑排序 1.3 拓扑排序举例 2 207. 课程表 3 210. 课程表 II 菜鸟做题&#xff0c;语言是 C 1 基础知识 1.1 什么是拓扑排序 含义&#xff1a;根据节点之间的依赖关系来生成一个有序的序列。 应用&#xff1a…

12:Logstash|Web日志实时分析

Logstash|Web日志实时分析 logstashlogstash工作结构安装Logstash编写logstash配置文件步骤一:codec类插件插件帮助手册Logstash input插件步骤一:file模块插件filter grok插件Web日志实时分析部署beats与filebeat步骤一:filter grok模块插件logstash 一个数据采集、加工处…

Ubuntu22.04系统 安装cAdvisor提示找不到 CPU 的挂载点错误解决办法。

如果我们在安装cAdvisor时容器启动不起来 查看日志如下图所示 1、查看cgroup文件系统是v2 还是 v1 mount | grep cgroup 如图所示我的是v2 &#xff0c; cAdvisor 目前的最新版本&#xff08;v0.39.0&#xff09;仍然只支持 cgroup v1&#xff0c;不支持 cgroup v2。因此&#…

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办&#xff01; 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验&#xff0c;跨越时空的限制&#xff0c;探索未知的世界。同时&#xff0c;提供更加丰富、立体的情感表达和交流方式&#xff0c;让人类能够更加深入地理解彼此&…

做抖店月入百万还是会亏损?珠珠来告诉你,做抖店水到底有多深?

我是电商珠珠 抖店的热度一直只高不低&#xff0c;所以很多想要做的新手不知道抖店水的深浅&#xff0c;就一股脑的去做了。结果又是被扣保证金&#xff0c;又是被判定无货源违规的&#xff0c;最后灰头土脸的关了店。那些说做了十万十几万的&#xff0c;几百万的难道都是假的…

在三个el-form-item中的el-radio的值中取一个发送给后端怎么获取

问: 请问,这段代码怎么获取:无策略,策略1,策略2的值? 回答: 问: 三个里面只可以选中一个吗? 回答:

应对求职高峰:金三银四必备问答与大厂模板,成功职场攻略!

三四月是求职的黄金季节&#xff0c;很多设计师会选择在这个时候准备作品集。一个视觉精美、有条不紊的作品集&#xff0c;无疑是走向大厂的敲门砖。但是我问了一圈优秀社区的朋友&#xff0c;发现大家或多或少都遇到过问题。今天我整理了群里的高频问题&#xff0c;附上了解决…