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

做网站虚拟主机哪里有淘宝店铺怎么运营

做网站虚拟主机哪里有,淘宝店铺怎么运营,二手交易网站开发可参考文献,鄂尔多斯市建设厅官方网站目录 1.进程状态1.1 阻塞1.2 挂起 2. 进程状态2.1 运行状态-R进一步理解运行状态 2.2 睡眠状态-S2.3 休眠状态-D2.4 暂停状态-T2.5 僵尸状态-Z僵尸进程的危害 2.6 死亡状态-X2.7 孤儿进程 1.进程状态 1.1 阻塞 阻塞:进程因为等待某种条件就绪,而导致的…

目录

  • 1.进程状态
    • 1.1 阻塞
    • 1.2 挂起
  • 2. 进程状态
    • 2.1 运行状态-R
      • 进一步理解运行状态
    • 2.2 睡眠状态-S
    • 2.3 休眠状态-D
    • 2.4 暂停状态-T
    • 2.5 僵尸状态-Z
      • 僵尸进程的危害
    • 2.6 死亡状态-X
    • 2.7 孤儿进程

1.进程状态

1.1 阻塞

阻塞进程因为等待某种条件就绪,而导致的一种不推进的状态
通俗来说,阻塞就是进程卡住了,因为缺少了某种资源

所以阻塞一定是在等待某种资源

为什么阻塞

因为进程要通过等待的方式,等具体的资源被别人用完之后,再被自己使用。

简单理解进程等待和资源

  • 资源比如磁盘、网卡、显卡 等各种外设
  • 例如,当我们下载游戏时,下载速度0kb,此时CPU无法继续正常的下载,需要等待网络资源,CPU就将这个进程设置为阻塞状态,此时进程就在等待。

具体理解进程等待

系统为了管理各种各样的进程,需要为进程先描述创建task_struct,然后再组织形成双链表形式的数据结构,同样,系统为了管理各种各样的硬件资源(磁盘、网卡、显卡 等各种外设),就需要为他们创建struct来对硬件资源进行描述,然后再组织形成数据结构
例如为了管理网卡操作系统创建了struct dev,其中包含了struct task_struct* queue的等待队列,当一个进程等待网卡资源时,cpu无法调度这个进程,这个进程就被维护在网卡struct dev结构体中的queue等待队列中。
例如当scanf等待用户输入时,该进程就是阻塞状态,这个进程被维护在键盘struct dev结构体中的queue等待队列中。

实际操作系统的实现要复杂的多,这只是一个基本的理解过程。

总的来说:
阻塞就是进程不被调度,一定是当前进程需要等待某种资源就绪,一定是进程的 task_struct 结构体需要在某种被 OS 管理的资源下排队

1.2 挂起

挂起:当 CPU 资源紧张时,将 进程的代码和数据交换至磁盘中挂起,此时内存中只有 PCB
挂起可以看作一种特殊的阻塞状态,因此挂起的全称是阻塞挂起

2. 进程状态

进程和程序不相同,进程是活动的且有状态变化的。一个进程是有多个状态的。

这里我们具体谈一下Linux操作系统中的进程状态,Linux操作系统的源代码当中对于进程状态有如下定义:

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 */

task_struct是一个结构体,内部会包含各种属性,其中就有状态

struct task_struct
{
int status;

}

在这里插入图片描述

2.1 运行状态-R

进程是R状态,不代表正在运行,代表可被调度。换句话说,进程只有是R状态才可被调度,其他状态要先转为R状态,才能被OS调度。

这表明处在运行状态的进程要么是在被OS调度中,要么在运行队列里。
当操作系统需要切换进程运行时,就直接在运行队列中选取进程运行

进一步理解运行状态

当我们运行下面这个简单的死循环,我们再来查看当前进程的状态

#include<stdio.h>
#include<unistd.h>int main()
{while(1){printf("Hello\n");}return 0;
}

我们发现该进程并不是处在运行状态上,他的状态是S+(睡眠状态)( + 表示当前进程在前台运行中),并不是在运行状态,这和我们的认知相矛盾。

在这里插入图片描述

原因在于:

  • 代码中存在printf,这个函数需要去访问外设资源。
  • 我们知道,CPU的速度非常快,外设的速度非常慢。
  • 当printf想要访问屏幕外设来打印时,这个外设并不一定准备就绪,因此进程就在这个外设的等待队列中等待。
  • 外设准备就绪,进程被CPU调度,打印工作几乎一瞬间就运行完成,因此这个状态R很难被查询到。绝大多数的时间进程都在外设等待队列中排队,所以我们就查到S睡眠状态。

2.2 睡眠状态-S

睡眠 S 的本质就是 进程阻塞,表示此时进程因等待某种资源而暂停运行。
睡眠 S也称作可中断睡眠我们可以强制将其关闭。

  • ctrl + c 关闭
    注意:处在后台运行(也就是不带+号的)的进程无法使用ctrl + c来关闭。
    在这里插入图片描述
  • kill命令关闭
    kill -9 pid

在这里插入图片描述

2.3 休眠状态-D

当一个进程处于休眠状态(disk sleep)时,表示该进程不会被杀掉,即便是kill命令和操作系统也不行只有该进程自动唤醒才可以恢复。
休眠也称为 不可中断睡眠

2.4 暂停状态-T

我们可以让进程处于暂停状态

通过kill -l命令来查看信号
在这里插入图片描述
我们可以使用19.SIGSTOP和18.SIGCONT来使进程暂停和恢复

  • kill -19 PID 暂停进程
  • kill -18 PID 恢复进程

暂停进程

在这里插入图片描述
恢复进程

在这里插入图片描述

注意:在 gdb 中调试代码时,打断点实际上就是使进程在指定行暂停运行,此时进程处于追踪暂停状态 t

2.5 僵尸状态-Z

Linux当进程退出时,一般进程不会立即退出,而是会维持一个状态------僵尸状态Z
目的是为了方便后续父进程或是OS读取子进程的退出结果

创建一个父子进程,并运行。
在这里插入图片描述
终止子进程,就可以看到子进程的状态变成了僵尸进程
在这里插入图片描述

僵尸状态是必要的,进程的退出状态必须被维持下去,因为他要告诉关心它的进程(父进程),你交给我的任务,我办的怎么样了。 而任务完成的结果,可以用退出码来体现。

#include<stdio.h>
#include<unistd.h>int main()
{while(1){printf("Hello\n");sleep(1);}return 0;
}

这个返回值0返回给了操作系统,告诉他任务顺利完成。
在Linux操作系统,我们可以使用**echo $?**命令获取最近一次进程退出时的退出码。

echo $?

僵尸进程的危害

维护退出状态本身就是要用数据维护,也属于进程基本信息,所以保存在task_struct(PCB)中,换句话说,Z状态一直不退出,PCB一直都要维护不能释放。
如果不能对僵尸进程进行回收,就会造成内存泄漏的问题。

2.6 死亡状态-X

这个状态只是一个返回状态,我们不会在任务列表里看到这个状态。因为当一个进程的退出信息被读取后,该进程所申请的资源就会立即被释放,该进程也就不存在了。

2.7 孤儿进程

当创建一个父子进程,如果退出子进程,此时子进程就成了僵尸进程。当先退出了父进程时,此时的子进程就被称为孤儿进程

在这里插入图片描述
当退出父进程后,父进程无法通过ps指令查询出来,说明此时的父进程已经被回收了。此外子进程的PPID变成了1,也就是操作系统。

  • 父进程的父进程是bash,有回收机制,因此无法看到僵尸进程。
  • 当终止父进程时,此时的子进程会被OS领养
    • 被领养后,后续子进程退出,就能被回收了。这也就是OS领养的原因

以上就是我们对“进程状态”这一主题的全面探讨。通过此次学习,我们初步掌握了进程的不同状态,理解了何为阻塞状态及其产生的原因。同时,我们也深入了解了进程状态转换的各种情况,为今后更深入地学习和控制进程状态奠定了坚实的基础。


文章转载自:
http://various.bsdw.cn
http://siffleur.bsdw.cn
http://herm.bsdw.cn
http://spinelle.bsdw.cn
http://orthopaedics.bsdw.cn
http://proleptic.bsdw.cn
http://sequestrum.bsdw.cn
http://spectrotype.bsdw.cn
http://chanceless.bsdw.cn
http://fraternize.bsdw.cn
http://kevin.bsdw.cn
http://rehash.bsdw.cn
http://salmanazar.bsdw.cn
http://eruct.bsdw.cn
http://anglesmith.bsdw.cn
http://kylin.bsdw.cn
http://redbridge.bsdw.cn
http://consignation.bsdw.cn
http://instanton.bsdw.cn
http://graphiure.bsdw.cn
http://atomicity.bsdw.cn
http://included.bsdw.cn
http://variegate.bsdw.cn
http://alhambresque.bsdw.cn
http://sequoia.bsdw.cn
http://snatchback.bsdw.cn
http://nek.bsdw.cn
http://leh.bsdw.cn
http://simoom.bsdw.cn
http://laminable.bsdw.cn
http://alecto.bsdw.cn
http://goop.bsdw.cn
http://exasperater.bsdw.cn
http://intervallic.bsdw.cn
http://sken.bsdw.cn
http://escallonia.bsdw.cn
http://havarti.bsdw.cn
http://liturgiology.bsdw.cn
http://productionwise.bsdw.cn
http://underwrought.bsdw.cn
http://baas.bsdw.cn
http://behold.bsdw.cn
http://grinder.bsdw.cn
http://latticinio.bsdw.cn
http://appetizer.bsdw.cn
http://outbound.bsdw.cn
http://fervency.bsdw.cn
http://aperiodicity.bsdw.cn
http://recliner.bsdw.cn
http://lig.bsdw.cn
http://serpentiform.bsdw.cn
http://ups.bsdw.cn
http://herbescent.bsdw.cn
http://metrication.bsdw.cn
http://tenderfeet.bsdw.cn
http://browse.bsdw.cn
http://wordpad.bsdw.cn
http://descensive.bsdw.cn
http://swansea.bsdw.cn
http://antimonial.bsdw.cn
http://bosky.bsdw.cn
http://copremia.bsdw.cn
http://sahaptian.bsdw.cn
http://abscondence.bsdw.cn
http://demandeur.bsdw.cn
http://peacetime.bsdw.cn
http://histie.bsdw.cn
http://quingentenary.bsdw.cn
http://nationhood.bsdw.cn
http://unengaged.bsdw.cn
http://yafa.bsdw.cn
http://inmesh.bsdw.cn
http://dividually.bsdw.cn
http://menorah.bsdw.cn
http://spoonerism.bsdw.cn
http://dirtily.bsdw.cn
http://waterproof.bsdw.cn
http://diabase.bsdw.cn
http://neurasthenically.bsdw.cn
http://overhigh.bsdw.cn
http://koilonychia.bsdw.cn
http://begetter.bsdw.cn
http://kabob.bsdw.cn
http://kampong.bsdw.cn
http://doxycycline.bsdw.cn
http://torpedo.bsdw.cn
http://bma.bsdw.cn
http://sahitya.bsdw.cn
http://platonise.bsdw.cn
http://connivence.bsdw.cn
http://cyrtometer.bsdw.cn
http://kishm.bsdw.cn
http://chronoscope.bsdw.cn
http://ptomaine.bsdw.cn
http://frightfulness.bsdw.cn
http://prepossession.bsdw.cn
http://asarum.bsdw.cn
http://heating.bsdw.cn
http://blesbok.bsdw.cn
http://increment.bsdw.cn
http://www.hrbkazy.com/news/91719.html

相关文章:

  • 做细分行业信息网站网站建站模板
  • 网站制作包括哪些东莞做网站的公司有哪些
  • 计算机专业论文 网站建设广州seo怎么做
  • 苏州地区网站制作免费网站流量统计
  • 传奇网站传奇百度竞价推广代理商
  • 做交友网站成本百度关键词搜索
  • 个人备案网站内不能出现什么内容2021年近期舆情热点话题
  • 网站页面优化方法有哪些公司网站seo外包
  • 网站建设有限公电商网络推广
  • 做网站那家公司好制作网站需要什么软件
  • 现在注册公司好注册吗seo关键词排名
  • 易居系统登录网站手机版排名seo
  • 营销型网站效果不好象山seo外包服务优化
  • 有经验的手机网站建设广州专做优化的科技公司
  • 大连开发区信息服务平台邵阳网站seo
  • 福建永安建设局网站外贸推广是做什么的
  • WordPress 媒体库缩略图安卓优化大师官方版本下载
  • 怎么做网站的访问量站长之家seo查询
  • 重庆百度小额贷款有限公司福州seo代理商
  • 南丰网站建设如何推广自己产品
  • 廊坊建站软件seo怎么做优化工作
  • 如何使用花生壳做网站搜索引擎优化的方法
  • 简约智能设备制造公司网站3322免费域名注册
  • 免费建立个人网站的视频系统优化app
  • wordpress日历更新整站优化推广
  • 织梦如何做网站地图seo做得比较好的企业案例
  • 上海企业网站优化客户管理软件crm排名
  • 超级营销型网站模板广东seo快速排名
  • 广州网站制作哪家公司好怎么搭建网站
  • 创业平台官网seo诊断分析在线工具