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

h5前端开发独立站seo外链平台

h5前端开发,独立站seo外链平台,b2c商城网站,未来做哪个网站能致富我们知道,我们启动一个进程时,当他执行的过程中,我们叫运行状态,当结束运行程序终止时就是停止状态。但进程的状态可不是仅仅只有运行和停止,比如如果我们在代码中写scanf/cin等输入函数时,当代码运行到该行…

我们知道,我们启动一个进程时,当他执行的过程中,我们叫运行状态,当结束运行程序终止时就是停止状态。但进程的状态可不是仅仅只有运行和停止,比如如果我们在代码中写scanf/cin等输入函数时,当代码运行到该行我们却不输入,此时就是等待的状态,此时CPU并没有调度代码运行,而是等我们输入后再交给CPU继续执行。本篇内容我们讲解一下进程的相关状态和性质。

 一、进程的状态

我们先解释一下图中的各个状态运作流程:首先一个进程被创建时称为新建状态,当创建完毕等待CPU调度运行时称就绪状态,CPU调度运行的状态称为运行状态,但当进程因某些原因,比如scanf/cin等待键盘输入时称为阻塞状态,结束该行为由重新称为就绪状态,知道终止进程。

但这张图里并未给我们更多的信息,比如阻塞状态具体还有什么原因,我们会逐一深入。在此之前,我们需要有一些知识储备:

1.并行与并发

我们的CPU执行进程代码时,不是把进程代码执行完毕,才开始执行下一个,而是给每一个进程预分配一个时间片,基于时间片进行调度的轮转。就单核CPU来讲(单核指一次只能调度一个进程运行),按理来说一次只能运行一个进程,但为什么我们实际使用过程中,却总能感觉多个进程同时运行呢?这是因为CPU切换运行的速度非常非常非常块,我们是无法用感官分析出差别的。这就是并发。

至于并行,就是多个进程再多个CPU下分别同时运行。

2.时间片

时间片,就是分配给每一个进程在CPU上运行所消耗的时间,不同的进程可能有不同长短的时间片,但调度任务追求公平,这也是分时操作系统,适用于Linux和windows的民用级别。

3.进程具有独立性

4.等待的本质

CPU中也有一个类似结构体runqueue运行队列,其中记录着各种属性,以及task_struct的指针,当CPU开始调度时,这个指针就会一个个遍历,遍历的间隔时间也就是分配个每个程序的时间片,也就是在不停地调度轮转,只要进程在运行队列中排队等待被调度或正被调度,就称为运行状态。

同时,我们的硬件被操作系统管理的方法也是先描述再组织的原理形成了一个个结构串起来, 当某一个进程需要键盘等输入操作时,造成了阻塞,这个进程就不会在runqueue里循环排队了,而是放在该硬件所在的结构上,也是类似一种排队的管理方法,等待输入操作完毕再重新排队等待CPU调度,所以我们不输入时造成的卡顿是因为CPU一直没有调度进程。因此,等待的本质是进程连入目标外部设备,CPU没调度。

二、Linux中进程的状态

我们想查看进程的信息,除了在/proc文件夹中查找,也可以用指令

ps axj | head -1 && ps axj | grep name

 其中的STAT下的字母就是我们要说的各种状态

r(running)模式:指的是运行状态

s:休眠状态,也是阻塞等待的状态,虽然在进行运行中我们看着好像是r状态,但一旦有输入输出函数时,运行时间的大部分都是和不断的和外设交互,很少是被CPU调度(因为CPU太快了)。而且他是一种可中断睡眠,浅睡眠,在运行过程中可以被指令终止。

D:深度休眠状态,是阻塞等待状态的一种,这种睡眠是不可被中断的深睡眠,一般很少出现,一般都是由操作系统控制,出现情况一般为磁盘空间不够了,但我们还是想把数据写入磁盘,需要腾出空间等待,和浅睡眠的等待键盘等外设不一样,可以得到是否成功写入磁盘的结果,也就尽量避免大量数据丢失的问题。

T : 进程做了非法但不致命的操作时被操作系统暂停了,我们也可以用命令主动暂停

kill -19 name 暂停

kill -18 name  恢复

一旦我们用kill命令回复运行此时用ctrl+c就不能终止进程了(因为此时进程在后台运行),需要我们用kill命令终止。

t:当进程被追踪的时候,比如打断点停下,进程的状态 。

X:死亡状态,也就是程序终止时的状态,但在程序终止前,还会有一个过渡状态,即Z(zombie)僵尸状态。

z状态是用来诊断并记录程序终止的原因,使用户明确程序终止的问题所在。就像一个人死亡需要法医诊断死因然后才能被拉走。关于僵尸状态我们再深入一下。

5.Z状态从开始到消失

我们知道,一个程序如果进行到z或x状态,基本就是我们退出程序的时候,但如果退出了,怎么还会出现z状态检查退出信息呢?他的数据不应该被回收了吗,其实并不完全回收。我们知道进程是内核数据结构+代码和数据,但我们开启的一个进程的时候,是先构建出一个数据结构然后才存放信息。所以当我们退出进程时,刚开始退出的只是信息数据,而task_struct还并没有删去,而这个退出信息就保存在其内部,这个结构必须由操作系统起来,方便用户进行获取进程退出的信息。当我们的退出信息成功被获取处理了,此时才可以真正的退出进程称为X状态,在此之前都是Z状态。

当我们退出子进程时,同理也会保存退出信息,然后父进程获取信息并退出。但是一个程序进入Z状态以后,默认是没人去处理这个信息的,会导致这个进程一直处于Z状态,task_struct一直存在,就会消耗内存,造成内存泄漏问题。所以,一般都需要父进程读取子进程信息,子进程才会自动退出。

三、孤儿进程

字面意思,就是父子进程运行时,退出父进程,由上面的理论得知,父进程会被回收(此时是观察不到父进程的Z状态的,因为父进程由操作系统管理,被bash瞬时回收了),而子进程会处于一种领养的状态,我们还发现,当变成孤儿进程时,子进程的ppid变成了1,这个1也就说systemd,系统。也就是被系统领养了。再补充一句:孤儿进程一般会在后台运行,ctrl+c杀不掉。

————后续讲持续更新Linux进程相关内容,本篇就到这里

http://www.dtcms.com/wzjs/382649.html

相关文章:

  • vue 做pc网站可以吗建站之星网站
  • 广东金东建设工程公司网站搜索引擎营销原理
  • wordpress高亮代码添加行号百度 seo优化作用
  • ui设计师怎么做自己的网站网络营销推广的方法
  • 做网站后台数据库建设网址制作
  • 做网站能赚流量钱吗互联网广告营销是什么
  • seo学习网站周口网站seo
  • 杭州模板网站好中国没有限制的搜索引擎
  • 燕赵邯郸网站建设杭州seo服务公司
  • 鸭梨网站建设seoul是什么意思
  • 建设网站困难的解决办法河南郑州做网站的公司
  • 网站建设咨询公司链接下载
  • 上海专业网站制作公司杭州百度推广电话
  • 深圳网站设计公司发展历程佛山市seo推广联系方式
  • 网站搭建wordpress照片查询百度图片搜索
  • 汉川网站制作淘宝seo排名优化软件
  • 做网站设计制作的公司什么建站程序最利于seo
  • 做网站步骤详解产品推广方案模板
  • 让别人做网站的步骤青岛做网站的公司哪家好
  • 手机网站要域名吗分类信息网
  • 南和企业做网站湘潭网络推广
  • 辽宁省建设工程信息网官网新网站入口建一个外贸独立站大约多少钱
  • 网上做调查赚钱的网站有哪些济南seo优化公司助力网站腾飞
  • 常州溧阳建设工程管理中心网站百度博客收录提交入口
  • 本地搭建wordpress建站教程信息流广告模板
  • 深圳市建设银行网站仿站定制模板建站
  • 网站进入沙盒期网上商城推广13种方法
  • 荣昌网站建设搜索引擎营销策略有哪些
  • 服务器如何做网站互联网推广员是做什么的
  • 本地搭建wordpress建站教程成都网站seo推广