进程上下文切换与处理器上下文切换

1 进程上下文与中断上下文

进程上下文

所谓的“进程上下文”,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容寄存器位于CPU上,速度快,堆栈位于内存上,速度慢),当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。

中断上下文

所谓的“中断上下文”,其实也可以看作就是硬件为了让内核处理中断而传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被中断的进程环境)。

2 进程上下文切换
2.1 概念

一个CPU看上去都像是在并发的执行多个进程,这是通过处理器在进程间切换来实现的。
操作系统实现这种交错执行的机制称为上下文切换。

2.2 步骤

即保存旧进程的上下文(修改旧进程的PCB信息,将旧进程的PCB加入相关队列),选择一个将要运行的进程(修改被选中进程的PCB信息,为其设置地址空间),恢复新进程的上下文。

如果现在有两个并发的进程:外壳进程和hello进程。
  开始只有外壳进程在运行,即等待命令行上的输入,当我们让他运行hello程序时,外壳通过调用一个专门的函数,即系 统调用,来执行我们的请求,系统调用会将控制权传递给操作系统。
  操作系统保存外壳进程的上下文,创建一个新的hello进程及其上下文,然后将控制权传递给新的hello进程。
  hello进程终止后,操作系统恢复外壳进程的上下文,并将控制权传回给他,外壳进程将继续等待下一个命令行输入。
  很明显,此处的新、旧进程均为外壳进程,将要运行的进程是hello进程

3 处理器模式切换
3.1 概念

这两种模式(用户态和内核态)在类 Unix 系统中共存意味着当系统调用发生时 CPU 切换到内核态是必要的。这应该叫做模式切换而不是上下文切换,因为没有改变当前的进程。

3.2 步骤

①保存被中断的处理器现场信息
②处理器从用户态->内核态
③如果处理中断,可根据所规定的中断级别设置中断屏蔽位
④根据系统调用号或中断号,从系统调用表中断入口地址表中找到系统服务例程中断处理程序的地址

4系统任务与用户进程

系统任务是内核态运行操作系统代码的进程,用户进程是用户态执行操作系统代码的进程,二者并无本质上的区别,只是称呼不同!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值