博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统一二章作业答案
阅读量:4128 次
发布时间:2019-05-25

本文共 7208 字,大约阅读时间需要 24 分钟。

因为都是按照自己的理解写出来的,也不知自己的答案对不对,希望大家能够踊跃讨论。提供自己宝贵的意见,不胜感激。

1.1在多道分时环境下,有几个用户同时使用一个系统,这种情况可能导致各种安全问题。

a. 列出此类的问题。

b.在一个分时系统中,能否像在特殊用途系统中一样确认同样的安全程度?并解释它。

答:

a.可能出现的问题:

(1)  因为多道分时环境是采用多道程序批处理系统和分时系统结合,每个用户轮流使用时间片,CPU处理用户的程序;而多道批处理需要作业和进程调度,但是程序的完成次序和进入内存的次序之间的关系是不严格对应的,所以有可能出现某个用户所执行的程序因为异常情况导致占用CPU时间过长,而下一个用户所执行的本应该调度到CPU执行的程序还在等待,这就会造成整个操作系统卡顿的情况,例如电脑出现的卡慢的情况。

(2)  因为是多个用户同时使用一个系统,因此某个用户可以通过非法指令攻击系统而恶意地对其他用户产生影响,这也是多道分时环境设计时需要考虑的问题。

b.应该是不可以的,因为特殊用途系统种类繁多:桌面系统、多处理系统、并行系统、分布式系统、集群系统、实时系统等。

比如集群系统,可采用非对称集群和对称集群两种模式,在非对称集群模式下,一台机器处于热备份模式,而另一台机器运行应用程序;热备份机器不执行任务,只是在监视服务器,如果现服务器失效,那么热备份机器就会取而代之成为现服务器。而如果采用对称集群的模式,两台或多台主机都运行应用程序,它们可以互相监视,可以确认彼此是否安全。不管分布式计算机如何改善,绝大多数系统并不提供通用分布式文件系统。因此,绝大多数集群不允许对磁盘上的数据进行共享访问。因此,分布式文件系统必须提供对文件的访问控制和加锁,以确保不出现互为矛盾的操作。这种类型的服务通常称为分布式锁管理器。通过这样的方式能够最大程度的提高系统的安全性。

再比如实时系统,用于工业过程控制、军事实时控制、金融等领域,包括:实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构,使某些参数(如湿度、压力、液位)能按预定的规律变化,以保证产品的质量和提高产量。

实时信息处理:能及时接收从远程终端发来的服务请求,对信息进行检索和处理,并在很短时间内作出回答。这样做可以达到以下目的:响应时间短、实时时钟管理、连续人机对话、过载防护、高度可靠性和安全。因为实时性,所以用户可以确认系统是否安全。

而在一个简单的分时系统中,应该无法做到这种程度,所以应该是不行的。

 

 

 

 

 

1.10中断有何作用?陷阱与中断有何区别?用户程序能否有意地生成陷阱?如果是,有什么目的?

     答:

(1)  中断是计算机结构的重要部分。每个计算机设计都有自己的中断机制,但是有些功能是共同的:中断通过中断向量表将控制传输给中断服务例程,中断向量表包括了所有设备服务例程的入口地址;中断体系结构必须保存被中断指令的地址;当一个中断正在被处理的时候,其他中断是被禁止的;操作系统是中断驱动的。

中断是由外部事件导致并且它发生的时间是不可预测的,这一点和陷阱不同。外部事件主要是指时钟中断,硬件中断等。由于CPU一次只能运行一条指令,所以在一个时刻只能有一个程序运行,但我们感觉在我们的计算机中可以同时运行很多程序,这是由于CPU在多个进程之间快速切换所导致的伪并行。如果某一个程序运行了足够长用完了分配给它的时间片,CPU决定切换到另一个进程运行,就会产生一个时钟中断,切换到下一个进程运行。

硬件中断顾名思义就是由硬件引起的中断,比如一个程序需要用户输入一个数据,但用户一直没有输入,操作系统决定是一直等待用户输入还是转而运行别的进程,一般情况是转而运行别的进程,如果用户的输入到来了,那么键盘驱动器会产生一个中断通知操作系统,操作系统保存正在运行的程序的状态,从而切换到原来的进程处理到来的数据。

所以中断发生是随机的且主要作用是完成进程间切换,从而支持CPU和设备之间的并行。

中断和异常的另一个重要差别是,CPU处理中断的过程中会屏蔽中断,不接受新的中断直到此次中断处理结束。而陷阱的发生并不屏蔽中断,可以接受新的中断。

(2)  而陷阱则是因为错误或用户程序的特定请求所引起的软件产生中断。计算机有两种运行模式:用户态,内核态。其中操作系统运行在内核态,在内核态中,操作系统具有对所有硬件的完全访问权限,可以使机器运行任何指令;相反,用户程序运行在用户态,在用户态下,软件只能使用少数指令,它们并不具备直接访问硬件的权限。

这就出现了问题,假如软件需要访问硬件或者需要调用内核中的函数该怎么办呢,这时就需要陷阱发挥作用了。陷阱应该是一种软件中断指令,通过这种指令,可以进行一个软件中断,导致CPU保存当前进程状态,然后可以使执行流程从用户态陷入内核态并把控制权转移给操作系统,调用操作系统执行,使得用户程序可以调用内核函数和使用硬件从而获得操作系统所提供的服务,比如用视频软件放一部电影,视频软件就发出陷阱使用显示器和声卡从而访问硬件。

操作系统有很多系统调用接口供用程序调用。陷阱的发生时间是固定的,比如第一次用视频软件时,在加载视频时软件会向操作系统发送陷阱指令,第二次播放时,软件仍然会在同样的时刻发送陷阱指令。这一点是和中断的明显的差别之一。

接下来可以再说说异常。异常就是程序执行过程中的异常行为。比如除零异常,缓冲区溢出异常等。不同的操作系统定义了不同种类和数量的异常并且每个异常都有一个唯一的异常号,异常会扰乱程序的正常执行流程,所以异常是在CPU执行指令时本身出现的问题,比如除数为零而出现的除零异常。异常的产生表示程序设计不合理,所以在编程的时候要尽量避免异常的产生。

(3)  所以说用户程序可以有意地生成陷阱,比如用视频软件播放一部电影,电影是由画面和声音组成的,所以视频播放器(软件)生成陷阱是执行流程从用户态转入内核态并把控制权转移给操作系统,使得用户程序可以调用内核函数和使用硬件(显卡和声卡)从而获得操作系统所提供的服务。

 

 

 

 

 

1.13给出高速缓存有用的两个理由。它们解决什么问题?这些问题产生的原因是什么?如果一个高速缓存的容量可以做成和要缓存的设备一样大(如一个和磁盘一样大的缓存),为什么不直接用同样容量的缓存代替该设备呢?

答:

(1)  利用时间局部性:信息通常保存在一个存储系统中(如内存)。当使用它时,它会被临时地复制到更快的存储系统——高速缓存中。当需要特定信息时,首先检查它是否在高速缓存中。如果是,可以直接使用高速缓存中的信息;否则,使用位于内存中的信息,同时将其复制到高速缓存中以便下次再用。所以说高速缓存可以看成是主存和CPU内核中的一个过渡区,它将下一步需要的信息进行提前地存储,这样,如果速度较快的设备在缓存中发下它所需要的数据,它就不需要再等待速度较慢的设备了。例如,绝大多数系统都有指令高速缓存(缓存分为指令缓存和数据缓存)以保存下一个要执行的指令,没有这一高速缓存,CPU将会等待多个时钟周期以便从内存中获取指令。所以高速缓存可以大大减少CPU的等待时间从而提高运行速度。

  利用空间局部性:块通常包含有多个数据对象,由于空间局部性,我们会期望后面对该块中其他对象的访问能够补偿不命中后拷贝该块的花费,而高速缓存的存在可以避免重复拷贝所带来的系统资源的浪费。

 

(2)  高速缓存一致性:在对称多处理器(SMP)架构的系统中,CPU的高速缓存不能独立的工作。在任何时候,所有的处理器都应该拥有相同的内存内容。保证这样的统一的内存视图被称为“高速缓存一致性”。如果在其自己的高速缓存和主内存间,处理器设计简单,它将不会看到在其他处理器上的脏高速缓存行的内容。从一个处理器直接访问另一个处理器的高速缓存这种模型设计代价将是非常昂贵的,它是一个相当大的瓶颈。相反,当另一个处理器要读取或写入到高速缓存线上时,处理器会去检测。

  产生原因:对于层次存储结构,同样的数据可能出现在不同层次的存储系统上。例如:整数A位于文件B中且需要加一,而文件B位于磁盘上。加一操作这样进行:先发出I/O操作以将A所在的磁盘块调入内存;之后,A被复制到高速缓存和硬件寄存器中。这样,A的副本就会出现在许多地方:磁盘上、内存中、高速缓存中、硬件寄存器中。一但加法在内部寄存器中执行后,A的值在不同的存储系统中会不同。只有在A的新值从内部寄存器中写会磁盘时,A的值才会一样。而对于多处理器环境,这种情况变得更为复杂。所以,保持高速缓存一致性尤为重要。

            

(3)  首先要考虑的是价格问题,如果缓存达到像磁盘那样的程度,它的造价恐怕要贵上好几个数量级,这样做很少能有人负担得起;其次,如果增大缓存的空间,制造一个速度还算快,但容量很多的内存,在配置大量DRAM的同时,我们还可以配置少量SRAM。将地址空间的某个部分划给SRAM,剩下的部分划给DRAM。一般来说,SRAM可以当作扩展的寄存器来使用。上面的做法看起来似乎可以,但实际上并不可行。首先,将SRAM内存映射到进程的虚拟地址空间就是个非常复杂的工作,而且,在这种做法中,每个进程都需要管理这个SRAM区内存的分配。每个进程可能有大小完全不同的SRAM区,而组成程序的每个模块也需要索取属于自身的SRAM,更引入了额外的同步需求。简而言之,快速内存带来的好处完全被额外的管理开销给抵消了。并没有达到我们的目的。

所以说,不用同样容量的缓存来代替该设备。

 

 

 

 

 

1.17列出下列类型操作系统的基本特点:

a.批处理

b.交互式

c.分时

d.实时

e.网络

f.并行

g.分布

h.集群

i.手持

 

答:

a)     批处理:批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。批处理系统的特点:多道:在内存中同时存放多个作业,一个时刻只有一个作业运行,这些作业共享CPU和外部设备等资源。成批:用户和他的作业之间没有交互性。用户自己不能干预自己的作业的运行,发现作业错误不能及时改正。

批处理系统的目的是提高系统吞吐量和资源的利用率。

多道处理系统的优点是由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行。并在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量。其缺点是无交互性,用户一旦提交作业就失去了对其运行的控制能力,而且是批处理的,作业周转时间长,用户使用不方便。

b)     交互式:指能为用户提供交互式操作支持的操作系统。可以实现人和机器的实时通信。人给机器命令,机器执行,机器反馈结果。

c)     分时:多路性:共享系统资源,挺高了资源利用率。节省维护开支,可靠性高。独立性:每个用户一台终端,互不干扰。独立性:用户请求应尽快得到响应。交互性:用户可以通过中断与系统进行广泛的人机对话,请求系统提供多方面的服务;系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率,缩短了周转时间。

d)     实时:用于工业过程控制、军事实时控制、金融等领域,包括:实时控制和实时信息处理;主要设计目标:响应时间段、实时时钟管理、连续人机对话、过载防护、高度可靠性和安全。

e)     网络:网络操作系统是网络上各计算机能方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。网络操作系统与通常的操作系统有所不同,它除了应具有通常操作系统应具有的处理机管理、存储器管理、设备管理和文件管理外,还应具有以下两大功能:(1)提供高效、可靠的网络通信能力;(2)提供多种网络服务功能,如:远程作业录入并进行处理的服务功能;文件转输服务功能;电子邮件服务功能;远程打印服务功能。提供跨网络的文件共享,包括允许在不同的计算机上的进程消息交换的通信方法等功能。相对于网络上的其他计算机,运行网络操作系统的计算机是自治的。

f)      并行:这类系统有多个紧密通信的处理器(亦成为多处理器系统或);主要优点:增加吞吐量、经济节约、增加可靠性;采用非对称处理和对称处理两种方式。

g)     分布:分布式系统是将一组物理上分开的、各种可能异构的计算机系统通过网络连接在一起,为用户提供系统所维护的各种资源的计算机的集合。访问共享资源增加了计算速度、功能、数据的可用性及可靠性。

h)     集群:集群系统将多个CPU集中起来完成计算任务,然而,见系统与并行系统不同,它是由两个或多个独立的系统耦合起来的。通常用来提供高可用性。采用非对称集群和对称集群两种模式。

i)      手持:手持系统包括个人数字助理,如Palm、Pocket-PC和手机,其中许多都使用专门的嵌入式操作系统。存在的问题有:内存有限、低速处理器(只有个人计算机处理器速度的几分之一)、屏幕小。

 

 

 

 

 

2.2列出操作系统提供使用户更为方便地使用计算机系统的5个服务,并说明在哪些情况下用户级程序不能够提够这些服务。请解释为什么。

   答:

      ·程序执行:系统必须能将程序装入内存并运行程序。程序必须能结束执行,包括正常或不正常结束(指明错误)。当程序不能结束,如某段程序陷入死循环中无法结束时,占用内存空间,用户级程序就不能提供该服务。

      • I/O 操作:运行程序可能需要 I/0,这些I/O 可能涉及文件或设备。对于特定设备,需要特定的功能(如刻录 CD 或 DVD 驱动器,或清屏)。为了提高效率和进行保护,用户通常不能直接控制I/O设备。因此,操作系统必须提供进行I/O操作的方法。当I/O设备被破坏,如鼠标或键盘在物理层面上被破坏,该服务就不能够提供。

      ·文件系统操作:文件系统特别重要。很明显,程序需要读写文件和目录,也需要根据文件名来创建和删除文件、搜索一个给定的文件、列出文件信息。最后,有些程序还包括了基于文件所有权的允许或拒绝对文件或目录的访问管理。当该文件被删除或者被保护、隐藏之后,有可能出现文件系统无法搜索该文件,无法对文件进行读写操作,这时就不能提供该服务。

      ·通信:在许多情况下,一个进程需要与另一个进程交换信息。这种通信有两种主要形式。一种是发生在同一台计算机运行的两个进程之间。另一种是运行在由网络连接起来的不同的计算机上的进程之间。通信可以通过共享内存来实现,也可通过消息交换技术来实现(对于消息交换,消息包通过操作系统在进程之间移动)。当通信发生在同一台计算机运行的两个进程之间时,如果某一个进程被杀死(通过任务管理器或其他方式),那么进行通信的一方就会消失,通信就无法正常的进行下去;当通信发生在网络连接起来的不同的计算机上时,比如两个计算机之间进行通信传输文件,如果网络断开,那么通信进程就会中断,该服务也无法继续提供。

      ·保护和安全:对于保存在多用户或网络连接的计算机系统中的信息,用户可能需要控制信息的使用。当多个进程并发执行时,一个进程不能干预另一个进程或操作系统本身。保护即确保所有对系统资源的访问是受控的。系统安全不受外界侵犯也很重要。这种安全从用户向系统证明自己(利用密码)开始,以获取对系统资源访问权限。安全也包括保护 外部I/O如 Modem 和网络适配器不受非法访问,并记录所有非法闯入的企图。如果一个系统需要保护和安全,那么系统中的所有部分都要预防。一条链子的强度与其最弱的链环相关。

当该系统被恶意攻击之后,有可能出现并行的进程互相干扰而导致正常的程序无法运行下去,或者攻击者通过某种方式欺骗系统,让正常的用户的密码失效,那么用户就无法向系统证明自己,就无法获取对系统资源的访问权限,那么服务自然就无法提供了。

 

 

 

 

 

2.3给出三种向操作传递参数的常用方法。

     答:

        向操作系统传递参数有三种方法。最简单的是通过寄存器来传递参数。不过有时,参数数量会比寄存器多。这时,这些参数通常存在内存的块和表中,并将块的地址通过寄存器来传递(见图 2 .4 )。Linux 和 Solaris 就采用这种方法。参数也可通过程序放在或压入堆栈中,并通过操作系统弹出。有的系统采用块或堆栈方法,因为这些方法并不限制所传递参数的数量或长度。

 

 

 

2.7命令解释器的用途是什么?为什么它经常与内核是分开的?是否有可能采用由操作系统提供的系统调用接口为用户开发一个新的命令解释器?

答:

(1)  命令行解释器是一个单独的软件程序,它可在用户和操作系统之间提供直接的通讯。命令行解释器是解释器的一种,用于对命令行进行解释执行,获取井执行用户指定的下一条命令。解释器是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停地进行下去。

(2)  内核负责提供最基本最主要的功能,是指操作系统中最核心的部分,主要提供系统服务、用户接口、文件系统、设备驱动等。内核应该尽量简洁小巧。否则外部程序的错误就会可能使内核崩溃。而命令解释可能会有所变动,那么就会对内核产生影响。

命令解释器与内核分开的话,对于命令解释器的好处是,设计一个单独的命令解释器要容易的多。

(3)  用户能够利用由操作系统提供的系统调用接口开发新的命令解释器。这命令解释器允许用户创建、管理进程和确定它们通信的方法(例如通过管道和文件)。所有的功能都被用户程序通过系统调用来使用,这个也可能有用户开发一个新的命令行解释。

转载地址:http://lgrpi.baihongyu.com/

你可能感兴趣的文章
XML 属性vs元素
查看>>
Response.Redirect(...,true/false)的区别
查看>>
不应忽视的HTML优化
查看>>
span有固定宽度
查看>>
使用VS2010开发符合W3C标准的页面
查看>>
jQuery获得页面元素的绝对/相对位置
查看>>
使用clone()后,解决ui.datepicker 显示问题
查看>>
使用HTML5制作网页 [翻译]
查看>>
使png 图片在网页上透明显示
查看>>
web图片优化
查看>>
jQuery 原理初步探究
查看>>
预载入和JavaScript Image()对象
查看>>
浏览器渲染模式
查看>>
WebRebuilder 2010, 重构人生
查看>>
验证HTML规范
查看>>
如何直接调试线上页面的JavaScript和CSS
查看>>
安装vim中文帮助后出现乱码解决方法
查看>>
漫谈B端的沙箱技术
查看>>
IE,firefox内存溢出原因与解决方法
查看>>
深入理解Javascript闭包
查看>>