1、考虑以下服务,将它们分类为在内核中进行或在内核外进行。分别对微内核和混合内核系统进行分类。a. 打开和关闭文件 b. 写入寄存器 c. 读取内存单元 d. 接收短信 e. 播放音频片段。
在微内核系统中:
- a、b、c 通常在内核中进行
- d、e 通常在用户空间(内核外)进行
在混合内核系统中:
- a、b、c 也在内核中进行
- d、e 可能部分功能在内核实现以提高性能,但也有部分在用户空间
2、软件中断有很多用途。请想出计算机系统中软件中断的其他例子。(提示:将软件中断视为事件。)
- 错误发生时触发的中断,例如读取文件超出文件末尾。
- 使操作系统执行特定操作的中断,例如系统定时器超时。
- 没有既定服务例程的中断,通常由特定软件应用程序设置和驱动。
- 显式发送的中断,例如 Unix 允许通过特殊系统调用向操作系统发送“信号”。
- 通过进行函数调用透明生成的中断,例如许多 Symbian OS 系统调用会生成软件中断。
3、以下哪些操作应在内核的特权模式下完成?a. 读写文件 b. 发送短信 c. 用相机拍照 d. 通知程序数据已接收 e. 切换CPU上的进程 f. 从内存单元读取数据。
a、e
4、系统通常在硬件中内置多个缓存,我们称之为L1和L2。为什么多级缓存有用?
多级缓存的作用
多级缓存能在快速的寄存器存储和较慢的主存之间起到缓冲作用。
缓存层次结构
不同级别的缓存速度和成本不同,形成层次结构。
缓存级别比较
例如 L1 缓存比 L2 缓存更快、更贵。
设计优势
这样的设计可以根据数据访问的频率和速度需求,将数据存储在合适级别的缓存中,提高数据访问效率,减少硬件等待从主存读写数据的时间,释放 CPU 进行更多程序执行。
5、如我们所讨论的,塞班操作系统使用两级内核空间操作:执行调用和内核服务器请求。为什么这是必要的?为什么执行调用不能在内核中创建对象?(提示:思考微内核中服务器的作用)
两级内核空间操作必要的原因
两级内核空间操作的必要性主要体现在微内核设计的结构特点上:
- 最小系统功能和数据置于内核 :在微内核架构中,仅将最基本、不可或缺的系统功能和数据保留在内核空间中。
- 其他功能分散到用户空间服务器 :多数系统功能被移至用户空间,作为独立的服务器运行。
- 服务器通过执行调用进入内核 :在需要执行特定内核操作时,用户空间服务器通过执行调用(如系统调用)进入内核空间完成任务。
- 分层设计的优势 :
- 内核结构更加简洁,减少了内核复杂性。
- 用户空间服务器可以按需启动和终止,灵活管理资源。
- 内核中的数据表保持更干净,提升系统稳定性和可维护性。
执行调用不能创建对象的原因
尽管执行调用可以修改内核空间中的对象,但某些操作(如创建或删除对象)必须由内核服务器来完成:
- 服务器负责保护内核资源 :内核资源的操作请求必须通过特定的服务器进行中介,确保访问控制和安全性。
- 对象管理的限制 :
- 执行调用仅允许对已有内核对象进行修改。
- 创建或删除对象等操作必须由服务器发起请求给内核处理。
- 确保资源安全和合理管理 :通过将对象创建和删除操作限制在服务器层面,可以更有效地控制资源的生命周期,防止非法或不当操作,保障系统的安全性和一致性。
6、塞班操作系统采用面向对象的设计。指出面向对象设计在哪些方面有助于其设计策略。
- 系统调用方面:
在塞班操作系统中,系统调用涉及系统或内核端对象,抽象概念贯穿系统设计。例如,Unix系统创建文件描述符并将其作为参数用于打开调用,而塞班操作系统会创建 RFile 类的对象并调用与该对象关联的 open() 方法。用户无需了解文件对象的具体实现方式,只需创建 RFile 对象并使用其方法即可,体现了面向对象设计的封装性和抽象性,使系统设计更简洁、灵活。
- 继承特性方面:
塞班操作系统继承自EPOC,具有面向对象的特性。这种继承有助于系统复用EPOC的优秀设计和功能,同时可以在此基础上进行扩展和改进,符合面向对象设计中的继承原则,提高了系统的可维护性和可扩展性。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



