【CPU】进程管理之五状态模型
本文为第三篇,进程管理之五状态模型,进程在操作系统里边是有多个状态的,本文就是了解进程在操作系统中的多个状态
1、进程的五个状态
- 创建状态
- 就绪状态
- 阻塞状态
- 执行状态
- 终止状态
2、进程处于这五种状态时在做什么
(1)就绪状态
- 当进程被分配到除CPU以外的所有必要资源后,就处于就绪状态
- 只要再获得CPU的使用权,就可以里立即运行
- 其它资源都准备好,只差CPU资源的状态,就是就绪状态
其它资源包括进程控制块(PCB)、内存、栈空间、堆空间等
在操作系统里边,我们知道,多个程序可以并发的运行,这个时候就可能存在多个就绪状态的进程,这些进程通常会排成一个队列,这个队列就称为就绪队列,在就绪队列里边有多个就绪的进程
(2)执行状态
- 进程获得CPU使用权,其程序正在执行,称为执行状态
- 在单处理机(一个CPU只有一个核的情况),在某个时刻只能有一个进程是处于执行状态
(3)阻塞状态
进程由于某种原因,如:其它设备未就绪而无法继续执行,从而放弃CPU的状态,就称为阻塞状态
比如说有个进程要请求打印机,但是由于打印机正处于被占用的情况,进程收不到回应,那么就会处于阻塞状态。当多个进程同时请求打印机时,也会处于阻塞状态,此时也有阻塞队列的概念
(4)创建状态
创建状态分为两步:
a、分配PCB
b、插入就绪队列
创建进程时,拥有PCB,但其它资源尚未就绪的状态称为创建状态
(5)终止状态
终止状态也分为两步:
a、系统清理
b、归还PCB
进程结束由系统清理或者归还PCB的状态称为终止状态
3、就绪、阻塞、执行三种状态之间的切换
当进程发生进程调度的时候,就会由就绪状态变为执行状态,当某一个进程发生进程调度的时候就会获取到CPU的资源,当执行状态的进程的CPU资源用完了,它就会切换回就绪的状态,插入到就绪队列中,这里的CPU资源用完指的是,分配给某一个进程执行CPU的时间用完了
当执行状态的进程发生IO请求的时候就有可能变成阻塞状态(前边有说到请求打印机的例子)。当发生IO完成的时候,就会由阻塞状态切换到就绪状态
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践
【CPU】进程管理之五状态模型的更多相关文章
- Linux进程管理之状态(二)
二.进程的生命周期 进程是一个动态的实体,所以他是有生命的.从创建到消亡,是一个进程的整个生命周期.在这个周期中,进程可能会经历各种不同的状态.一般来说,所有进程都要经历以下的3个状态: 就绪态.指进 ...
- .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控
一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...
- linux进程管理和系统状态查看命令简介
1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...
- linux进程管理和系统状态常用命令简介
1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...
- Linux 进程管理、系统状态查询
1.内存给进程一段空间让他启动,让内核通过cpu来管理它. 2.ps命令查看命令信息. 用户.pid号.使用cpu.使用内存.虚拟内存.真实内存.控制台.状态.启动时间.运行时间.名 USER PID ...
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数
lienhua342014-10-12 当一个进程正常或者异常终止时,内核就向其父进程发送 SIGCHLD信号.父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用的函数(信号处理程序).对于这 ...
- Linux网络技术管理及进程管理(week2_day4)--技术流ken
OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...
- Linux网络技术管理及进程管理
OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...
- Liunx网络技术管理及进程管理
Linux网络技术管理及进程管理(week2_day4) OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型 ...
随机推荐
- 什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
1. XSS(Cross Site Script,跨站脚本攻击) 是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式. 1.1跨站脚本攻击分有两种形式: 反射型攻击(诱使用户点 ...
- vue开源项目有点全
目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★31142 - 饿了么出品的Vue2的web UI工具套件 Vux ★14104- 基于Vue和 ...
- linux远程搭建yum网络仓库《全面解析》
目录 一:远程版本需求 1.yum简介 2.yum安装解析 二:yum安装的生命周期 三:yum私有仓库作用与必要性 四:搭建yum私有仓库 本地版本 1.下载必须的软件包 2.创建软件仓库(就是创建 ...
- Java高级语法之反射
Java高级语法之反射 什么是反射 java.lang包提供java语言程序设计的基础类,在lang包下存在一个子包:reflect,与反射相关的APIs均在此处: 官方对reflect包的介绍如下: ...
- AI换脸实战教学(FaceSwap的使用)---------第一步Extration:提取人脸。
市面上有多款AI换脸的方法,笔者这里节选了Github那年很火的开源项目FaceSwap: (很早就实践了,但是忘记记录啦hhh,请勿用于不正当用途哦) 做了一篇详细教学,包括配置,参数设置,换脸效果 ...
- 微服务架构 | 5.1 使用 Netflix Hystrix 断路器
目录 前言 1. Hystrix 基础知识 1.1 Hystrix 断路器强调调用 1.2 两大类别的 Hystrix 实现 1.3 舱壁策略 1.4 Hystrix 在远程资源调用失败时的决策过程 ...
- Java中的String,StringBuilder,StringBuffer三者的区别?
package com.aaa.zxf.ajax.test; /** * 弄清楚 string stringBuilder StringBuffer 三者之间的关系? * * * 一. 三者都是用来对 ...
- Spring源码-IOC部分-容器初始化过程【2】
实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...
- MybatisPlus多表连接查询
一.序言 (一)背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题.时 ...
- LVS负载均衡群集部署——NAT模式
LVS负载均衡群集部署--NAT模式 1.群集应用概述 2.NAT模式LVS负载均衡群集部署 1.群集应用概述: 存在的问题: 互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求 ...