操作系统概念第二章部分作业题答案

题目一:
请指出执行系统调用时向操作系统传递参数的三种常用方法分别是什么,并分别说明在哪些情况下适合采用哪种方法。

解答:
1、最简单的是通过寄存器来传递参数。一般是用于参数数量比较少的情况,例如中断的参数传递就是通过eax寄存器来传递,告诉操作系统需要执行什么类型的中断。
2、当参数数量比寄存器多,这是参数通常存在内存的块和表中,并将块的地址通过寄存器来传递。
3、参数也可通过程序放在或压入堆栈中,并通过操作系统弹出。这种方法不限制所传递参数的数量或者长度,个人理解最常见的是函数参数的传递,将函数的参数放在栈中,通过esp寄存器去找参数。

题目二:
操作系统为什么要将机制和策略区分开来?请查找文献并以实际操作系统中的案例来举例说明其好处。

解答:
机制和策略区分可以保证系统能够很容易的被修改,没有两个系统的装置是完全相同的,所以每一个装置都想要吧操作系统改为适合自己的。当机制和策略分开的时候,策略可以随意的改变但机制还是不能改变。
简单地将,“需要提供什么功能”即机制,“如何使用这些功能”即策略。
最典型的案例就是耳机问题:当没有区分机制和策略的时候,多是当插头检测到有耳机插入的时候,就关闭扬声器,声音转向耳机;当检测到耳机拔出的时候,就关闭耳机通道,声音转向扬声器。这里就没有区分机制和策略,只是一种解决问题的算法。这种方法的确可以解决大多数正常的情况。
但是,在一些特殊的情况下,例如有那种或者电话铃声的时候,还是要从扬声器传出。由于应用场景千奇百怪,作为底层不能够假设什么策略是正确的,更不应该擅自去实现这些策略。只需要提供相关的功能即可,而上层根据需要来调用这些接口。所以机制和策略需要区分开来。
个人理解就是,操作系统提供机制和策略。机制与硬件关系密切,数量与变化有限;策略与程序关系密切,数量与变化无限。策略可以通过机制实现不同的功能。

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

解答:
微内核系统的优点是操作系统有很好的灵活性。它使得操作系统内部结构简单清晰,程序代码维护十分方便,且可以比较简单的在多种硬件设备上进行移植。例如将一个为pc机设计的微内核操作系统移植到手机端就比较简单。
用户程序和系统服务通过使用进程的通信机制在微内核内相互作用,例如发送信息。这些信息由操作系统负责运送。
微内核系统的核心只实现了最基本的系统操作,这样内核以外的外部程序之间由于独立运行使得系统难以进行良好的整体优化。另外,进程间相互通信的开销也较单一内核系统大得多。

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

解答:
linux下代码如下:
在这里插入图片描述
win32下代码如下:
在这里插入图片描述
首先检查输入是否正确
然后检查源文件是否存在
再检查目标文件是否存在

题目五:
掌握系统级,观察并记录。一旦你正确地设计并实现了题目4中的程序,采用跟踪系统调用的工具来运行它,观察并记录相应的过程。(Linux 系统提供了 ptrace 工具,而Solaris 系统则采用 truss 或 dtrace 命令。在 MacOSX 中,dtrace 工具提供了类似的功能。)

解答:
由于我最开始是用win32的API编写的c程序,所以想尽了办法如何在windows系统下进行跟踪,在仔细学习了outputdebugstring的API的使用之后,我选择了放弃,并将我的代码改成了linux系统下的情况,才进行的实验。
运行:
在这里插入图片描述
跟踪:
在这里插入图片描述
使用linux下的strace跟踪程序来跟踪从源文件向目标文件拷贝内容过程中发生的系统调用,输入strace -c -tt ./copyfile 1.txt 2.txt,其中tt后面是我们要执行的命令,就可以统计每一次系统调用所执行的时间、次数和出错的次数等等。其中tt参数表示在输出的每一行前加上时间信息,微秒级
在这里插入图片描述
输入strace -T -tt -e trace=file ./copyfile 1.txt 2.txt来跟踪从一个源文件向目标文件复制内容中与文件有关的系统调用,其中T参数表示显示每一次调用所消耗的时间;-e trace=file表示只跟踪有关文件操作的系统调用

  • 3
    点赞
  • 17
    收藏
  • 打赏
    打赏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:撸撸猫 设计师:马嘣嘣 返回首页
评论 1

打赏作者

麓山君陌

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值