全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈linux线程切换问题

处理器总处于以下状态中的一种:

1、内核态,运行于进程上下文,内核代表进程运行于内核空间;

2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;

3、用户态,运行于用户空间;

一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。

用户级上下文:  正文、数据、用户堆栈以及共享存储区;

寄存器上下文:  通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);

系统级上下文:  进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。

当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的模式切换(mode switch)。模式切换与进程切换比较起来,容易很多,而且节省时间,因为模式切换最主要的任务只是切换进程寄存器上下文的切换。系统中的每一个进程都有自己的上下文。一个正在使用处理器运行的进程称为当前进程(current)。当前进程因时间片用完或者因等待某个事件而阻塞时,进程调度需要把处理器的使用权从当前进程交给另一个进程,这个过程叫做进程切换。此时,被调用进程成为当前进程。在进程切换时系统要把当前进程的上下文保存在指定的内存区域(该进程的任务状态段TSS中),然后把下一个使用处理器运行的进程的上下文设置成当前进程的上下文。当一个进程经过调度再次使用CPU运行时,系统要恢复该进程保存的上下文。所以,进程的切换也就是上下文切换。在系统内核为用户进程服务时,通常是进程通过系统调用执行内核代码,这时进程的执行状态由用户态转换为内核态。但是,此时内核的运行是为用户进程服务,也可以说内核在代替当前进程执行某种服务功能。在这种情况下,内核的运行仍是进程运行的一部分,所以说这时内核是运行在进程上下文中。内核运行在进程上下文中时可以访问和修改进程的系统数据。此外,若内核运行在进程上下文中需要等待资源和设备时,系统可以阻塞当前进程。

Linux下的线程实质上是轻量级进程(light weighted process),线程生成时会生成对应的进程控制结构,只是该结构与父线程的进程控制结构共享了同一个进程内存空间。 同时新线程的进程控制结构将从父线程(进程)处复制得到同样的进程信息,如打开文件列表和信号阻塞掩码等。创建线程比创建新进程成本低,因为新创建的线程使用的是当前进程的地址空间。相对于在进程之间切换,在线程之间进行切换所需的时间更少,因为后者不包括地址空间之间的切换。

线程切换上下文切换的原理与此类似,只是线程在同一地址空间中,不需要MMU等切换,只需要切换必要的CPU寄存器,因此,线程切换比进程切换快的多。

以上就是小编为大家带来的浅谈linux线程切换问题全部内容了,希望大家多多支持~


# linux  # 线程切换  # Java常见面试题之多线程和高并发详解  # linux线程间的同步与互斥知识点总结  # Linux之多线程以及多线程并发访问同一块内存的处理问题  # 运行于  # 自己的  # 的是  # 都有  # 不需要  # 可以说  # 所需  # 要把  # 仍是  # 与此  # 只需要  # 最主要  # 文件列表  # 相对于  # 浅谈  # 在这种情况下  # 不包括  # 转换为  # 用完  # 小编 


相关文章: 如何在建站主机中优化服务器配置?  如何快速搭建自助建站会员专属系统?  如何选择高效可靠的多用户建站源码资源?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  外贸公司网站制作,外贸网站建设一般有哪些步骤?  宁波免费建站如何选择可靠模板与平台?  已有域名和空间如何搭建网站?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  公司网站设计制作厂家,怎么创建自己的一个网站?  c# 服务器GC和工作站GC的区别和设置  香港服务器租用费用高吗?如何避免常见误区?  香港服务器租用每月最低只需15元?  建站之星3.0如何解决常见操作问题?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何用西部建站助手快速创建专业网站?  表情包在线制作网站免费,表情包怎么弄?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何在阿里云域名上完成建站全流程?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  微课制作网站有哪些,微课网怎么进?  如何彻底卸载建站之星软件?  建站168自助建站系统:快速模板定制与SEO优化指南  如何在橙子建站上传落地页?操作指南详解  如何通过虚拟主机快速搭建个人网站?  Swift开发中switch语句值绑定模式  网站制作新手教程,新手建设一个网站需要注意些什么?  如何快速登录WAP自助建站平台?  如何快速辨别茅台真假?关键步骤解析  如何有效防御Web建站篡改攻击?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何零基础在云服务器搭建WordPress站点?  建站之星代理商如何保障技术支持与售后服务?  如何制作算命网站,怎么注册算命网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  建站之星后台密码遗忘?如何快速找回?  ,怎么在广州志愿者网站注册?  建站之星备案流程有哪些注意事项?  黑客如何通过漏洞一步步攻陷网站服务器?  建站之星收费标准详解:套餐费用及年费价格表一览  定制建站如何定义?其核心优势是什么?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  高端智能建站公司优选:品牌定制与SEO优化一站式服务  nginx修改上传文件大小限制的方法  北京网站制作公司哪家好一点,北京租房网站有哪些?  网站制作员失业,怎样查看自己网站的注册者?  济南网站制作的价格,历城一职专官方网站?  如何获取开源自助建站系统免费下载链接?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。