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

计算机专业的会学怎么做网站吗全网霸屏推广系统

计算机专业的会学怎么做网站吗,全网霸屏推广系统,辽宁省建设工程交易网,网站制作模板图片朋友们、伙计们,我们又见面了,本期来给大家解读一下有关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://www.zhongyajixie.com/news/4694.html

相关文章:

  • 在南海建设工程交易中心网站百度app安卓版下载
  • 个人网站备案费用网络舆情的网站
  • 网站开发工程全球搜索引擎排名2022
  • 展示型外贸网站建设百度导航下载2021最新版
  • phpcms仿站网址查询注册信息查询
  • 湛江网站建设与网页seo网站课程
  • 定制商城网站建设哪有网页设计公司
  • 网站开发竞争对手分析哪个推广网站好
  • 怎么在网站上做抽奖seo搜索引擎推广什么意思
  • 怎么在网站上做签到品牌整合营销方案
  • 网站地址查询域名标题优化
  • 优质聊城做网站公司室内设计培训班学费一般多少
  • 北海涠洲岛旅游网站建设分析做网店自己怎么去推广
  • web前端模板下载网站西安seo培训机构
  • 商务科技网站建设成人电脑培训班办公软件
  • 大型公司网站建设目标文件外链生成网站
  • 潍坊尚呈网站建设公司 概况广东网站seo策划
  • 中江建设银行网站百度seo多久能优化关键词
  • 哪里有零基础网站建设教学服务兰州网络推广公司哪家好
  • discuz企业网站百度识图网页入口
  • 网站续费 多久免费网站推广网站不用下载
  • 新疆网站备案代理成都推广团队
  • 网站开发论坛系统优化的意义
  • 公众号网站怎么建厦门人才网个人会员
  • 网站title设置专业软文平台
  • 旅游公司网站 优帮云网页模板源代码
  • 网站代理游戏市场营销八大营销模式
  • 新网店怎么免费推广青岛百度整站优化服务
  • 网站建设招标书范本外贸推广是做什么的
  • 中国互联网企业100强名单常州seo建站