`
soboer
  • 浏览: 1313284 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

进程结构

Linux0.11中的每个进程都有如下的结构:

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

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

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

Linux0.11中,最多只有64个进程,task数组大小也定义成了64,每个进程与一个task数组中的项一一对应。虽然gdt中有256项,但是并不是都用到。第一个gdt项保留不用,内核用2个项,然后系统为每个进程保留2项。这样一个进程与2gdt项一一对应。也就是linux0.11task数组和gdt的分配是定死的,比如一个进程的任务数组项好为nr,即它的进程控制块由task[nr]指向,那么它的tss描述符和ldt描述符分别位于gdtr+3*8+nr*16gdtr+3*8+nr*16+8处。

Linux0.11内存物理地址0处开始放着一页页目录表和四页页表。这一个页目录表是所有进程共享的。其后的四页页表正好映射16M物理内存,是内核和进程0的页表。以后创建进程时页表需要从主内存区申请,而页目录项直接从页目录表中取。这样进程和页目录表页存在这一一对应关系,任务号为nr的进程,对应页目录的第nr*16(nr+1)*16一共16个目录项。这样4G的线性空间由64个进程共享,每个进程分到64M

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


分享到:
评论

相关推荐

    linux 0.11 内核源码 - 免费下载

    linux 0.11 源码下载 本代码是目前能够找到的最早的Linux的...尽管Linux 0.11内核已经经历了多次更新和升级,但它的源代码仍被视为学习Unix/Linux内核的入门级材料。它是获取Unix/Linux内核设计经验和智慧的重要途径。

    linux0.11内核源码

    Linux0.11内核源码还包含了许多核心功能,例如进程管理、内存管理、文件系统、设备驱动程序、网络协议栈等。这些功能是操作系统的核心组成部分,使得操作系统能够正常地运行。对于对操作系统和计算机科学感兴趣的人...

    Linux-0.11内核源码

    Linux 0.11 内核是 Linux 内核的一个早期...虽然 Linux 0.11 内核已经经历了多次更新和升级,但它的源代码仍然被视为学习 Unix/Linux 内核的入门级别材料,更是从中汲取 Unix/Linux 内核设计的经验和智慧的重要方式。

    重庆理工大学操作系统基于Linux0.11内核的实践

    在Linux0.11的环境下完成基于内核栈切换的进程切换、地址映射与共享、终端设备的控制、proc文件系统的实现中的三个及以上实验项目。 在Linux四项任务中成功完成了四项:基于内核栈切换的进程切换,终端设备的控制,...

    linux0.11-simulation-:模拟一个简单程序运行时linux0.11对进程和内存的处理方式

    模拟一个简单程序运行时linux0.11对进程和内存的处理方式 仿真内容 以linux0.11中进程,内存,系统调用相关的代码为核心,描述了某个简单程序在linux0.11运行时的操作序列。 ,计划,释放,内存的缺页和写保护异常...

    试验四-基于内核栈切换的进程切换.zip

    (1)由于Linux 0.11进程的内核栈和该进程的PCB在同一页内存上(一块4KB大小的内存),其中PCB位于这页内存的低地址,栈位于这页内存的高地址;加4096就可以得到内核栈地址。 (2)tss.ss0是内核数据段,现在只用一...

    linux - 0.11 源码 带中文注释

    (2)仔细研读下这份linux早期代码,现在linux过于庞大,可以通过分析早期代码来熟悉linux是如何实现OS的主要模块如进程管理及调度、内存分页管理机制、字符\块设备驱动、fs、进程通信机制等等 当你把这个代码读的OK了...

    linux内核 0.11版本源码 带中文注释

    #include <linux/head.h> // head 头文件,定义了段描述符的简单结构,和几个选择符常量。 #include <asm/system.h> // 系统头文件。以宏的形式定义了许多有关设置或修改 // 描述符/中断门等的嵌入式汇编子程序。...

    Linux0.11内核main函数那些事

    本课程介绍Linux0.11版本内核如何人工设置第一个任务(task 0)以及任务0从内核态切换到用户态的详细过程。包括全局描述符表中的TSS0描述符和LDT0描述符的创建过程。与引导过程中全局描述符表及局部描述符表的创建过程...

    基于Bochs仿真Linux0.11内核块设备详解

    4、建立块设备驱动、缓冲区管理、文件系统三者之间的关系,对于多进程同时访问一块缓冲区的处理流程有更清晰和深刻的理解; 5、帮助学员搞清楚块设备驱动与中断处理程序之间的关系; 6、内核块设备表建立过程和使用...

    linux0.11源码

    该源码来自linux内核官网,代码质量较好, 不过没有中文注释,比较适合自己钻研学习。

    linux 源代码(0.11)

    赵炯的 《Linux内核完全注释》所对应的源代码 rar 格式

    linux-0.11:来自Linux内核完全注释的内容

    linux-0.11来自 Linux 内核完全注释 的内容,从 0.11 内核版本开始,完成后参考 0.12 版本进行修改.旨在加深对操作系统的理解.This repository is from this book: Linux内核完全注释, ISBN:978-7-111-14968-2.Based ...

    linux内核学习有关的资料.rar

    AT&T asm语法 bios设置图解 linux0.11下的内存管理 linux0.11-mem Linux+Kernel+Internals.pdf linux 进程源码分析 保护模式下的80386及其编程 操作系统模拟

    Linux内核源代码及分析内核.part3.rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

    Linux内核源代码及分析内核.part1.rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

    Linux内核源代码及分析内核.part4.rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

    Linux内核源代码及分析内核.part5.rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

    Linux内核源代码及分析内核.part2.rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

    Linux内核源代码及分析内核.part6(完).rar

    linux0.11源代码 LINUX内核源代码情景分析 Linux内核结构与进程管理

Global site tag (gtag.js) - Google Analytics