先给一个可以说是当今最具体的定义,最后给一个最抽象的定义 1.如果定义进程的上下文= 进程控制块(包含了很多信息,比如:此进程是否在内核态,内核堆栈的指针)+进程代码+进程堆栈(如果在用户状态就是用户堆栈,如果在内核态就是用户堆栈+内核堆栈)+cpu现场(即当前cpu的各个寄存器的状态)+连接在cpu上的与该进程相关的外部设备+环境变量(其实本身就包含在进程控制块里面)+页表+某个具体版本的内核。 以上几个元素的综合决定了进程运行经过的指令流,换句话说只要以上元素的状态确定了,进程运行的指令流也就是可以确定的。 2.当进程由用户态陷入内核态的时候,内核管理程序立即给该进程分配了一个内核栈,找到相应系统调用的代码段去运行,这段代码虽然是内核代码,但他的运行代表着调用他的那个进程(完全是被动的为这个进程去服务的),所以这时任然是在该进程的上下文中运行! 然后用一句抽象的概括:进程的上下文就是外界给进程提供的运行环境。(呵呵,包括具体的代码当然也可以说是一种环境了)
进程的上下文到底是什么东东
最新推荐文章于 2024-03-27 09:19:25 发布