operating-system - 存储和检索进程控制 block

标签 operating-system scheduling context-switch process-control

当一个进程在执行时,PCB 的内容(在内核内存空间?)被加载到 CPU 寄存器、状态寄存器、内核堆栈指针、用户堆栈指针等。

当上下文切换到另一个进程时,当前的“上下文”存储回 PCB 中,并切换到新的 PCB。

现在当内核想要把这个 PCB 带回“上下文”时,它如何找到现在在内存中的这个 PCB?哪些信息可以帮助内核找到内存中的 PCB?

最佳答案

查找处理器可用性是 schedular 的工作,然后只发生上下文切换。一旦内核可用,内核中存储的 PCB 的程序计数器值就会被获取并提供给 CPU 寄存器。我想告诉 PCB 由内核以堆栈方式存储。

关于operating-system - 存储和检索进程控制 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876323/

相关文章:

linux - 需要从linux目录制作可启动SD卡

c - 尝试从 OS Dev 教程编译代码

上下文切换 - makecontext 和 swapcontext 是否在此处工作 (OSX)

java - 在java中创建硬链接(hard link)

c++ - 为什么我会收到 Missing sentinel 警告?

windows - Windows计划任务的实用替代品(小店)

linux - 当 tid 是内核线程时,sched_setaffinity () 调用出错

python - 如何安排每月 1 号运行的 Celery 任务?

embedded - 上下文切换时间 - RTOS 和处理器的角色

c - POSIX C 线程中上下文切换之前当前堆栈指针寄存器的值存储在哪里