计算机科学与技术基础电子教案.docx
- 文档编号:25364608
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:15
- 大小:28.72KB
计算机科学与技术基础电子教案.docx
《计算机科学与技术基础电子教案.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术基础电子教案.docx(15页珍藏版)》请在冰豆网上搜索。
计算机科学与技术基础电子教案
2011年计算机科学与技术基础
NJU2011年计算机科学与技术基础试卷与答案
科目名称:
计算机科学与技术基础
一、(10分)我们有下列两个问题,并已有各自的算法:
1.已知等腰三角形各边长,求高。
2.已知直角三角形的任意两边长,求第三边的长度。
利用这两个问题解释多项式时间规约的概念,并说明多项式时间规约在计算机算法理论中的作用。
NP问题的全称是:
NondeterministicPloynomial问题,即非确定性多项式问题。
多项式时间(Polynomialtime)在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。
答案参考:
等腰三角形可分解成对称的两个直角三角形,问题2的答案可用于解决问题1。
因此问题2若能在多项式时间内解决,则问题1也能在多项式时间内解决。
(多项式时间归约 假定给了两个问题类q和q0,如果存在一个确定型图灵机Mq和一个多项式P,对于q中任意一个实例x,Mq都能在P(n)时间内计算出q0中一个实例y(其中n是实例x的编码长度),使得xq中有肯定回答的实例,当且仅当y是q0中有肯定回答的实例,我们就说q多项式时间归约到q0)多项式时间规约对于研究NP,NP完全问题具有重大作用。
对于一个规模为n的输入,在最坏情况下的运行时间是
,其中k是某一确定的常数,即称时间负责度为的算法为多项式时间算法。
一般来说,在多项式时间内可解的问题是易处理的问题,在超过多项式时间内解决的问题是不易处理的问题。
不能够这样限制时间复杂度的算法被称为指数时间算法。
例如,时间复杂度为O(nlog(n))、O(n^3)的算法都是多项式时间算法,时间复杂度为O(n^log(n))、O(n!
)、O(2^n)的算法是指时间算法。
计算复杂性理论所研究的资源中最常见的是时间(要通过多少步演算才能解决问题)和空间(在解决问题时需要多少内存)。
其他资源亦可考虑,例如在并行计算中,需要多少并行处理器才能解决问题。
时间复杂度是指在计算机科学与工程领域完成一个算法所需要的时间,是衡量一个算法优劣的重要参数。
时间复杂度越小,说明该算法效率越高,则该算法越有价值。
空间复杂度是指计算机科学领域完成一个算法所需要占用的存储空间,一般是输入参数的函数。
它是算法优劣的重要度量指标,一般来说,空间复杂度越小,算法越好。
我们假设有一个图灵机来解决某一类语言的某一问题,设有X个字(word)属于这个问题,把X放入这个图灵机的输入端,这个图灵机为解决此问题所需要的工作带格子数总和称为空间。
计算复杂性理论最成功的成果之一是NP完备理论。
NP是指“在非确定性图灵机上有多项式时间算法的问题”的集合,而P是指“在确定性图灵机上有多项式时间算法的问题”的集合。
P类问题、NP类问题和NP完全性(NPC)
P类问题:
一个优化问题如果已经找到了多项式时间算法,则称该问题为多项式时间可解问题,并将这类问题的集合记为P,因此在多项式时间内可解决的问题就称为P类问题。
一个问题如果没有找到多项式时间算法,那么直觉上它是“难解”的,但又往往无法证明多项式时间算法的不存在性。
由于在寻找有效算法上的失败未必一定意味着这样的算法不存在,这就给理论工作者带来了一个难题:
一方面证明一个问题不存在多项式时间算法是困难的,至今尚未给出;另一方面有越来越多的问题无法给出多项式时间算法。
为此,在20世纪70年代提供了一个漂亮的理论,它把这种失败归结为一个深刻的数据猜想称为NP完全性理论。
定义:
给定一个判定问题,如果存在一个算法,对任何一个答案为“是”的实例I。
该算法首先给出一个猜想,该猜想规模不超过I的输入长度的某个多项式函数,且验证猜想的正确性仅需多项式时间,则称该问题属于NP类。
定义:
如果NP类中所有问题都可以多项式时间归约到NP类中某个问题x,则称x是NP-完全问题。
定义:
如果某优化问题x的判定问题是NP-完全的,则称问题x是NP-难的;如果x的判定问题是强NP-完全的,则称x是强NP-难的。
二、(15分)
1.以Quicksort算法为例,解释什么是最好情况时间复杂度、最坏时间复杂度、平均时间复杂度?
2.在Quicksort算法中选择第一个元素为比较基准对象或者通过随机方法来选择一个元素为比较基准对象效果有差别吗?
请给出解释。
三、在软件建模过程中,人们往往先建立平台无关的模型(PlatformIndependentModels,PIM),然后再建立特定实现平台上的平台相关模型(PlatformSpecificModels,PSM)。
请简单论述这种建模方法的优点(10分)
四、简述软件体系结构的概念。
在模型-试图-控制器模式(ModelViewController,MVC)中,视图主要担负什么样的责任?
(7分)
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。
处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。
如何表示软件体系结构,即如何对软件体系结构建模。
根据建模的侧重点的不同,可以将软件体系结构的模型分为5种:
结构模型、框架模型、动态模型、过程模型和功能模型。
在这5个模型中,最常用的是结构模型和动态模型。
(1)结构模型
这是一个最直观、最普遍的建模方法。
这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。
研究结构模型的核心是体系结构描述语言。
(2)框架模型
框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。
框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型
动态模型是对结构或框架模型的补充,研究系统的"大颗粒"的行为性质。
例如,描述系统的重新配置或演化。
动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。
这类系统常是激励型的。
(4)过程模型
过程模型研究构造系统的步骤和过程。
因而结构是遵循某些过程脚本的结果。
(5)功能模型
该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。
它可以看作是一种特殊的框架模型。
这5种模型各有所长,也许将5种模型有机地统一在一起,形成一个完整的模型来刻画软件体系结构更合适。
例如,Kruchten在1995年提出了一个"4+1"的视角模型。
"4+1"模型从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件体系结构。
每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容。
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。
1)最上面的一层,是直接面向最终用户的"视图层"(View)。
它是提供给用户的操作界面,是程序的外壳。
2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。
3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。
每一层都对外提供接口(Interface),供上面一层调用。
这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:
模型(Model)、视图(View)和控制器(Controller)。
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
最典型的MVC就是JSP+servlet+javabean的模式。
1、模型(Model)
模型是应用程序的主体部分。
模型表示业务数据,或者业务逻辑.
2、视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
3、控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
除此之外,此模式通过对复杂度的简化,使程序结构更加直观。
软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。
专业人员可以通过自身的专长分组:
(控制器Controller)-负责转发请求,对请求进行处理。
(视图View)-界面设计人员进行图形界面设计。
(模型Model)-程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
模型(Model)“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
“模型”有对数据直接访问的权力,例如对数据库的访问。
“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。
但是模型中数据的变化一般会通过一种刷新机制被公布。
为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
(比较:
观察者模式(软件设计模式))
视图(View)视图层能够实现数据有目的的显示(理论上,这不是必需的)。
在视图中一般没有程序上的逻辑。
为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
控制器(Controller)控制器起到不同层面间的组织作用,用于控制应用程序的流程。
它处理事件并做出响应。
“事件”包括用户的行为和数据模型上的改变。
五、简述Agent开发技术中,Agent的特点。
(8分)
Agent是指驻留在某一环境下能够自主、灵活地执行动作以满足设计目标的行为实体。
现在对Agent技术的研究主要集中在两方面,一是人工智能,知识工程领域,侧重于研究Agent的认知,学习,决策,分布式求解等方面;另一方面是将Agent视为一种新的计算模型,侧重于如何构造基于Agent的系统,Agent软件体系结构,开发方法,程序设计语言等。
面向Agent开发的方法学主要有几种流派:
第一,借助于组织学和社会学的思想和概念来对于基于Agent系统进行描述分析和建模,代表为Gaia方法,但Gaia是一种通用的,独立于具体实现技术和方法的方法,这意味着它可以用现有技术来实现,比如扩展的OO技术。
Gais方法在需求分析阶段包括两个模型,角色模型和交互模型,在设计阶段有三个模型,分别为Agent的模型,服务模型和熟人模型。
其中Agent模型包括信念模型,目标(愿望)模型,计划(意图)模型,第二,借助于知识工程领域概念、思想和技术(如认知科学、人工智能等)对基于Agent系统进行建模、分析和设计,比如TroposDESIRE,MAS-CommonKADS方法,其中CommonKADS是一种常用的知识建模方法。
第二种方法对之进行了扩充,该方法主要定义了几种模型:
Agent模型,描述Agent的主要特征,包括推理能力,服务,目标等;任务模型;专家模型,描述Agent实现目标所需要的知识。
第三就是利用现有的OO技术进行扩展,将Agent视为一种主动型的对象,因为Agent模型和对象模型有些相似之处,比如二者都采用集成和封装来定义模型结构,利用消息机制来进行相互之间通讯,不过Agent是比对象更抽象的概念,粒度更大,而且Agent具有心智状态,用意识状态来刻画它的推理和决策能力,而且对象的消息机制是方法驱动的,而Agent则会对受到的消息进行分析并决定是否执行起要求的动作。
利用OO进行扩展还有一个好处就是可以利用OO现有的比较成熟的工具支持。
比如UML作为面向对象的建模语言有精确的语义描述,在不同开发阶段各个图之间有一致的规则利用,所以可以用UML的扩展机制将Agent描述出来。
六、简述题(15分)
1.简述中断(控制方式)在操作系统中的作用;
1.中断的基本概念
中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
引起中断发生的事件被称为中断源。
中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。
在有些情况下,尽管产生了中断源和发出了中断请求,但CPU内部的处理器状态字PSW的中断允许位已被清除,从而不允许CPU响应中断。
这种情况称为禁止中断。
CPU禁止中断后只有等到PSW的中断允许位被重新设置后才能接收中断。
禁止中断也称为关中断,PSW的中断允许位的设置也被称为开中断。
开中断和关中断是为了保证某段程序执行的原子性。
还有一个比较常用的概念是中断屏蔽。
中断屏蔽是指在中断请求产生之后,系统有选择地封锁一部分中断而允许另一部分中断仍能得到响应。
不过,有些中断请求是不能屏蔽甚至不能禁止的,也就是说,这些中断具有最高优先级,只要这些中断请求一旦提出,CPU必须立即响应。
例如,电源掉电事件所引起的中断就是不可禁止和不可屏蔽的。
2.中断的分类与优先级
根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。
根据中断源产生的条件,可把中断分为外中断和内中断。
外中断是指来自处理器和内存外部的中断,包括I/O设备发出的I/O中断、外部信号中断(例如用户键人ESC键)。
各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。
外中断在狭义上一般被称为中断。
内中断主要指在处理器和内存内部产生的中断。
内中断一般称为陷阱(trap)或异常。
它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。
为了按中断源的轻重缓急处理响应中断,操作系统为不同的中断赋予不同的优先级。
例如在UNIX系统中,外中断和陷阱的优先级共分为8级。
为了禁止中断或屏蔽中断,CPU的处理器状态字PSW中也设有相应的优先级。
如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的请求;反之,CPU屏蔽该中断源的中断请求。
各中断源的优先级在系统设计时给定,在系统运行时是固定的。
而处理器的优先级则根据执行情况由系统程序动态设定。
除了在优先级的设置方面有区别之外,中断和陷阱还有如下主要区别:
陷阱通常由处理器正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
CPU执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
例如执行指令非法时,尽管被执行的非法指令不能执行结束,但CPU仍可对其进行处理。
3.软中断
软中断的概念主要来源于UNIX系统。
软中断是对应于硬中断而言的。
通过硬件产生相应的中断请求,称为硬中断。
而软中断则不然,它是在通信进程之间通过模拟硬中断而实现的一种通信方式。
中断源发出软中断信号后,CPU或者接收进程在“适当的时机”进行中断处理或者完成软中断信号所对应的功能。
这里“适当的时机”,表示接收软中断信号的进程须等到该接收进程得到处理器之后才能进行。
如果该接收进程是占据处理器的,那么,该接收进程在接收到软中断信号后将立即转去执行该软中断信号所对应的功能。
4.中断处理过程
一旦CPU响应中断,转人中断处理程序,系统就开始进行中断处理。
下面对中断处理过程进行详细说明:
1)CPU检查响应中断的条件是否满足。
CPU响应中断的条件是:
有来自于中断源的中断请求、CPU允许中断。
如果中断响应条件不满足,则中断处理无法进行。
2)如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态。
3)保存被中断进程现场。
为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理器状态字PSW和程序计数器PC等的值。
这些值一般保存在特定堆栈或硬件寄存器中。
4)分析中断原因,调用中断处理子程序。
在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
在系统中,为了处理上的方便,通常都是针对不同的中断源编制有不同的中断处理子程序(陷阱处理子程序)。
这些子程序的人口地址(或陷阱指令的人口地址)存放在内存的特定单元中。
再者,不同的中断源也对应着不同的处理器状态字PSW。
这些不同的PSW被放在相应的内存单元中,与中断处理子程序人口地址一起构成中断向量。
显然,根据中断或陷阱的种类,系统可由中断向量表迅速地找到该中断响应的优先级、中断处理子程序(或陷阱指令)的入口地址和对应的PSW。
5)执行中断处理子程序。
对陷阱来说,在有些系统中则是通过陷阱指令向当前执行进程发出软中断信号后调用对应的处理子程序执行。
6)退出中断,恢复被中断进程的现场或调度新进程占据处理器。
7)开中断,CPU继续执行。
5.设备管理程序与中断方式
处理器的高速和输入输出设备低速之间的矛盾,是设备管理要解决的一个重要问题。
为了提高整体效率,减少在程序直接控制方式中的CPU等待时间以及提高系统的并行工作效率,采用中断方式来控制输入输出设备和内存与CPU之间的数据传送,是很有必要的。
在硬件结构上,这种方式要求CPU与输入输出设备(或控制器)之间有相应的中断请求线,而且在输入输出设备控制器的控制状态寄存器上有相应的中断允许位。
为了减少程序直接控制方式中CPU等待时间以及提高系统的并行工作程度,用来控制外围设备和内存与CPU之间的数据传送称为中断方式。
2.解释操作系统的2种用户接口;
3.给出减少页表占用内存空间的2种方法。
七、叙述处理器调度的主要目标或原则,描述3种不同目标的调度算法及其调度依据(10分)
答:
在多道程序环境下,主存中有着多个进程,其数目往往多于处理器数目。
这就要求系统能按某种算法,动态的把处理机分配给就绪队列中的一个进程,使其运行,由于处理机是最重要的计算机资源,这就要求处理器调度来保证处理机的利用率以及改善系统性能。
面向用户的准则:
周转时间段,响应时间快,截止时间的保证,截止时间的保证,优先权保证。
面向系统的准则:
系统吞吐量高,处理器利用率好,各类资源的平衡利用。
处理器调度分为:
高级调度,中级调度,低级调度
高级调度,又称为作业调度或长程调度,用于决定把外存后备队列中的哪些作业调入内存,为他们分配必要的资源,并创建进程。
在批处理系统中,大多配有作业调度,但在分时和实时系统中,往往不配置作业调度。
作业调度的运行频率较低,通常几分钟一次。
低级调度,又称进程调度或短程调度,用来决定就绪队列中哪个进程应先获得处理机,并将处理机分配给选中的进程。
进程调度是最基本的调度,在三种类型系统的操作系统中都需要配置它,其运行频率很高,典型的情况是几十毫秒就一次。
因而进程调度算法不能太复杂,以免占用太多的CPU时间。
可采用非抢占式方式和抢占方式。
中级调度,又称中程调度,它按一定的算法将外存中已具备运行条件的进程换入内存,而将内存中处于阻塞状态的某些进程置换到外存。
中级调度的目的是为了解决内存紧张问题,常用在分时系统以及具有虚拟存储器的系统中。
调度算法:
1.先来先服务算法(FCFS):
即可用于作业调度,也可以用于进程调度,将选择最先进入就绪队列的进程进行投入。
FCFS属于非抢占调度方式,特点是简单,易于实现,但不利于段作业和IO作业的运行。
2.短作业优先算法:
选择就绪队列中估计运行时间最短的进程投入执行,它即可采用抢占式方式,也可以采用非抢占式,抢占的SPF算法也叫做最短剩余时间优先算法。
3.高优先权优先算法:
在用于进程调度时,选择就绪队列中优先权最高的进程投入执行。
4.高响应比优先调度算法:
是一种动态优先权调度算法,它以响应比作为进程的动态优先权,即选择响应比最高的进程投入执行。
其目的是即照顾段作业,又考虑到作业的等待时间,使长作业不会等待太;但每次调度前,都要进行响应比的计算,会增加系统开销。
5.时间片轮转法:
在分时系统中都采用时间片轮转算法进行进程调度。
在简单的轮转算法中,系统将所有的就绪进程按FIFO规则排成一个队列,将CPU分配给队首进程,且规定它最多只能执行一个时间片,若时间片用完时仍未完成,也必须将其插入就绪队列末尾,并把CPU交给下一个进程。
时间片轮转算法属于抢占调度方式,其特点是简单易行,平均响应时间短,但不利于处理紧急作业。
八、简述数据库管理系统的主要功能(10分)
数据库管理系统:
是位于用户与操作系统之间的具有数据定义、数据操纵、数据库的运行管理、数据库的建立和维护功能的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
数据库管理系统的主要功能:
(1)数据定义:
提供数据定义语言DDL,用于定义数据库中的数据对象及其结构。
(2)数据操作:
提供数据操纵语言DML,实现对数据库的基本操作,如查询、插入、删除、更新等。
(3)事务管理和运行管理:
统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障发生时数据库中的数据不被破坏,并能够恢复到一致状态。
即并发控制、安全性检查、完整性约束的检查与执行、数据库的内容维护等。
(4)数据存储和查询处理:
确定数据的物理组织和存取方式,提供数据的持久存储和有效访问;确定查询处理方法,优化查询处理过程。
(5)数据库的建立与维护:
提供实用程序,完成数据库初始数据的输入与转换、数据库的转储与恢复、数据库的重组和性能监视等。
(5)其他功能:
实现DBMS与其他软件的通信、异构数据库之间的数据转换和互操作等。
九、关系代数与SQL(第1小题4分,第2小题6分,第3小题5分,共15分)
假设存在一个用于项目考勤管理的数据库系统,其关系模式如下:
职工T(职工编号eno,姓名ename)
项目P(项目编号pno,项目名称pname)
考勤记录W(职工编号eno,项目编号pno,日期date)
其中:
考勤记录表用于记录职工参与项目的情况。
一个职工一天只能参加一个项目。
1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术 基础 电子 教案