第五章
计算机软件
5.1 软件及软件技术 p187
一、软件
1.计算机系统:硬件 +软件
2.软件,包含与数据处理系统操作有关的
程序, 规程, 规则,以及相关 文档 的智
力创作。
软件产品,程序、规程、文档、数据
从科学概念上软件的 三层含义,
个体、整体、学科
图 5--1软件示意图
计算机软件
程序
规程
规则


3.软件的分类,
不同层次、不同的编制与使用人员、不同的目
的,互相关系 ;
系统软件, 基础 软件、为其它程序服务的软件
支撑软件,支持软件 开发与维 护的软件
应用软件,为 某类应用 设计的软件
通用 应用软件 {OFFICE系统 }
定制应用软件(银行 ATM系统)
发展方向, 集成 化,网络 化,智能 化,
(软件产业、软件学院)
二、软件的发展轨迹
第 一 阶段,40年代 — 50年代
使用 机器语言 ;数值计算;使用者:专家
第 二 阶段,50— 60年代
? 使用 高级语言 (FORTRAN);产生操作系统 ;应用拓宽
? 出现,软件危机,;使用者:专业技术人员
第 三 阶段,60— 本世纪
? 应用广泛、使用者:广大群众
? 软件工程 迅速发展、注意 软件理论 研究
三、软件技术 P189
1,指,
研制开发计算机软件所需 各种技术 的总称。
2、包含 七个方面
3、学科之间融会贯通:产生巨大的功效;
5.2 操作系统 (OS:Operating System) P190
回顾,软件的分类;系统软件是基本软件;
最基本 的软件是 操作系统 。
一,OS的作用,
? 大管家 ;是一般用户与计算机的第一层界面
? 管理与控制系统的资源
? 方便用户操作(提供友好的界面)
? 图 5-2
? 开机的过程,( BIOS的作用)
图 5-2
二,OS的功能
具体表现有五方面
1、任务管理,(CPU资源管理 )
使用 三种方式 强化管理
? 进程 管理:将运行的程序分成若干个进程,
进程是 OS系统调度的 基本 单位,
? 分时;
? 并行 ;
例 (P192)用 2个 CPU实现并行计算
2、存储管理
内存 — 外存,虚拟存储器概念,
3,文件管理 (资源管理器 )
4,设备管理
? 尽可能使 CPU,MM,各种设备并行操作
? I/O设备增,删(即插即用)
? 提供给用户图形界面
5,作业管理, (高效调度 )
提供让用户自行组织一个 合理 的工作 流程 的环境。
三,OS的类型,(三个不同 — 不同的 OS)
1,批 处理
2,分时 处理
3,实时 处理 (快速反映 )
4,PC的操作系统 (DOS,Windows…,)
5,高性能计算机 的 OS
6,网络 OS(C/S)
7,分布式 OS(特殊的网络 OS)
? 资源, 分布, ;统一用户界面
? 处理, 分布, ;计算, 分布, ;多机合作 ;健壮容错。
四、常用 OS简介 (OS的产品 )
1,Windons系统
① Windows 9x,32位,单用户多任务,图形界面,即插即

② Windows NT/NT 工作站 ; (C/S)
S(服务器 ):内存 4GB,外存 4TB;C2级安全标准,
C(工作站 ):标准版 +window 9x
③ Windows2000/2000工作站
④ Windows xp与 Windows NET
不再采用 Windows 9x系列的内核。
2,UNIX
? 通用型(从巨型机 — PC) ;多用户多任务 ;分时 OS
? 结构简练(内核 + 外层应用)多用户分时 OS,
? 网络功能:应用于分布式系统
3,Linux
? GPL:General Public License 自由软件
? 网络支持,快速壮大,支持多平台,多 CPU…,
? 原代码开发、共同协作开发,新的软件开发模式
4,OS/2
? IBM公司 88年用于 PC机的 OS
? 多任务 GUI的 OS;用户少
五、实用程序
1.属于系统软件
2.如 Windows的系统工具
小结
习题 P199
5.3 程序设计语言及语言处理程序 P200
如何与计算机交流? —— 语言
一、语言分类,
1,机器 语言:(指令,二进形式)
计算机惟一识别的语言
2,汇编 语言,
? 机器语言符号化;低级语言;
? 语言处理程序(汇编语言) 。
3,高级 语言,
?比较接近自然语言
?与机器无关,兼容性好,
?源程序到目标程序的转
换工作由:语言处理程序
(高级语言)完成。
三,常用高级语言种类,
1,FORTRAN 公式翻译语言,数值计算,最早的语言。
FORTRAN77— FORTRAN95
2,ALGOL语言,古老的语言、规范、严谨
3,Java语言,最新的语言,面向对象,跨平台的,基于网
络环境,应用广泛,前途无量。
4,C与 C++:威力无比的语言,可编写 OS,短小精悍灵活,
效率高,移植性好。 C++,C的扩充,支持面向对象开发
技术;主流语言。
5,VB,
面向对象,广泛应用,下学期开设。
程序语言中的数据成分和控制成分
高级语言的基本成分,
?数据成分
?运算成分
?控制成分
?传输成分
数据成分
数据成分:用以描述程序所处理的数据对象,
如数据类型和数据结构进行说明。
为什么要定义处理对象的类型?
数据作为程序操作的对象,具有名称、类型、作用
域等特征;类型说明定义了数据需占用存储单元的
多少和存放形式。
数据类

基本类型
算术类型
字符类型
枚举类型
实型
单精度
双精度
派生类型
数组
指针
??
用户定义类型
控制成分
图 5.5 控制结构
( a)顺序控制结构 ( b)条件选择结构 ( c) while型重复结

A
B
P
A B
真 假
P
A


例子
四, 语言处理程序,P204
两种翻译方式,
① 解释程序,翻译一句;执行一句;不生成目标程
序(可执行文件);用于小型语言;效率低,
② 编译程序,
源程序 — 目标程序 — 执行目标程序,
小结
习题 P207
图 5.6 编辑、编译、装入和执行过程
程序模块 1
程序模块 n
正文
编辑
源程序 n
源程序 1
编译
目标程序 1
目标程序 n
联接
编辑
可执行目标程序
装入 执行 结果
库文件
…… …… ……
编译程序
源程序
分析 综合
符号表, 常数

中间语言程序
目标程

图 5.7 编译程序工作过程
5,4 计算机软件理论基础和算法
5.4.1 计算机软件理论基础
5.4.2 算法和数据结构
为什么要了解它们?
一,理论基础
数学 — 计算机科学的理论基础,
电子学,..— 计算机的物理基础,
数理逻辑 — 程序设计(计算机应用的本质)
有关的数学分支条目如下,
.数值计算(举例)
.离散数学(集合论 — 数据库应用)
(图论 — 著名的七桥题目 — 路由)
,计算理论:著名的图 机理论概念
,程序理论:寻找程序设计与方法的理论框架、理论依据。
如:并行计算理论,程序验证理论,网格计算 …,,
实践 — 理论 — 实践
回顾 (12月 4日 )
1.什么是软件?软件技术?
2.软件的分类?系统软件包含?应用软件包含?
3.OS的作用?OS具体功能?OS的分类?
4.程序设计语言?(低级语言,高级语言 )
5.语言处理程序?解释与编译?
6.软件理论基础?
今天讲,算法与数据结构
二,算法与数据结构
程序 =数据结构 +算法
(如何描述处理对象?如何处理?)
1、算法, 求解问题, 规则, 过程的描述,
? 确定性(量化)
? 有穷性
? 能行性(可行性)
? 输入(可以没有)举例:比较两个数的大小
? 输出(一定要有) 举上例
2.如何设计算法
由粗到细,逐步求精(举例)
3.如何描述算法
使用伪语言(举例)
4.如何实现算法
使用高级程序设计语言,
—— 形成, 源程序, ( prograun)(举例)
算法与程序的区别 P210
5.如何评价算法
? 正确性;
? 占用系统资源
? 易读,易调试,易移植,
? 讨论算法的, 问题的规模,
? 复杂度的表示, O函数( P211)
? O(2n)的算法无法应用
? 时间与空间的取舍
数据结构
1.数据结构的 定义
数据结构是研究程序设计中计算机 操作对
象 以及它们之间 关系 和 运算 的一个专门 学科 。
2.数据结构的 内容
( 1)数据的 逻辑 结构 (线性表 结构,树状 结构 )
( 2)数据的 存储 结构 (不同逻辑结构在 存储器 实现 )
( 3)数据 运算
3.程序=数据结构+算法
图 5.8 学生表的链接结构
学号, 姓名 … 学号, 姓名 …
第 1个学生 第 2个学生 第 n个学生
学号, 姓名 … ∧ ……
小结,
1.程序设计 =数据结构 +算法
2.有关算法
3.算法与程序
4.数据结构与算法
习题 P213