当前位置: 首页 > 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://www.yayakq.cn/news/365154/

相关文章:

  • 网站开发软件搭配湖州童装网站
  • 网站没备案怎么做广告联盟菜鸟教程网站是怎么做的
  • WordPress完美建站专业的移动客户端网站建设
  • dede 网站源码江西赣州市
  • 成都网站建设qghl与狗狗做网站
  • 怎么利用wordpress做网站网站系统开发方式
  • 徐州网站建设 网站推广网页设计与网站开发pdf
  • 成都网站建设上云目前h5页面的制作工具有哪些
  • 前端网站论文wordpress禁止转载插件
  • 宜昌建设网站wordpress更改主题
  • 成都航空公司官方网站主要的网站开发技术路线
  • 做网站的市场风险分析及对策天猫网上购物商城
  • 广西网站设计运营公司仿win8网站模板
  • 无锡市建设银行总行网站php 网站开发平台
  • 公司建网站的详细步骤wordpress 注册页
  • 做网站各个流程网站建设一般都需要什么资质
  • 做网站被网监叫去很多次学动漫设计需要什么条件
  • 常州制作网站价格建网站都要什么费用
  • 无极app下载最新版seo网络推广是什么意思
  • 武功做网站海口网站建设方案优化
  • 昆明seo优化无锡网站优化公司
  • 网站做一个多少钱临沂做网站的在哪里
  • 国外网站做调查软件商城app下载
  • 网站开发常用问题阿里云免费网站备案
  • 怎样建设微网站做个网站上百度怎么做
  • 江门住房和城乡建设部网站建设工程司法解释
  • 建设厅网站174号文网站建设宣传
  • 开一个素材设计网站怎么做的网页设计师岗位分析
  • 江苏网站建设制作怎么对网站的数据库做管理
  • 在家做网站编辑电子商务网站网络拓扑图