进程--特征、五种基本状态、PCB、进程的创建与终止

news2024/11/24 7:22:34

一、进程的定义与特征

为了使参与并发执行的每个程序都能独立地允许,在操作系统中为程序配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程

进程是程序的一次执行;是一个程序及其数据在处理机上顺序执行时所发生的活动;是具有独立功能的程序,是系统进行资源分配和调度的一个独立单位

特征:
(1)动态性:进程实体具有一定的生命周期,程序则只有一组有序指令的集合。程序是静态的,进程是动态的

(2)异步性:进程是各自独立,以不可预知速度执行的。多个进程以各自的速度执行,可能由于执行顺序的随机性,导致执行结果不同

(3)独立性:进程实体是一个能独立运行、独立获取资源和独立接收调度的基本单位

(4)并发性:多个进程实体共同存在内存中,并且能在一段时间内同时运行

二、进程的五种基本状态

进程的五种状态为:就绪状态、执行状态、阻塞状态、创建状态、终止状态

就绪状态:指进程已处于准备好运行的状态
执行状态:进程已经获得CPU资源,正处于执行状态
阻塞状态:正在执行的进程由于IO等事件暂时无法继续执行
创建状态:进程申请空白PCB,并在PCB中写入进程相关信息,再将该进程转入就绪状态
终止状态:将PCB清零,并将PCB空间返回系统。进程终止并消失

进程五种基本状态的转换

在许多系统中,进程还有挂起操作。如果进程被挂起,则该进程处于静止状态,如果进程正在执行,将暂停执行。若进程原本就处于就绪状态,则该进程暂时不接受调度

挂起原语Suspend和激活原语Active。通过这两个原语操作实现对进程的挂起与激活

具有创建、终止和挂起状态的进程状态图

三、PCB

在计算机系统中,对每个资源和每个进程都设置了一个数据结构,用于表征其实体。这个数据结构称为资源信息表或进程信息表,也称为进程控制块PCB

PCB的作用是使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程

PCB的功能

①是独立运行单位的标志

②能实现间断性运行方式

③提供进程管理所需的信息

④提供进程调度所需的信息

⑤实现与其它进程的同步与通信

进程控制块PCB中的信息

进程标识符。分为用户提供的外部标识符和系统提供的内部标识符

②处理机状态。由各种寄存器中内容组成

③进程调度信息。包括进程状态、进程优先级、进程调度所需的其他信息、事件(即阻塞原因)

④进程控制信息。包括程序和数据的地址、进程同步和通信机制、所需资源清单、PCB链接指针

进程控制块的组织方式包括:线性方式、链接方式、索引方式 

四、进程创建与终止

进程控制是进程管理中最基本的功能,进程控制一般是由OS内核中的原语来实现,原语的执行是不可以被中断的

OS内核为了防止被破坏,将处理机执行状态分为系统态(管态、内核态)用户态(目态)。系统态具有较高的特权,能执行一切指令,访问所有寄存器和存储区

OS提供的三种最基本的制程功能是:中断处理、时钟管理、原语操作

在OS中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源

引起创建进程的事件

(1)用户登录:用户登录后系统将为用户创建一个进程,并将进程插入就绪队列中,这进程是父进程

(2)作业调度:在多道批处理系统中,作业调度程序按照算法调度作业,将其装入内存,并为它创建进程,再将进程插入就绪队列中

(3)提供服务:用户提出请求后,操作系统创建进程来提供用户所需的服务

(4)应用请求:用户自己创建进程

其中前三个都是由操作系统自己建立进程,只有应用请求由用户自己创建进程

进程创建的过程

每当出现创建新进程的请求后,OS便调用创建原语Creat按照如下步骤创建一个新进程:

①申请空白PCB

②为新进程分配其运行所需的资源,包括物理和逻辑资源,内存、IO等

③初始化进程控制块PCB,包括标识信息、处理机状态信息、处理机控制信息

④如果进程就绪队列可以容纳新进程,则将新进程插入就绪队列

引起进程终止的事件

(1)正常结束:进程任务完成,准备退出运行

(2)异常结束:进程在运行过程中,由于某种异常事件,导致程序无法继续运行

异常事件包括越界错误、保护错误、非法指令、特权指令错误、运行超时、等待超时、算术运算错误、IO故障 

(3)外界干预:操作员或操作系统干预、父进程请求、父进程终止

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

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

相关文章

VUE2+THREE.JS 模型上方显示信息框/标签(CSS3DSprite精灵模型)

THREE.JS 模型上方显示信息框/标签---CSS3DSprite精灵模型 1.CSS2DRenderer/CSS3DRenderer/Sprite的优劣2.实现模型上方显示信息框2.1 引入2.2 初始化加载的时候就执行此方法2.3 animate循环执行2.4 获取设备状态并在每个设备上显示设备状态2.5 样式 CSS3DSprite精灵模型面向摄…

vscode+ssh连接远程linux系统服务器,并用anaconda管理python环境

vscodessh连接远程linux系统服务器,并用anaconda管理python环境 (一)vscode连接服务器1. vscode下载插件:remote-SSH2. 连接服务器3. 修改配置 (二)将代码拷贝到服务器上与代码同步1. 转移代码2.查看3.代码…

c++ 中名空间中using 引入的细节

如果在引入名空间中的特定成员函数的时候, 全局不能定义同名的函数,但是其实只要参数不同就行 namespace a{int x 1;int fun(){return 0;} }using namespace a; using a::fun;void fun(int x) {} int x 10; int main() {fun(10); } 上面就是一个正确…

【MySQL:从零开始练级】环境安装与基础认识

hello大家好,失踪人口回归,今天开始新专栏MySQL:从零开始练级,今天给大家分享MySQL的环境安装与基础认识,希望大家能有所学习收获。 目录 1️⃣ Centos 7环境下安装 2️⃣什么是数据库 3️⃣服务器、数据库、表关系 4️⃣MySQ…

RHEL8.9 静默安装Oracle19C

RHEL8.9 静默安装Oracle19C 甘肃圆角网络科技开发有限公司 说明(GUI):  1.实际业务场景中,Linux环境一般情况下是没有GUI的。没有GUI并不意味着没有安装图形界面。可能在部署Linux操作系统环境的时候安装了桌面环境,只是启动的时候设置了启动…

Unity 一些常用注解

在Unity中有一些比较常用的注解: 1、[SerializeField]:将私有字段或属性显示在 Unity 编辑器中,使其可以在 Inspector 窗口中进行编辑。 2、[Range(min, max)]:限制数值字段或属性的范围,在 Inspector 窗口中以滑动条…

【SparkSQL】DataFrame入门(重点:df代码操作、数据清洗API、通过JDBC读写数据库)

【大家好,我是爱干饭的猿,本文重点介绍DataFrame的组成、DataFrame的代码构建、DataFrame的入门操作、词频统计案例、电影数据分析、SparkSQL Shuffle 分区数目、SparkSQL 数据清洗API、DataFrame数据写出、DataFrame 通过JDBC读写数据库(MyS…

linux 内核等待队列

等待队列在Linux内核中用来阻塞或唤醒一个进程,也可以用来同步对系统资源的访问,还可以实现延迟功能 在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这…

虚拟数字人有什么用?有哪些应用场景?

​​过去三年,元宇宙概念进入到大众视野,虚拟数字人备受关注。抖音达人柳夜熙、洛天依、网红虚拟偶像AYAYI等,随着元宇宙的流行,数字人也逐渐成为一种趋势。据行业预测,到2030年,中国的数字人总市场规模将达…

全汉电源SN生产日期解读

新买了一个全汉的电脑电源,SN:WZ3191900030,看了几次没想明白,最后估计SN是2023年19周这样来记录日期的。问了一下京东全汉客服,果然就是这样的。那大家如果在闲鱼上看到全汉电源,就知道它的生产日期了。

Excel导入操作

<template><el-dialogwidth"500px"title"员工导入":visible"showExcelDialog"close"$emit(update:showExcelDialog, false)"><el-row type"flex" justify"center"><div class"upload-e…

Csharp(C#)无标题栏窗体拖动代码

C#&#xff08;C Sharp&#xff09;是一种现代、通用的编程语言&#xff0c;由微软公司在2000年推出。C#是一种对象导向的编程语言&#xff0c;它兼具C语言的高效性和Visual Basic语言的易学性。C#主要应用于Windows桌面应用程序、Windows服务、Web应用程序、游戏开发等领域。C…

使用vscode的remotessh插件远程连接的时候被要求重复输入密码

问题描述&#xff1a; 需要远程连接服务器&#xff0c;使用ssh&#xff0c;我用到的是vscode里面的remotessh插件。配置好config以后 HostHostNameUserPortIdentifyFile进入到了vscode的密码登录界面&#xff0c;但是一直被要求循环输入密码&#xff0c;很奇怪&#xff0c;去…

遭到美国做空机构“灰熊”做空后,人工智能公司商汤科技股价暴跌

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;在遭到美国做空机构Grizzly Research&#xff08;灰熊&#xff09;指控夸大收入后&#xff0c;商汤科技的股价在周二一度下跌了9.7%。 Grizzly Research在周二发布的一份报告中称&#xff0c;商汤…

分享5款靠谱好用,无广告不流氓的好软件

​ 话不多说&#xff0c;直入正题&#xff0c;全都是靠谱好用&#xff0c;无广告不流氓的好软件&#xff0c;可以先点赞收藏&#xff0c;以后慢慢用。 1.动态壁纸软件——Lively Wallpaper ​ Lively Wallpaper是一款可以将视频、GIF、网页、游戏等内容作为桌面壁纸的软件&am…

对抗产品团队中的认知偏误:给产品经理的专家建议

今天的产品经理面临着独特的挑战。他们不仅需要设计和构建创新功能&#xff0c;还必须了解这些功能将如何为客户带来价值并推进关键业务目标。如果不加以控制&#xff0c;认知偏差可能会导致您构建的内容与客户想要的内容或业务需求之间不一致。本文将详细阐述产品经理可以避免…

融合抖音生态:抖音核销工具小程序开发全指南

为了更好地与抖音生态融合&#xff0c;许多开发者开始关注抖音核销工具小程序的开发。本文将为您提供一份详尽的指南&#xff0c;帮助您了解如何开发一个完善的抖音核销工具小程序。 第一步&#xff1a;理解抖音生态 抖音提供了一系列开发者工具和API&#xff0c;包括用户授权…

上市公司数字化转型及同群效应数据集合(四种测算方法)

数据简介&#xff1a;当今世界处于高速发展的信息时代中&#xff0c;数字革命的产生催生出大量数字技术和数字信息。在数字经济时代&#xff0c;数字化转型赋予了企业新的发展动能&#xff0c;数字化转型已经成为诸多企业高质量发展的重要路径。是否需要进行数字化转型、能否及…

Serilog .net下的新兴的日志框架

Serilog .net下的新兴的日志框架 1.Serilog简介 Serilog 是针对 .NET 应用程序的流行日志记录框架。它以其灵活性、易用性和可扩展性而闻名。借助 Serilog&#xff0c;开发人员可以轻松记录应用程序中的事件、错误和消息。它支持结构化日志记录&#xff0c;能够以结构化格式存…

SpringBoot整合validation数据校验

1. 首先引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency> 点标识进去可以发现是通过Hibernate Validator使用 Java Bean Validation 2. 属性上…