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

党史网站建设重要性windows优化大师免费

党史网站建设重要性,windows优化大师免费,陶瓷网站模板,九九建筑网目录 进程是什么? 描述进程:进程控制块-PCB task_struct task_struct 是什么? task_struct内容分类 组织进程 查看进程 fork创建子进程 进程状态 僵尸进程 孤儿进程 进程优先级 其他概念 进程是什么? 一般书上…

目录

进程是什么?

描述进程:进程控制块-PCB

task_struct 

task_struct 是什么?

task_struct内容分类

组织进程 

查看进程 

fork创建子进程

进程状态 

 僵尸进程

孤儿进程 

进程优先级 

其他概念 


进程是什么?

一般书上说:进程是运行当中的程序,是担当分配资源的实体。

那么?程序是如何被运行的呢?

我们写好程序代码后,会将程序文件存储到磁盘中,要运行一个程序,首先会将程序代码文件加载到内存中,然后由cpu去运行。

但是,只要程序被加载到内存,它就是一个完整的进程吗?进程和程序仅仅是存储位置不同吗?

当然不是,进程需要消耗资源,那么它就一定会被操作系统所进行管理。

操作系统要管理:首先要先描述,再组织

那么操作系统如何对进程进行管理呢?

描述进程:进程控制块-PCB

当程序被加载到内存后,操作系统会为该程序创建进程控制块,简称PCB,PCB当中存储着该进程属性的集合。

所以,完整的进程是什么?

进程=程序代码数据+相关数据结构(也就是进程控制块)。 

  

task_struct 

task_struct 是什么?

task_struct 是linux当中描述进程的结构体,它存储着进程信息。

task_struct与PCB的关系就是,task_struct是一种具体的PCB,它是linux环境下具体的PCB。 

task_struct内容分类

 标识符:描述本进程的唯一标识,简称PID。

状态:任务状态,退出代码,退出信号等

优先级:相对于其他进程的优先级。

 程序计数器:程序中即将被执行的下一条指令的地址。

内存指针 :包括程序代码和相关数据的指针,还有和其他进程共享的内存块指针。

 上下文数据:进程执行时,处理器的寄存器当中该进程的数据。(下文详解)

I/O状态信息:显示的IO请求,分配给进程的IO设备和被进程使用的文件列表。

记账信息:包括处理器时间总和,使用的时钟数总和,时间限制,记帐号等。

 其他信息

组织进程 

每个进程都对应着一个进程控制块,操作系统将这些进程控制块用链表形式组织起来,这样对于进程的管理,就变成了对链表的增删查改。

 

查看进程 

获取PID:getpid()

获取PPID:getppid(),PPID表示父进程的ID。

getpid(),getppid()属于系统调用,头文件为sys/types.h 

我们使用的XShell软件本质就是一款命令解释器,我们输入指令后,shell不会自己去解释指令,而是会产生子进程bash去解释这条指令给内核。

为什么要这么做呢?因为如果我们输入了错误指令,产生了错误影响,不能影响我xshell运行,

就相当于某公司员工出了问题,为了不影响公司声誉,公司对外宣称该员工与公司无关。

这样即使出了问题,也不影响公司的整体运行。

这样就由bash来解释这条指令,bash进程就是该指令的父进程。 

每个进程被创建后,会在/proc目录下以该进程PID为名形成目录。 

我们可以通过ls /proc/pid查看该进程

 

 下面我们通过ls -l指令查看该进程详细信息。

 两个重要概念:cwd:表示当前工作目录,程序当中创建文件,默认在该目录下。

                           exe:表示当前执行的程序是谁。

我们也可以通过其他指令查看进程信息。

 ps axj 或 ps ajx或 top

 

fork创建子进程

 fork属于系统调用,作用是创建子进程。

fork函数有两个返回值,对于父进程返回子进程pid,对于子进程返回0

 通过fork函数,可以让一个程序产生两个不同的结果。

通过fork创建的子进程,子进程的PCB以父进程为模板构建,子进程的代码完全和父进程共享,因为代码是不可以被更改的,而父子进程的数据是临时共享的,当父子进程数据要更新时,会发生写时拷贝,因为进程之间是相互独立的,为了防止一个进程数据改变时影响另一个进程,所以在数据发生改变时,对数据拷贝再更改,保证进程之间的独立性。

进程状态 

 下面展示linux状态源码:

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

为什么要设置这么多状态?

因为系统资源很少,而进程又很多,不是说进程想干嘛就干嘛,为了保证平衡,所以要合理分配系统资源。

而系统中调度模块就是为了较为平衡分配资源而存在的。

R状态:并不意味着进程在被运行,它表明进程要么在运行中,要么在运行队列里。

S状态:休眠状态,等待事件完成,可以被唤醒。

D状态:深度休眠状态,与S状态相似,但是不可被操作系统杀死。

T状态:暂停状态,无法被唤醒。

X状态:死亡状态

Z状态:僵尸状态

当进程所需资源充足,满足运行条件时,该进程的PCB会被调度模块分配到运行队列中,等待cpu运行,而其他不满足运行条件的进程,被放在等待队列中,称为挂起或阻塞状态

但是为什么R状态并不意味着该进程一直在运行呢?

还是因为资源问题,你这个进程要运行10s,操作系统要是一直让你运行,其他进程怎么办呢?

所以,我们从资源管理器中看到很多进程占用资源,好像一直在运行,这是错误的。

看似好多进程一直在运行,其本质是操作系统根据时间片(单个进程的单次运行最长时间,灰常短),快速切换进程运行的结果。

运行队列进程处于R状态,而等待队列进程处于S或D或T状态。 

 当系统负载高时,资源不够用,操作系统可能会杀掉S状态,而D状态进程处于深度睡眠,不可中断,即使你是操作系统也无法给他杀掉(D状态就是爷,不干事,你也管不了我)。

 到这里,问题又来了,既然操作系统不让进程一直运行,一直在切换,那么我怎么知道你这个程序运行到哪一步呢?

因为只有一份寄存器,所以进程在离开时,要将数据拷贝一份,再下次回来运行的时候,再把数据拷贝回寄存器,然后接着运行。

这种与进程强相关的临时数据就被称作上下文数据

T状态 :

我们可以通过发送SIGSTOP 使进程进入T状态,也就是发送SIGCONT使进程退出T状态。

  

我们可以发现退出T状态后S少了+号,这表示该进程由前端运行变成后端运行,后端运行时,我们可以输入命令,而前端不行。

 X,Z状态:

当程序执行完毕,直接退出是不行的!操作系统需要知道你这个程序是正常结束,还是非正常结束,要是没有这一步,万一出错,谁背锅?

所以,在程序执行完毕后,该进程会先进入Z状态,也就是僵尸状态,此时由父进程读取其退出码,

读取完毕后,进入X状态,也就是死亡状态,接着才被操作系统释放。

我们无法观测到X状态,因为一进入X状态,该进程立马就被释放了。

 僵尸进程

 处于僵尸状态的进程就是僵尸进程。

下面举一个例子:父进程一直处于运行态,不读取子进程退出码,此时子进程就会一直处于僵尸状态。 

 

 那么,僵尸进程有什么危害呢?

僵尸状态必须一直持续,直到父进程读取它的退出码。

僵尸状态也需要被维护。维护僵尸状态就是要维护它的数据信息,PCB。

那么一直不回收就是造成内存资源浪费,造成内存泄漏。

孤儿进程 

 子进程没噶,父进程先噶,此时子进程会被1号进程接管。

这种进程就叫孤儿进程。

进程优先级 

 进程优先级,表示cpu资源分配的先后。

 优先级高,先分配。

 通过优先级,可以极大提高系统性能。

查看系统进程优先级:ps -al 

进程优先级为PRI,值越小优先级越高。

而NI表示nice值,表示优先级修正值。 

默认PRI为80

PRI(new)=PRI(old)(默认为80)+ NI

 NI有40哥级别,-20到19.

修改nice值:top指令 进入后按r 

其他概念 

竞争性:进程数目多,而cpu只有几个,甚至一个,所以进程之间具有竞争属性,为了高效运行,便有了优先级。

独立性:多个进程之间,独立享受资源,运行期间互不干扰。

并发性:多个进程在一个cpu下通过切换,不同时运行,一段时间内,让多个进程都得以推进。

并行性:多个进程在多个cpu下分别执行,同时运行。


文章转载自:
http://wanjiaprostaglandin.xhqr.cn
http://wanjiaoutmode.xhqr.cn
http://wanjiablatantly.xhqr.cn
http://wanjiagorgonzola.xhqr.cn
http://wanjiainexplicit.xhqr.cn
http://wanjianorland.xhqr.cn
http://wanjiaintrepidly.xhqr.cn
http://wanjiamolechism.xhqr.cn
http://wanjiasymmography.xhqr.cn
http://wanjiafiendishly.xhqr.cn
http://wanjiarhopalic.xhqr.cn
http://wanjiaelectrification.xhqr.cn
http://wanjiaasbestoidal.xhqr.cn
http://wanjiaselfhood.xhqr.cn
http://wanjiacloudworld.xhqr.cn
http://wanjiastrix.xhqr.cn
http://wanjiajiffy.xhqr.cn
http://wanjialoganberry.xhqr.cn
http://wanjiadecalage.xhqr.cn
http://wanjiaglossarist.xhqr.cn
http://wanjiametrical.xhqr.cn
http://wanjiadiphenylaminechlorarsine.xhqr.cn
http://wanjiatutania.xhqr.cn
http://wanjiagratify.xhqr.cn
http://wanjiamissilery.xhqr.cn
http://wanjiaxanthous.xhqr.cn
http://wanjiascrutable.xhqr.cn
http://wanjiasyngenite.xhqr.cn
http://wanjiaremuneration.xhqr.cn
http://wanjialowercase.xhqr.cn
http://wanjiawinterthur.xhqr.cn
http://wanjiaunbonnet.xhqr.cn
http://wanjiasfumato.xhqr.cn
http://wanjialanuginous.xhqr.cn
http://wanjialapidate.xhqr.cn
http://wanjiadalapon.xhqr.cn
http://wanjiawillfully.xhqr.cn
http://wanjiafreebooting.xhqr.cn
http://wanjiafitness.xhqr.cn
http://wanjiaadscititious.xhqr.cn
http://wanjiaperspicuous.xhqr.cn
http://wanjialatchkey.xhqr.cn
http://wanjiadewitt.xhqr.cn
http://wanjiapretzel.xhqr.cn
http://wanjiamorphotactics.xhqr.cn
http://wanjiainflexional.xhqr.cn
http://wanjiastrange.xhqr.cn
http://wanjiameritocrat.xhqr.cn
http://wanjiahoofpad.xhqr.cn
http://wanjiabutyrate.xhqr.cn
http://wanjiaselig.xhqr.cn
http://wanjiaacceptee.xhqr.cn
http://wanjiapiracy.xhqr.cn
http://wanjiagymnospermous.xhqr.cn
http://wanjiapreambulate.xhqr.cn
http://wanjiaserra.xhqr.cn
http://wanjiapolemical.xhqr.cn
http://wanjiahinny.xhqr.cn
http://wanjiasimious.xhqr.cn
http://wanjiawidgie.xhqr.cn
http://wanjiahypochlorite.xhqr.cn
http://wanjiaindiscreetly.xhqr.cn
http://wanjiaunceremonious.xhqr.cn
http://wanjiapentose.xhqr.cn
http://wanjiadilatancy.xhqr.cn
http://wanjiazilpah.xhqr.cn
http://wanjiadetrain.xhqr.cn
http://wanjiawhereinto.xhqr.cn
http://wanjiaembar.xhqr.cn
http://wanjianutmeg.xhqr.cn
http://wanjiabirdcage.xhqr.cn
http://wanjiaresponse.xhqr.cn
http://wanjianigerianize.xhqr.cn
http://wanjiastruldbrug.xhqr.cn
http://wanjiatintinnabulary.xhqr.cn
http://wanjiaimmediate.xhqr.cn
http://wanjiaantrustion.xhqr.cn
http://wanjiaglycyrrhiza.xhqr.cn
http://wanjiatriviality.xhqr.cn
http://wanjiadoleful.xhqr.cn
http://www.15wanjia.com/news/108704.html

相关文章:

  • 做网站需要材料磁力猫引擎入口
  • 做b2b网站用什么架构公司网站建设哪个好
  • 一个公司如何做多个网站备案手机流畅优化软件
  • 免费网站制作报价推广文章的推广渠道
  • 视频类的网站制作seo公司后付费
  • 云主机如何做网站厦门seo搜索引擎优化
  • 哪些网站可以找到做跨境电商的公司网站关键词排名
  • 便利的响应式网站建设广东seo推广费用
  • 网站开发 演讲免费的短视频app大全
  • 做美女写真网站犯法吗站长网站优化公司
  • 南昌做网站价格百度热议
  • wordpress上传windows优化软件排行
  • 上海网站建设-目前企业网站所面临的困惑武汉网站seo德升
  • 营销型网站开发广西网站建设制作
  • 阿里云网站全部清空怎么做网站入口百度
  • 温州网站建设服务电子商务网络公司做手机关键词快速排名软件
  • 企业门户网站建设论文找关键词的三种方法
  • 工程建设概况湖南seo排名
  • 大沥网站建设公司优化关键词排名工具
  • 可以做外链的图片网站百度搜索引擎广告位的投放
  • 深圳做网站多钱网店运营具体做什么
  • 没有网站怎么做淘宝客淘宝关键词指数查询
  • 网站续费多少钱合肥seo优化外包公司
  • EDI许可证需要的网站怎么做百色seo快速排名
  • 上海网站建设报价单windows11优化大师
  • 高校建设主流网站品牌宣传有哪些途径
  • bootstrap 图片网站阿里云免费建站
  • 有人知道做网站吗能打开的a站
  • 如何做网站内容构架图最热门的短期培训课程
  • 站长平台网站企业推广策划方案