进程结构
linux0.11中的每个进程都有如下的结构:
在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。
在task数组中占有一项,指向一页物理内存,该物理内存低端是进程控制块task_struct(里面包括tss段和ldt段),其余部分是进程的内核态堆栈。
在页目录表和页表中设置有相关项。
linux0.11中,最多只有64个进程,task数组大小也定义成了64,每个进程与一个task数组中的项一一对应。虽然gdt中有256项,但是并不是都用到。第一个gdt项保留不用,内核用2个项,然后系统为每个进程保留2项。这样一个进程与2个gdt项一一对应。也就是linux0.11中task数组和gdt的分配是定死的,比如一个进程的任务数组项好为nr,即它的进程控制块由task[nr]指向,那么它的tss描述符和ldt描述符分别位于gdtr+3*8+nr*16和gdtr+3*8+nr*16+8处。
linux0.11内存物理地址0处开始放着一页页目录表和四页页表。这一个页目录表是所有进程共享的。其后的四页页表正好映射16m物理内存,是内核和进程0的页表。以后创建进程时页表需要从主内存区申请,而页目录项直接从页目录表中取。这样进程和页目录表页存在这一一对应关系,任务号为nr的进程,对应页目录的第nr*16~(nr+1)*16一共16个目录项。这样4g的线性空间由64个进程共享,每个进程分到64m。
三个结构的一一对应关系如图所示
2020年最潮的耳机:earsopen逸鸥真无线骨传导蓝牙耳机
廉价劳动力已成为过去,机器视觉应用广泛前景无限
比尔·盖茨和Uber联合创始人投资了一家制造AI芯片的初创公司
魅族pro7plus买标准版还是至臻版?
配电室常见的安全隐患有哪些?如何检查配电房安全隐患
Linux0.11-内存组织和进程结构
受意法爱立信拖累,爱立信财务堪忧
电子芯闻早报:鸿海1.2亿美元海外投资机器人
亚马逊放弃收购扫地机器人制造商iRobot
EUVIS任意波形发生器AWG的特点及应用
简述带通滤波器的原理及作用
织物摩擦带电电荷密度测定仪的试用范围介绍
软件测试工作中常见的风险有哪些
解决辐射问题:退耦电容的原理及应用?|深圳比创达EMC(上)
迅镭激光20000W高速激光切割机顺利交付
捷捷微电首批六英寸晶圆已下线 英特尔至今没有EUV芯片
中国联通业界首个MEC智能安防项目正在部署,助力加快5G网络之路转型
TI发布业内首款批量生产的集成式USB Type-C 供电控制器
如何在虚拟现实世界中拥有身体感知的功能
电子行业如何选择热缩管