上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页

2011年5月20日

进程的进程表、进程体、GDT、TSS的关系,以及进程表的初始化

摘要: 关系见P252,图6-9进程表与GDT的关系:进程表里的LDT Selector对应GDT中的一个描述符,而这个描述符所指向的内存空间就存在与进程表内。进程表与进程体的关系:进程表是进程的描述,进程运行过程中如果被中断,各个寄存器的值都会被保存进进程表中。使用到进程表堆栈。但是,在我们的第一个进程开... 阅读全文

posted @ 2011-05-20 08:29 wanghj_dz 阅读(3296) 评论(0) 推荐(0) 编辑

2011年5月19日

restart函数 详细解释

摘要: sconst.inc proc.hP_STACKBASEequ0typedef struct s_stackframe{ GSREGequP_STACKBASE u32 gsFSREGequGSREG+ 4 u32 fsESREGequFSREG+ 4 u32 esDSREGequESREG+ 4... 阅读全文

posted @ 2011-05-19 15:56 wanghj_dz 阅读(848) 评论(0) 推荐(0) 编辑

进程代码结构

摘要: sconst.incP_STACKBASEequ0GSREGequP_STACKBASEFSREGequGSREG+ 4ESREGequFSREG+ 4DSREGequESREG+ 4EDIREGequDSREG+ 4ESIREGequEDIREG+ 4EBPREGequESIREG+ 4KERNELESPREGequEBPREG+ 4EBXREGequKERNELESPREG+ 4EDXREGequEBXREG+ 4ECXREGequEDXREG+ 4EAXREGequECXREG+ 4RETADRequEAXREG+ 4EIPREGequRETADR+ 4CSREGequEIPREG+ 4 阅读全文

posted @ 2011-05-19 13:19 wanghj_dz 阅读(306) 评论(0) 推荐(0) 编辑

2011年5月18日

启动进程所需要的基本条件(转载)

摘要: http://blog.csdn.net/RichardYSteven/archive/2008/12/25/3606398.aspx进程是现代计算机系统运行的最小单位,所以没有进程也不能称之为操作系统。当系统启动后,设置了GDT, IDT进入了保护模式后,需要哪些东西才能让进程跑起来呢?其实简单说来进程产生的目的并不是要让程序跑起来,而是要让一个系统上有多个进程一起跑。因为如果一个系统上只有一个所谓的“进程”在跑,那就没有必要保存再恢复进程的运行环境了。 好,来看看都要加哪些东西才能够让进程跑起来。1.TSS 2. 进程体本身3. 进程表 TSS主要用来保存ring0特权级的ss:esp,且 阅读全文

posted @ 2011-05-18 10:23 wanghj_dz 阅读(508) 评论(0) 推荐(0) 编辑

<自已动手写操作系统>进程实现 (转载)

摘要: <自已动手写操作系统>进程实现 进程也许是计算机科学史上最成功的人造概念之一,以前看其它的操作系统书时,也总是浓墨重彩,但遗憾的是,除了留一下点印象,始终无法形成形象思维,究其原因,通常上来就是抽象概念定义,接着是锁,信号量之类的,基本的都没有理解,后面的基本上也是扯蛋了。本书这一章的亮点是不空谈理论,先引导读者稍微思考一下本质问题,再马上进入实战。 我们的程序以文件的形式存储在磁盘上,本质上就是一堆二进制编码,究竞要怎么样才能在计算机上运行?从计算机的角度来说,必须首先把程序加载到内存,并设置好相应的寄存器值,其中包括代码段,数据段,堆栈段。我们怎样知道这一块二进制编码那些是数据 阅读全文

posted @ 2011-05-18 08:52 wanghj_dz 阅读(469) 评论(0) 推荐(0) 编辑

2011年5月17日

protect.c 详细解释

摘要: /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ protect.c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Forrest Yu, 2005++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/#include "type.h"#include "const.h"#include 阅读全文

posted @ 2011-05-17 10:55 wanghj_dz 阅读(936) 评论(0) 推荐(0) 编辑

2011年5月16日

进程(转载)

摘要: http://hi.baidu.com/6121017/blog/item/529f3916dae89d54f3de32f8.html【进程】一、 多进程运行 何谓进程。进程就是指某个时刻CPU执行的一个任务。该任务有独立的CPU环境、以及资源内存等数据。 在单任务的DOS系统时,所有任务的资源、内存、CPU环境都是共享的,只要其中某个任务改变了这些共享的数据,那么所有任务的环境就都跟着变了。这样的操作实在不好控制,如果想要每个进程都拥有独立的资源、内存、CPU环境。该如何去实现呢?这里就要对进程进行调度,简称进程调度, 这是多任务操作系统的特性!!!在多大数情况下PC机上只有一个CPU,那么 阅读全文

posted @ 2011-05-16 16:13 wanghj_dz 阅读(311) 评论(0) 推荐(0) 编辑

【进程续】(转载)

摘要: http://hi.baidu.com/6121017/blog/item/529f3916dae89d54f3de32f8.html【进程续】一、进程的启动:现在我们已经熟悉了启动一个进程的需求和主要步骤,它的动作也就是:×准备IDT、TSS、LDT(该LDT描述符在GDT中。但是LDT局部的描述符在进程表的ldts[LDT_SIZE]字段中.)初始化IDT,也就是定义好GATE描述符。将其0门描述符对应IRQ0(VECTOR),也就是按386模式规定的中断异常处理机制。接着自己定义0x20向量对应8259A的主片IRQ0,0x28对应8259A的从片IRQ8.这需要自己对8259 阅读全文

posted @ 2011-05-16 16:02 wanghj_dz 阅读(347) 评论(0) 推荐(0) 编辑

中断与进程分析(转载)

摘要: http://blog.sina.com.cn/s/blog_48ed03c80100mh4u.html操作系统实践之中断程序分析%macro hwint_master 1 call save in al, INT_M_CTLMASK or al, (1 << %1) out INT_M_CTLMASK, al mov al, 20h out 20h, al sti push %1 call [irq_table+4*%1] ;调用真正的处理函数 add esp, 4 cli in al, INT_M_CTLMASK and al, ~(1 << %1) out INT 阅读全文

posted @ 2011-05-16 15:36 wanghj_dz 阅读(437) 评论(0) 推荐(0) 编辑

原来进程是这样切换的(转载)

摘要: http://www.cppblog.com/myjfm/archive/2011/01/09/138216.html/***********************支持原创*************************/下面这个结构就是最简陋不过的一个进程表(又称进程控制块,我更习惯于它)。typedef struct process_struct{ STACKFRAME registers; int16 ldt_selector; DESCRIPTOR ldt[LDT_SIZE]; int32 pid; char pname[32];}PROCESS;这个结构的开始是另外一个结构STA 阅读全文

posted @ 2011-05-16 15:21 wanghj_dz 阅读(378) 评论(0) 推荐(0) 编辑

上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页

导航