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

news2024/11/24 9:18:01

  
✨✨ 欢迎大家来访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.coloradmin.cn/o/1493727.html

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

相关文章

Java并发编程-进程和线程

一、进程和线程 1. 进程 什么是进程? 简单来说,进程就是程序的一次启动和执行。进程是操作系统中的一个概念,它代表正在运行的程序的实例。每个进程都有自己的内存空间、代码和数据,以及其他操作系统资源,如文件和设备…

数据资产:隐藏在企业内部的金矿

引言 在这个数字化快速发展的时代,数据已成为企业的核心竞争力之一。数据资产不仅代表了企业的知识和智慧,还隐藏着巨大的商业价值。然而,许多企业对于数据资产的价值认识仍然不足,导致大量数据资源被埋没。本文将带您深入了解数…

游戏引擎渲染流程

一、渲染概述 我们首先看到渲染技术的发展 游戏渲染面临的挑战: 一个容器中同一时刻有大量的游戏对象需要进行渲染,并且不同对象渲染的形式、算法还有所差异,这些使得游戏的绘制系统变得非常复杂;其次,游戏引擎的渲染…

小白跟做江科大51单片机之DS1302可调时钟

原理部分 1.DS1302可调时钟介绍 单片机定时器主要占用CPU时间,掉电不能继续运行 图1 2.原理 图2 内部有寄存器,寄存的时候以时分秒寄存,以通信协议实现数据交互,就可以实现对数据进行访问和读写 3.主要寄存器定义 CE芯片使能…

去极值滑动平均值滤波FB(含线速度对比测试波形)

博途PLC滑动平均值滤波相关算法内容在专栏有系列文章,大家可以查看相关文章,常用链接如下: 1、滑动平均值滤波 https://rxxw-control.blog.csdn.net/article/details/124851884https://rxxw-control.blog.csdn.net/article/details/1248518842、博途PLC指数加权平均值滤波…

MATLAB环境下基于离散小波变换的体外血管图像处理

下面简要介绍小波变换的部分应用。 信号去噪。小波去噪是根据有效信号和噪声信号在小波变换后表现出的不同特性实现的,一般可用于去除语音、图像、视频等中的噪声信号。小波去噪方法根据对小波系数的非线性处理方式分为三类,分别是小波变换模极大值去噪…

数学建模【聚类模型】

一、聚类模型简介 “物以类聚, 人以群分”,所谓的聚类,就是将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测,也可以探究不同类之间的相关性和…

如何在控制台重新发送请求、修改请求参数

场景一:重新请求接口 - 鼠标右键点击请求,选择重放XHR - 可以看到重新发起了一次请求 注意:重放XHR不会重新渲染页面数据,只是单纯的请求接口 场景二:修改接口参数 - 右键鼠标右键点击接口、选择复制、选择以fetc…

【教程】无法验证app需要互联网连接以验证是否信任开发者

摘要 本文将探讨在使用苹果App时遇到无法验证开发者的情况,以及用户可以采取的解决方案。通过检查网络连接、重新操作、验证描述文件等方式来解决无法验证开发者的问题。同时,还介绍了开发者信任设置的步骤,以及使用appuploader工具进行安装…

Docker 部署Harbor 443端口冲突

如果Harbor的443端口和主机服务器的443端口存在冲突,那么需要修改Harbor的443 修改docker-compose中443端口,那么需要docker-compose.yml和harbor.yml保持一致配置 当修改harbor.yml重启之后不生效的,则需要进入harbor安装路径 执行 ./install.sh 命令 harbor.yml docker-…

TinyEMU编译与使用

TinyEMU编译与使用 1 介绍2 准备工作3 编译TinyEMU3.1 安装依赖库3.2 编译 4 运行TinyEMU4.1 在线运行4.2 离线运行 5 共享目录5.1 修改root_9p-riscv64.cfg5.2 启动TinyEMU5.3 执行挂载命令 6 TinyEMU命令帮助 1 介绍 原名为riscvemu,于2018-09-23,改为…

Git 进阶 高级用法,重要命令记录

本篇文章用于记录Git高级用法,新手可以看我的另一篇文章:Git基础教学。 Git git fetch 是git pull 的细分步骤,git pull 包含了git fetch git pull origin master 上述命令其实相当于git fetch git merge 在实际使用中,git fetc…

msvcr120.dll丢失怎样修复,更了解msvcr120.dll文件从而解决丢失问题

在电脑使用过程中,"msvcr120.dll丢失"是常见的错误提示之一。那么,今天就和大家聊聊msvcr120.dll文件,如果msvcr120.dll文件丢失的问题时什么原因导致的,让我们仔细来看一下msvcr120.dll是什么以及msvcr120.dll丢失怎样…

【二】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

教学管理系统201703153 教学管理系统数据库展示 成绩表展示 课程表展示 学生表展示 院系表展示 一、基本操作 设置复合主键 设置其他表的主键 设置字段取值范围 二、简单操作 第一题 第二题 第三题 第四题 结尾 最后,感谢您阅读我的文章,希望这些内容能…

2024年最受欢迎的15款缺陷管理工具

本文整理分享了15款再2024年受欢迎的bug(缺陷)跟踪管理工具:1.PingCode;2.Worktile;3.SpiraTeam;4. Jira Software;5. BugHerd;6. Zoho Projects;7.SmartSheet&#xff1…

linux实现远程文件夹共享-samba

目录 问题描述Samba如何挂载常用参数临时挂载实例一种长期挂载方法(已失败,仅供参考)查看挂载取消挂载umount失败 问题描述 我的代码需要访问存在于两个系统(win和linux)的文件夹,我不是文件夹的创建者&am…

【大数据】-- 创建 Paimon 外部表

如今,在数据湖三剑客(delta lake、hudi、iceberg)之上,又新出一派: apache paimon。我们恰好在工作中遇到,以下介绍在 dataworks 上,使用 maxcompute odps sql 创建 apache paimon 外部表的一些…

不可不知!AI大模型的力量超乎你的想象!

AI大模型是通过深度学习算法和人工神经网络训练出的具有庞大规模参数的人工智能模型。这些模型使用大量的多媒体数据资源作为输入,并通过复杂的数学运算和优化算法来完成大规模的训练,以学习和理解到输入数据的模式和特征。 想象一下,在一个…

【C++】string 类

1. 标准库中的string类 注意: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 比特就业课 3. string在底层实际是:basic_string模板类的别名,typedef b…

知识图谱与LLMs:微调 VS RAG、LLM的局限性以及如何克服

原文地址:Knowledge Graphs & LLMs: Fine-Tuning Vs. Retrieval-Augmented Generation 2023 年 6 月 6 日 GitHub:https://github.com/neo4j/NaLLM 大型语言模型 (LLM) 的第一波炒作来自 ChatGPT 和类似的基于网络的聊天机器人,相信在…