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

2024-03-06 16:36

本文主要是介绍进程的奥德赛:并发世界中的核心概念与动态管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  
✨✨ 欢迎大家来访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.chinasem.cn/article/780676

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核