990 likes | 1.1k Views
第三章 计算机软件. 学习目标与要求. 1.了解什么是计算机软件和计算机软件技术 2. 了解操作系统的作用、功能、常用操作系统和实用程序的种类 3. 描述计算机语言程序及它们的执行过程 4. 了解计算机软件基础理论所包含的内容、算法和数据结构的概念. 计算机软件的内容. 从软件分支学科的内涵来讲,计算机软件所包含的内容可概括为: 软件基础理论和算法 构造计算机软件的方法学 各种软件开发技术以及与此相关的开发工具. 3.1 计算机软件及计算机软件技术. 3.1.1 计算机软件. 计算机软件. 程序. 文 档. 规程. 规则. 什么是计算机软件.
E N D
学习目标与要求 1.了解什么是计算机软件和计算机软件技术 2.了解操作系统的作用、功能、常用操作系统和实用程序的种类 3.描述计算机语言程序及它们的执行过程 4.了解计算机软件基础理论所包含的内容、算法和数据结构的概念
计算机软件的内容 • 从软件分支学科的内涵来讲,计算机软件所包含的内容可概括为: • 软件基础理论和算法 • 构造计算机软件的方法学 • 各种软件开发技术以及与此相关的开发工具
计算机软件 程序 文 档 规程 规则 什么是计算机软件 • 一个完整的计算机系统有两个 基本组成部分:硬件和软件 • 计算机硬件:组成计算机各种物 理设备的总称 • 计算机软件(Computer Software):包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作。(ISO的定义) 计算机软件示意图
什么是计算机软件 • 软件的三层含义(从科学概念上讲): • 个体含义,即上面所说的计算机系统中的程序、规程、规则及其文档 • 整体含义,指在特定计算机系统中所有个体含义下的软件的总体 • 学科含义,即指软件在研究、开发、维护以及使用中所涉及的理论、方法、技术所构成的学科,在这一意义上称为软件学
软件的分类 • 从应用的角度出发,将软件分为: • 系统软件 • 支撑软件 • 应用软件
系统软件 • 系统软件:给其他程序提供服务的程序集合(如各种操作系统、编译程序) • 系统软件的主要特征: • 与具体的应用领域无关,而与计算机硬件系统有很强的交互性,要对硬件共享资源进行调度管理。 • 系统软件中的数据结构复杂,外部接口多样化,用户能够对它反复使用。
支撑软件 • 支撑软件:用于支持软件开发与维护的软件。 • 人们常把1970年代中、后期发展起来的软件开发环境作为支撑软件的代表,它主要包括数据库管理系统、各种接口软件、网络软件和工具组件,这些软件形成一个整体,协同支持各类软件的开发与维护。
应用软件 • 应用软件:针对多种应用需求出现的用于解决各种不同具体应用问题的专门软件。 • 按照应用软件的开发方式和适用范围,应用软件可再分为: • 通用应用软件 • 定制应用软件
计算机软件的发展 计算机软件的发展与计算机应用和硬件的发展互相推动和制约。软件的发展大致经历了三个主要阶段: (1)第一阶段(1940年代到1950年代中期) • 从第一台计算机上的第一个程序开始到实用的高级语言程序出现以前,是计算机软件发展初期。 • 应用领域较窄:主要是科学与工程计算。处理对象:数值数据 • 工作方式:个体;编程语言:使用低级语言编程 • 人们对和程序有关的文档的重要性认识不足,重视编程技巧
计算机软件的发展 (2)第二阶段(1950年代中期到1960年代后期) • 出现了高级程序语言、操作系统、数据库管理系统、“软件”术语等 • “软件危机”:软件的复杂程度迅速提高,研制周期变长,正确性难以保证,可靠性问题尤为突出。解决危机的方法: • 提出结构程序设计方法 • 提出用工程方法开发软件 • 从理论上探讨程序正确性和软件可靠性问题。 • 研究内容:增加了并发程序,并着重研究高级程序设计语言、编译程序、操作系统以及各种支撑软件和应用软件。计算机系统的处理能力得到加强,设计和编制程序的工作方式逐步走向合作方式。
计算机软件的发展 (3)第三阶段(1960年代迄今) • 软件工程 软件领域工作新的特点: • 随着应用领域的不断拓广,出现了嵌入式应用软件、网络软件及分布式应用软件 • 软件工程发展迅速,形成了“计算机辅助软件工程”。除了开发各类工具与环境用以支持软件的开发与维护外,还出现了一些实验性的软件自动化系统 • 致力研究软件过程本身规律,研究各种软件开发规范与模型 • 除了软件传统技术继续发展外,人们着重研究以智能化、自动化、集成化、并行化、开放化以及自然化为标志的软件开发新技术 • 注意研究软件理论,特别是探讨软件开发过程的本质
计算机软件技术 • 计算机软件技术:研制开发计算机软件所需的所有技术的总称。 • 按照计算机软件分支学科的内容划分,计算机软件技术主要包括: • 软件工程技术 • 程序设计技术 • 软件工具与开发环境技术 • 系统软件技术 • 数据库技术 • 网络软件技术 • 与实际工作相关的软件技术 • 软件技术还渗透到计算机科学技术的其他领域
操作系统概念 • 操作系统(Operating System,简称OS):用于控制、管理、调配计算机的所有资源。是给计算机配置的一种必不可少的系统软件。
操作系统的作用 • 管理系统中的各种资源 • 为用户提供各种服务界面 • 用户界面:也称用户接口或人机界面,是计算机系统实现用户与计算机通信的软、硬件部分的总称。 • 图形用户界面(GUI):采用窗口、图符、菜单及指点设备技术和多窗口系统等软件,并以直接操纵为主要使用方法,使得用户能够灵活、方便、有效地使用计算机。
操作系统 计算机硬件 其他系统软件 用户 支撑软件 应用软件 操作系统的作用 操作系统的地位
操作系统的作用 • 裸机:没有软件支持的计算机。操作系统是最接近计算机硬件的系统软件,通过它管理计算机资源并在用户(或应用程序)与硬件之间提供一个接口。 • 自举:装载操作系统软件并启动执行的过程。计算机的ROM中固化了一小部分操作系统指令(基本I/O系统,又称BIOS),计算机加电后,自动执行BIOS, BIOS先把一部分程序从磁盘读入内存,然后再由读入的这部分程序装载其他所需的操作系统软件。这个过程称作为“自举”或“引导”。 • 命令:操作系统功能的表现形式。
操作系统的功能 • 操作系统通过内部命令和外部命令提供五种主要功能: • 任务管理 • 存储管理 • 文件管理 • 设备管理 • 作业管理 • 除此之外,操作系统一般还具有中断处理、错误处理等功能。操作系统的各个功能之间并不是完全独立的,它们之间存在着相互依赖的关系。
任务管理 • 操作系统提供的任务管理有三种不同的方式: • 进程:操作系统调度的基本单位,反映程序的一次执行过程(包括启动、运行并在一定条件下中止或结束)。 • 进程管理:对处理机资源进行管理。 • 多进程技术:如果一个进程因等待某一条件而不能运行下去时,就将处理机占用权转给另一个可运行进程。或者,当出现了一个比当前运行进程更重要的可运行进程时,后者应能抢占CPU资源。操作系统按照一定的调度策略,通过进程管理来协调多道程序之间的关系,解决CPU资源的分配和回收等问题,以使CPU资源得到最充分利用。
任务管理 • 分时的基本思想:将CPU时间划分成许多小片(“时间片”),轮流去为多个用户程序服务。如果在时间片结束时该用户程序尚未完成,它就被中断,等待下一轮再处理,同时让另一个用户程序使用CPU下一个时间片。由于CPU速度很快,用户程序的每次要求都能快速响应。由此,每个用户都感觉好象自己在“独占”计算机一样,实际上是操作系统使用户轮流“分时”共享了CPU。 • 并行处理:使用有多个处理器的计算机时,并行处理操作系统运用策略作出合理的调度,把多项任务分配给不同的CPU同时执行,且保持系统正常有效地工作,可以充分利用计算机系统中提供的所有处理器,一次执行几条指令,以提高计算机系统的效率。
存储管理 • 存储管理:管理内存资源的高效、合理使用。 • 执行处理程序时,计算机系统的程序和数据都是保存在内存中的。而内存的容量有限,因此,当多个程序共享有限内存资源时,必须合理地为它们分配内存空间,做到用户存放在内存中的程序和数据既能彼此隔离、互不侵扰,又能在一定条件下共享。当内存不够用时,还要解决内存扩充问题,把内存和外存结合起来管理,为用户提供一个容量比实际内存大得多的“虚拟存储器”。
文件管理 • 文件管理任务:有效地支持文件的存储、检索和修改等操作、解决文件的共享、保密和保护问题,使用户程序能方便、安全地访问它所需要的文件。操作系统一般都含有功能很强的文件管理子系统。
设备管理 • 设备管理:对计算机系统中除了CPU和内存以外的所有I/O设备的管理。进而言之,设备管理的对象除了进行实际I/O操作的设备外,还包括诸如控制器、通道等支持设备。 • 设备管理任务:外部设备的分配、启动和故障处理,用户不必详细了解设备及接口的技术细节,就可以利用驱动程序对相应的设备进行操作。 • 采用技术:中断技术、通道技术、虚拟设备技术和缓冲技术
作业管理 • 作业管理任务:为用户使用系统提供一个良好环境,让用户有效地组织自己的工作流程,使整个系统能高效地运行。
批处理系统(Batch Processing System) • 批处理系统:操作人员将待处理的计算任务(成批地装入计算机,由操作系统将作业按规定的格式组织好存入磁盘的指定区域,然后按照某种调度策略选择一个或几个搭配得当的作业调入内存加以处理。 • 批处理优点: • 提高系统资源利用率 • 增大作业吞吐量 • 实现作业流程的自动化
分时处理系统(Time-sharing Processing System) • 分时处理系统:允许多个用户同时联机使用计算机。一台分时计算机系统联有若干台终端,多个用户可以在各自终端上向系统发出服务请求,等待计算机的处理结果并决定下一步的处理。操作系统接收每个用户的命令,采用时间片轮转的方式处理用户的服务请求,使每个用户得以完成自己的任务。 • 主要目标:对用户响应的及时性。
实时系统(Real Time System) • 实时系统:操作系统能够及时响应随机发生的外部事件,并在规定的时间范围内完成对该事件的处理。 • 实时系统的分类: • 实时控制系统 • 实时信息处理系统
个人计算机操作系统(PC-Operating System) • 为个人计算机安装的操作系统是一种联机交互的单用户操作系统。由于个人计算机应用的普及,对于提供方便友好的用户接口和文件系统的要求更为迫切。实际上,目前提供的此类系统都支持多任务处理,并且采用有效的方法把相关文件组织成目录和文件。文件的传送、复制、删除,重命名等操作都很方便。
高性能计算机操作系统 • 高性能计算机系统:要求在任务管理、存储管理和设备管理上具有比一般操作系统更强大的功能。此外,还应增强下列功能: • 保障系统的安全性 • 记帐功能,记录各类用户作业占用CPU的时间,以便核算用户使用计算机的费用 • 运行特殊的通信程序控制访问
网络操作系统 • 网络操作系统(Network Operating System):在原来各自计算机的操作系统上,按照网络体系结构的各个协议标准扩充其功能,包括网络管理、通信、资源共享、系统安全和多种网络应用服务等。 • 网络操作系统一般包括两个部分: • 服务器部分 • 客户机部分
分布式操作系统(Distributed Operating System) • 分布式操作系统:用来管理分布式系统中的所有资源,它负责全系统的资源分配和调度、任务划分、信息传输,控制协调等工作,并为用户提供一个统一的操作界面,用以使用系统资源。至于用户操作被指定在哪一台计算机上执行或使用哪一台计算机的资源,则是由操作系统完成的。此外,由于分布式系统更强调分布式计算和处理,因此对于多机合作和系统重构、健壮性和容错能力有更高的指标。
Windows操作系统 • Windows操作系统是一种在微型计算机上运行的系统软件。由(美)微软公司开发,最初作为DOS的图形化扩充而推出的。Windows提供了多任务图形界面以及统一的应用程序接口,使得在Windows环境下运行应用程序的操作大为简化。 • Windows 9x。从Windows 95开始,Windows均是机器字长32位的单用户、多任务的操作系统。 • 单用户:一台计算机一次只允许一个用户使用。 • 多任务:允许一个用户同时运行多个应用程序
Windows操作系统 • Windows 9x • 支持图形用户界面 • 支持“即插即用”的系统配置方法 • 提供通信软件,使用户的计算机系统联接到Internet上
Windows操作系统 • Windows NT(New Technology)和NT工作站 • 一个网络操作系统。网络中运行Windows NT的计算机作为服务器,它存储着诸多共享资源网络中除服务器外,还有供用户使用的客户机部分。客户机可以是一般的PC机,其上可以运行NT客户机软件,也可运行Windows 95或Windows 98。
Windows操作系统 • Windows NT(New Technology)和NT工作站 • Windows NT含有内置的网络功能,支持许多通讯协议,并且具有一个集中的安全系统,以监测各种系统资源。 • 与NT操作系统服务器版本相对应的是NT的工作站标准版,称为NT Workstation,它主要运行在点对点环境中,这个版本可提供多种管理软件和工具软件。
Windows操作系统 • Windows 2000与2000工作站 • Windows 2000实际是Windows NT 5.0的一个新的名字,它在使用Windows NT的内核的同时增加了许多新的功能。如在即插即用方面,它支持USB设备,支持功率的调节和各种硬件编程接口等。在实用性、安全性和稳定性方面都有所超越。Windows 2000有以下几种不同的版本: • Windows 2000 Professional • Windows 2000 Server/Advanced Server • Windows 2000 Datacenter Server
Windows操作系统 • Windows XP和Windows.NET • Windows XP是基于NT的内核,集成了其稳定性、安全性及多媒体和网络功能,使微软的前台OS不再采用9X系列的内核。 • Windows.NET server是以XML标准作为信息交换格式,具有无线接入、语言支持的OS新版本、其可靠性、安全性和易操作性方面有了进一步提高。
UNIX操作系统 • UNIX操作系统是(美)Bell实验室开发的一种通用多用户交互式分时操作系统。自1970年UNIX系统第一版问世以来,以UNIX系统为基础已研制出许多新的操作系统软件。如微型计算机、大型计算机上的各种UNIX系统的变种,以及用于计算机网络及分布式计算机系统上的UNIX系统等。实际上,UNIX系统已成为国际上目前使用最广泛、影响最大的主流操作系统之一。
UNIX操作系统 • UNIX系统的特色主要体现在以下方面: • 结构简练。以树形目录结构的文件系统为基础,且将各种设备都定义为特殊文件,统一处理。 • 内核部分 • 外层应用子系统 • 功能强大 • 易移植性好 • 可伸缩性和互操作性强 • 容纳新技术的能力强 • 网络通信功能强
Linux操作系统 • Linux操作系统的原创者是芬兰的一名青年学者Linus Torvolds,他遵从可移植操作系统接口POSIX标准开发出Linux操作系统的内核,POSIX是IEEE定义的一套标准,具有与UNIX相似的可移植操作系统服务功能。 • Linux操作系统的优势反映在网络服务器方面,其内核中包含许多网络协议,已成为网络上最普遍的服务器架构模式。Linux操作系统作为一个多用户、多任务的操作系统,支持多工作平台和多处理器。它不仅可提供多达4TB的文件系统,同时还可支持多种其他的文件系统。