创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
目录
- 一、进程的基本概念
- 二、进程的特征
- 三、进程的基本状态及转换
- 挂起和激活
- 四、进程的存储环境
一、进程的基本概念
进程在不同角度下可以有不同的定义:
- 进程是进程实体的运行过程。
- 进程是系统进行资源分配和调度的一个单位,是一个任务执行的逻辑单元。
在早期计算机的结构中,进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
在当代计算机结构中,进程与程序显然是截然不同的概念,程序与进程没有必然联系
在进程执行时如果没有数据往来,程序文件被删除甚至都不会影响进程的运行。
进程拥有程序所没有的特征:
二、进程的特征
- 1.动态性:进程的实质是进程实体的执行过程,它是有生命的,具有各种状态。
- 2.并发性:指多个进程可以在一段时间间隔内同时进行。
- 3.独立性:进程独立运行、进程资源独享、独立接受调度,占用独立的物理内存空间。
- 4.异步性:按各自独立的、不可预知的速度向前推进,进程间可能会相互影响或受到资源共享的制约关系
- 5.结构性:进程由程序段、数据段和PCB三部分组成。
进程控制块:为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的 数据结构,称为进程控制块(PCB)
三、进程的基本状态及转换
由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能以下状态:
- 1.创建态:当一个进程被创建后,就处于创建态。此时,它已经完成了初始化工作,但还未真正运行。
- 2.就绪态:当一个进程已经准备好运行时,就处于就绪态,此时进程处于就绪队列中。此时,它已经获得了除了CPU以外所有必要的资源,只等待调度器的调度。
- 3.运行态:当一个进程获得CPU资源后,正在CPU上运行时,就处于运行态。此时,它是系统中实际工作的进程。
- 4.阻塞态:当一个进程正在等待某个事件(如I/O操作)完成时,就处于阻塞态,根据阻塞原因的不同,会设置多个阻塞队列。此时,它暂停运行,直到等待的事件发生或完成。
- 5.终止态:当一个进程已经完成其任务并退出时,就处于终止态。此时,它已经释放了所有占用的资源。
进程在运行过程中会经常发生状态的转换,处于就绪状态的进程,在调度程序为之分配了处理机之后便可执行,相应地,其状态就由就绪态转变为执行态;
正在执行的进程(当前进程)如果因分配给它的时间片已完而被剥夺处理机暂停执行时,其状态便由执行转为就绪态;如果因发生某事件,致使当前进程的执行受阻(例如进程访问某临界资源,而该资源正被其它进程访问时),使之无法继续执行,则该进程状态将由执行转变为阻塞态。
五种状态转换关系如下图:
挂起和激活
挂起操作:由于系统或用户需要,将某个进程置于静止状态。
按照运行状态可以分为以下几种:
- 执行中的进程:挂起后暂停进行
- 就绪队列中的进程:暂时不接受进程调度
- 阻塞状态的进程:变为静止阻塞状态
引入挂起后的进程状态转换图:
四、进程的存储环境
操作系统中有两种运行模式,具有不同的权限和功能。
- 内核态:也称为系统态、管态,具有最高的权限,可以执行任何指令并访问系统所有的资源。在内核态下运行的代码一般为操作系统的核心代码、设备驱动程序等。进程的信息就存储在内核层,包括进程控制块(PCB)
- 用户态:具有较低的权限级别,只能执行有限的指令并访问受限的资源。在用户态下运行的代码是应用程序的代码。用户层包括命令行参数、环境变量、栈、库、堆、全局/静态变量、代码段等
大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。 |
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●) |