Linux进程上下文切换概念
2020-04-20 本文已影响0人
吕艳凯
在操作系统中空间分为内核空间和用户空间
所以进程的运行状态分为:
1.内核态:进程运行于内核空间
2.用户态:进程运行于用户空间。
什么叫进程上下文:
CPU不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。内核进程运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。
用户空间的应用程序,如果想要请求系统服务,比如操作一个物理设备,就必须通过系统调用来(操作系统提供给用户空间的接口函数)实现。
用户空间的应用程序,通过系统调用,进入内核空间,即是切换到内核态运行。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。
所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。
进程上下文切换:
当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行