Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285134
  • 博文数量: 49
  • 博客积分: 3083
  • 博客等级: 中校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 08:22
文章分类

全部博文(49)

文章存档

2009年(8)

2008年(41)

分类: LINUX

2008-09-08 14:35:20

     终端处理程序栈的设置是一个配置选项。在老版本中,中断处理程序没有自己的栈,是采用的共享所终端进程的内核栈。内核栈的大小是两页。由于中断处理程序共享进程的堆栈,所以在栈中获取空间时必须非常节省。其实,所有的内核代码都是很节省的使用内核栈的,毕竟内核栈也只有那么一点。
    在2.6内核中,增加了一个编译选项#ifdef CONFIG_4KSTACKS吧栈从两页减少到一页,只提供4k的栈,这样大大减轻了内存的压力。在老版本内核中,系统每个进程都需要两页不可换出的内核内存。为了应对栈大小的减小,中断处理程序有了自己的栈,每个CPU一个,大小为4K.这个栈就称为中断栈,虽然中断栈的大小是老版本共享栈的一半,但是平均可用栈空间变大了,因为中断处理程序拥有一个自己的页面,中断栈。
阅读(1678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~