读书频道 > 系统 > 其他综合 > 深入理解UNIX系统内核
2.9 小结
2015-06-30 15:50:32     我来说两句 
收藏    我要投稿   

本文所属图书 > 深入理解UNIX系统内核

本书由国际资深UNIX专家撰写,深入剖析UNIX操作系统的内核技术,包含丰富的图示与细节展示。作者从操作系统设计的角度来审视UNIX系统内核,针对内核中的每个模块,深入探讨其结构和设计,详细阐释主流UNIX系统如  立即去当当网订购

我们已经介绍了传统UNIX内核中内核与用户进程之间的交互。这给了我们一个非常广阔的视野,也为我们提供了后面详细探讨系统指定部分所需要的知识。像SVR4和Solaris 2.x这样的变种已经引入了一些高级特性,在后续的章节中我们会做详细介绍。

2.10 练习题

1.  当处理(a)上下文切换,(b)中断,(c)系统调用时,进程上下文中哪些元素是要内核显式保存的?

2.  动态分配像proc结构和描述符表块(descriptor table block)这种对象的优点是什么?缺点是什么?

3.  内核是如何知道要进行哪个系统调用的?它是如何访问调用参数(用户栈上的内容)的?

4.  比较处理系统调用和异常时的相似之处和区别。

5.  许多UNIX系统通过为其他版本的系统调用提供用户库函数的方法来与其他UNIX版本兼容,如果真有这样的情况,为什么应用程序开发人员需要关心函数是通过库还是系统调用实现的?

6.  当库开发人员选择通过用户库而不是系统调用来实现函数时,需要考虑哪些问题?当库必须用多个系统调用实现函数时又会怎样?

7.  为什么限制中断处理程序的工作量非常重要?

8.  在有n种不同优先级的系统上,一次最多可以嵌套多少个中断?对各类栈的大小有什么影响?

9.  Intel 80x86架构并不支持中断优先级。它提供了中断管理的两个指令:禁用所有中断的CLI指令和启用所有中断的STI指令。以软件的形式编写一个算法,来在这样的机器上实现一个中断优先级别。

10.  当某个资源变为可用时,wakeup()例程唤醒阻塞在该资源上的所有进程。这种方法有什么缺点?有没有其他方法?

11.  假设有一个新的系统调用结合了fork和exec的功能。定义它的接口和语义。它应如何支持像I/O重定向、前台或后台执行,以及管道等特征?

12.  从exec系统调用返回一个错误会有什么问题?内核应如何处理这个问题?

13.  为你所选择的UNIX系统,编写一个允许进程等待其父进程终止的函数。

14.  假设某个进程不希望在有子进程退出之前一直阻塞,直到子进程终止。它如何确保子进 程终止以后被清除?

15.  为什么一个正在终止的进程会唤醒它的父进程。

参考文献



 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.8.7 僵死进程
下一篇:3.1 简介
相关文章
图文推荐
2.7.12 使用仿真器查
2.7.11 栈和寄存器组
2.7.8 出栈
2.7.7 压栈
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站