Linux0.11-内存组织和进程结构

进程结构

    Linux   0.11中的每个进程都有如下的结构:

在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。

在task数组中占有一项,指向一页物理内存,该物理内存低端是进程控制块task_struct(里面包括tss段和ldt段),其余部分是进程的内核态堆栈。

 Linux0.11_内存组织和进程结构_设计制作_接口/总线/驱动

在页目录表和页表中设置有相关项。

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。

三个结构的一一对应关系如图所示

 Linux0.11_内存组织和进程结构_设计制作_接口/总线/驱动



7
150
0
81

相关资讯

  1. 1、新年新气象《莽荒纪2》新超级战神跨年登场183
  2. 2、来自梦罗克的曙光《天天打波利》新职业盗贼系登场5092
  3. 3、《英雄战魂之元素王座》宝石礼包限量特卖盛夏狂欢3731
  4. 4、《青云志》手游首部资料片再见碧瑶公测五大PVP玩法2647
  5. 5、扎小人赢奖励《熹妃Q传》二测福利大作战1284
  6. 6、最叼剑人《请问你为啥这么厉害》水管大比武4917
  7. 7、GAI&双笙献唱《中国惊奇先生》手游主题曲4234
  8. 8、《球球大作战》V3.0金秋完美版首爆球球大探秘3194
  9. 9、3月18日十万个冷笑话手游正式上线作家寒舞亲临现场1936
  10. 10、千古文人仙侠梦《永恒仙域》6.23全平台震撼上线4510
全部评论(0)
我也有话说
0
收藏
点赞
顶部