当前位置:文档之家› 湖南大学操作系统作业 (1)

湖南大学操作系统作业 (1)

操作系统第一次作业
第一章
1.1在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。

a. 列出此类的问题 b.在一个分时系统中,能否确保像在与用特殊用途系统中一样的安全度?并解释之。

(1)可能导致的安全问题有:由于多个用户同时使用资源,使得系统无法像对单个用户分配资源一样用合理的预算来分配资源,会导致资源分配上的问题;另一方面,如果某A用户熟练地掌握计算机系统原理,他可能通过底层反汇编代码来获取其他用户的信息,如账户、密码等信息。

(2)不可以
特殊用途系统(在本书19、20章有介绍)自己查阅了课本上的相关内容后发现,特殊用途系统包括实时系统和多媒体系统,实时系统的要求是不仅仅要保证计算结果的正确性,而且要将计算结果维持在特定的截止时间内,在特定截止时间外的结果,即使正确,也无任何意义,这对攻击系统者提出了更高的要求,而一般的分时系统并没有对计算结果有任何时限,导致攻击者可以任意修改代码结构而不至于被系统识破,上述的差异性使得实时系统无法实现特殊用途系统一样的安全性。

看了英文版课本后发现这个题目的翻译有误,原文为Can we ensure the same degree of security in a time-shared machine as in a dedicated machine?
翻译过来是分时机器能和专用机器保证相同的安全度吗,显然是不能的,比如军工方向专用的机器和一些保密的机器,不允许接入互联网,不允许插入U盘,烧录文件必须通过软盘刻录,这样就能保证最高的安全度,这也是我们日常使用的机器所不能比拟的。

由于题目翻译与英文原文有偏差,所以以下我的答案均基于英文原版给出
1.10
What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose?
(1)中断的目的:更好地调度CPU,因为如果没有中断技术,访问CPU内部的速度和访问硬件速度不匹配,短板效应会导致CPU和硬件同时工作的速度取决于硬件的速度,使得CPU长时间处于等待状态,导致其效率低下。

(2)自陷和中断的区别:中断主要由硬件如IO、时钟产生,是不可预期的。

而自陷可由软件主动产生,程序员可以通过int指令来可预期地产生自陷。

(3)自陷是可以主动产生的,如汇编指令int 0x80,设置自陷的目的有多种,可能是等待IO响应,可能是基于用户态和管态的切换……等等
1.13
Give two reasons why caches are useful.What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device?
(1)高速缓存有用的原因主要有:寄存器和磁盘访问速度差距过大,要通过高速缓存来以比磁盘更快的速度访问磁盘上的内容,以节约时间。

通过高速缓存的存储,如果能直接在高速缓存中访问到需要的内容,就无需访问磁盘;高速缓存比寄存器便宜。

(2)导致的问题是:在多进程系统中,要保证缓存和磁盘同步更新,不然在多个进程同时访问同一数据时,会产生相应的问题。

(3)不把缓存做的和磁盘一样大的原因:一方面是贵,另一方面是,缓存掉电数据消失,而磁盘是ROM,不擦除。

1.17
Define the essential properties of the following types of operating systems:
简述下列操作系统的核心特点
A 批处理合并相似需求的任务,并整体处理,保证IO/CPU高效率使用
B 交互系统和用户不断完成数据交互,然后系统根据用户的输入进行实时反馈,用户在输入过程中系统处于等待状态,系统在此时常切换至另一程序
C 分时多个程序在CPU调度下按顺序完成处理
D 实时实时系统的要求是不仅仅要保证计算结果的正确性,而且要将计算结果维持在特定的截止时间内,在特定截止时间外的结果,即使正确,也无任何意义
E 网络系统之间的通信路径,可以通过网络实现文件交流
F 并行多个处理器各自相当于一个系统,同步通过系统总线进行通信,完成系统的需求
G 分布式多处理器各自拥有独立的存储器,通过各种通信线路通信,如局域网LAN 广域网WAN等等
H 集群系统将多CPU集中起来完成计算任务,相当于只有一个系统
I 手持内存较小,无虚拟内存,处理器速度较慢,屏幕较小,方便便携
第二章
2.2
List five services provided by an operating system that are designed to make it more convenient for users to use the computer system. In what cases it would be impossible for user-level programs to provide these services? Explain.
1)程序执行:系统必须能将程序装入内存并运行程序,程序必须能结束执行,包括正常/非正常结束,如果用户程序无法正常安排cpu时间,则无法提供服务。

2)I/O操作:运行程序可能需要I/O,这些I/O可能涉及文件或设备,对于特定设备,需要特定功能(如刻录CD或清屏)为了提高效率和进行保护,用户通常不能直接控制I/O设备,因此操作系统必须提供运行I/O操作的方法3)文件系统操作:程序需要读写文件和目录,也需要根据文件名来创建和删除文件、搜索一个给定的文件、列出文件信息,最后,有些程序还包括了基于文件所有权的允许或拒绝对文件或目录的访问管理。

4)通信:在许多情况下,一个进程需要与另一个进程交换信息,这种通信有两种主要形式,一种是发生在同一台计算机发生的两个进程之间,另一种是运行在由网络连接起来的不同的计算机上的进程之间,通信可以通过共享内存实现,也可以通过信息交换技术来实现,用户无法协调网络装置,或者接受完全不同的其他进程的信息包。

5)错误检测:操作系统需要知道可能出现的错误,错误可能发生在CPU、内存、IO和用户程序中,对于每种类型的错误,操作系统应该采取适当的动作以确保正确和一致性计算,调试工具可以在很大程度上加强用户和程序员使用系统的能力。

2.3 Describe three general methods for passing parameters to the operating system.要求叙述三种向操作系统传递参数的主要方式
1)通过寄存器直接传递参数
2)先将数据存入堆栈,再在操作系统中出栈获取数据
3)将数据存入RAM的块中,通过寄存器传递块首地址给操作系统访问
2.7What is the purpose of the command interpreter? Why is it usually separate from the kernel? Would it be possible for the user to develop a new command interpreter using the system-call interface provided by the operating system?
叙述命令解释器的目的,为何命令解释器常与内核分离,用户有没有可能通过操作系统提供的系统调用接口来实现一个命令解释器
命令解释器的主要作用是获取和执行用户指令的下一条命令,一般解释程序被称作外壳(shell)
不属于内核的原因有二,一是内核应提供最简单的接口,如果过于臃肿则很多程序的错误会使内核出错,另一方面,分离开来更方便与命令解释器的设计和修改。

可以,命令解释器允许用户创建、管理进程和确定通信方法,这些所有功能都被用户程序通过系统调用来实现,因此用户可以开发一个新的命令解释器。

相关主题