linux0.12内核的内存组织和进程结构

2023-10-27

进程结构

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

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

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

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

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

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

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



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux0.12内核的内存组织和进程结构 的相关文章

  • 无框架的底层代码实现普通RNN、LSTM的正反向传播过程及应用

    1 准备 首先导入所需要的包rnn utils py import numpy as np def softmax x e x np exp x np max x return e x e x sum axis 0 def sigmoid
  • 4小时入门深度学习+实操MMDetection 第二课

    视频 4小时入门深度学习 实操MMDetection 第二课 目标检测工具包 一完成目标检测 二完成实例分割 很方便可以进行模块替换 pytorch 4万多star 几行pathon API即可调用强大的检测能力 配置文件修改 可以训练自己
  • Linux命令行——touch命令详解

    1 命令功能 touch命令用于创建文件或修改文件 目录的时间戳 了解时间戳 可以查看Linux命令行 stat命令详解 2 语法格式 touch option file 3 参数选项 无选项 若文件不存在 则创建新的空文件 access
  • 【shell实战案例】批量注释nginx的重定向并进行文件对比

    业务背景 线上配置中nginx存在大量 return 301重定向的配置 根据必须注释 文件夹下有大量文件 每个文件都有很多行 由于登录服务器有点麻烦 希望通过shell脚本处理 如何注释 ls xargs I sed i 301 s 解释
  • 基于ESP8266的遥控小车

    如何操控小车 这个问题问的好 相信许多学习过单片机的小伙伴们都知道我们控制一个硬件的方法有很多种 例如红外遥控 蓝牙遥控等等 但是我们今天介绍的是用wifi和服务器进行遥控 那么wifi怎么控制我们的小车呢 其实原理与蓝牙相似 只不过esp
  • 开始第一张“码绘”——使用P5.JS画出旋转的爱心

    用P5 JS画出旋转的爱心 首先我们来看看想实现的原图 对这张图片进行观察可以发现图中一共有16颗相同的爱心在旋转 我们拿出其中一个爱心进行分析 我们可以发现 这个爱心是由27个正方体构成 此处应该注意的是 是正方体 而不是正方形 应该用b

随机推荐

  • Android:多进程的开启方式、注意点以及如何解决。

    前言 线程是CPU调度的最小单元 而进程一般指一个执行单元 在PC和移动设备上指一个程序或者一个应用 一个进程可以包含多个线程 进程和线程是包含与被包含的关系 在很多中情况下我们需要开启多进程 最常见的比如某一个模块会占用很多的内存且比较独
  • Python——异常处理

    文章目录 异常 Python中的异常类 捕获与处理异常 自定义异常类 with语句 断言 异常 异常是在程序执行过程中发生的影响程序正常执行的一个事件 异常是Python对象 当Python无法正常处理程序时就会抛出一个异常 一旦Pytho
  • An error happened during template parsing (template: "class path resource [templates/XXX.html]解决

    最近使用SpringBoot用到一个thymeleaf 其实相对于JSP来说我觉得还挺有意思的 它的页面是一个html 但是他可以在获得结果后替换HTML上的对应的东西 去网上搜各种优点 开箱即用 动静结合 与SpringBoot完美兼容等
  • Linux Hadoop2.7.3 安装(单机模式) 一

    Linux Hadoop2 7 3 安装 单机模式 一 Linux Hadoop2 7 3 安装 单机模式 二 java环境安装 http www cnblogs com zeze p 5902124 html java 环境安装配置 et
  • 堆栈与队列的区别

    队列只能在队头做删除操作 在队尾做插入操作 而栈只能在栈顶做插入和删除操作 栈就是一个桶 后放进去的先拿出来 它下面本来有的东西要等它出来之后才能出来 堆是在程序运行时 而不是在程序编译时 申请某个大小的内存空间 即动态分配内存 对其访问和
  • Linux进程间通信-消息队列

    首先上篇文章我们说到了Linux下进行进程间通信的一种方法或机制匿名管道和命名管道 那么这里要说的是另外一种与之不同的通信方法 即消息队列 两者之间有相同也有不同的地方 具体的下面就一一介绍 一 什么是消息队列 首先它也是一种进行进程间通信
  • Linux Shell如果ping失败就重启网卡(详解)

    直接上脚本 vi tmp ping check sh bin bash IP 1 1 1 1 PacketLoss ping c 4 w 4 1 1 1 1 grep packet loss awk F packet loss print
  • LaTeX 加粗

    本系列文章由 yhl leo 出品 转载请注明出处 文章链接 http blog csdn net yhl leo article details 50997822 LaTeX中文本加粗的方法 给出代码示例 一看就懂 documentcla
  • hadoop put指令失败

    hadoop fs put 指令输入之后 出现 put File 1 txt COPYING could only be replicated to 0 nodes instead of minReplication 1 There are
  • centos 7下mysql5.7 主从数据库同步配置

    1 Master主服务器配置 192 168 1 3 1 编辑my cnf 命令查找文件位置 find name my cnf vi etc mysql my cnf 在 mysqld 中添加 server id 1 log bin mas
  • xshell连接虚拟机慢 ,输入命令卡顿解决方案?

    原因 连接时进行了默认检测DNS是否一致 导致速度缓慢 解决 vi etc ssh sshd config 将注释UseDNS yes 去掉注释符 并将yes替换成为no 最后重启sshd服务systemctl restart sshd 效
  • 小米路由器3刷X-Wrt固件教程

    之前写过一篇 小米路由器3刷潘多拉固件教程 导致一些朋友不小心刷成砖了 在此给这些朋友道个歉 虽说刷机有风险 我也按照官方的教程写的 自己也没遇到什么问题 但是还是有很多朋友刷成砖了 那应该还是和我的教程有关系 在此只能和各位朋友说声对不起
  • 如何做好开发团队负责人---管别人先管好自已,请从做一名合格程序员开始

    开发经理 开发组长 开发经理是团队中的大师那就该是整个团队工作中的榜样 无论是工作效率 态度 分析设计水平 业务知识 技术能力各方面都要努力让自己成为团队成员榜样 开发经理除了安排好目前工作之外还需要主动学习 不断提高自己的业务和技术水平
  • 2023年最新的Vue全套面试题(含答案)

    个人录制的Vue全套项目学习视频 请观看B站 小胖梅 的个人空间 哔哩哔哩 Bilibili Vue2 第二版 后台管理系统项目实战 vue element ui vue经典全套系统案例讲解 哔哩哔哩 bilibili 2023前端高频面试
  • Internet的组成

    Internet 是一个覆盖全球的网络 规模很大 Internet从组成上看有哪几个部分 大致上我们可以分为两部分 一部分叫做边缘部分 另外一部分我们叫做核心部分 所谓的边缘部分就是我们看到的这张图中边上的蓝色环部分 这一部分主要的是各种计
  • 微信第三方开放平台上传审核小程序

    转载链接 http www php cn weixin kaifa 406993 html 第一步 申请微信开放平台帐号并创建第三方平台 第二步 公众号 小程序授权给第三方平台 1 2 3 4 5 6 7 8 9 10 11 12 13 1
  • 分布式系统之数据分片

    分布式系统之数据分片 详细参考 http www cnblogs com xybaby p 7076731 html
  • 《计算机网络-运输层概述》

    5 1运输层协议概述 5 1 1进程之间的通信 运输层向他上面的应用层提供通信服务 属于面向通信的最高层和用户功能的最底层 当网络边缘部分两台主机通信时 只有主机的协议栈才有运输层 而网络的核心部分中的路由器转发分组时都只用到了下三层的功能
  • Python数据分析-pandas基础-2-DataFrame基础操作

    一 索引 1 基础索引方式 import pandas as pd df pd DataFrame col1 1 2 3 4 5 col2 6 7 8 9 0 df gt col1 col2 0 1 6 1 2 7 2 3 8 3 4 9
  • linux0.12内核的内存组织和进程结构

    进程结构 Linux0 12中的每个进程都有如下的结构 在gdt中占有两项 一项是tss段描述符 一项是ldt段描述符 在task数组中占有一项 指向一页物理内存 该物理内存低端是进程控制块task struct 里面包括tss段和ldt段