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

上海网站建设免找客户资源的软件哪个最靠谱

上海网站建设免,找客户资源的软件哪个最靠谱,网站做app开发,网站建设公司上海进程状态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://www.hkea.cn/news/944623/

相关文章:

  • 网站怎么做网站地图重庆网站制作公司哪家好
  • wordpress改地址后打不开seo品牌优化整站优化
  • 网页设计师证书含金量高吗百度网络优化
  • 咸阳网站开发长沙seo优化公司
  • 网站通cms国内十大搜索引擎排名
  • centos7安装 wordpress网站如何进行seo
  • 设计师灵感网站美国今天刚刚发生的新闻
  • 重庆南岸营销型网站建设公司推荐竞价sem托管
  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化
  • 群辉服务器做网站网络优化的内容包括哪些
  • 做淘客的网站岳阳seo
  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo