首页 > 系统相关 >linux操作系统分析实验五-深入理解进程切换

linux操作系统分析实验五-深入理解进程切换

时间:2023-04-25 19:22:35浏览次数:41  
标签:操作系统 mm next switch 切换 linux 进程 prev

Lab5:深入理解进程切换

首先找到对应进程调度的代码文件

Kernal/sched/core.c

 

 

找到 context_switch() 函数

 

 

 

其中包括rq,为进程的running queue;以及进程切换前后的进程描述符prev和next

 

 

首先调用一些函数做上下文切换的准备,与最后出现的finish_task_switch()成对使用

 

接着进行进程地址空间的切换

(1)     对于next->mm为空的情况,这是一个内核级线程(to kernal),此时linux使用active_mm指向其实际地址空间。此时首先调用entry_lazy_tlb进入lazy_tlb模式

 

 

接着将prev进程的active_mm赋给next进程,并在prev进程是用户进程的情况下调用mmgrab,增加prev的active_mm空间的引用计数,因为它现在同时被next进程所持有。

在prev是内核进程的情况下,将其active_mm指针置空即可

(2)     对于其他情况 ,即next为一个用户线程,调用membarrier_switch_mm创建内存屏障,保证进程访问mm的先后顺序

 

         接着调用switch_mm_irqs_off进行地址空间切换,这是一个很长的函数

标签:操作系统,mm,next,switch,切换,linux,进程,prev
From: https://www.cnblogs.com/lijiang2023/p/17353591.html

相关文章

  • Linux common clock framework(1)_概述
    1.前言commonclockframework是用来管理系统clock资源的子系统,根据职能,可分为三个部分:1)向其它driver提供操作clocks的通用API。2)实现clock控制的通用逻辑,这部分和硬件无关。3)将和硬件相关的clock控制逻辑封装成操作函数集,交由底层的platform开发者实现,由通用逻辑调用。因此......
  • 在Linux上安装redis7
    1.检测虚拟机环境1.1bit检测命令:getconfLONG_BIT(建议使用64bit做开发)1.2gcc环境检测:gcc-v如果不具备gcc环境,则使用yum-yinstallgcc-c++命令进行c++环境的安装2.开始安装2.1下载redis:进入官网找到下载地址https://redis.io/download我下载的是7.0.11版本,属于稳......
  • Springboot 在linux后台运行的方法
    1、后台运行程序nohupjava-jar自己的springboot项目.jar>日志文件名.log2>&1&命令详解:nohup:不挂断地运行命令,退出帐户之后继续运行相应的进程。>日志文件名.log:是nohup把command的输出重定向到当前目录的指定的“日志文件名.log”文件中,即输出内容不打印到屏幕上,而......
  • Linux账号密码安全运维
    前言随着云计算厂商的兴起,云资源如ECS不再只有企业或者公司才会使用,普通人也可以自己买一台ECS来搭建自己的应用或者网站。虽然云计算厂商帮我们做了很多安全相关的工作,但并不代表我们的机器资源就绝对是安全的。要知道有很多事情是云计算厂商不能为我们做的,就比如账号密码的安......
  • 考研408操作系统-设备的分配与回收
    设备分配时应该考虑的因素设备的分配算法:先来先服务、优先级高者优先、短任务优先...静态分配与动态分配设备分配管理中的数据结构设备分配的步骤设备分配步骤的改进方法总结......
  • centos linux系统安装详解
    打开vmware,版本差异区别不大选择创建新的虚拟机  选择典型,是默认选项不用改,点击下一步 选择稍后安装操作系统(默认选项不用改),点击下一步 选择linux,并且版本改为centos64位,点击下一步 虚拟机名称随便改,位置是指虚拟机的位置,点击浏览,自己选择位置,点击下一步 最大......
  • 修改Linux IP
    ipas//查看ip地址信息cat/etc/sysconfig/network-scripts/ifcfg-网卡名称//查看网络配置信息vi(或者vim)/etc/sysconfig/network-scripts/ifcfg-网卡名称//修改配置信息Esc:wq退出TYPE="Ethernet"//网络类型以太网常见的有Ethernet、BridgePROXY_METHOD="none"......
  • Linux性能优化篇-了解CPU上下文切换
     我们了解到导致平均负载,有可能是以下几种方面:CPU密集型(造成cpu利用率升高,可以理解)I/O密集型(io和cpu互斥的,也造成cpu利用率增高-不可中断进程的)大量进程(???)根据平均负载的解释,单位时间内的处于可运行的进程和不可中断进程的进程数,Systemloadaveragesistheaveragenumberofproc......
  • 创信国产操作系统uos桌面卡死的解决办法
    如果是整个桌面卡死,不要按主机电源键强制关机,重启后有可能会有配置文件缺失的问题。----首先尝试:按Ctrl+Alt+F2,进入tty2输入用户名,回车输入密码,回车输入命令回车:killallkwin_x11按Ctrl+Alt+F1,回到桌面----如果还是没有缓解:按Ctrl+Alt+F2,进入tty2按Ctrl+......
  • linux之dlopen、dlsym和dlclose使用和举例
     之前用过这三个函数一直没时间整理一下。今天抽时间整理一下。1、函数简介dlopen基本定义功能:打开一个动态链接库 包含头文件: #include<dlfcn.h> 函数定义: void*dlopen(constchar*pathname,intmode); 函数描述: 在dlopen的()函数以指......