tack_struct

PCB:process control block,里面放着进程的描述信息。在Linux 中的PCB 是task_struct。

task_struct 的内容

PID:描述进程的唯一标识符,用来区分进程。(身份证号)

status:任务状态、退出代码(echo $?)、退出信号灯。(一个人现在的状态)

内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。(家庭地址)

优先级:相对于其他进程的优先级。(家长是不是当官的)
使用top 命令有一列叫做PR,这个PR就是进程的优先级,在Linux下这个数字越小优先级越高。NI(nice)表示优先级的修正值,最终系统认定的优先级是PR + NI,通过指令可以修改nice值,但是因为CPU在进程之间切换非常快,一般也看不出什么

程序计数器:程序中即将被执行的下一条指令的地址。(任务清单)

上下文数据:在CPU 切换进程的时候会把当前寄存器中的数据保存起来,下次切换回这个线程的时候的一些数据就不会丢失,这个就是上下文。(保存上下文、恢复上下文)

I/O信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

记账信息:皇上要雨露均沾呗~~

组织进程

进程在Linux 里是以链表的形式组织的,每一个节点应该都有一个task_struct。

一般除了top、ps等命令可以查看进程外,进程的信息还会记录在文件中,在/proc


笔记参考:
https://www.cnblogs.com/tongyan2/p/5544887.html

文章作者: Ahoj
文章链接: https://ahoj.cc/2019/06/tack-struct/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ahoj's Blog