ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

每天3分钟操作系统修炼秘籍(23):进程表和进程数据结构

2019-11-21 22:57:24  阅读:208  来源: 互联网

标签:23 Process PCB 内核 进程 数据结构 CPU


点我查看秘籍连载

进程表和进程数据结构

内核负责管理维护所有进程,为了管理进程,内核在内核空间维护了一个称为进程表(Process Table)的数据结构,这个数据结构中记录了所有进程,每个进程在数据结构中都称为一个进程表项(Process Table Entry),如图。

从图中可知,进程表中除了记录了所有进程的PID,还使用一个字段记录了所有进程的指针,指向每个进程的进程控制块(Process Control Block,PCB),请记住PCB这个词,它太重要了。

既然PCB代表的是进程,在这个数据结构(task_struct)中自然保留了和进程相关的很多信息,至少在进行上下文切换时,能够保存下在CPU中关于当前运行进程的一些重要寄存器信息(所以,PCB代表的是未执行的进程,CPU中某些寄存器中的数据代表当前正在运行的进程)。以下是PCB中包含的内容,有兴趣的话可以了解下各项是什么东西:

1.Process management:
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm
 
2.Memory management:
Pointer to text segment info 
Pointer to data segment info 
Pointer to stack segment info
 
3.File management:
Root directory Working directory File descriptors User ID
Group ID
PCB

包含了进程非常重要的信息,是上下文切换的关键,它保存在每个进程的内核栈中(是否还记得前面提到过的每个进程都有两个栈空间:用户栈和内核栈)。

标签:23,Process,PCB,内核,进程,数据结构,CPU
来源: https://www.cnblogs.com/f-ck-need-u/p/11908928.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有