我们知道PCB里面的CPU状态信息 有以下几种,大家可以复习一下
(1)通用寄存器 8-32个,暂存信息
(2)PC(指令计数器) 要访问下一条指令地址
(3)PSW(Program Status Word)包含:执行方式(系统状态还是用户状态下执行),中断屏蔽标志(进程执行中 是否有中断屏蔽即是否允许被 剥夺CPU或被打断 1即不允许打断)
(4)用户栈指针:用户进程拥有的系统栈,存放 过程和系统调用参数及调用地址
简要说明下 第四点 用户栈和系统栈
概念:
用户栈:用户进程中一块区域,保存用户进程的一系列子进程相互协作时,调用的参数,返回值,返回点及子程序(函数)的局部变量等信息
系统栈:(核心栈,内核栈):用于进程进入内核时使用的栈,主要涉及进程切换时保存用户态进程信息(寄存器值,一部分硬件上下文等),以及进程在内核执行时分配空间使用。
现在的操作系统大部分都是将内核程序(如:中断处理程序)挂到正在运行的用户程序上的如下图:
核心程序的工作栈就是当前运行的用户进程的系统栈。每个进程都有自己的用户栈和系统栈。而且系统栈的大小是确定的(取决于系统允许的中断嵌套数量,即中断优先级个数)。