by pascal4123(http://pascal4123.cublog.cn)
Kernel(内核代码)
kernel代码按功能可分3类:
硬件/异常中断处理;
系统服务调用;
进程调度。
硬件/异常中断处理包括2个文件:asm.s,traps.c
asm.s 大部分中断处理;
traps.c 部分中断处理调用的c函数
255个中断号,0-31归为软件中断,即异常。
--------------------
中断可分为三类,第一类是由CPU外部引起的,称作中断,如I/O中断、时钟中断、控制台中断等。第二类是来自CPU的内部事件或程序执行中的事件引起的过程,称作异常,如由于CPU本身故障(电源电压低于105V或频率在47~63Hz之外)、程序故障(非法操作码、地址越界、浮点溢出等)等引起的过程。
第三类由于在程序中使用了请求系统服务的系统调用而引发的过程,称作“陷入”(trap,或者陷阱)。前两类通常都称作中断,它们的产生往往是无意、被动的,而陷入是有意和主动的。
系统调用都是通过中断int 0x80
schedule.c 内核调度程序。
阅读(887) | 评论(0) | 转发(1) |