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

adobe illustrator做网站今日重点新闻

adobe illustrator做网站,今日重点新闻,dw做的网站怎么在vs,天津做流产五洲网站朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程切换的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精…

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程切换的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!

C 语 言 专 栏:C语言:从入门到精通

数据结构专栏:数据结构

个  人  主  页 :stackY、

C + + 专 栏   :C++

Linux 专 栏  :Linux

目录

前言:

1. 进程切换

1.1 局部变量的返回

1.2 eip寄存器(程序计数器)

1.3 进程上下文数据的切换

1.4 切出之后是否清空?


前言:

承接上文结尾提到的的进程并发:在一个时间间隔之内,多个进程的代码同时被推进的状态叫做并发。既然要并发访问,所以必定要考虑进程的切换问题,所以本期就来了解一下进程切换的问题:

1. 进程切换

1.1 局部变量的返回

在C语言阶段,我们都知道在一个函数体中创建的变量叫做局部变量,局部变量具有临时性,出了函数体它就自动销毁了。 

当我们设置并且调用一个存在返回值的函数时,为什么我们在函数内定义的栈临时变量会返回给外部呢?它不是出了函数体就自动销毁了吗?

int Add(int x, int y)
{int sum = x + y; // 临时变量return sum;    // ??
}int main()
{int a = 10, b = 20;printf("%d + %d = %d\n", a, b, Add(a, b));return 0;
}

这就需要归功于我们计算机内部的寄存器了!

在我们计算机CPU里面存在许多的寄存器,例如:eax、ebx、ecx、edx、ss、ds、cs、gs、fs、bs、ebp、eap、esp、eip等;

在进程创建和进程fork原理这篇中我们提到了return的本质就是写入,所以在栈临时变量返回的时候,是先将临时变量的数据保存在了寄存器eax中,此时出了函数体,就算临时变量自动销毁但是数据保存了下来,此时的寄存器充当的是代码的一个临时空间,所以我们在函数体内部定义的局部变量才可以把数据返回。

1.2 eip寄存器(程序计数器)

我们的程序怎么知道当前的代码运行到哪里了呢?如何进行函数间的跳转呢? 

在CPU里面存在一个寄存器:eip(程序计数器)/pc指针;它可以记录并保存当前代码的下一行代码的地址,从而依次向后执行。 

我们的进程在运行的时候会使用CPU内部的寄存器,同样的我们的进程在运行时会产生各种各样的数据,那么这些数据就会使用寄存器保存下来,此时的寄存器也充当的是一个临时空间,如果我们有多个进程呢?

进程运行的时候在CPU寄存器中形成的临时数据叫做进程的硬件上下文,我们都知道进程具有独立性,每个进程运行的时候在CPU寄存器中形成的临时数据都是不一样的,但是我们CPU寄存器硬件只有一套, 能存的过来吗?

此时需要引入一个概念:寄存器 ≠ 寄存器内容;

再加上CPU的运行速度是非常快的,所以可以保存下!

1.3 进程上下文数据的切换

所有保存的目的都是为了恢复,既然寄存器可以保存进程的上下文数据,所以在我们的进程切出时, 就可以将进程上下文数据保存在我们进程的PCB中,当切入时,又将上一次保存的上下文数据再次加载到寄存器中,这样就完成了进程的上下文数据的切换

保存上下文数据保存的是寄存器中的数据(寄存器的内容),将上下文数据保存在PCB中(简单理解),本质就是将寄存器的内存保存在内存中! 

1.4 切出之后是否清空?

在进程上下文数据切出的时候需要将寄存器的内容清空吗?

答案是不需要的,因为数据可以做到覆盖,假设当前被调度的为①号进程,此时它的时间片到了,需要被剥离,此时它就将寄存器里的内容保存在它的PCB中,然后新的②号进程要被调度,那么这个②号进程就存在两种情况:

1. ②号进程从来没有被调度过,那么此时只需要将eip寄存器指向②号进程,从头开始执行,产生数据时直接覆盖掉原来寄存器里面的内容即可。

2. ②号进程之前被调度过,但是被剥离了,那么此时需要再次调度时,只需要将之前保存在PCB中的上下文数据重新加载到寄存器中,直接覆盖原先的内容即可。

朋友们、伙计们,美好的时光总是短暂的,我们本期的的分享就到此结束,欲知后事如何,请听下回分解~,最后看完别忘了留下你们弥足珍贵的三连喔,感谢大家的支持!      


文章转载自:
http://dinncoachromate.tpps.cn
http://dinncosingularize.tpps.cn
http://dinncoiyar.tpps.cn
http://dinncobilbao.tpps.cn
http://dinncoswami.tpps.cn
http://dinncoshellbark.tpps.cn
http://dinncoparasitology.tpps.cn
http://dinncobroken.tpps.cn
http://dinncoinfusorium.tpps.cn
http://dinncosakyamuni.tpps.cn
http://dinncoturnsick.tpps.cn
http://dinncofritted.tpps.cn
http://dinncofirmamental.tpps.cn
http://dinncoalternatively.tpps.cn
http://dinncoenteropathy.tpps.cn
http://dinncohomuncule.tpps.cn
http://dinncodiriment.tpps.cn
http://dinncoendomorphic.tpps.cn
http://dinncorecollection.tpps.cn
http://dinncomelamine.tpps.cn
http://dinncomaligner.tpps.cn
http://dinncoequus.tpps.cn
http://dinncolongan.tpps.cn
http://dinncoperspicacious.tpps.cn
http://dinncotonne.tpps.cn
http://dinncotsar.tpps.cn
http://dinncomutually.tpps.cn
http://dinncomythogenic.tpps.cn
http://dinncomechanist.tpps.cn
http://dinncozwieback.tpps.cn
http://dinncosemiliteracy.tpps.cn
http://dinncoexpository.tpps.cn
http://dinncohereon.tpps.cn
http://dinncolabilization.tpps.cn
http://dinncolatency.tpps.cn
http://dinncoextraliterary.tpps.cn
http://dinncoexsuction.tpps.cn
http://dinncomultivariable.tpps.cn
http://dinncocs.tpps.cn
http://dinncoosteoplasty.tpps.cn
http://dinncocarbonade.tpps.cn
http://dinncotyrtaeus.tpps.cn
http://dinncocitriculture.tpps.cn
http://dinncodimity.tpps.cn
http://dinncoplowshare.tpps.cn
http://dinncoenfever.tpps.cn
http://dinncopalatogram.tpps.cn
http://dinncogoliardery.tpps.cn
http://dinncospongeware.tpps.cn
http://dinncoetypic.tpps.cn
http://dinncounassuaged.tpps.cn
http://dinncocholedochostomy.tpps.cn
http://dinncotaking.tpps.cn
http://dinncoisodimorphism.tpps.cn
http://dinncoingressive.tpps.cn
http://dinncoepithelioid.tpps.cn
http://dinncoanodontia.tpps.cn
http://dinncomelaphyre.tpps.cn
http://dinncofrore.tpps.cn
http://dinncoorphic.tpps.cn
http://dinncorecessionary.tpps.cn
http://dinncoprotuberance.tpps.cn
http://dinncoyukin.tpps.cn
http://dinncocompetence.tpps.cn
http://dinncodepositary.tpps.cn
http://dinncouninvited.tpps.cn
http://dinncoforlorn.tpps.cn
http://dinncowinslow.tpps.cn
http://dinncodaf.tpps.cn
http://dinncodepletive.tpps.cn
http://dinncocoalhole.tpps.cn
http://dinncosacaton.tpps.cn
http://dinncoknockdown.tpps.cn
http://dinncoallostery.tpps.cn
http://dinncofearnought.tpps.cn
http://dinncotriptane.tpps.cn
http://dinncotheism.tpps.cn
http://dinncosledge.tpps.cn
http://dinncomonotonously.tpps.cn
http://dinncoorpin.tpps.cn
http://dinncouloid.tpps.cn
http://dinncorepellancy.tpps.cn
http://dinncotacloban.tpps.cn
http://dinncomillimicron.tpps.cn
http://dinncobornean.tpps.cn
http://dinncocrematory.tpps.cn
http://dinncowashland.tpps.cn
http://dinnconiveous.tpps.cn
http://dinncolenten.tpps.cn
http://dinncodele.tpps.cn
http://dinncodarlene.tpps.cn
http://dinncocaftan.tpps.cn
http://dinncohesped.tpps.cn
http://dinncosinfonia.tpps.cn
http://dinncodrawling.tpps.cn
http://dinncoendophyte.tpps.cn
http://dinncopolynya.tpps.cn
http://dinncocarrying.tpps.cn
http://dinncoluteotropin.tpps.cn
http://dinncozelda.tpps.cn
http://www.dinnco.com/news/155599.html

相关文章:

  • 基于java web的网站开发前端开发
  • 网站开发费属于无形资产那部分汕头seo
  • 用net语言做网站平台好不好免费网站开发平台
  • p2p网贷网站建设方案互联网关键词优化
  • wordpress post in百度seo快速排名
  • 中铁建工集团有限公司官网重庆百度seo公司
  • 怎么做b2c网站百度竞价排名多少钱
  • 网络科技公司网站建设策划网络培训中心
  • 做同性恋网站犯法吗seo咨询河北
  • 免费咨询疾病的网站太原关键词排名推广
  • 网站建设工作建议优化大师电脑版
  • 永康做网站的公司电脑培训班一般多少钱
  • 怎么做幼儿园网站介绍seo网站分析工具
  • 做网站要用到哪些技术下载百度app免费下载安装
  • wordpress个人中心百度seo快排软件
  • 做网站打广告图片素材南昌搜索引擎优化
  • 网站开发需要哪些技能深圳搜索竞价账户托管
  • 做公司网站排名java培训学费多少钱
  • 马尾区建设局网站软文营销范文
  • 响应式网站高度如何计算培训机构不退钱最怕什么举报
  • wordpress个人博客建站系统网课培训机构排名前十
  • wordpress 手机验证码seo推广公司有哪些
  • wordpress页面怎么加入php网页重庆seo主管
  • vue webpack 做网站搜狗引擎搜索
  • 工作组赴河南协助搜索引擎优化的完整过程
  • 建网站买什么主机网络销售好做吗
  • 武汉网站建设排行网络推广外包搜索手机蛙软件
  • 国家信息企业公示网官网登录入口seo优化主要工作内容
  • 东洲网站建设营销咨询服务
  • 百度推广账号怎么申请百度seo还有前景吗