2024-11-13-操作系统概念第一章部分作业题答案
操作系统概念第一章部分作业题答案
**题目一:
资源利用问题在不同的操作系统中以不同的形式出现。请指出下面哪些资源必须被仔细地管理:
1、主机系统或微型计算机
2、通过服务器连接的工作站
3、手持计算机**
解答:
1、主机系统是一类单台可支持8核以上处理器的高端服务器系统,是包括大型硬件平台和操作系统的一体化方案。微型计算机是由大规模集成电路组成的体积较小的经典电子计算机,两者都配以内存储器以及输入输出接口电路和相应的辅助电路。所以两者都需要在:内存、外存、CPU、I/O设备、网络资源方面进行仔细管理
2、工作站是一种高端的通用微型计算机,也可以指终端机,需要在:内存和CPU进行仔细管理
3、手持计算机就是我们当前的笔记本电脑,我们需要在:内存、网络、CPU、功率方面进行仔细管理
**题目二:
请结合存储层次体系说明为何软盘这种存储介质会消亡:**
解答:
软盘这种存储介质的特点是存储空间小,存取速度慢,从存储层次体系结构上来看,从上往下,存储空间逐渐增大,而相邻级别之间的存取速度逐渐减慢,所以,当前的存储层次体系要求存储介质要么存储空间小,但存取速度快,要么存储空间大,而存取速度可以相对较慢,由此没有软盘这种存储介质的生存空间。
**题目三:
中断(interrupt)有何作用?陷阱和中断有何区别?用户程序能否有意得生成陷阱?如果有,有什么目的?**
解答:
1、当CPU中断时,它暂停正在做的事并立即转到固定的位置去继续执行(该固定位置通常是中断服务程序开始位置的地址)。该程序执行完成后,CPU接着执行被暂停的程序。这就是中断的作用。
2、
①陷阱通常由处理器正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
②陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
③陷阱是由软件引起的,而中断是由硬件引起的;
④陷阱是同步的,而中断是异步的。
3、用户可以有意地生成陷阱。其目的是为了将用户模式转入内核模式并把控制权移交给操作系统,使得用户程序可以调用内核函数或者相关硬件从而获得操作系统提供的服务。
**题目四:
直接访问(DMA)主要用于高速I/O设备以避免增加CPU的执行负荷。
1、CPU如何与设备协作完成数据传输?
2、CPU如何知道内存操作已经结束?**
解答:
1、设备驱动程序在设备控制器中装载适当的寄存器,在为I/O设备设置好缓冲,指针和计数器之后,设备控制器能在本地缓冲和内存之间传送一整块数据,每块只产生一个中断,从而告知CPU执行中断,提高效率。
2、 CPU在每个指令结束之后会检测是否产生中断。当操作结束的时候,设备会发出中断指令,这个时候CPU会检测到中断指令,从而执行中断命令,结束内存操作。
**题目五:
请说明 CPU 中提供双模式(User, Monitor)有什么用途?并分别举例说明哪些指令
属于特权指令,哪些属于非特权指令(不少于 10 种指令)。**
解答:
1、CPU双模式是CPU的一种保护措施,可以避免恶意程序直接调用一些特权指令对计算机进行破坏,提高安全性
2、
特权指令:①启动I/O设备指令;②测试I/O设备工作状态指令;③控制I/O设备动作指令;④对程序状态字的指令;⑤存取中断寄存器指令;⑥存取时钟寄存器指令;⑦清内存指令;⑧修改权限指令
非特权指令:①逻辑运算指令;②存数取数指令;③访管指令
**题目六:
请阐述你对下图的认识**
解答:
从开机开始,进入引导程序,将操作系统装入内存,初始化,同时初始化IdleLoop程序,无操作时一直执行IdleLoop程序,处于用户模式;当有事件发生时(I/O设备发生事件等)进入内核模式,操作系统处理事件,产生新的进程或者删除某些进程,然后将控制重新交给相应的用户程序并进入用户模式。只有在用户程序进行系统调用或者出现失败进入陷阱、或者定时器引发硬中断的时候会进入操作系统,进入内核模式。通过定时器中断进入操作系统的时候操作系统会对进程进行调度。
**题目七:
请简要介绍各类主要的开源组织及协议,并就开源运动对操作系统的影响发表个人见解。**
解答:
常见的开源组织有Apache Software Foundation、Eclipse Foundation等
常见的开源许可协议有:GPL、LGPL、BSD、MIT、MPL等,具体如下(资料来源于网络):
1.GPL,全称 GNU General Public License。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码) GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用GPL开源组件的商用项目。基于这个协议的项目,极大的提高了开源软件的数量。目前用的多的是GPLV1,GPLV2。采用这个协议的开源软件有:Linux、 MySQL 。
2.LGPL,最初是Library GPL的缩写,后来改称作GNU Lesser General Public License。由于GPL太严格,限制了很多商用软件使用GPL组件才推出了这个LGPL。LGPL允许商业软件通过引用类库的方式使用LGPL组件(不直接使用源代码),这样可以不需要开源商业软件的代码。但是如果要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用LGPL协议。LGPL不适合以LGPL协议为基础的代码进行二次开发的商业软件,但是商用软件可以采用编译后的类库引用就不需要公开源代码了。采用这个协议的开源软件有: JBoss、 FCKeditor 、 Hibernate。之前extjs就因为从LGPL转换到GPL带来了不少的震动。
3.BSD,全称 Berkeley Software Distribution。这个协议相对上面两个协议宽松很多,允许使用者修改和重新发布代码,也允许使用或在BSD代码基础上开发商业软件发布和销售,因此是适用于商业软件的。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。使用者别太高兴,使用时还必须做到满足三个条件:
(1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
(2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
(3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。适用BSD协议的开源软件有: nginx、CruiseControl、Redis。
68747470733a2f2f62:6c6f672e6373646e2e6e65742f71715f34303835313734342f:61727469636c652f64657461696c732f313032383631323831