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

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 内核设计的经验和智慧的重要方式。

    Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行

    文章涵盖了编译 Linux 0.11 内核源代码、Bochs 2.6.9 下的调试运行、问题定位和解决方法等方面的知识点。 一、编译 Linux 0.11 内核源代码 编译 Linux 0.11 内核源代码需要使用 GCC 编译器。在 Ubuntu 18.04 环境...

    重庆理工大学操作系统基于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内核结构与进程管理

Global site tag (gtag.js) - Google Analytics