摘要: (五):系统调用的实现1:实现系统调用实现一个系统调用就是考虑他的用途,每一个系统调用都有一个确定的用途,在Linux中不提倡采用多用途的系统调用(一个系统调用通过传递不同的参数值来选择完成不同的工作)。2:参数验证系统调用必须仔细检查他们所有的参数是否合法有效。最重要的一项检查就是... 阅读全文
posted @ 2015-06-23 20:35 陈洪波 阅读(167) 评论(0) 推荐(0) 编辑
摘要: (一):与内核通信系统调用在用户空间和硬件设备之间添加了一个中间层。该层主要有三个作用:​1:他为用户空间提供了一种硬件的抽象接口​2:系统调用保证了系统的稳定和安全。​3:每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑。在Linux中... 阅读全文
posted @ 2015-06-23 20:31 陈洪波 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 紧接上一篇!!(二)抢占和进程上下文上下文切换,就是从一个可执行进程切换到另一个可执行进程,由定义在kernel/sched.c中的context_switch()函数处理,该函数主要完成两项基本工作:​1:调用声明在asm/mmu_context.h中的switch_mm(),该函... 阅读全文
posted @ 2015-06-23 11:13 陈洪波 阅读(129) 评论(0) 推荐(0) 编辑
摘要: (一)睡眠和唤醒休眠(被阻塞)的进程处于一个特殊的不可执行状态。无论什么原因,导致进程进入休眠状态,内核的操作都是相同的:进程把自己标志成休眠状态,从可执行红黑树中移出,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程正好相反,进程把自己标志成可运行状态,... 阅读全文
posted @ 2015-06-23 11:08 陈洪波 阅读(154) 评论(0) 推荐(0) 编辑