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

网站怎么做海外推广江门关键词优化公司

网站怎么做海外推广,江门关键词优化公司,wordpress手机分享插件下载,如何做一名网站编辑一.何为进程 教材一般会给出这样的答案: 运行起来的程序 或者 内存中的程序 这样说太抽象了,那我问程序和进程有什么区别呢?诶?这我知道,书上说,动态的叫进程,静态的叫程序。那么静态和动态又是什么意思…

一.何为进程

教材一般会给出这样的答案:

运行起来的程序 或者 内存中的程序

这样说太抽象了,那我问程序和进程有什么区别呢?诶?这我知道,书上说,动态的叫进程,静态的叫程序。那么静态和动态又是什么意思呢?且听我慢慢道来。

二.先描述,再组织

我们编译完成,运行之前的程序是放在哪的呢?不用说,肯定在磁盘上。我们常常听说,要想运行一个程序,首先要将它加载到内存,这是由冯诺依曼体系结构决定的,因为CPU读取数据肯定要和内存交换,如果和外设打交道速度就太慢了。

程序本质上也就是各种各样的数据,所谓的加载就是把磁盘上的程序拷贝到内存中。所以这就变成进程了?这就有动态属性了?凭什么呢?

我们知道,当电脑开机了,肯定有一个软件肯定已经加载到内存了,那就是操作系统。那么当我们在Windows上双击一个程序或者在LInux上点斜杠启动一个程序时,操作系统就会帮我们把数据从磁盘搬到内存,这样内存中的程序就变成“进程”了。

我们还可以同时启动多个程序,所以操作系统内可能同时存在多个“进程”

当进程变得越来越多的时候,操作系统必须要将这些进程有条不紊地管理起来。怎么管理?还是上篇文章的六字箴言,“先描述,再组织”。

描述是在干什么?就是把要管理的对象的属性信息罗列出来,而操作系统是C语言写的,所以描述就是创建struct结构体,里面包含进程的各种属性,一个进程对应一个结构体。组织又是在干什么?就是将描述出来的信息以某种数据结构来组织以方便管理,所以组织就是将struct结构体以链表的方式链接起来。

所以说,操作系统对进程的管理,就变成对链表的管理,其中链表的一个个结点就对应着一个个进程。接下来,我们重点来关注这个结构体。

三.进程的PCB

这个描述进程的结构体,在大多数操作系统的教材里都把它叫做进程的PCB(process control block)。书上说一个进程被创建时,该进程必须要有对应得到PCB,但是却没有告诉我们为什么要有PCB。到这里就可以得出结论了,因为操作系统要对进程进行管理,要想管理,就得先描述再组织,而PCB就是用来描述进程的。

那么PCB结构体里有哪些信息呢?里面的信息很多,这里先简单列举几个(后续的学习都会围绕里面的信息来展开)

首先一个进程有一个id编号,这个用来标识一个进程,就像你在大学有一个自己的学号。

其次还有代码地址,通过这个地址可以找到进程对应的代码,也就是从磁盘拷贝进入内存的程序,程序在执行时会在内存中产生数据(例如创建一个个变量),因此还有数据地址。

进程未来肯定是会被CPU调度的,因此会存在状态和优先级这样的概念。比如你作为一个大学生,在学校里会有学习状态和休闲状态,什么样的状态决定你做什么样的事。你会有很多的任务,这些任务会有优先级,什么先做,什么后做。

链接字段就像我们学习链表时的prev,next指针,通过这些链接字段操作系统可以找到上一个或下一个PCB。

四.再谈进程

我们来梳理一下前面的内容,再来谈一谈什么是进程。

一个程序最开始是在磁盘上,当我们双击它时,操作系统会将代码拷贝到内存中,但操作系统还要能管理进程,所以程序加载进来之后还要为其创建PCB,其中包含能够找到代码和数据的指针字段,所以PCB指向对应的代码和数据。同时PCB里还有链接字段,所以一个个分散的PCB就被以链表的形式组织起来,这样一来操作系统对进程的管理工作就变成了对链表的增删查改。

所以未来CPU想要调度一个进程,它回去直接找拷贝到内存的程序吗?不会的,有什么可找的?一个个长的都差不多!CPU会去找PCB,然后通过PCB找到对应的代码和数据,这样就能愉快地执行了。

当有一天我想要关闭一个进程时,操作系统会把内存中的代码和数据释放,然后把这个进程的PCB从链表中移除出去,这样操作系统就不再对它进行管理了。

回到最初的问题,什么是进程?

进程 = 可执行程序 + 内核数据结构(PCB)

这里的内核数据结构不止一种,我们暂且将它就当做PCB,今后还会学习到更多

内核数据结构存在的意义就是方便操作系统对进程进行管理,今后我们一谈到进程,首先要要想到的是PCB,而不是那堆拷贝进来的代码。

五.进程和程序的区别

第一,进程在内存中,而程序在磁盘上,当然这是最浅显的

第二,进程比程序多了对应的内核数据结构(PCB)

第三,程序是静态的,进程是动态的。怎么理解这里的“动态“?

首先我想问问,大家都会有写过死循环代码的经历吧。当大家把这个死循环程序运行起来时,进程是不是就一直占着CPU不下去了呢?

但我们发现其它程序也还能运行,只不过稍稍卡了一点。所以一个进程有时候是运行的,有时候是处于等待状态的。所以PCB里才会有状态和优先级这样的概念。假设一个进程是一次性放在CPU上全部跑完,那根本就不需要状态这样的概念。

所以进程是受操作系统和CPU的调度运行的,当调度到你的时候你的代码就跑一跑,没有叫你的时候就等一等,等所有代码跑完后进程就结束了。所以以PCB为代表的进程就好像有了生命一般,具有动态运行的属性。

结语

本期分享到此结束,关注我,分享更多干货内容。

下节预告:查看进程与利用fork创建进程

http://www.15wanjia.com/news/40377.html

相关文章:

  • 做组织架构图的网站青岛seo关键词优化排名
  • 做微信网站多少钱网络推广属于什么行业
  • 哪些网站做国际贸易比较好中国站长之家网站
  • 开一个网站要花多少钱滕州百度推广
  • 网上哪个网站教做西点河北优化seo
  • 400网站建设百度网盘登录入口 网页
  • html做网站自适应宽度seo外链优化
  • 建设政府网站app舟山seo
  • 网站内页百度提交口app地推接单平台
  • 中国十大黄页网站排行榜女教师遭网课入侵直播录屏曝光视频
  • 网站维护管理营销策略有哪些方法
  • 企业网站管理系统推荐淘宝代运营公司
  • 备案的网站做跳转不影响备案把网络怎样做推广
  • 互联网技术专业seo有些什么关键词
  • 建立网站要钱吗无锡网站建设方案优化
  • wordpress advantage网站的优化公司
  • asp.net做电商网站页面重庆企业站seo
  • 龙岗建设网站关于seo的行业岗位有哪些
  • 泉州市网站建设怎么接推广
  • 保定工程建设信息网站最新军事新闻 今日 最新消息
  • 网站建设及长春seo技术
  • 晋中做网站在线客服系统
  • 企业网站案例公司惊艳的网站设计
  • 查看网站是什么语言做的西安网络seo公司
  • 一键logo生成器在线昆山优化外包
  • php网站怎么做集群网络上哪里可以做推广
  • python 做网站开发企业网络推广的方法
  • 全国知名网站建设seo的概念是什么
  • 做网站的公司哪好天津搜索引擎推广
  • wordpress批量发布工具郑州seo顾问热狗hotdoger