内核中的进程管理部分2-pidhash和链表
2017-09-06 09:54
211 查看
内核必须能从进程的pid导出对应的进程描述符指针
当然,前面我们说过,内核为我们维护了一个进程链表(所有进程描述符都链接成一种环形双向链表的形式管理),但如果根据pid字段顺序扫描进程链表,效率相当低效。为了快速查找,内核引入了4个散列表(哈希表)。为什么需要4种哈希表?因为进程描述符包含了表示不同类型pid的字段
冲突问题采用链接法来解决(可以参看我的其他博文)
如果根据线程组查找散列表,只能返回一个进程描述符,就是线程组领头进程的描述符,为了能够快速返回组中其他所有进程,内核就必须为每个线程组保留一个进程链表。在查找给定登录会话或进程组的进程时也会有同样情形。故结构如下
总结:
。。想写的时候再写吧,现在没心情
当然,前面我们说过,内核为我们维护了一个进程链表(所有进程描述符都链接成一种环形双向链表的形式管理),但如果根据pid字段顺序扫描进程链表,效率相当低效。为了快速查找,内核引入了4个散列表(哈希表)。为什么需要4种哈希表?因为进程描述符包含了表示不同类型pid的字段
冲突问题采用链接法来解决(可以参看我的其他博文)
如果根据线程组查找散列表,只能返回一个进程描述符,就是线程组领头进程的描述符,为了能够快速返回组中其他所有进程,内核就必须为每个线程组保留一个进程链表。在查找给定登录会话或进程组的进程时也会有同样情形。故结构如下
总结:
。。想写的时候再写吧,现在没心情
相关文章推荐
- Linux进程管理内核API函数pid_task( )
- 全面解析Linux 内核 3.10.x - Pid hash 链表
- 内核中的进程管理部分1
- (3)《基于Linux的C编程与内核导读》--Linux进程管理
- Linux 内核进程管理之进程ID
- linux 内核介绍2 进程管理
- Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。
- 进程管理API之get_task_pid
- Linux 进程管理剖析: Linux 同步方法剖析 内核原子,自旋锁和互斥锁
- 内核程序中进程的pid,handle,eprocess之间相互转换的方法
- unix内核概述-进程管理
- Linux 内核进程管理之进程ID
- linux管理进程的链表
- Linux进程ID的内核管理
- Linux 进程管理剖析: Linux 同步方法剖析 内核原子,自旋锁和互斥锁
- 深度剖析linux内核万能--双向链表,Hash链表模版
- 第二部分—进程和线程管理
- Linux内核设计与实现-进程管理与进程调度
- 操作系统原理之Unix/Linux进程标识符pid管理探索
- 进程管理对象器的实现,数据结构为链表