Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303727
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-23 17:54
个人简介

做一个“好”人... 思想上会思考; 生活上有追求; 技术上不停步; 工作上有担当;

文章分类

全部博文(163)

文章存档

2016年(1)

2015年(143)

2014年(19)

我的朋友

分类: LINUX

2015-11-30 23:44:36

原文地址:Linux内核0.11笔记(8) 作者:pascal4123

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 内核调度程序。
 
阅读(584) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~