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

网页设计图片水平居中代码关键词优化外包

网页设计图片水平居中代码,关键词优化外包,做网站怎么制作,商城网站模板库一.何为进程 教材一般会给出这样的答案: 运行起来的程序 或者 内存中的程序 这样说太抽象了,那我问程序和进程有什么区别呢?诶?这我知道,书上说,动态的叫进程,静态的叫程序。那么静态和动态又是什么意思…

一.何为进程

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

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

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

二.先描述,再组织

我们编译完成,运行之前的程序是放在哪的呢?不用说,肯定在磁盘上。我们常常听说,要想运行一个程序,首先要将它加载到内存,这是由冯诺依曼体系结构决定的,因为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.hkea.cn/news/152134/

相关文章:

  • 为什么只有中国人怕疫情seo 页面
  • 网站开发总结报告十大门户网站
  • 临淄信息港发布信息临沂seo建站
  • 门户网站系统介绍企业推广哪个平台好
  • 免费网站建站排行榜网站策划报告
  • 网站设计的评估最近发生的热点新闻
  • 设建网站广告投放渠道
  • 日ip5000的网站怎么做如何提高网站在搜索引擎中的排名
  • 网站描文本链接怎么做深圳互联网营销
  • 一个服务器做两个网站自己做网站
  • 百草味网站建设的活动方案营销型企业网站有哪些
  • 论文课程网站 建设背景项目推广方式有哪些
  • 内部网站建设关键词优化推广策略
  • 一个公司可以做几个网站备案贵阳网络推广排名
  • 武汉高端网站建设免费广告网
  • 大理建网站常用于网站推广的营销手段是
  • js怎么做网站跨境电商网站
  • 台州外贸网站建设百度推广费用多少
  • 虚拟机怎么做网站空间培训班管理系统 免费
  • wordpress离线文章发布郑州seo关键词排名优化
  • 龙岗区网站建设中国职业培训在线
  • 南山网站建设外包优化网站
  • 个人怎么做网站推广神起网络游戏推广平台
  • 做网站的关键技术运营推广的方式和渠道有哪些
  • jsp做就业网站网推项目
  • 网站开发的目的和意义重庆seo排名电话
  • 顺义专业建站公司最有效的线上推广方式
  • 大连网站网站搭建制作百度识图 上传图片
  • 给人做网站多少钱黑科技引流推广神器怎么下载
  • 沈阳做网站最好的公司百度快照怎么删除