操作系统复习文档
答案为个人理解,仅供参考,如有问题欢迎留言
在百度脑图放了个思维导图(建议使用谷歌Chrome浏览器浏览)
链接:
http://naotu.baidu/file/1f639c5b8fb28272cc9678358df4508f?token=aeeb10bce33223b2
密码:xixi ~ . ~
问题及解析:
重点题目:20、21、22、23、24、32、48、53、61、65
1、 什么是OS?其四大管理功能是什么?
(1)操作系统的描述性定义:操作系统是合理组织计算机的工作流程,有效控制和管理计算机系统的各类资源,并方便用户使用计算机的程序集合。它是一个最重要也是最基本的系统软件。
(2)四大管理功能:处理机管理、存储器管理、设备管理、文件管理。
2、为什么引入分时OS?
(答出分时OS的优点,解决了批处理OS的哪些缺点即可)
分时OS的优点:
(1)交互性。用户能够通过终端与系统进行广泛的对话
(2)及时性。终端用户的请求能在很短的时间内获得响应。
(3)独占性。每个用户各占一个终端,彼此独立操作,互不干扰,感觉好像自己独占主机一样。
(4)同时性(也称多路性)。提高了系统资源利用率,节省了开支,促进了计算机的广泛应用。
3、若按系统能同时响应的用户数及任务数来划分,则OS可分为哪几类?服务器上应该安装哪一类?手机上应该安装哪一类?
(1)按操作系统能同时响应的用户数及任务数可划分为3类:单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统
(2)服务器上应该安装多用户多任务操作系统
(3)手机上应安装单用户多任务操作系统
4、若按系统处理任务的方式来划分,则OS可分为哪几类?
(1)可分为六类:批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统、分布式操作系统
(2)或者分为两类:集中式操作系统(包括批处理操作系统、分时操作系统、实时操作系统、单用户操作系统、网络操作系统)、分布式操作系统
(3)其中最基本的是批处理操作系统、分时操作系统和实时操作系统
网络操作系统与分布式操作系统不同,其区别为:
(1)分布性。分布式操作系统的处理和控制功能均为分布式的;而网络操作系统虽具分布处理功能,但其控制功能却是集中在某个或某些主机或网络服务器中,即集中式控制方式。
(2)并行性。分布式操作系统具有任务分配功能,可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速了任务的执行;而网络操作系统通常无任务分配功能,网络中每个用户的一个或多个任务通常都在本地计算机上处理。
(3)透明性。分布式操作系统通常能很好地隐藏系统内部的实现细节。包括对象的物理位置、并发控制和系统故障等对用户都是透明的。例如,当用户要访问某个文件时,只需提供文件名而无须知道(所要访问的对象)它是驻留在那个站点上,即可对它进行访问,以即具有物理位置的透明性。网络操作系统的透明性则主要指操作实现上的透明性。例如,当用户要访问服务器上的文件时,只需发出相应的文件存取命令,而无需了解对该文件的存取是如何实现的。
(4)共享性。分布式操作系统支持系统中所有用户对分布在各个站点上的软硬件资源的共享和透明方式访问。而网络操作系统所提供的资源共享功能仅局限于主机或网络服务器中资源,对于其它机器上的资源通常仅有使用该机的用户独占。
(5)健壮性。分布式操作系统由于处理和控制功能的分布性而具有较好的可用性和可靠性,即健壮性。而网络操作系统由于控制功能的集中式特点而使系统重构功能较弱,且具有潜在的不可靠性。
5、OS提供的用户界面有哪几类?对应的一个实例分别是什么?
对于OS提供给用户的界面而言,其形式取决于操作系统的类型。具有交互操作方式的系统一般提供键盘命令或图形化用户界面,具有脱机操作方式的系统则提供作业控制语言。
OS提供的用户界面有三类:命令接口,程序接口,图形用户接口
(1)命令接口:又分为联机命令接口和脱机命令接口。联机命令接口例如Unix,Linux,Dos。脱机命令接口例如OS/390,VES,MVS,MS-DOS,在脱机操作方式下(如批处理系统)提供作业控制语言,操作系统根据作业申请表来分配作业所需的资源并注册该作业,通过作业说明书对作业的运行实施控制。
(3)程序接口:是为用户程序在执行过程中访问系统资源而设定的,是用户程序取得操作系统服务的唯一途径。例如:MS-DOS的INT中断调用、UNIX的系统调用函数、Windows的API函数等。
(3)图形用户接口:例如Windows,Mac OS。图形化用户界面是良好的用户交互界面,它将菜单驱动方式、图符驱动方式、面向对象技术等集成在一起,形成一个图文并茂的视窗操作环境。
6、不同时期的软件开发方法决定了OS的结构,UNIX和Windows的结构分别是什么?
首先,操作系统的结构分为四类:整体式系统、层次式系统、虚拟机系统、客户-服务器系统。
UNIX为层次式系统。其开发方式为按照模块化的方式开发。其设计哲学为:建立小的模块化的应用,只做一件事情并把它做好。Unix程序员更加重视模块化、更注重正交性和紧凑性等问题。
另外linux属于宏内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。
windows是客户-服务器系统与层次式系统相结合的一种结构。其可以算是微内核结构。微内核中只有最基本的调度、内存管理。驱动、文件系统等都是用户态的守护进程去实现的。优点是超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃。缺点是效率低。
7、系统靠什么从用户态进入核心态执行?
3种主要方式,一般大家比较了解的是以中断的方式
(1)系统调用这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
(2) 异常当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
(3) 外围设备的中断当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。
8、你认为设置分时系统中的时间片时主要应该考虑哪些因素?或者说,你认为时间片大点儿好,还是小点儿好?为什么?
时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。将时间片设为100毫秒通常是一个比较合理的折衷。
注:有的操作系统有CPU时间片大小这个参数,但很容易理解这是偷换概念,本质改变这个参数仍是改变分配给线程的CPU时钟频率大小,而不是时间
9、处理机为什么有两种执行状态?
限制不同的程序之间的访问能力,即为了构造安全可靠的操作系统。
CPU处于管态时,既可以执行特权指令,也可以执行非特权指令;CPU处于目态时,只可执行非特权指令。
10、硬件指令集为什么要划分出特权指令真子集?
为了系统的安全,防止任何程序都可以随意执行影响系统安全的指令。
11、当没有用户程序要运行时,CPU在做什么?
执行系统中一个特殊的死循环进程——idle(闲置)进程,其作用是不断循环捕获用户的请求。
idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程。在smp系统中,每个处理器单元有独立的一个运行队列,而每个运行队列上又有一个idle进程,即有多少处理器单元,就有多少idle进程。系统的空闲时间,其实就是指idle进程的"运行时间"。idle进程pid==o,也就是init_tas


发布评论