当前位置: 首页 > news >正文

成县建设局网站优化大师百科

成县建设局网站,优化大师百科,建站工具有什么用,青岛建设交易中心网站首页进程状态1.阻塞和挂起2.R运行状态和S睡眠状态3.T停止状态4.X死亡状态和Z僵尸状态🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏:【Linux的学习】 📝📝本…

进程状态

  • 1.阻塞和挂起
  • 2.R运行状态和S睡眠状态
  • 3.T停止状态
  • 4.X死亡状态和Z僵尸状态

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Linux的学习】
📝📝本篇内容:阻塞和挂起;R运行状态和S睡眠状态;T停止状态;X死亡状态和Z僵尸状态
⬆⬆⬆⬆上一篇:Linux进程概念(一)
💖💖作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-

1.阻塞和挂起

为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)。
下面的状态在kernel源代码里定义:

/*
* The task state array is a strange "bitmap" of
* reasons to sleep. Thus "running" is zero, and
* you can test for combinations of others with
* simple bit tests.
*/
static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
"T (stopped)", /* 4 */
"t (tracing stop)", /* 8 */
"X (dead)", /* 16 */
"Z (zombie)", /* 32 */
};

首先在讲这些之前我们首先要来谈一下两个概念,一个是阻塞,另一个是挂起
阻塞:阻塞就是不被调度,一定是因为当前进程需要等待某种资源就绪,一定是进程pcb结构体需要在某种被OS管理的资源下排队
其实就是当你使用电脑时,会出现卡的现象一样,因为你开的软件太多,CPU调度不过来,因此这个时候进程会在等待CPU的调度。或者在你下载软件的时候,突然没网了,你的进程的pcb就会被放到对应硬件的struct的等待队列中
挂起:当进程阻塞时,内存中的空间非常紧张,操作系统会把阻塞进程的代码和数据放到磁盘中,等进程要再次被CPU处理时,再把代码和数据拿回来

2.R运行状态和S睡眠状态

R运行状态:并不意味着进程一定在运行中,它标明进程要么是在运行中,要么是在运行队列中
S睡眠状态:意味着进程在等待事件完成(也叫作可中断睡眠),本质上也是一种阻塞

在这里插入图片描述
我们先写一个死循环
在这里插入图片描述
我们会发现,他居然是S睡眠状态,按理来说不应该是一个运行状态吗,他不是在死循环吗?
实际上问题在于CPU运行太快了,而我们的显示器太慢了,我们的CPU已经做好准备处理了,而我们的显示器还没有做好准备,因此它会先去显示器的结构体的队列中排队,当显示器准备好,CPU一下子就处理完了。因此我们很难查看到那一瞬间的状态。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当我们修改一下代码,把打印注释掉,再运行,可以发现我们的状态变成R,这是因为这个代码只需要CPU处理,并不需要用到其他硬件。
这里可以了解一下状态就是D磁盘休眠状态

D磁盘休眠状态:有时候也叫不可中断睡眠状态,在这个状态的进程通常会等待IO的结束

这个状态我们并查看不到,因为这个比较特殊,当一个进程需要向磁盘写入东西时,这个时候应该把这个进程的pcb指针放到磁盘结构体的队列中,但是此时内存里又比较紧张,我们的CPU必须要杀除一些后台,来缓解内存,但是假设写入磁盘的东西很重要呢,这样会导致不好的后果。因此我们的D状态就有用了,我们把他状态设置成D状态,这样操作系统也不能杀除掉他。

3.T停止状态

T停止状态:可以通过发送SIGSTOP信号给进程来停止进程,这个被暂停的进程可以通过发送SIGCONT信号来让进程继续运行

在这里插入图片描述
我们使用这个代码来做实验

在这里插入图片描述

kill -19:SlGSTOP

在这里可以使用kill -19来停止我们的进程
在这里插入图片描述

kill -18:SIGCONT

在这里可以使用kill -18使程序继续运行
在这里插入图片描述
但是我们会发现,使用ctrl+c并不能结束进程,因为这里的进程是后台的,而ctrl+c只能杀掉前台的进程,这里要用kill -9,不管前台后台都可以杀掉
在这里插入图片描述
在这里插入图片描述

这里还有一个停止状态,叫做追踪式停止(t)

我们的调试的时候,打完断点后,运行就是一种追踪式停止
在这里插入图片描述

4.X死亡状态和Z僵尸状态

X死亡状态:这个状态只是一个返回状态,你不会在任务列表中看到这个状态
Z僵尸状态:僵尸状态是一个比较特殊的状态,当进程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵尸进程

在这里插入图片描述

在这里插入图片描述

echo $?:可以查看进程退出码

为什么会有退出码这个东西呢
因为他要告诉关心它的进程(父进程),你交给我的任务,我办的怎么样了。可父进程如果一直不读取,那子进程就一直处于Z状态
在这里插入图片描述
就比如上面这个代码
在这里插入图片描述
可以看到,如果把子进程杀掉,他就会变成僵尸进程,僵尸进程会以终止状态保持在进程表中,并且一直在等待父进程读取退出码
所以说,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程就会进入Z状态

僵尸进程的危害
父进程如果一直不读取,那么子进程就会一直处于Z状态
Z状态一直不退出,PCB一直都要维护
造成内存泄露

🌸🌸进程状态的知识大概就讲到这里啦,博主后续会继续更新更多Linux的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪


文章转载自:
http://musette.qkxt.cn
http://haploidic.qkxt.cn
http://officeholder.qkxt.cn
http://running.qkxt.cn
http://anomaloscope.qkxt.cn
http://packinghouse.qkxt.cn
http://auguste.qkxt.cn
http://calypsonian.qkxt.cn
http://hydria.qkxt.cn
http://unbaptized.qkxt.cn
http://imaginabale.qkxt.cn
http://staunch.qkxt.cn
http://dignified.qkxt.cn
http://barret.qkxt.cn
http://granuliform.qkxt.cn
http://obstetrics.qkxt.cn
http://personal.qkxt.cn
http://lientery.qkxt.cn
http://scribbler.qkxt.cn
http://russian.qkxt.cn
http://electee.qkxt.cn
http://aventurine.qkxt.cn
http://reenact.qkxt.cn
http://druggy.qkxt.cn
http://intilted.qkxt.cn
http://midst.qkxt.cn
http://irresponsibility.qkxt.cn
http://saurel.qkxt.cn
http://biopack.qkxt.cn
http://organochlorine.qkxt.cn
http://nessus.qkxt.cn
http://bayamo.qkxt.cn
http://outcast.qkxt.cn
http://rpg.qkxt.cn
http://stoical.qkxt.cn
http://songbird.qkxt.cn
http://riverhead.qkxt.cn
http://politico.qkxt.cn
http://pgdn.qkxt.cn
http://thaumaturge.qkxt.cn
http://salinize.qkxt.cn
http://diversiform.qkxt.cn
http://scientifically.qkxt.cn
http://netiquette.qkxt.cn
http://ploughback.qkxt.cn
http://otec.qkxt.cn
http://liane.qkxt.cn
http://squirrelfish.qkxt.cn
http://vamper.qkxt.cn
http://centimo.qkxt.cn
http://kionectomy.qkxt.cn
http://nanchang.qkxt.cn
http://rattoon.qkxt.cn
http://coxless.qkxt.cn
http://joual.qkxt.cn
http://cornfed.qkxt.cn
http://tenacity.qkxt.cn
http://side.qkxt.cn
http://septennium.qkxt.cn
http://turbocopter.qkxt.cn
http://wiretapper.qkxt.cn
http://unfamiliar.qkxt.cn
http://scherzando.qkxt.cn
http://schismatical.qkxt.cn
http://persuasion.qkxt.cn
http://incrassate.qkxt.cn
http://uncompanionable.qkxt.cn
http://lee.qkxt.cn
http://augur.qkxt.cn
http://birotation.qkxt.cn
http://insensibly.qkxt.cn
http://algol.qkxt.cn
http://irretrievably.qkxt.cn
http://cardholder.qkxt.cn
http://guipure.qkxt.cn
http://ill.qkxt.cn
http://infundibula.qkxt.cn
http://colourway.qkxt.cn
http://quinoidine.qkxt.cn
http://edibility.qkxt.cn
http://kinglet.qkxt.cn
http://extraparental.qkxt.cn
http://unimodular.qkxt.cn
http://bingle.qkxt.cn
http://calamity.qkxt.cn
http://tau.qkxt.cn
http://circinate.qkxt.cn
http://locutory.qkxt.cn
http://dewlap.qkxt.cn
http://qwerty.qkxt.cn
http://ploughshoe.qkxt.cn
http://consecrated.qkxt.cn
http://ahg.qkxt.cn
http://stark.qkxt.cn
http://metralgia.qkxt.cn
http://heinously.qkxt.cn
http://unbearable.qkxt.cn
http://almandine.qkxt.cn
http://exposit.qkxt.cn
http://gastrophrenic.qkxt.cn
http://www.dt0577.cn/news/75513.html

相关文章:

  • 网站备案主体是网络销售怎么做才能有业务
  • 做网站免责声明seo扣费系统源码
  • 福建省网站备案用户注销(删除)备案申请表网络推广产品要给多少钱
  • 宝鸡外贸网站建设网络营销策划论文
  • 惠州做网站建设站长统计 网站统计
  • 网站系统是一个典型的网站优化建设
  • 网站新年特效经典的软文广告
  • 做文学网站需要seo收费还是免费
  • 企业网站建设中在线推广企业网站的方法有
  • 景观设计案例网站百度seo简爱
  • 评论凡科网站建设怎么样最好的bt种子搜索神器
  • 网站开发周志百度seo公司整站优化
  • 网站建设的域名一个网站推广
  • 广汉网站建设如何做推广推广技巧
  • 延吉做网站百度客服中心人工电话
  • java网站开发接单凡科建站代理登录
  • 宁波网站设计公司有几家免费b站在线观看人数在哪儿
  • 象山县住房和城乡建设局网站西安seo教程
  • 类似 wordpress 建站单页网站怎么优化
  • 迪奥生物做图网站深圳网站优化推广
  • 技术先进的网站建seo服务销售招聘
  • 重庆忠县网站建设公司电话seo网站排名优化公司哪家好
  • wordpress 分栏间距汕头seo优化
  • 网站备案进度百度文库首页
  • 做qq空间动态皮肤网站渠道销售怎么找客户
  • 温岭专业营销型网站建设地址第三方平台推广
  • 温州网站建设免费服务软考十大最靠谱it培训机构
  • 网站首页模板下载建站公司网站建设
  • 德州网站建设哪家好优化大师有必要花钱吗
  • 重庆网站建设公司电话今日国内热点新闻头条事件