进程的状态与转换以及组织方式

news2024/12/23 16:31:31

1.进程的状态

三种基本状态:运行态,就绪态,阻塞态。

1.运行状态

如果一个进程此时在CPU上运行,那么这个进程处于“运行态”。
CPU会执行该进程对应的程序(执行指令序列)

2.就绪状态

当进程创建完成后,便进入“就绪态”,
处于就绪态的进程已经具备运行条件(其他所需资源),
但由于没有空闲CPU,就暂时不能运行.

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

在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。

在这个事件发生之前,进程无法继续往下执行,
此时操作系统会让这个进程下CPU,并让它进入“阻塞态
当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行.

4.创建状态(又称新建态)

进程正在被创建时,它的状态是“创建态”,
在这个阶段操作系统会为进程分配资源、初始化PCB.

5.终止状态(又称结束态)

一个进程可以执行exit系统调用,请求操作系统终止该进程。

此时该进程会进入“终止态”,操作系统会让该进程下CPU, 并回收内存空间等资源,最后还要回收该进程的PCB。
当终止进程的工作完成之后,这个进程就彻底消失了。

2. 状态之间的转换

在这里插入图片描述

1.就绪态—>运行态

进程被调度。

2.运行态—>就绪态

时间片到,或处理机被抢占。

3.运行态—>阻塞态

进程使用“系统调用”的方式申请某种系统资源,或者请求等待某个事件发生。(主动行为)

4.阻塞态—>就绪态

申请的资源被分配,或者等待的事件发生。(不是进程自身能控制的,是一种被动行为)(被动行为)

注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)

3.进程的组织方式

(各个进程PCB的组织方式)

进程PCB中,会有一个变量state来表示进程的当前状态。
如:1表示创建态、2表示就绪态、3表示运行态.
为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。

1.链式方式
  1. 按照进程状态将PCB分为多个队列
  2. 操作系统持有指向各个队列的指针
    在这里插入图片描述
  • 执行指针:指向当前处于运行态(执行态)的进程。单CPU计算机中,同一时刻只会,有一个进程处于运行态
  • 就绪队列指针:指向当前处于就绪态的进程。通常会把优先级高的进程放在队头
  • 阻塞队列指针:指向当前处于阻塞态的进程。很多操作系统还会根据阻塞原因不同,再分为多个阻塞队列
2.索引方式
  1. 根据进程状态的不同,建立几张索引表
  2. 操作系统持有指向各个索引表的指针

在这里插入图片描述
大多数的操作系统基本都采用的链式方式。

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

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

相关文章

【论文阅读】(CVPR2023)用于半监督医学图像分割的双向复制粘贴

目录 前言方法BCPMean-teacher and Traning StrategyPre-Training via Copy-PasteBidirectional Copy-Paste ImagesBidirectional Copy-Paste Supervisory Signals Loss FunctionTesting Phase 结论 先看这个图,感觉比较清晰。它整个的思路就是把有标签的图片和无标…

动态规划算法(1)--矩阵连乘

目录 一、动态数组 1、创建动态数组 2、添加元素 3、删除修改元素 4、访问元素 5、返回数组长度 6、for each遍历数组 二、输入多个数字 1、正则表达式 2、has.next()方法 三、矩阵连乘 1、什么是矩阵连乘? 2、动态规划思路 3、手推m和s矩阵 4、完…

AI伦理与机器道德:人工智能的道德挑战

文章目录 什么是AI伦理和机器道德?1. 隐私保护2. 歧视和不平等3. 透明度和解释性4. 安全性5. 社会影响 AI伦理和机器道德的重要性1. 保护个人权利2. 避免不平等和歧视3. 保持透明和责任4. 促进创新 AI伦理挑战和解决方案1. 隐私保护2. 歧视和不平等3. 透明度和解释性…

P1541 [NOIP2010 提高组] 乌龟棋(4维背包问题)

[NOIP2010 提高组] 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 题目描述 乌龟棋的棋盘是一行 N N N 个格子,每个格子上一个分数(非负整数)。棋盘第 1 1 1 格是唯一的起点,第 N N N 格是…

Nginx简介与Docker Compose部署指南

Nginx是一款高性能的开源Web服务器和反向代理服务器,以其卓越的性能、可伸缩性和灵活性而闻名。它在全球范围内广泛用于托管Web应用程序、负载均衡、反向代理和更多场景中。在本文中,我们将首先介绍Nginx的基本概念,然后演示如何使用Docker C…

Apollo自动驾驶系统概述(文末参与活动赠送百度周边)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

数据结构之美:如何优化搜索和排序算法

文章目录 搜索算法的优化1. 二分搜索2. 哈希表 排序算法的优化1. 快速排序2. 归并排序 总结 🎉欢迎来到数据结构学习专栏~数据结构之美:如何优化搜索和排序算法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客&#x…

阿里云ECS服务器无法发送邮件问题解决方案

这篇文章分享一下自己把项目部署在阿里云ECS上之后,登录邮件提醒时的邮件发送失败问题,无法连接发送邮箱的服务器。 博主使用的springboot提供的发送邮件服务,如下所示,为了实现异步的效果,新开了一个线程来发送邮件。…

【Vim 插件管理器】Vim-plug和Vim-vbundle的区别

- vundle是一款老款的插件管理工具 - vim-plug相对较新,特点是支持异步加载,相比vundle而言 Vim-plug 是一个自由、开源、速度非常快的、极简的 vim 插件管理器。它可以并行地安装或更新插件。你还可以回滚更新。它创建浅层克隆shallow clone最小化磁盘…

【数据结构初阶】六、线性表中的队列(C语言 -- 链式结构实现队列)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【数据结构初阶】五、线性表中的栈(C语言 -- 顺序表实现栈)_高高的胖子的博客-CSDN博客 1 . 队列(Queue) 队列的概念和结构&#xf…

如何利用niceGUI构建一个流式单轮对话界面

官方文档 参考文档 import asyncio import time import requests from fastapi import FastAPI from nicegui import app, uiclass ChatPage:temperature: ui.slider Nonetop_p: ui.slider Noneapi_key: ui.input Nonemodel_name: ui.input Noneprompt: ui.textarea None…

番外5:下载+安装+配置Linux

任务前期工作: 01. 电脑已安装好VMware Workstation软件; 02.提前下载好Rhel-8.iso映像文件(文件较大一般在9.4GB,建议采用迅雷下载),本人使用的以下版本(地址ed2k://|file|rhel-8.4-x86_64-dvd…

Tomcat启动后的日志输出为乱码

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

实现三栏布局的十种方式

本文节选自我的博客:实现三栏布局的十种方式 💖 作者简介:大家好,我是MilesChen,偏前端的全栈开发者。📝 CSDN主页:爱吃糖的猫🔥📣 我的博客:爱吃糖的猫&…

Mysql技术文档--之Mysql联查使用-快速了解联查看我这一篇就够了!国庆开卷!

阿丹: 开头先祝贺大家国庆快乐!!! 在MySQL中,联结(JOIN)是用于将两个或多个表中的数据根据指定的条件进行关联查询的操作。通过联结,你可以从多个表中检索相关的数据,并…

市场调研的步骤与技巧:助你了解市场需求

在当今快速发展的市场中,进行有效的市场研究对于了解消费者的行为、偏好和趋势至关重要。适当的市场研究可以帮助公司获得对目标受众的有价值的见解,创造更好的产品和服务,并提高客户满意度。今天,小编和大家一起讨论一下怎么做市…

10.1 今日任务:select实现服务器并发

#include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号&#xff0c;范围1024~49151 #define IP "192.168.112.115" //本机IP&#xff0c;ifco…

[Linux] 4.常用初级指令

pwd&#xff1a;显示当前文件路径 ls:列出当前文件夹下有哪些文件 mkdir空格文件名&#xff1a;创建一个新的文件夹 cd空格文件夹名&#xff1a;进入文件夹 cd..&#xff1a;退到上一层文件夹 ls -a&#xff1a;把所有文件夹列出来 .代表当前文件夹 ..代表上层文件夹 用…

第 365 场 LeetCode 周赛题解

A 有序三元组中的最大值 I 参考 B B B 题做法… class Solution { public:using ll long long;long long maximumTripletValue(vector<int> &nums) {int n nums.size();vector<int> suf(n);partial_sum(nums.rbegin(), nums.rend(), suf.rbegin(), [](int x…

Facebook Delos 中的虚拟共识协议

背景 Facebook 的软件系统栈一般包括两层&#xff1a;上层是数据平面&#xff0c; 下层是控制平面。 facebook software stack 数据平面包括大量的服务&#xff0c;他们需要存储和处理海量数据。控制平面用来支撑数据平面&#xff0c;起到一些控制作用&#xff1a;调度、配置…