操作系统概论
1.什么是操作系统?请说明操作系统在计算机系统中的作用和地位?
在计算机系统中,集中了资源管理功能和控制程序执行功能的一种软件,称为操作系统。
操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合:它们能有效地组织
和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向
用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统
能高效地运行。
2.操作系统管理计算机系统的哪些资源?
操作系统能有效的组织和管理计算机系统中的硬件及软件资源。计算机系统的资源包括两大类:
硬件资源和软件资源。中央处理器(CPU)、内存储器(又称主存)、外存储器(磁盘、磁带)
以及各种类型的输入输出设备组成了计算机硬件系统;而各种程序和数据则组成了计算机的软件
系统。
3.操作系统有哪些特征?
1.并发性
指在计算机系统中同时存在若干个运行着的程序,从宏观上看,这些程序在同时向前推进。
并发可从宏观与微观角度来理解,注意区分并发与并行的概念。
2.共享性
指操作系统程序与多个用户程序共用系统中的各种资源。共享性是在操作系统控制下实现的。
主要针对如下重要资源:中央处理器、内存储器、外存储器、外部设备
3.随机性
指操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先的假定。一个设备可
能在任何时候向处理器发出中断请求,而用户提交的、运行着的程序要做什么事情也无法事先
知道。因而一般来说操作系统正处于什么样的状态之中是无法确切知道的,这就是随机性的含义。
随机性突出强调了在进行操作系统的设计与实现时要充分考虑各种各样的可能性。
4.计算机系统中,对资源共享的形式分类?
1.互斥共享
系统中的有些资源比如打印机、磁带机、扫描仪等,虽然可以供多个用户程序同时使用,但是在一
段特定的时间内只能由某一个用户程序使用。当这个资源正在被使用的时候,其他请求该资源的程序
必须等待,并且在这个资源被使用完了以后才由操作系统根据一定的策略再选择一个用户程序占有该
资源,通常把这们的资源称为临界资源。
2.同时共享
系统中有一类资源,它们在同一段时间内可以被多个程序同时访问。这种同时访问是指宏观上的同时,
微观上这些程序访问这个资源有可能还是交替进行的,而且它们交替访问这个资源的顺序对访问结果
没有什么影响。一个典型的可以同时共享的资源就是硬盘,当然,那些可以重入的操作系统代码也是
可以被同时共享的。
5.操作系统的功能有哪些?
1.进程管理
进程管理的实质是对中央处理器进行管理。处理器是计算机系统中最宝贵的硬件资源,为了提高处理器
的利用率,现代操作系统都采用了多道程序技术。为了描述多道程序的并发执行,就要引入进程的概念。
通过对进程的管理协调多道程序之间的关系,解决有关处理器分配调度策略、分配的实施和回收等问题,
以使处理器资源得到最充分的利用。
2.存储管理
存储管理的任务是管理计算机内存的资源。
3.文件管理
在计算机系统中的信息资源(如程序和数据)是以文件的形式存储在外存储器(如磁盘、磁带)上的,
需要时再把它们装入内存。操作系统一般都提供具有强大功能的文件系统。文件管理的任务是有效地
支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以使用户方便、安全地访问
文件
4.设备管理
设备管理指计算机系统中除了处理器和内存以外的所有输入、输出设备的管理。由操作系统的设备管理
功能负责外部设备的分配、启动和故障处理,用户不必详细了解设备及接口的技术细节,就可以方便地
通过操作系统提供的设备管理手段,对设备进行操作。
5.用户接口
操作系统还应该向用户提供使用它自己的手段,这就是用户与计算机系统之间的接口。
6.叙述进程管理的主要内容?
1.进程管理
在多道程序环境下,进程是操作系统进行资源分配的单位。在进程创建时,系统要为进程分配各种资源,
例如内存、外设等;在进程退出的时候,系统要从进程空间中回收被分配给它的资源。进程控制的主要
任务就是创建进程、撤销结束的进程以及控制进程运行时候的各种状态转换。
2.进程同步
多个进程的执行是并发的,它们的以异步的方式运行,它的执行进度也是不可预知的。为了使多个进程
可以有条不紊地运行,操作系统要提供进程同步机制,以协调进程的执行。一般有两种协调方式:互斥
和同步。互斥是指多个进程对临界资源访问时采用互斥的形式;同步则是相互协作共同完成任务的进程
之间,用同步机制协调它们之间的执行顺序。
3.进程间通信
进程间通信主要发生在相互协作的进程之间。
4.调度
调度又称为处理器调度,通常包括线程调度、进程调度和作业调度等。进程(线程)调度的任务就是从
进程(线程)的就绪队列中按照一定的算法挑选出一个将处理器资源分配给它,并准备好特定的执行上下
文让它执行起来。
作业调度的基本任务则是从作业后备队列中按照一定的算法挑出若干个作业,并依照作业说明书为它们
分配一定的资源,把它们装入内存并为每个作业建立相应的进程。
7.存储管理三个方面的任务?
1.内存的分配与回收
当多个程序共享有限的内存资源时,要考虑如何为多个程序分配有限的内存空间;对于已经退出运行的进程
所占据的内存空间,操作系统还要把它们加以回收,重新使用。
2.存储保护
存储在内存中的多个程序和数据应该彼此隔离、互不侵扰;在现代的计算机系统中,通常提供有硬件实现的
存储保护机制,操作系统则利用这一机制实现进程的地址保护。
3.内存扩充
内存扩充功能就是借助于虚拟存储技术在逻辑上增加进程运行空间的大小,这个大小比实际的物理内存要大得多。
在虚拟存储技术中,操作系统通常将地址空间划分为4KB大小的页面,并且以页面为单位进行存储空间的调度。
进程所需的总页面数所对应的空间可以超出实际物理空间。但是操作系统只把正在使用的页面保持在内存中或把
即将使用的页面调入内存中,而将不用的页面调换到外存上。当然,系统要实现这一机制,必须提供请求页面调入
的功能和页面置换的功能。
8.比较Windows、UNIX 和Linux操作系统的体系结构,有什么异同?
1.Windows体系结构是分层的模块系统,主要层次有内核、硬件抽象层(HAL)、执行体和大量的子系统集合。
前面三个都运行在保护模式下,而各子系统都在用户模式下运行。
2.UNIX体系结构分成操作系统内核层、系统调用层和应用层
3.Linux体系结构由四部分组成:内核、Shell、文件系统和用户应用程序。
4.Android体系结构分成四层,从高到低分别是应用程序、应用框架、系统运行库层和Linux内核层。
9.操作系统的发展过程?
1.手工操作
20世纪四十年代用真空管建造的电子计算机。全部采用机器语言,解决数值计算问题,是独占式的。
2.早期批处理
20世纪五十年代晶体管的发明改变了整个状况。程序员将程序写在纸上(用高级语言或汇编语言),
然后穿孔成卡片,交给操作员,计算机完成任务后,其计算结果从打印机输出。由于是串行执行作业,
因此称为单道批处理。
3.多道批处理
所谓多道是指它允许多个程序同时存在于内存之中,由中央处理器以切换方式为之服务,使多个程序可以同时执行,
计算机资源不再是“串行”地被一个个用户独占,而可以同时为几个用户共享。
4.分时与实时系统
分时系统是指多个用户通过终端设备与计算机交互作用来运行自己的作业,并且共享一个计算机系统而互不干扰,就
好像自己有一台计算机。
实时系统一般用于对时间有特殊要求的工作,如天气预报、工业控制。
5.UNIX通用操作系统
20世纪六十年代诞生,是现代操作系统的代表,是世界上唯一能在笔记本、PC、工作站直至巨型机上运行的操作系统。
6.个人计算机操作系统
20世纪七十年末,出现了面向个人计算机的操作系统。如微软、苹果。
1991年公布了Linux操作系统。Linux遵从国际UNIX标准POSIX,继承了UNIX的全部优点,而且还开放全部源码,Linux
极其健壮,世界上很多Linux连续不停机运行一年以上而不曾崩溃过。Linux是UNIX操作系统家族中,具有自由版权的
UNIX类操作系统中一个较突出的代表。
7.Android操作系统
Android操作系统是一款主要面向移动设备、基于Linux内核的开源移动操作系统,包括了Linux内核、中间件和关键
移动应用的整套软件。
10.操作系统分类?
按照用户界面的使用环境和功能特征的不同,一般可以把操作系统分为三种基本类型,即批处理系统、分时系统和实时系统。
随着计算机体系结构的发展,又出现了许多类型的操作系统,如:嵌入式操作系统、个人计算机操作系统、网络操作系统、
分布式操作系统。
11.请叙述各种类型操作系统的工作方式及特点?
1.批处理操作系统
基本工作方式是:用户将作业交给系统操作员,系统操作员在收到作业后,并不立即将作业输入计算机,
而是在收到一定数量的用户作业之后,组成一批作业,再把这批作业输入到计算机中。这批作业可在系统中形成一个连续的、
自动转接的作业流。系统操作员然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将执行完毕的作业结果交给
用户。
特点:成批处理。
2.分时系统(是为了弥补批处理方式不能向用户提供交互式快速服务的缺点而发展起来的)
基本工作方式:在分时系统中,一台计算机主机连接了若干个终端,每个终端可由一个用户使用。用户通过终端交互式
地向系统提出命令请求,系统接受用户的命令之后,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户
显示结果。用户根据系统送回的处理结果发出下一道交互命令。
特点:分时操作系统具有多路性、交互性、独占性、及时性。
12.描述分时系统下响应时间的含义?
在一个交互系统中,通常把用户从终端发出命令到系统给予回答所经历的时间,定义为响应时间。
13.现代的通用操作系统把批处理方式和分时方式二者结合起来,为什么这样做,有什么特点?
通用操作系统(如:UNIX)结合了分时系统与批处理系统两种系统的特点。在通用操作系统中,一般把系统的分时和批处理
运行状态,称为前台和后台。在系统的“前台”响应需频繁交互的作业,如大量终端的处理要求;而“后台”则处理对时间性要求
不强的作业。在通用操作系统中,对于分时与批处理的处理原则是:分时优先,批处理在后。
14.实时操作系统有什么主要特征?
实时操作系统是指,使计算机能在规定的时间内,及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时
设备和实时任务协调一致地工作的操作系统。实时操作系统主要有两类:第一类是硬实时系统。第二类是软实时系统。
实时系统为了能够实现硬实时或软实时的要求,除了具有多道程序系统的基本能力外,还需要有以下方面的能力:实时时钟
管理、过载防护、高可靠性。
15.请说明什么是SPOOLing技术,在现代操作系统中有没有使用SPOOLing技术?
假脱机(Simultaneous Peripheral Operating On-Line,SPOOLing)技术的全称是“同时的外部设备联机操作”。这种技术的基本
思想是用磁盘设备作为主机的直接输入输出设备,主机直接从磁盘上选取作业运行,作业的执行结果也存储在磁盘上;相应地,
通道则负责将用户作业从卡片机上动态写入磁盘,而这一操作与主机并行。类似的操作也用于打印输出用户作业运行结果。
现代操作系统中执行打印操作就使用了SPOOLing技术。
16.网络操作系统和分布式操作系统都是配置在计算机网络上的操作系统,它们之间有什么本质的不同?
网络操作系统与分布式操作系统在概念上的主要不同之处,在于网络操作系统可以构架于不同的操作系统之上,也就是说它可以
在不同的本机操作系统上通过网络协议实现网络资源的统一配置。在网络操作系统中并不要求对网络资源透明的访问,即需要显
式地指明资源位置与类型,对本地资源和异地资源访问区别对待。分布式操作系统强调单一操作系统对整个分布式系统的管理、
调度。在这种操作系统中,网络的概念在应用层被淡化了,所有资源,无论是本地的还是异地的,都用同一的方式管理与访问,
用户不必关心资源所在的真正物理位置,或者是如何存储的。
17.操作系统设计的过程包括哪些方面,在每个方面都要考虑什么问题?
1.功能设计
指根据系统的设计目标和使用要求,确定所设计的操作系统应具备哪些功能以及操作系统的类型。
2.算法设计
根据计算机的性能和操作系统的功能,来选择和设计满足系统功能的算法和策略,并分析和估算其效能。
3.结构设计
按照系统的功能和特性要求,选择合适的结构,使用相应结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、
简明、可靠、易读、易修改,而且使用方便,适应性强。
18.操作系统的设计目标是什么?
1.可靠性
可靠性包含了正确性和健壮性两个方面的含义
2.高效性
提高系统中各种资源的利用率,即提高系统的运行效率
3.易维护性
4.可移植性
指把一个程序系统从一个计算机系统环境中移到另一个计算机系统环境中并能正常运行的特性。通常操作系统与硬件有关的部分
被设计在操作系统程序的底层,在进行操作系统的移植时,只需修改操作系统的底层这一部分。
5.安全性
操作系统的安全性是整个计算机系统安全性的基础
6.简明性
19.影响操作系统正确性的因素有哪些?
影响操作系统正确性的因素有很多,最主要的是并发、共享以及随之或来的不确定性。、
并发使得系统中各条指令流的执行次序可以任意交叉;而共享导致进程对系统资源的竞争,使不同的指令执行序列之间产生直接
和间接的相互制约;以上两点原因又会引起系统的不确定。这种不确定性要求系统能动态地应付随时发生的各种内部和外部事件。
20.在进行操作系统结构设计时应考虑哪些问题?
1.系统模块化
新的理解将模块看作一组数据结构以及定义在这组数据结构上的一组操作。
2.模块标准化
模块标准化指两方面的内容:一是标准设计,作到模块规格划一,遵循相同的模块构造准则符合一定的模块标准;二是需要
总结、提炼操作系统的基本成份,然后把这些基本成份定型化、模块化。
3.通信规范化
主要是指模块之间的接口应该清晰划一,模块的联系方式要统一
21.请说明模块组合法、层次式结构和客户/服务器结构的基本思想以及优缺点?
1.整体式结构
基本思想:首先确定操作系统的总体功能,然后将总功能分解为若干个子功能,实现每个子功能的程序称为模块。再按照功能
将上述每个大模块分解为若干个较小的模块,如此下去,直至每个模块仅包含单一功能或紧密联系的小功能为止,即分解为
最基本的模块为止。最后通过接口将所有模块连接起来形成一个整体。我们把这种操作系统的结构称之为模块组合结构。
优点:结构紧密,接口简单直接,系统效率较高。
缺点:1.模块间转接随便,各模块互相牵连,独立性差,系统结构不清晰。2.数据基本上作为全程量处理,系统内所有模块的
任一程序均可对其进行存取和修改,从而造成了各模块间有着更为隐蔽的关系,要更换一个模块或修改一个模块都比较困难
,因为要弄清各模块间的接口,按当初设计时随意约定的格式来给信息,这是一件相当复杂的事。
3.由于模块组合结构常以大型表格为中心,为保证数据完整性,往往采用全局封中断办法,从而限制了系统的并发性。
系统中实际存在的并发性也未能抽象出明确的概念,缺乏规格的描述方法。所以,这种结构的可适应性较差。
2.层次式结构
基本思想:把操作系统的所有功能模块,按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单身
依赖或单向调用(如只允许上层或外层模块调用下层或内层模块)关系。这样不但操作系统的结构清晰,而且不构成循环。
优点:它既具有模块接口法的优点--把复杂的整体问题分解成若干个比较简单的相对独立的成份,即把整体问题局部化,使得
一个复杂的操作系统分解成许多多功能单一的模块。同时它又具有模块接口法不具有的优点,即各模块之间的组织结构和
依赖关系清晰明了。还有很容易对操作系统增加或替换掉一层而不影响其他层次。因此采用层次结构法设计的操作系统易于
调试、易于修改、易于扩充、易于维护、易于保证正确性。
3.微内核(客户/服务器)结构
基本思想:运行在核心态的内核提供所有操作系统基本都具有的操作,如线程调试,虚拟存储,消息传递,设备驱动等。内核只
提供了一个很小的功能集合,因此称为微内核。除了内核部分外,操作系统所有的其他部分被分成若干个相对独立的进程,
每个进程实现一组服务,称为服务进程。服务进程可以提供各种系统功能、文件系统服务以及网络服务等。服务进程的任务
是检查是否有客户机提出要求服务的请求,并在满足客户机进程的请求后将结果返回。而客户机可以是一个应用程序也可以
是另一个服务进程。客户机进程与服务器进程之间的通信是采用发送消息进行的,进程之间不直接通信,必须通过内核进行。
优点:它将操作系统分成若干个小的并且自包含的分支(服务进程),每个分支运行在独立的用户进程中,相互之间通过规范一
致的方式接收发送消息而联系起来。操作系统在内核中建立起了最小的机制,而把策略留给用户空间的服务进程,这带来
很大的灵活性,直接好处如下:可靠、灵活、适宜于分布式处理的计算环境。
缺点:主要是对于效率的考虑。国为所有的用户进程只能通过微内核相互通信,微内核本身就成为系统的瓶颈,在一个通信很
频繁的系统中,微内核往往不能提供很好的效率。