收藏 分享(赏)

计算机导论_ch3_new.ppt

上传人:dzzj200808 文档编号:3365918 上传时间:2018-10-19 格式:PPT 页数:75 大小:891KB
下载 相关 举报
计算机导论_ch3_new.ppt_第1页
第1页 / 共75页
计算机导论_ch3_new.ppt_第2页
第2页 / 共75页
计算机导论_ch3_new.ppt_第3页
第3页 / 共75页
计算机导论_ch3_new.ppt_第4页
第4页 / 共75页
计算机导论_ch3_new.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第 三 章计 算 机 软 件 系 统,3-2,一、软件的定义软件:计算机系统中的程序及其文档。程序:计算任务的处理对象和处理规则的描述。文档:为了便于了解程序所需的阐明性资料。,3.1 计算机软件概述,程序必须装入机器内部才能工作 文档供人阅读,不一定装入机器,3-3,IEEE对软件的定义(1983):软件是计算机程序、方法、规则、相关的文档资料以及在计算机上运行的程序时所必需的数据的集合。,3.1 计算机软件概述,程序:是计算机需要遵照执行的一系列指令。它作为一种具有逻辑结构的信息,精确而完整地描述计算任务中的处理对象和处理规则。 方法、规则:通常是在文档中说明并在程序中实现的。 文档:开发

2、、使用和维护程序所需要的图文资料。 数据:向一个程序提供的输入。,3-4,3.1 计算机软件概述,软件有三层含义:个体含义:即指计算机系统中的程序及其文档;整体含义:即指在特定计算机系统中所有上述个体含义下的软件的总体;学科含义:即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、原则、方法和技术所构成的学科。在这种含义下,软件宜称为软件学,但一般仍称作软件。,3-5,二、发展过程软件的发展受到应用和硬件发展的推动和制约,其发展过程大致可分为三个阶段:,3.1 计算机软件概述,软件工程 (Software Engineering,SE)是一门研究用工程化方法构建和维护有效的、实用的和高

3、质量的软件的学科 。,3-6,三、软件的分类系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般通过系统软件发挥作用。如操作系统、编译程序、网络软件系统、数据库系统、人机交互软件系统等。支撑软件:支撑软件的开发与维护的软件工具和软件开发环境。如环境数据库、各种接口软件和工具组等。应用软件:特定应用领域专用的软件。,3.1 计算机软件概述,3-7,四、软件与硬件的关系硬件:构成计算机系统的物理装置。软件:用计算机指令和算法语言编写的程序以及运行程序所需的文档、数据。关系:硬件是软件运行的基础软件是对硬件功能的扩充和完善软件的运行最终被转换为对硬件的操作,3.1 计算机软件概述,3-8,3.2

4、 操作系统,一、什么是操作系统管理硬件资源、控制程序运行、改善人机界面、为应用软件提供支持的系统软件。特征:并发性:同时执行多个程序共享性:多个并发程序共同使用系统资源随机性:程序运行顺序、完成时间都是不确定的,OS的装载,3-9,二、操作系统的功能1.主要作用(1)管理各种软件、硬件资源(2)提供用户与计算机硬件系统的接口(3)扩充机器功能2.提供的公共服务(1)程序执行(2)I/O操作(3)文件系统操纵(4)同机或不同机中的进程通信(5)硬件和软件的差错检测,3.2 操作系统,3-10,3.基本功能处理机管理对处理机进行分配,对其运行进行有效的控制和管理。在多道程序环境下,通过进程管理协调

5、多道程序间的关系,解决对处理机实施分配调度策略、进行分配和回收等。处理机管理包括:进程控制、进程同步、进程通信、进程调度 进程是一个执行中的程序。该程序开始执行但还未结束,程序装入内存就成为进程。,3.2 操作系统,3-11,进程控制 创建进程,为之分配资源;撤消进程,回收资源;控制进程的状态转换。 进程同步 对多个进程的运行进行协调,方式有互斥和同步。 进程通信 系统可为一个程序建立多个进程,这些进程合作去完成一共同任务,这些进程往往要交换信息。 进程调度 FCFS、优先权调度、短作业优先调度、时间片轮转等。,3.2 操作系统,3-12,3.2 操作系统,新进程,执行,阻塞,结束,就绪,中断

6、,调度,I/O请求或 等待某事件,I/O完成或 事件发生,进程五种基本状态,3-13,存储器管理管理内存资源,为多道程序的运行提供良好的环境。主要包括内存分配与回收地址映射内存保护虚拟内存,3.2 操作系统,3-14,连续分配:一个用户程序分配到一个连续的内存空间 固定分区(大小相等、大小不等) 可变分区(空闲链结构,提高利用率) 产生碎片,“紧凑”开销很大。 离散分配: 分页(提高利用率)页表 建立页号(逻辑)和块号(物理)的关系 分段 作业的地址空间按逻辑信息划为多个段,为每个段分配一个连续的分区,各个段分区可以离散。(方便编程、分段共享、分段保护、动态链接)段表 段页式 利用段表、页表实

7、现地址映射,3.2 操作系统,3-15,设备管理对硬件设备进行管理。主要包括:缓冲区(主存中)管理设备分配设备驱动设备无关性(应用程序使用逻辑设备名称,实际执行时使用物理设备名称),3.2 操作系统,3-16,用户接口用户操作计算机的界面。 命令接口:通过交互命令方式对计算机进行操作 程序接口:通过API调用例行程序实现既定的操作,3.2 操作系统,3-17,文件管理对信息资源的管理,操作系统将这些资源以文件的形式存储在外存上。 文件存储空间的管理、目录管理、读写管理和存取控制文件:按一定格式建立在存储设备上的一批相关信息的有序集合。文件名:每个文件必须起一个名字。主文件名.扩展名/文件类型目

8、录:文件的存放通过目录形式来实现一个目录可以有子目录可以存放一组文件,3.2 操作系统,3-18,多级目录结构:,3.2 操作系统,盘符:子目录1子目录2子目录n文件名 C:Program FilesMicrosoft OfficeOFFICE11 winword.exe,3-19,三、操作系统的分类1.多道批处理操作系统特点:作业成批处理;作业调度、进程调度多道程序运行,但无交互手段。2.分时操作系统所有的用户作业都直接进入内存特点:多路性,及时性,交互性,独占性。3.实时操作系统两个领域:实时控制(数据采集、执行机构)实时信息处理(服务请求、响应)特点:多路性,独占性,及时性,高可靠性。,

9、3.2 操作系统,3-20,4.嵌入式操作系统系统内核小、专用性强、系统精简 。5.个人计算机操作系统单用户,单任务(DOS) 多任务(Windows)6.网络操作系统两种工作模式:Client/Server (分布处理、集中控制)Peer-to-peer (无服务和控制中心)7.分布式操作系统系统的处理和控制功能,分散到各个处理单元上。系 统中的任务被动态地分配到各个处理单元上并行处理。 并行性,共享性,透明性,自治性,高可用性,3.2 操作系统,3-21,四、常用的操作系统操作系统是现代计算机必不可少的系统软件,它是计算机的灵魂所在。1.操作系统的诞生-盘古开天地最初的操作系统出现在IBM

10、704大型机上微型计算机的操作系统则诞生于20世纪70年代-CP/M。它能够进行文件管理,具有磁盘驱动装置,可控制磁盘的I/O,显示器的显示以及打印的输出。,3.2 操作系统,3-22,2.操作系统早期霸主-DOS1981年IBM公司首次推出IBM PC,就采用了Microsoft公司开发的DOS操作系统。DOS是在CP/M的基础上进行了较大扩充,增加了许多内部和外部命令,使该操作系统具有较强的功能及性能优良的文件系统。由于Microsoft软件有向下兼容的特点,因此决定了Windows出问题时,很多时候需要在DOS下才能得到解决。,3.2 操作系统,3-23,DOS的发展历史:DOS的组成:

11、,3.2 操作系统,3-24,3.操作系统当代大亨-Windows1981年,微软公司内部制定了发展界面管理者的计划。到1983年5月,微软公司决定把这一计划命名为Microsoft Windows。1983年11月,Bill宣布推出Windows1.0版本,但不成功。直到1985年才正式发布。1987年,微软公司推出Windows2.0。直到1990年,微软公司推出Windows3.0,才逐渐取代DOS成为主流操作系统。,3.2 操作系统,3-25,Windows内核系列发布表,3.2 操作系统,3-26,Windows NT/2000/XP总体结构,3.2 操作系统,3-27,4.天皇巨星

12、-UNIXUNIX是使用比较广泛、影响比较大的主流操作系统之一。UNIX结构简练、功能强,可移植性和兼容性都比较好,因而它被认为是开放系统的代表。UNIX是1969年贝尔实验室开发的多用户操作系统,最早用于PDP-7和PDP-11小型机,并很快得到普及。迄今已成为跨越从微型机到巨型机范围的唯一操作系统。,3.2 操作系统,3-28,UNIX发展简图,3.2 操作系统,3-29,UNIX系统的框架结构,3.2 操作系统,3-30,5.诱人的小企鹅-Linux1991年,芬兰赫尔辛基大学的21岁学生Linus Torvolds在学习操作系统时,将自己开发的Linux系统源程序完整地上传到FTP服务

13、器上,供大家下载测试。Linux是一套免费使用和自由传播的类Unix操作系统, 是Unix操作系统的一种克隆系统,它诞生于1991 年的 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种Unix 类操作系统,并且使用人数还在迅猛增长。,3.2 操作系统,3-31,3.2 操作系统,流行的Linux版本Linux内核版本:测试版、稳定版 2.6.8,主版本号,次版本号:奇数测试版偶数稳定版,当前版本错误修改次数,3-32,3.2 操作系统,Linux操作系统的组成,3-33,3.2 操作系统,6.天

14、使的化身-Mac OS XApple /LisaMacintosh,1976,1983,1984,3-34,一、办公软件概述Microsoft Office 2003:Word、ExcelPowerPoint、AccessFrontPage、Outlook ExpressWPS Office 2003:金山文字、金山表格金山演示、金山邮件,3.3 办公软件,3-35,二、文字处理文字处理软件是指在计算机上辅助人们制作文档的系统。通用的文字处理软件:1979:WordStar1983:WordPerfect1988:WPS1990:Word 1.0 for Windows1994:Word 6.

15、0Excel 5.0Office 4.x,3.3 办公软件,3-36,三、电子表格电子表格软件是利用计算机来处理带数值计算的表格软件。通用的电子表格软件有:1979:Visicalc1982:Lotus1-2-3198x:Excel for Macintosh1994:Word 6.0Excel 5.0Office 4.x,3.3 办公软件,3-37,四、演示文稿演示文稿制作软件可以创建美观、实用的幻灯片,并以简洁的方式表达出文稿内容1987.4:PowerPoint 1.0(Windows 2.0)1990.5:PowerPoint 2.0(Windows 3.0)1992.5:PowerP

16、oint 3.0(Windows 3.1)1994.2:PowerPoint 4.01995.2:PowerPoint 7.0(Windows 95)PowerPoint 97/2000/2002/2003,3.3 办公软件,3-38,一、程序设计的概念程序设计:指利用计算机解决具体问题的全过程。程序设计的基本过程:分析所求解的问题 抽象数学模型 设计合适的算法和数据结构 编写程序 调试运行,3.4 程序设计基础,3-39,二、程序设计方法1.结构化程序设计(Structured Programming) 为了完成一些大规模、高复杂度的程序设计任务,SP(和软件工程)思想被提倡。强调数据类型、

17、程序结构,强调可靠性、可维护性甚于程序的效率。 其主要思想如下: (1)注意程序的可读性 (2)采用自顶向下、逐步求精的设计方法。 (3)程序语言只包括3种结构 (4)模块化,3.4 程序设计基础,3-40,基本结构:顺序结构选择结构循环结构,3.4 程序设计基础,3-41,2.面向对象程序设计(Object Oriented Programming)20世纪80年代OOP由理论转向实践,90年代开始盛行。 (1)软件规模越来越大,(美国航天飞机系统4000万条代码),人们不得不寻求更高效、更可靠的开发技术。 (2)OOP抓住软件开发的本质,OOP开发的软件易重用、易修改、易测试、易扩充。,3

18、.4 程序设计基础,3-42,2.面向对象程序设计(OOP)对象:用来描述客观事物的实体。每个对象有各自的内部属性和操作方法。,3.4 程序设计基础,属性: 频道 颜色 音量,方法: 调节频道 调节颜色 调节音量,电视机,电视机对象,整个程序是由一系列相互作用的对象构成的,对象之间的交互通过发送消息来实现。,3-43,类:具有相同的属性和操作方法,并遵守相同规则的对象的集合。类是对象集合的抽象,规定了这些对象的公共属性(即数据结构)和方法(操作数据的函数)。对象是类的一个实例。,3.4 程序设计基础,OOP特点:封装、继承、多态性,3-44,3.4 程序设计基础,三、程序设计语言,计算机语言:

19、人与计算机通讯的语言程序:利用计算机语言编写的能够完成一定功能的一组代码。,程序设计语言计算机语言,3-45,1.语言的分类,3.4 程序设计基础,3-46,机器语言从本质上说,计算机只能识别0和1两个数字,因此,计算机能够直接识别的指令是由一连串的0和1组合起来的二进制编码。 机器指令操作码操作数机器语言:指计算机能够直接识别的指令的集合。即以二进制代码表示的机器指令集合,它是计算机能够直接识别和执行的语言。,3.4 程序设计基础,3-47,优点:占用内存少,执行速度快; 缺点:面向机器,通用性差,不易阅读和记忆,编程工作量大,难以维护。,3.4 程序设计基础,例用Intel 8086指令系

20、统来编写机器语言程序,要求完成 “9+8”,3-48,优点:比机器语言程序容易阅读和修改缺点:面向机器,通用性差。,3.4 程序设计基础,汇编语言汇编语言:用符号代替机器指令所产生的语言。例如,8086汇编语言 实现 “9+8”,3-49,源程序:用汇编语言编写的程序。汇编程序:负责翻译的软件。主要作用源程序转换成用二进制代码表示的目标程序。连接程序:将目标程序与库文件或其他目标程序连接起来形成可执行程序。,3.4 程序设计基础,3-50,高级语言高级语言:用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言 FORTRAN、Pascal、C、C+、Delphi、Java、C#例如用

21、C+实现 “9+8”,3.4 程序设计基础,3-51,优点:符合人类习惯,简单易学通用性强,便于维护源程序:用高级语言编写的程序。翻译程序:将源程序翻译成用二进制代码表示的目标程序。翻译程序的工作方式:解释方式:边解释边执行编译方式:编译程序、运行程序,3.4 程序设计基础,3-52,3.4 程序设计基础,3-53,2.程序设计语言的选择选择编程语言涉及很多因素:人的因素:编程小组精通这门语言吗任务需要:选择的语言能否实现任务的全部功能?能跨平台吗?有数据库接口功能吗?能直接控制声卡等硬件吗?客户指定,或要通过串行口控制一个外部设备,C+汇编语言是最明智的选择。,了解一些流行的语言,对于做出合

22、理选择会有帮助。,3.4 程序设计基础,3-54,3.4 程序设计基础,3-55,3.4 程序设计基础,3-56,四、数据结构与算法 程序数据结构算法1.数据结构数据:对客观事物的符号表示,指所有能输入到计算机中并被处理的符号的总和。数据元素:由若干个数据项组成,而数据项是具有独立含义的数据最小单位。,3.4 程序设计基础,数据元素记录、结点数据项字段、域,3-57,数据结构:研究数据及数据元素之间的关系的一门学科。基本内容:数据的逻辑结构数据元素之间的逻辑关系(集合、线性、树形、网状结构)数据的存储结构数据元素及其关系在计算机存储器中的存储方式。数据的运算施加在该数据上的操作,3.4 程序设

23、计基础,3-58,算法定义:一个算法就是一个有穷规则的集合,其中的规则确定了一个解决某一特定类型问题的运算序列。算法的规则序列应满足五个重要条件:有穷性:算法必须执行有穷步后结束确定性:算法的每一步必须是确定的输 入:算法有零个或多个输入输 出:算法有一个或多个输出能行性:算法原则上能精确进行,3.4 程序设计基础,3-59,2.算法及其复杂性分析求解一个给定的可计算问题,不同的人常常编写出不同的正确程序。与计算方法相关的算法问题;程序设计的技术问题。 例给定两个整数,求它们的最大公因数 算法A:计算函数gcd(x,y)A1:输入x、y,z为临时变量;A2:重复执行如下操作步骤:,3.4 程序

24、设计基础,3-60,若y0,则输出x,算法停止; 若y0,则zx mod y,xy,yz。,#include int main() int x , y , z;cinxy;while (y!=0)z=x%y;x=y;y=z;coutxendl; ,3.4 程序设计基础,3-61,问题计算方法算法程序 同一算法不同程序员程序差别大,3.4 程序设计基础,3-62,问题不同计算方法、算法不同程序怎样判断程序和算法的好坏呢?这涉及到算法的存在性和算法的复杂性。算法复杂性分析:对算法计算所需要的时间和空间的一种度量。类型:时间复杂性、空间复杂性算法复杂性的高低体现在运行该算法所需要的计算机资源上,所需

25、资源越多,该算法的复杂性越高。,3.4 程序设计基础,3-63,例计算第n个素数。所谓素数是指恰有1和本身两个自然数为其因数的大于1的整数。除2为偶素数外,其余素数都是奇数。 算法A(简单算法):A1.从素数定义出发,对自然数从小到大一个一个去试。A2.当n很大时,算法所需要的计算时间非常大。,3.4 程序设计基础,3-64,算法B(筛法,快速算法):B1.输入n,输出第一个素数2;B2.M2,NM2;B3.从2开始,依次筛除M+1到N之间所有2的倍数,3的倍数,直到某个已求得的素数的平方大于N为止;B4.依小到大输出N+1到M之间剩下的数;B5.若已求得第n个素数,则输出第n个素数;否则,M

26、当前最大素数,NM2,转B3,3.4 程序设计基础,3-65,例三个中国人算法。 国王:艾述(喜爱数学) 宰相:孔唤石(数学家) 公主:秋碧贞楠(邻国) 公主:求出48770428644836899的真因子 国王:2,3,4,30000多数据(一天) 公主:验证一下,223092871 宰相:将全国百姓按自然数顺序编号,百姓用自己的编号去除公主的数,谁除尽来领赏,3.4 程序设计基础,3-66,童话说明: 国王本人计算(串行算法,时间复杂性) 全国百姓计算(并行算法,空间复杂性) 假设一个问题有两种算法: 算法复杂性是n3(0.2s) 算法复杂性是3n(4*1028s,1千万亿年) (用每秒百

27、万次的计算机,n=60) 如果一个问题没有多项式时间复杂性算法,则称为难解型问题(计算复杂性理论)。,3.4 程序设计基础,3-67,3.5 软件工程,一、软件危机与软件问题1.软件危机观点1:软件产品的生产总是超出预算,落后于进度表,而且产品质量不可靠。观点2:在软件的开发和维护过程中所遇到的一系列严重问题。,软件的生产过程不像硬件那样规范,受人的因素和外界影响很大,因此在软件生产的各阶段都会引入不同程度的错误,致使成本上升,甚至导致软件失败。,3-68,2.软件危机的表现 软件开发和维护费用急剧上升 不重视文档资料 产品质量不可靠 软件产品成本高于硬件产品,3.5 软件工程,3-69,3.

28、软件开发中的问题 软件生产技术进展缓慢 软件成本和质量难以控制 对软件开发的错误认识 难以准确、全面把握用户需求 不重视阶段审查和复审 软件复杂且规模庞大 软件维护费用上升,3.5 软件工程,3-70,二、软件工程与开发准则1.软件工程概念软件工程:在软件开发与维护过程中采用工程的原理、方法、技术并使用正确的管理方法来指导软件生产的全过程。主要内容:软件开发方法软件过程软件工具,3.5 软件工程,3-71,2.软件开发的基本准则B.W.Boehm综合各方意见,于1983年提出了软件工程的基本准则。1用分阶段的生命周期计划严格管理据统计,在不成功的软件项目中有50%左右是由于计划不周造成的。应该

29、把软件生命周期划分为若干阶段,并制定出相应的切实可行的计划,严格按照计划对开发和维护进行管理。2坚持进行阶段评审设计的错误占软件错误的63%,编码错误只占37%。而且在后期纠正错误的代价非常高。因此,必须严格坚持阶段评审,及早发现和纠正错误3实行严格的产品质量控制在现实中由于外部原因要求对需求等进行修改是难免的。但必须有严格的管理制度和措施。,3.5 软件工程,3-72,2.软件开发的基本准则 4采用现代程序设计技术和软件工程技术如结构化程序分析(Structured Analysis)和结构化设计(Structured Design)等。5结果应能清楚地审查由于软件是一种看不见摸不着的逻辑产

30、品,对它的检验和审查很困难。因此,应提供可视化的检验标准和方法。 6开发人员应少而精软件开发小组的人员应该是素质高,人员不宜过多。人员素质低和人员过多,都会导致软件的错误率高,且开发效率下降,成本增加。7承认不断改进软件工程的必要性软件工程是一门不断迅速发展的学科,必须学习和跟踪先进的技术和方法,也要不断总结经验、改进方法,要不断进行技术创新。,3.5 软件工程,3-73,三、软件生命周期软件生命周期是从时间的角度出发,从软件目标的提出、定义、开发、维护,直到最终被丢弃的整个过程。计划时期开发时期运行时期1.计划时期问题定义:提出软件项目的目标和规模可行性研究:对项目进行可行性调研和论证,确定项目是否能或者值得开发,3.5 软件工程,3-74,2.开发时期开发时期要具体分析、设计和实现计划时期定义的软件。需求分析:做什么概要设计:建立目标系统的总体结构详细设计:怎样做编码:选择程序设计语言进行描述。测试:单元测试、综合测试、确认测试和系统测试或者验收测试。,3.5 软件工程,3-75,3.运行时期交付使用维护工作维护的主要任务:通过各种必要的维护活动延长系统的生命周期。 四、软件开发模型1.瀑布模型2.原型模型3.螺旋模型4.面向对象开发模型,3.5 软件工程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报