进程切换过程之一:上下文切换

本文探讨了进程切换中的上下文切换过程,通过分析xv6操作系统的源代码,解析了两种不同版本的上下文切换实现。在较老的版本中,上下文被操作系统显式保存和恢复,而在较新的版本中,硬件参与了部分寄存器的保存工作,其余部分仍需手动处理。上下文切换涉及寄存器的保存和恢复,对于理解进程调度和多任务执行至关重要。

进程切换过程之一:上下文切换

注:下面给出的源码均出自https://github.com/mit-pdos/xv6-public

 

 

在进程进行切换时,需要进行上下文切换,也就是寄存器的值的保存。

对于上下文的切换,有两种情况:硬件自动(隐式)完成、操作系统显式保存。

下面分析两段xv6的源代码,都是上下文切换部分,版本有所不同:

注:每个进程都有一个用来维护过程调用的栈,有的书把这个栈叫做内核栈;在编译原理中,这个栈的术语叫活动记录,在下文中,提到的栈都是说的这个保存活动记录的栈。每个进程都有自己的活动记录(当然,如果是多CPU的情况下,就会引入线程的概念,则每个线程有一个活动记录)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值