进程表项字段理解
时间:2021-03-06 14:51:15
收藏:0
阅读:0
1.进程表项PCB字段
但是到底进程切换都有哪些操作呢?
转自:https://blog.csdn.net/shadow2512/article/details/73611805
概念:进程切换就是被中断进程与待运行进程之间的上下文切换(必须在内核模式下进行进程切换)。
具体过程:
转换为内核模式,压入程序状态字和程序计数器,将被中断进程的栈指针保存到进程控制块,调整被中断进程的状态,把被中断的进程加入相关队列等待,选中下一个进程改变其状态,设备被选中的进程的地址空间,将被选中进程的栈指针存到处理寄存器中;切换到用户模式并且弹出程序状态字和程序计数器。
进程切换发生在时间片中断、IO中断;终止系统调用、发生异常。进程切换时伴随着进程状态的转换,比如从运行到阻塞、到等待。
上下文包括:通用目的寄存器,浮点寄存器,程序计数器,用户栈,状态寄存器,内核栈,各种内核数据结构。
内核可以处于进程上下文和终端上下文。
2.进程管理
2.1 程序状态字
https://www.sohu.com/a/109359363_119709
程序状态字(Program Status Word, PSW)又称状态寄存器,主要用于反映处理器的状态及某些计算结果以及控制指令的执行。
PSW是一个8位寄存器,用于存放程序运行中各种状态信息。
其中,F0\RS1\RS0可以由用户自己编程设定,其他位的状态是根据程序执行结果,由硬件自动设置的。
- Cy:进位标志,是PSW中最常用的标志位。功能有二:一、存放算术运算的进位标志,在进行加减运算时,若操作结果的最高位有进位或借位,则自动置1,否则为0。二、在位操作中,作位累加器C使用。
- Ac:辅助进位标志。在加减运算时,低4位向高4位进位或借位时,自动置1,否则为0。(似乎和上一个有重复?)
- F0:用户标志位。用户可设置,常用作数据收发标志或准备好的标志。
- RS1&RS0:寄存器组选择位。选择CPU当前使用的工作寄存器组,共有四组工作寄存器。
- Ov:溢出标志位。在带符号的加减运算中,若运算超出了累加器A所能表示的符号数的有效范围(-128~127),则自动置1,表示产生了溢出,说明运算结果是错误的。否则为0。
- P:奇偶标志位。表明累加器A中数据的奇偶性。若A中有奇数个“1”,则自动置1,否则为0。此标志位常用于串行通信中的奇偶校验。(不是说奇数偶数的意思?而是说当前数中1的个数是奇数还是偶数?)
3.上下文
3.1 通用目的寄存器
评论(0)