在Linux内核中使用process control block (PCB)和线程控制块(TCB),以便在委派给它们的CPU上有时间。两者有什么区别?
过程控制集团(PCB)中通常保留哪些信息?
答案 0 :(得分:8)
PCB可以包含的一些值得注意的字段是进程ID,进程组ID,父进程和子进程,堆指针,程序计数器,调度状态(运行,就绪,阻塞),权限(系统资源是什么)允许进程访问),通用寄存器的内容和打开的文件。
除了一些特定的值(如线程id和指向包含该线程的进程的指针)之外,TCB还有一些与PCB相同的字段(寄存器值,堆栈指针,程序计数器,调度状态)。请注意,线程之间没有保护。在Linux中,有一个struct task_struct,用于存储有关线程或进程的信息。它在 sched.h中声明。
答案 1 :(得分:2)
PCB存储有关内核进程的信息。像地址空间等...
进程可以包含不同的内核线程。 两者都由调度程序和调度程序管理。
TCB包含特定于线程的信息。
答案 2 :(得分:1)
'过程控制块(PCB)和线程控制块(TCB)都在内核中使用,以便在委托给它们的CPU上有时间。 - 通常不是,不。 PCB将有一个或多个TCB链接到它。 TCB描述执行上下文(例如,堆栈指针),PCB是环境上下文(例如,内存段和权限)。