操作系统内核与多线程设计解析

1、考虑以下服务,将它们分类为在内核中进行或在内核外进行。分别对微内核和混合内核系统进行分类。a. 打开和关闭文件 b. 写入寄存器 c. 读取内存单元 d. 接收短信 e. 播放音频片段。

在微内核系统中:

  • a、b、c 通常在内核中进行
  • d、e 通常在用户空间(内核外)进行

在混合内核系统中:

  • a、b、c 也在内核中进行
  • d、e 可能部分功能在内核实现以提高性能,但也有部分在用户空间

2、软件中断有很多用途。请想出计算机系统中软件中断的其他例子。(提示:将软件中断视为事件。)

  1. 错误发生时触发的中断,例如读取文件超出文件末尾。
  2. 使操作系统执行特定操作的中断,例如系统定时器超时。
  3. 没有既定服务例程的中断,通常由特定软件应用程序设置和驱动。
  4. 显式发送的中断,例如 Unix 允许通过特殊系统调用向操作系统发送“信号”。
  5. 通过进行函数调用透明生成的中断,例如许多 Symbian OS 系统调用会生成软件中断。

3、以下哪些操作应在内核的特权模式下完成?a. 读写文件 b. 发送短信 c. 用相机拍照 d. 通知程序数据已接收 e. 切换CPU上的进程 f. 从内存单元读取数据。

a、e

4、系统通常在硬件中内置多个缓存,我们称之为L1和L2。为什么多级缓存有用?

多级缓存的作用

多级缓存能在快速的寄存器存储和较慢的主存之间起到缓冲作用。

缓存层次结构

不同级别的缓存速度和成本不同,形成层次结构。

缓存级别比较

例如 L1 缓存比 L2 缓存更快、更贵。

设计优势

这样的设计可以根据数据访问的频率和速度需求,将数据存储在合适级别的缓存中,提高数据访问效率,减少硬件等待从主存读写数据的时间,释放 CPU 进行更多程序执行。

5、如我们所讨论的,塞班操作系统使用两级内核空间操作:执行调用和内核服务器请求。为什么这是必要的?为什么执行调用不能在内核中创建对象?(提示:思考微内核中服务器的作用)

两级内核空间操作必要的原因

两级内核空间操作的必要性主要体现在微内核设计的结构特点上:

  • 最小系统功能和数据置于内核 :在微内核架构中,仅将最基本、不可或缺的系统功能和数据保留在内核空间中。
  • 其他功能分散到用户空间服务器 :多数系统功能被移至用户空间,作为独立的服务器运行。
  • 服务器通过执行调用进入内核 :在需要执行特定内核操作时,用户空间服务器通过执行调用(如系统调用)进入内核空间完成任务。
  • 分层设计的优势
  • 内核结构更加简洁,减少了内核复杂性。
  • 用户空间服务器可以按需启动和终止,灵活管理资源。
  • 内核中的数据表保持更干净,提升系统稳定性和可维护性。

执行调用不能创建对象的原因

尽管执行调用可以修改内核空间中的对象,但某些操作(如创建或删除对象)必须由内核服务器来完成:

  • 服务器负责保护内核资源 :内核资源的操作请求必须通过特定的服务器进行中介,确保访问控制和安全性。
  • 对象管理的限制
  • 执行调用仅允许对已有内核对象进行修改。
  • 创建或删除对象等操作必须由服务器发起请求给内核处理。
  • 确保资源安全和合理管理 :通过将对象创建和删除操作限制在服务器层面,可以更有效地控制资源的生命周期,防止非法或不当操作,保障系统的安全性和一致性。

6、塞班操作系统采用面向对象的设计。指出面向对象设计在哪些方面有助于其设计策略。

  1. 系统调用方面:

在塞班操作系统中,系统调用涉及系统或内核端对象,抽象概念贯穿系统设计。例如,Unix系统创建文件描述符并将其作为参数用于打开调用,而塞班操作系统会创建 RFile 类的对象并调用与该对象关联的 open() 方法。用户无需了解文件对象的具体实现方式,只需创建 RFile 对象并使用其方法即可,体现了面向对象设计的封装性和抽象性,使系统设计更简洁、灵活。

  1. 继承特性方面:

塞班操作系统继承自EPOC,具有面向对象的特性。这种继承有助于系统复用EPOC的优秀设计和功能,同时可以在此基础上进行扩展和改进,符合面向对象设计中的继承原则,提高了系统的可维护性和可扩展性。

7、塞班操作系统(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值