作为一个操作系统,进程毫无疑问是最基本也是最重要的

我们的下一个重大目标应该是实现一个进程。再进一步,我们应该逐渐拥有多个进程。

如果从进程本身的角度来看,它只不过是一段执行的代码。这样看来它跟我们已经实现的代码没有本质的区别

可是,如果从操作系统的角度来看,进程必须是可控制的,所以这就涉及到进程和操作系统之间的转换。

因为cpu只有一个,同一个时刻要么是客户进程在运行,要么是操作系统在运行,我们应该清楚,如果实现进程

需要一种控制权转换机制,这种机制就是中断。

------------------------------------------------------------------------------

现在该给这些中断和异常的处理程序统统加上的时候了。虽然它们总数有十几个,但我们可以用相似的方法来处理它们。

中断或异常发生时,eflags,cs,eip已经被压入堆栈,如果有错误码的化,错误码也被压入堆栈。

所以我们对异常处理的总体思想是,如果有错误码,直接把向量号压入堆栈,然后执行一个函数exception handler

如果没有错误码,则先在堆栈中压入0xFFFFFFFF,再把向量号压入堆栈,然后执行exception handler

P226,自己动手写操作系统。

----------------------------------------------------------------------------------------------------------------------

转载于:https://www.cnblogs.com/wanghj-dz/archive/2011/05/15/2046947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值