陷阱
计算机术语
陷阱,是计算机术语。
基本介绍
陷阱指的是当异常或者中断发生时,处理器捕捉到一个执行线程,并且将控制权转移到操作系统中某一个固定地址的机制。现代操作系统是由中断驱动的,中断分为硬件中断和软件中断。而陷阱属于一种软件中断。如果计算机没有进程要执行,没有用户响应请求,操作系统将等待某个事件的发生。而事件总是由中断或者陷阱引起的。
在“简单网络管理协议”(SNMP) 中,代理发送给管理系统的消息,表示在运行代理的主机上有事件发生
操作方法
大家都知道,现代的CPU都是有优先级概念的,用户程序运行在低优先级,操作系统运行在高优先级。高优先级的一些指令低优先级无法执行。有一些操作只能由操作系统来执行,用户想要执行这些操作的时候就要通知操作系统,让操作系统来执行。用户态的程序就是用这种方法来通知操作系统的。
具体怎样做的呢?操作系统会把这些功能编号,比如向一个端口写一个字符的功能调用编号 12,有两个参数,端口号 port 和写入的字符 bytevalue。我们可以如下实现:
int outb(int port, int bytevalue)
__asm mov r0, 12; /* 功能号 */
__asm mov r1, port; /* 参数 port */
__asm mov r2, bytevalue; /* 参数 bytevalue */
__asm trap /* 陷入内核 */
return r0; /* 返回值 */
在操作系统的 trap 处理的 handler 里面,相信大家已经知道怎么办了。有些敏感的读者可能已经明白了,原来一部分 C库函数是用这种方法实现的。
参考资料
最新修订时间:2024-07-25 09:36
目录
概述
基本介绍
操作方法
参考资料