《计算机导论第三讲纯理论.ppt》由会员分享,可在线阅读,更多相关《计算机导论第三讲纯理论.ppt(40页珍藏版)》请在三一办公上搜索。
1、第3章 计算机系统的软件,计算机导论,第3章 计算机系统的软件,3.1计算机软件概述,3.2程序设计语言,3.3操作系统,3.4 软件工程,3.1 计算机软件概述(P100),也有将软件分为三大类,即系统软件、支撑软件和应用软件。这种分法将软件开发工具和环境从应用软件中分出来,将支持其它软件开发与维护的软件,称之为支撑软件。3计算机系统的组成 计算机系统由硬件与软件组成,其层次结构 如图3-2所示,硬件与软件的关系:(1)硬件是基础,但它只能执行二进制代码表示的机器语言程序。(2)软件加硬件构成了功能更完善,使用更方便的虚拟机(3)硬件与软件在逻辑功能上是等效的,它们之间没有固定不变的分界面(
2、即硬件可软化,软件可硬化),3.2 程序设计语言(P103)3.2.1 算法与程序什么是算法定义:算法是精确定义的一系列规则,这些规则指出如何从给定问题的 输入信息经过有限步骤产生出所求问题的输出信息。不同算法必须遵循的共性(1)确定性:算法的每一种运算必须有确切的定义(2)能行性:算法中有待实现的运算都可在有限时间内完成。(3)输入:一个算法有零个以上的输入。(4)输出:一个算法产生一个或多个输出。(5)有穹性:一个算法总是在执行了有穹步的运算后终止。评价算法优劣的标准(1)空间复杂性S(n):按算法所编制的程序在计算机中所占用的存储单元的总数。n是问题的规模,显然S(n)是随n的增长而增加
3、。(2)时间复杂性f(n):按算法所编制的程序在计算机执行时所耗费的时间。显然f(n)随 n的增长而增加。,2.算法与程序的关系 求解问题的程序必须根据算法去编制,如同作战方案必须贯彻作战策略一样。算法是编制程序的依据。当一个算法在指明了所处理的数据及其相互之间的结构关系之后,即可形成解决某类特定问题的可执行的程序。程序=算法+数据结构,3.2.2 程序设计语言的发展过程 程序设计语言的发展已经历了四代,第五代语言尚处于萌芽状态。1第一代语言:机器语言组成:由二进制指令代码组成,也称二进制语言。特点:(1)机器语言可由计算机硬件直接识别和执行,故用机器语言编制的程序效率较高。(2)人工编写机器
4、语言程序很繁琐,容易出错。(3)通用性差,不同计算机有不同的机器语言。,第二代语言:汇编语言组成:由指令的助记符(指令的英文名称的缩写)及相关语法 规则组成举例:表中列出了两条汇编语言中的伪指令ORG:起始地址定位伪指令END:汇编结束伪指令 且指令地址和操作数地址用“符号”START,CON01CON03表示。它们在“汇编”过程中将由“汇编程序”赋于真正的存储地址。这些都由汇编语言的语法规则所规定。,特点:(1)用汇编语言编制的程序称为汇编语言程序,它不能为计算机硬件直接识别和执行。必须通过汇编程序(一种系统软件),将汇编语言程序(源程序)“翻译”为机器语言程序(目标程序)后,才能执行。(2
5、)汇编语言指令与机器语言指令一一对应,仍然依赖于计算机的硬件,称它们为低级语言。(3)不同计算机有不同的汇编语言,彼此不能通用。(4)与机器语言相比,记忆指令助记符较记忆指令代码容易,但仍然很繁琐。,3第三代语言:高级语言组成:由表达各种意义的“词”、“数学公式”及特定的语法规则组成。由 于它比较接近自然语言,并与机器的指令系统没有直接关系,故 称它为高级程序设计语言,或算法语言。举例:常用的高级语言有BASIC,FORTRAN,ALGOL,COBOL,C,PASCAL,PL/I等,特点:(1)可在不同的计算机上运行,通用性强。(2)编程方便、简单、直观,不容易出错。(3)用高级语言编写的源程
6、序必须通过编译“或解释”生成机器语言程序(目标程序),才能在计算机上运行。如下图所示:,4第四代语言:在高级语言基础上集成的模块化语言。第四代语言实质上是可以快速开发应用软件的各种高生产率的软件工具的统称,它具有更强的编程功能。例如:面向过程的第四代语言:SQL,Power Builder和Delphi等。面向对象的编程语言和网络语言:VB(Visual Basic)VC,C+,HTML 和 Java 等。各种软件开发工具。如CASE(计算机辅助软件工程),它已超出语言的范围,集语言、数据库于一体,形成了所谓信息系统应用生成工具。5第五代语言 第五代语言将是智能化语言,到目前为止,还没有公认的
7、第五代语言出现。PROLOG语言可能成为第五代语言最著名的雏形。,3.2.3 高级语言的基本结构 每种高级语言都有其自身的特点及特殊的用途,但它们的语法成份、层次结构却是相似的。研究它们的共性,有助于更好地学习高级语言。高级语言的层次结构,一般由基本元素,表达式及语句组成。基本元素:由基本符号组成,可分为数、逻辑值、名字、标号及字符串等五大类。基本符号包括单字符基本符号(字母、数字、特殊字符)及多字符基本符号。表达式:由基本符号和基本元素组成,可分为算术表达式,逻辑表达式和字符串表达式。语句:由基本元素、表达式等组成,通常包括下列语句:赋值语句:实现计算或存储 转移语句:实现程序的转移 条件语
8、句:实现条件的测试和判断 输入/输出语句:完成输入/输出任务 循环语句:实现循环运算 其它语句:实现其它特殊功能,用上述的基本元素、表达式、语句、按一定语法规则,便可编制高级语言程序,如下例所示:例:编写一个求解一元二次方程的程序。PROGRAM eq(input,output);VAR a,b,c,d,t1,t2,:real:BEGIN read(a,b,c);d:=bb-4ac;t1:=-b/(2a);t2:=sqrt(abs(d)/(2a);IF d=0 THEN writeln(x1=,t1+t2,x2=,t1-t2)ELSE writeln(re=,t1,im=,t2)END.,2面
9、向过程的程序设计 高级语言是一种过程性语言,因为用该语言编写程序必须详细准确地描述解题过程,称为面向过程的程序设计。这种程序的功能隐含在程序代码中,其主要缺陷是:阅读理解现有程序的功能较难。开发应用系统耗时耗力,只有专业人员才能胜任。维护(修改)软件较难。为提高开发效率、增加系统的可理解性和可维护性,在进行面向过程程序设计时,采用了下列技术。,3.3 操作系统(P144)对大多数使用过计算机的人来说,操作系统既熟悉又陌生。熟悉的是一打开机器,首先运行的就是操作系统,我们所有的工作都是在操作系统上运行的。但大多数人却又说不清什么是操作系统。3.5.1操作系统概述 1什么是操作系统 关于操作系统的
10、定义至今尚无权威性的说明。一般都从功能、用户、软件等多个角度来对操作系统作出解释,如下所示:操作系统是由程序和数据结构组成的大型系统软件,它负责计算机的全部软硬件资源分配、调度与管理,控制各类程序的正常执行,并为用户使用计算机提供良好的环境。前已指出,在硬件上加载操作系统之后,就变成一台与“裸机”大相径庭的“虚拟”计算机。其他的所有软件如编译软件、数据库系统、软件开发工具等系统软件以及浏览器、字处理软件、办公软件等应用软件都是以操作系统为基础,运行于“虚拟”机上的。该虚拟机为用户提供了两种不同级别的接口:最终用户接口和程序员接口,使用户能方便、灵活地使用计算机。,(1)最终用户接口 命令行式用
11、户接口,如:DOS,UNIX shell命令 图形用户接口,如:Windows 95/98,Windows NT UNIX-X Windows(2)程序员接口(系统调用)用户在程序中像调用子程序一样调用操作系统所提供的子功能。如:DOC中的INT 21H,Windows API(Windows应用编程接口)。,2操作系统的种类按系统功能,可将操作系统分为下列几类:(1)批处理操作系统特点:多个作业批量输入计算机,进行批量处理,无需人工干预。分类:单道批处理系统。多道批处理系统。优缺点:多道批处理系统可使CPU与外设、各外设 之间并行操作,提高CPU的利用率。在处理过程中,无交互性,对运行中出现
12、 的问题不能及时处理。,(2)分时操作系统(分时系统)特点:用户通过与计算机相连的终端,按时间片(如100ms)轮流使用计算机系统,直接与计算机交互,如同各用户都独占有自己的机器。示例:优缺点:交互性好,能及时修改程序运行中所出现的错误,要求CPU速度高,参与“分时”的用户数目有一定限制。,(3)实时操作系统 特点:对于特定的输入,系统能够不失时宜地作出响应,并完成对该输入请求的处理。其及时性较分时系统要求更高(一般为毫秒级,甚至微妙级)其交互性较分时系统差。分类:实时控制系统,如生产过程控制系统,导弹控制系统等。实时信息处理系统,如机票订购系统、联机情报检索系统等。,(4)网络操作系统 特点
13、:是在单机操作系统基础上发展起来的,能对网络上的共享资源进行管理的操作系统,如:Windows NT Server,Netware,UNIX等。基本功能:网络通信功能 网络资源的管理和使用(5)操作系统的其它分类方法 单用户操作系统(如MSDOS)与多用户操作系统(如UNIX)单任务操作系统(如MSDOS)与多任务操作系统(如Windows 95/98,Windows NT)嵌入式操作系统、掌上电脑操作系统及微机操作系统、主机操作系统等。,3操作系统的功能 从资源管理的角度来看,操作系统对计算机硬软件资源的管理包括:(1)处理器(CPU)管理:在多道程序运行下,对于单处理器的计算机,操作系统要
14、按一定策略实施CPU的分配调度,使CPU为多个程序交替服务,提高CPU的利用率。或者说,从“宏观”上看,将一个CPU虚拟化为多个CPU,供多个程序单独使用。(2)存储器管理:指对计算机的主存进行管理,包括:主存分配与回收:按一定策略为申请主存空间的作业分配主存,当作业运行完毕后,回收该作业所占据的主存空间,使它变为空闲区。主存的保护:为多个用户程序共享主存提供保护措施,使各自的程序与数据不被破坏。主存的扩充:为用户提供比实际主存容量大得多的虚拟存储空间。,(3)设备管理:指对计算机的各类外部设备(输入输出设备及外存储器)的管理,包括设备的分配与回收,启动外设工作,进行故障处理等。为提高设备的利
15、用率,采用虚拟设备技术。为使用户方便、高效地使用设备,采用“屏蔽”技术,使用户使用设备时不必关心设备的物理特性。(4)文件管理:计算机中的所有信息(程序、数据及文档等)都是以文件形式保存在外存中。文件管理面向用户实现按名(文件名)存取;支持对文件的存取、检索、插入、修改和删除;解决文件的共享、保护和保密等问题。,(5)作业管理:作业是指用户提交任务,它包括用户程序、数据及作业控制说明。作业控制说明表达了用户对作业运行要求,可通过作业控制语言(JCL)或操作控制命令(最终用户接口提供)实现。作业管理一般包括:向用户提供实现作业控制的手段(即两类接口)按一定策略实现作业调度:从外存中选择若干作业装
16、入主存,准备运行;作业完成后,进行资源回收。使各作业有效地共享系统资源,并尽可能满足用户要求。还需指出的是:(1)现代操作系统,除了应具备上述五大管理功能外,还应具有网络功能,即能够提供网络通信、网络服务、网络接口和网络资源管理等功能。(2)随着计算机技术的不断发展,向操作系统提出了许多更新更高的要求。但是,无论怎么变,目标是一致的:操作系统必须实现对计算机系统软硬件资源的高效管理,并向用户提供一个越来越易于使用的高效、安全的操作环境。,4操作系统的特性 为实现操作系统的目标,采用了三项技术:并发、共享和虚拟。正是这三种技术,使操作系统具有了区别于其它软件的几个最基本特征:程序的并发执行、资源
17、共享及虚拟性。,3.5.3 存储管理 1存储管理概述 存储管理是指主存管理,辅存管理将在设备管理及文件管理中讲述。主存管理的基本任务:分配与回收,保护,扩充。主存管理的常用方法。(1)实主存管理(分区管理)单一连续分区法 固定分区法 可变分区法 可重定位分区法(2)虚存管理 页式存储管理 段式存储管理 段页式存储管理,3.5.5 文件管理 计算机系统中的软件资源,如源程序、目标程序、数据、编译程序等,都是以文件形式组织的。对这些文件的高效管理,并为用户提供方便、安全地使用这些文件的手段,是操作系统的另一个重要任务。1文件及文件系统(1)文件:指逻辑上具有完整意义的一组相关信息的有序集合,它由文
18、件体及文件控制块(FCB)所组成。其中,文件体是文件信息的本体,文件控制块则是文件的说明,包含有:文件名、用户名、文件类型、文件所在物理位置、文件建立日期等。(2)文件类型:按照不同观点,可将文件分成多类。(3)文件系统:操作系统中对文件进行组织、存取和管理的机构(软件集合),称之文件管理系统,简称文件系统。,2文件系统的功能 文件系统的主要功能是实现“按名存取”,具体包括:(1)实现从逻辑文件到物理文件的转换 逻辑文件:按用户使用要求构造的文件。它是面向用户的。物理文件:按存储介质(如磁盘、磁带)的物理特性构造的文件。它是面向设备的。为使用户方便地按名存取文件,文件系统为用户“屏蔽”了复杂的
19、辅存特性及文件在辅存上的具体操作,实现逻辑文件到物理件的转换。(2)有效地分配文件的存储空间。(3)建立文件目录,提供合适的存取方法。(4)实现文件的共享、保护和保密。,3文件的组织 文件系统提供了上述的两种文件结构:逻辑结构,物理结构。(1)文件的逻辑结构(逻辑文件)流式文件:将文件信息作为一个整体来管理和使用的文件。如由系统程序、源程序、标准子程序等信息组成的文件。记录式文件:由若干个相关记录所组成的文件。文件系统以记录为单位对文件进行管理,用户则按文件名和记录号以记录为单位使用文件中的信息。如下表所示:,表中,每个记录是一个学生的各科成绩,它由多个数据项组成,其中至少有一个数据项能用来唯
20、一标识该记录,称为记录的主键(关键字),如表中的“学号”、“记录号”。逻辑文件中的记录称为逻辑记录,它要存放在外存空间(如磁盘)的“物理块”中,或称“物理记录”。逻辑记录与物理记录的大小一般是不相等的。,5文件的共享、保护和保密(1)文件的共享:文件作为软件资源可供多个用户共同使用,称之文件共享。实现文件共享的方法有:连访法(用指针链指向同一信息文件)采用基本文件目录和符号文件目录的多级目录结构。(2)文件保护:防止文件因硬件故障或共享文件时遭受破坏,称之文件保护。实现文件保护的方法有:建立存取控制权限表,定期转储,建立多个副本等。(3)文件的保密:防止他人窃取文件,称之文件保密。实现文件保密
21、的方法有:设置口令,对文件进行加密等。,6文件的使用(1)文件的存取方式 文件的存取方法不仅与文件的性质有关,而且与用户怎样使用文件有关,如下表所示:(2)文件的操作文件系统为用户提供下列文件操作命令 建立文件(CREATE 文件名,文件属性,设备号)打开文件(OPEN 文件名)关闭文件(CLOSE 文件名)读文件(READ文件名,记录号,外存地址)撤消文件(DELETE文件名).写文件(WRITE 文件名,记录号,外存地址),3.4 软件工程(P169),3.6.1 软件工程概述(P169),1软件的发展及软件“危机”(1)计算机软件是随着计算机硬件的发展及计算机的广泛应用而不断发展的。早在
22、计算机发展的初期,除了程序清单之外,没有其他任何文档资料。在这段时期内,只有程序的概念,而没有计算机软件的概念。(2)在20世纪60年代中期,形成了计算机软件的概念:软件不仅仅是可运行的程序系统,它必须有全套完整的文档,即“软件=程序+文档”。(3)20世纪70年代中期以后,软件的规模越来越大开发周期越来越长,使原先的手工作坊方式开发软件的成本急骤上升。“软件作坊”开发的软件不仅效率低,而且质量差(不可靠、难以维护和修改、难于移植),无法适应硬件的不断升级。出现了旧的软件没有修改好,新技术又要求软件做新的修改,开发的软件半途而废的例子屡见不鲜,出现了所谓的“软件危机”。(4)为了解决“软件危机
23、”,软件业界提出了软件工程(Software Engineering)的思想。,2软件工程学的主要内容(1)软件工程的定义 软件工程是以系统的、规范的、定量的方法应用于软件的开发、运营和维护,以及对这些方法的研究。(2)软件工程的主要内容是软件开发技术和软件工程管理。软件开发方法 研究软件开发方法(Software Development Methods)的目的是使开发过程规范化,使开发有计划、按步骤地进行。常用的软件开发方法有:面向数据流设计方法SD、面向数据结构设计方法JDM和面向对象设计方法OOD。,软件工具 软件工具(Softwere Tools)是指帮助开发和维护软件的软件,也称软件
24、自动工具(Software Automated Tools)。软件工程环境 软件工程环境正是软件方法和工具的结合,其定义是:软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。软件工程管理学 软件工程管理就是对软件工程生存期内的各阶段的活动进行管理,实现按预定的时间和费用成功地完成软件的开发和维护。,3.6.2 软件开发模型(P171),软件开发模型是指软件生存周期模型(Saftware Life Cycle Model),根据软件生产工程化的需要,软件生存周期的划分有所不同,从而形成了不同的软件开发模型。,1软件生存周期 软件生存周期一般由软件计划
25、、软件开发和软件运行维护三个时期组成。软件计划时期分为问题定义、可行性研究两个阶段。软件开发时期可分为需求分析、软件设计、测试等阶段。软件交付使用后在运行过程中需要不断地维护,使软件能持久地满足用户的需要。,2软件开发模型 软件开发模型总体来说有传统的瀑布模型和后来兴起的快速原型模型。具体可分为:瀑布模型,快速原型,喷泉模型,软件重用开发模型和螺旋模型,以下对其中几个模型做一简介。(1)瀑布模型(Waterfall Model)瀑布模型遵循软件生存期的划分,明确规定每个阶段的任务,各个阶段的工作按顺序展开,恰如奔流不息拾级而下的瀑布,如图3-72所示。,(2)快速原型(Rapid Protot
26、ype Model)先根据需求分析的结果开发一个原型系统,请用户试用一段时间,以便能准确地认识到他们的实际需要是什么,这相当于工程上先制作“样品”试用后,做适当改进,然后再批量生产一样,这就是快速原型法。通常有3种实现原型的方法:渐增型 用于验证软件需求的原型 用于验证设计方案的原型软件快速原型开发方法的开发过程如图3-73所示。,(3)软件重用模型(Software Reuse Model)这种开发模型旨在开发具有各种一般性功能的软件模块,将它们组成软件重用库,这些模块设计时考虑其适应各种界面的接口规格,可供软件开发时利用。通常软件重用分两种:重用程序以各种源程序形式存库。重用程序是经过编译的目标程序。,(4)螺旋模型(SM:Spiral Model)螺旋模型是1988年由B.W.Boehm提出的。螺旋模型把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期,系统就细化和完善一些。螺旋模型把软件过程描绘为“计划风险分析原型用户评审”周而复始的四种活动,将其称为一个螺旋周期。螺旋模型如图3-74所示。,第 3 章 结束 祝学习进步!,