linux0.11中的进程
来源:互联网 发布:wall control软件下载 编辑:程序博客网 时间:2024/05/16 06:19
《linux内核设计的艺术》书中提到,“操作系统最难和最有价值的是它的整体,整体看明白了,局部才能清楚。”本章讲一下linux0.11中进程的一些整体情况,希望对大家有一些帮助。
一、首先,Linux0.11中进程如此安排,达到的效果便是:根据进程的进程号,便可以知道进程的一切。
涉及到的结构:
struct task_struct* task[64]
GDT,LDT (具体类型不好说,其实也是个结构体数组啊)
_pg_dir pg0 pg1等
1. 根据进程号和task[],便可以找到进程的pcb(在主内存区,占有一页);
2. 根据进程号,即可在GDT相对位置找到该进程的LDT和TSS描述符;
3. 根据进程号,即可在页目录表的相对位置找到属于该进程的页目录项。(当然,逻辑地址转换的时候,还要根据ldt,先加上段基址,然后转化为逻辑地址)
二、地址转换过程
逻辑地址(段内偏移地址) ==》
分段机制,找到该段的段描述符,加上获取的段基址(linux0.11中为“进程号*64M”)
线性地址 ==》
分页机制,截取线性地址的不同位,分别作为页目录表索引、页表索引和页内偏移地址
物理地址
三、进程涉及到的结构在内存中的位置(进程0比较特殊)
1.PCB,在主内存区占有一页内存,进程创建时临时申请;
2.内核态栈,在主内存区和PCB共享一页,不过在页的末端,向低地址方向增长(反正是共享一页,分处两端);
3.代码段和数据段,在主内存区,进程创建时临时申请;
4.用户态栈,位于数据段所在区域的末端(有点类似内核态栈和PCB的意思,不过用户栈和数据段共享的一般不只一页);
以上如有错误,欢迎大家指正!
- linux0.11中的进程
- linux0.11 进程切换
- Linux0.11 进程0
- linux0.11相关进程数据结构
- Linux0.11内核进程数据结构
- linux0.11进程调度分析
- Linux0.11进程创建函数fork()
- Linux0.11内核--进程相关数据结构
- Linux0.11内核--fork()函数创建进程
- linux0.11分析之创建进程
- Linux0.11内核--进程的结束
- Linux0.11内核--进程的结束
- Linux0.11进程切换和TSS结构
- Linux0.11内核 进程睡眠和唤醒
- Linux0.11 由进程睡眠函数sleep_on()中的堆栈变量tmp引发的思考 关于进程内核堆栈
- 对Linux0.11 中 进程0 和 进程1分析
- Linux0.11内核--8086中的实模式
- linux0.11
- javaScript 的小技巧
- Inventory Period Has A Status Of ''Closed Not Summarized''
- IOS系列——自定义导航条
- 范式
- 设计模式介绍之二:单例模式(Singleton)
- linux0.11中的进程
- html语义化
- StringBuilder对象Capacity属性
- 排序
- 安装gentoo的点点滴滴(一)
- lua实现的状态机
- onvif开发之设备发现功能的实现
- python 的全排列
- 排序--计数排序思想及其代码实现