波奇学Linux:Linux进程状态,进程优先级

编写一个程序模拟进程

查看进程状态

修改代码后发现进程状态为由S+变成R+ 

R为运行态,S为阻塞态

第一次为S是因为调用了外设(printf调用屏幕外设),实际上应该为R,S状态轮换,但是R太快了,所以每次查到了都为S。

R+为前台运行,运行bash指令无反应。

R加入& 为后台运行,可以运行bash指令,此时只能用kill指令来取消进程

大部分的程序都属于sleep状态,等待资源输入,比如scanf和bash命令行。

D状态(Disk sleep):深度睡眠的阻塞态

S状态叫做前度睡眠,可以被外部操作唤醒,如外部输入kill指令关掉进程。

当进程把数据从内存写入磁盘,进程进入S状态。

当资源压力太大,操作系统可以杀掉进程,为了防止写入磁盘的进程被杀掉,进程进入D状态,进程就不能被杀死。

D状态不响应操作系统的任何操作。当高I/O状态下,才能看到D状态。

T状态:暂停进程

19号命令取消进程,18号命令唤醒暂停的指令。

T状态和S状态区别,S状态常用于等待资源。两种都是阻塞状态

t,X,Z状态

t状态(trace stop):暂停状态的一种,同样也是阻塞状态,常被用于断点处

X(dead):终止态,进程结束

Z(zombie):僵尸态,进入X状态前进入Z状态。

Z状态会在X状态前维持进程状态等信息。传递信息等给父进程。

编写父子进程,此时父进程没有对子进程做任何事情,子进程退出,保持僵尸态。

 

进程一般退出时,如果父进程没有主动回收,子进程信息,子进程一直让自己出于z状态,进程的相关资源尤其是task_struct结构体不能被释放。

如果父进程一直不释放,会造成资源浪费。

父进程先于子进程销毁

此时运行的子进程的父进程变成操作系统(操作系统pid为1)

 该进程被系统领养,该子进程也叫孤儿进程,该进程的资源被系统回收。

直接kill能让父子进程都销毁。

进程优先级

进程饥饿:如果进程长时间得不到cpu资源,该进程的代码长时间无法得到推进,该进程的饥饿问题。优先权高的进程有优先执行权利。

UID表示执行者身份boki的uid就是 1002

PRI(priority):80,这个值越小,优先级越高

NI(nice):进程的nice值,进程优先级修正数据,默认的nice值范围是[-20,19)。

PRI(new)=PRI(old) +nice 通过修改nice值可以修改优先级,nice改成负数,PRI变小优先级变高

nice指令和renice指令可以修改优先级

查找进程PID

top指令,按r修改进程的nice值(修改后只会是-20)

其中PRI(old)是从永远从80开始

哈希开散列法实现操作系统优先级调度

struct runqueue中有running和waiting两个指针数组。

PCB会根据PRI的值映射到running数组中,数组跟据优先级由上往下获取取PCB运行进程,如果优先级相同则在添加在PCB1后,先从左往右,再往下直到数组中全部进程运行完毕。

waiting是镜像数组,当负责接收进程,把running中的提取和waiting的接收分开,接收规则和runing一样。当running数组空了后,wait和run指针指向的数组swap()。

用bitmap来判断running数组是否为空。根据0,1判断数组对应位置是否有PCB指针。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用docker编排容器

使用Dockerfile构建一个自定义的nginx 首先用docker拉一个nginx镜像 docker pull nginx拉取完成后,编辑一个Dockerfile文件 vim Dockerfile命令如下所示,FROM 后面跟的你的基础镜像,而run则是表示你构建镜像时需要执行的指令,下面的指令意…

python pip 相关缓存清理(windows+linux)

pip会大量缓存,如果全部堆在系统盘,会造成别的无法使用 windows和linux通用 一、linux linux是在命令行操作 1.查看缓存位置 pip cache dir我这里默认是在/root/.cache/pip 2.查看大小 du -sh /root/.cache/pip结果如下: 3.清理&#…

matlab 最小二乘拟合空间直线(方法三)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接博客长期更新,GPT与爬虫自重,你也未必能爬到最新版本。 一、算法原理 1、算法过程 空间直线的点向式方程为:

Node.js 事件循环简单介绍

1.简介 Node.js 事件循环是 Node.js 运行时环境中的一个核心机制,用于管理异步操作和回调函数的执行顺序。它基于事件驱动模型,通过事件循环来处理和派发事件,以及执行相应的回调函数。 Node.js 是单进程单线程应用程序,但是因为…

Spring boot注解

1.RestController RestController 注解用于标识一个类,表示该类的所有方法都返回JSON或XML响应,而不是视图页面。它是Controller和ResponseBody的组合 2.RequestMapping RequestMapping 注解用于映射HTTP请求到控制器方法或类。它可以用于类级别和方法级别,用于定…

制造业CRM选型指南:功能、价格与适用性

点击输入图片描述(最多30字) 在产业升级的大背景下,传统制造业数字化转型迫在眉睫。然而,生产制造业在转型过程中难免遇到难题,这时候就需要CRM客户管理系统的帮助。本文就将为您介绍,什么是制造业CRM&…

BearPi Std 板从入门到放弃 - 先天神魂篇(2)(RT-Thread LED PWM驱动)

简介 基于 BearPi Std 板从入门到放弃 - 先天神魂篇(1)(RT-Thread 指令点亮LED) 创建的项目, 添加PWM驱动LED的方式实现呼吸灯功能, 电路板及相关使用到的配件说明 开发板 : Bearpi Std(小熊派标准板) 主芯片: STM32L431RCT6 E53_ST1扩展板/…

buuctf-Misc 题目解答分解82-84

82.从娃娃抓起 汉字编码 有两种一种是GB2312 另一种是五笔输入 带数字的是电报码 电报码在线翻译(国际摩尔斯电码及中文电码) - 千千秀字 解密是人工智能 汉字五笔编码批量查询:86版五笔编码、98版五笔编码、18030版五笔编码;五…

智慧文旅云平台建设方案:PPT全文30页,附下载

关键词:智慧文旅解决方案,智慧文旅建设方案,智慧文旅仓,智慧旅游景区方案,智慧旅游服务平台,智慧旅游技术应用,智慧旅游典型案例 一、智慧文旅云平台建设背景 1、旅游消费升级:随着…

文件搜索项目演示

演示功能搜索功能1:根据文件名搜索2:根据文件路径搜索3:根据文件名拼音(全拼、首拼)搜索 选择更新目录功能自动初始化和定时更新功能程序文件项目知识介绍 演示功能 搜索功能 1:根据文件名搜索 2:根据文件路径搜索 3…

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

【项目资源下载】 本篇配套直接打开可用的项目包地址,欢迎下载: https://download.csdn.net/download/weixin_41697242/88612084 【背景】 想要在Unity中实现实时远程桌面,找到了Render Streaming这个手段,本篇介绍相应的使用方…

Nginx实际问题解决——如何指定地址访问指定页面

Nginx实际问题解决——如何指定地址访问指定页面 问题复现 /var/www/dist/biographicalNotes/下面有一个Html文件 biographicalNotes.html,我实际的nginx代理是这样的 server {listen 8080;server_name localhost;root /var/www/dist;index index.html;location / {try_files…

使用Emscripten开发网页应用的注意事项

一.小心int64 导出C/C函数包含int64 WebAssembly原生(c/c)支持int64位整型数算术运算。 JavaScript只有一种数值类型:number——等同于C语言中的double,JavaScript本质上无法直接表达64位整型数,因此目前的WebAssem…

C++模板类的介绍

C模板类的介绍 C模板类是一种通用编程技术,允许程序员创建可处理多种数据类型的通用类。通过使用模板,我们可以编写一段能够处理不同类型数据的代码,而无需为每一种数据类型单独编写特定的代码。这大大增强了代码的复用性和灵活性。 基本概念…

飞天使-linux操作的一些技巧与知识点2-TCP的三次握手以及四次挥手以及转换状态

文章目录 TCP 的三次握手四次挥手转换状态 TCP 的三次握手 第一次,客户端与服务端建立链接,需要发送请求连接的消息 第二次,服务端接口到数据后,返回一个确认的操作*(至此客户端和服务端链路建立成功) 第三…

binlog+mysqldump恢复数据(误删数据库或者表)

表删除恢复 1、准备数据 首先准备数据库环境,测试数据库为speech1,如下: 为test数据表添加3条记录,如下:三行为新加的记录,添加后将test表删除。 2、恢复数据 查看binlog日志状态 SHOW MASTER STATUS…

汽车服务行业分析:预计2028年将达到38亿元

在推进加快检验机构建设同时,综合评估检验机构数量、分布和检测能力,探索试点汽车 4S 店开展检验,提供维修、保养、车检一体化服务。汽车服务主要是指围绕汽车展开的一系列服务活动,包括维修、美容、金融等,除具有一般…

c/c++ 结构体、联合体、枚举

结构体 结构体内存对齐规则: 1、结构体的第一个成员对齐到结构体变量起始位置偏移量为0的地址处 2、其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。 对齐数:编译器默认的一个对齐数与该成员变量大小的较小值。 vs 中…

【STM32】电机驱动

一、电机分类 二、直流电机的分类 1.有刷电机 2.无刷电机 3.直流减速电机 三、H桥电路 正向旋转 驱动Q1和Q4 反向旋转 驱动Q2和Q3 四、MC3386电机驱动芯片 1.基本原理图 1)前进/后退:IN1和IN2的电平顺序决定电机的正反转 2)调节速度&#…

设计未泄密,图纸有守护者——迅软DSE加密软件专题解析!

为何使用图纸加密软件? 对于许多设计单位(如:建筑设计、鞋服设计、勘察测绘、平面设计等)而言,其内部海量的设计图纸都是以电子文件的形式存在于终端电脑和服务器上。而在图纸的设计生产过程中,一般会经过…