操作系统第2章作业题答案

题目一:请指出执行系统调用时向操作系统传递参数的三种常用方式分别是什么,并分别说明在哪些情况下适合采用哪种方式。
三种方式分别为
1,寄存器传递,在传递的参数占用空间较小,传递参较少时使用,比如在中断返回时传递一个参数时 使用eax寄存器传递中断类型
2,内存的块和表传递,当需要传递的参数总大小大于寄存器数量时,可以通过将块的首地址和大小通 过寄存器传递,如使用I/O输出字符串时,通常使用两个寄存器一个存入起始地址,一个存入字符串长 度来作为参数传递。
3,使用栈传递,通过将参数压入栈中然后通过操作系统弹出使用,这种方法所允许传入的参数大小是 最大的,常见的为我们一般使用的函数的参数就是通过栈传递的。

题目二:操作系统中为什么要将机制和策略区分开来? 请查找文献并以实际操作系统中的案例来举例说明其好处。
机制可以理解为“提供基本的功能”而策略为“使用这些功能的方案”,机制与相关的硬件设备和算 法有关,机制与设计人员的设计方案有关,而机制和策略区分可以保证操作系统能够很容易的被修改, 因为当我们需要修改操作系统一些相关功能的时候,我们可以直接更改我们的策略而不用修改我们的 机制,这样能够为操作系统的设计节省很大时间开销,同时如果后面硬件升级,我们可以直接在策略 不变 的情况下升级机制,这样也能增加操作系统的可维护性。

最典型的案例就是手机中的耳机问题:当没有区分机制和策略的时候,操作系统一般设计为当插头检 测到有耳机插入的时候,就关闭扬声器,声音转向耳机;当检测到耳机拔出的时候,就关闭耳机通道, 声音转向扬声器。虽然这个适用于大多数情况,但如果在插上耳机的情况下,有闹钟发生,我们希望 的仍是扬声器发出声音,在这种情况下如果机制和策略不分离,就很难以完成,而在机制与策略分离 的情况下,只要修改策略就能够实现在这类特殊情况的需求
所以作为底层的机制就不能擅自去实现策略。只需要提供相关的功能即可,而上层根据需要来调用这些接口。所以机制和策略需要区分开来。

题目三:操作系统采用微内核设计的主要优点是什么? 用户程序和系统服务在微内核结构内如何相互影响? 采用微内核设计的缺点又是什么?

微内核是内核的一种精简形式。将通常与内核集成在一起的系统服务层被分离出来,变成可以根据需求加入的选件,这样就可提供更好的可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。其优点在于
1,因为系统服务层被分离出来所以能够使得不同的API,文件系统,甚至不同的操作系统的特性在一个系统中共存。
2,系统非常灵活。当运行一个应用程序时,只需把选定的系统服务加载到系统中即可。而修改了服务以后可以通过联机进行测试;并不需要重新构建或者启动一个新的内核,他们并不影响系统的运行。
3,系统服务或者设备驱动故障和与它们有关的运行任务是隔绝的。
4,依存关系的服务器系统可以加以限制,使为安全重要至关信赖的计算基数的应用可被削减。
5,这种由微内核所决定的结构(IPC,多线程)能够应用在所有的应用程序和服务上。一个精炼的微内核接口能够有演绎成更多模块的系统结构。
用户程序和系统服务是通过进程间的通信机制在微内核内相互作用互相传递消息。
由于微内核只是内核的一种精简模式,所以系统的核心只实现了最基本的系统操作,这样内核以外的外部程序之间由于独立运行使得系统难以进行良好的整体优化。且进程间相互通信的开销也较单一内核系统大得多。

题目四:在第二章中介绍了一个从一个源文件向一个目标文件复制内容的程序。请用 Win32 或 POSIX 的 API 写出这个 C 程序,并确保你的 C 程序中包括了所有必要的错误检测(如文件是否存在等)。
在win32 API代码如下:

#include<stdio.h>
#include<stdlib.h>
#include <Windows.h>
int main(int argc,char** argv)
{
   
    if(argc!=3)//main函数中第一个参数,int型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数,在VS中默
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值