1、1.4 计算机软件系统,计算机系统=硬件+软件,计算机系统是由硬件和软件组成的,两者缺一不可!,软件、硬件和用户的关系,硬件的能力非常有限,只是速度极高而已没有软件,硬件几乎什么任务也完成不了,计算机通过软件才能进行信息处理,不同的软件,完成不同的任务,同一软件处理不同的数据,完成不同的任务,什么是程序?,程序是告诉计算机做什么和如何做的一组指令(语句),这些指令(语句)都是计算机能够理解并能够执行的一些命令 程序的特性: 用于完成某一确定的信息处理任务 使用某种计算机语言描述如何完成该任务 预先存储在计算机中,启动运行后才能完成任务,程序与数据的关系,程序所处理的对象和处理后得到的结果统称为
2、数据(分别称为输入数据和输出数据) 程序必须处理合理的输入数据,否则不会产生有意义的输出 程序和数据具有相对性,程序与软件是什么关系?,软件往往指的是设计比较成熟、功能比较完善、具有某种使用价值、且有一定规模的程序 软件既包含程序、也包含与程序相关的数据和文档: 程序是软件的主体 数据指的是程序运行过程中处理的对象和必须使用的一些参数(如三角函数表、英汉词典等) 文档指的是与程序开发、维护及操作有关的一些资料(如设计报告、维护手册和使用指南等) “软件” 强调的是产品、工程、产业或学科等宏观方面的含义,“程序”更侧重技术层面的含义 软件和程序本质上相同,在不会发生混淆的场合,软件和程序两个名称
3、经常混用,并不严格加以区分,2. 计算机软件的特性,计算机软件有哪些特性? (1),1. 不可见性(是无形的,不能被人们直接观察、欣赏和评价) 2. 适用性(可以适应一类应用问题的需要 ) 3. 依附性(依附于特定的硬件、网络和其他软件 ) 4. 复杂性(规模越来越大,开发人员越来越多,开发成本也越来越高) ,例如:,软件的复杂性 举例,程序规模:Windows XP源程序约有5000万行 人员队伍:Vista及新版Office 2007两个团队开发设计成员总共9000余人 资金投入:微软为Vista投入90亿美元,包括Vista未来的配套及合作伙伴的投入,预计在180亿美元以上,如果加上新版
4、Office的成本,投入资金在240亿270亿美元之间 开发周期:Vista的开发经历6年,发布时间一拖再拖,计算机软件有哪些特性? (2),5. 无磨损性(功能和性能一般不会发生变化 ) 6. 易复制性(可以非常容易且毫无失真地进行复制 ) 7. 不断演变性(软件的生命周期 ) ,例如: 1989年Word 1.0 1997年推出Word 97 2000年推出Office 2000 2003年 Office 2003 最新版本是Office 2007,8. 有限责任(有限保证) 9. 脆弱性(黑客攻击、病毒入侵、信息盗用),Windows版本演变,计算机软件与知识产权,软件是智力活动的成果,
5、受到知识产权(版权)法的保护 版权授予软件作者(版权所有者)享有下列权利:拷贝、发布、修改、署名、出售、 保护知识产权的目的:确保脑力劳动受到奖励并鼓励发明创造,保护知识产权就是保护脑力劳动人员,使他们发挥创造能力,社会也会从他们的成果中受益 购买一个软件,用户仅仅得到了该软件的使用权,并没有获得它的版权 随意进行软件拷贝和分发是一种违法行为,3. 计算机软件的分类,从用途对计算机软件分类,系统软件不是为了解决某种具体应用,而是为了: 给用户使用计算机提供方便 给应用软件的开发与运行提供支持 使计算机有效、安全、可靠地运行,应用软件专门用于帮助最终用户解决各种具体应用问题的软件 分类(按开发方
6、式): 定制应用软件 通用应用软件 几乎所有领域、所有人都需要使用 设计精巧,易学易用 商品化,价格较低,什么是系统软件?,系统软件是管理、监控和维护计算机硬件资源和软件资源的软件, 主要包括操作系统、各种语言的处理程序、数据库管理系统等。 举例: 基本输入/输出系统(BIOS) 操作系统(如Windows、Unix、Linux等) 程序开发工具与环境(如C语言编译器等) 数据库管理系统(DBMS) 实用程序(Utility,如磁盘清理程序、备份程序、杀毒软件、防火墙等),系统软件有哪些特性?,与计算机硬件有密切的关系,能对硬件进行统一的控制、调度和管理; 具有通用性,能为多种应用软件的开发和
7、运行提供支持与服务 在任何计算机系统中,系统软件都是必不可少的 在购买计算机时,通常计算机供应厂商会提供给用户一些最基本的系统软件,否则计算机无法工作。,系统软件有哪些?,操作系统(OS) 操作系统是控制、管理计算机硬件资源和软件资源的大型系统软件,是计算机所有软、硬件系统的组织者和管理者,它能合理地组织计算机的工作流程,控制用户程序的运行,为用户提供各种服务。 操作系统由许多具有控制和管理功能的子程序组成。 典型的操作系统有:DOS、UNIX、Windows、OS/2、NetWare及Linux等。,系统软件有哪些?,语言处理系统 机器语言它是计算机能唯一识别并执行的语言,不同型号的计算机的
8、机器语言有所不同。 优点:程序的执行效率高 缺点:其编写的程序难写、难读、易出错、难移植 汇编语言 汇编语言又称符号语言,是机器语言的符号化表示。 高级语言 人工智能高级语言 数据库管理系统(DBMS),语言处理系统 机器语言 现在已不直接用机器语言编制程序,系统软件有哪些?,语言处理系统 汇编语言,系统软件有哪些?,优点: 操作数直接使用十进制,缺点: 大型程序难以开发 依赖于具体计算机,系统软件有哪些?,语言处理系统 高级语言 目的:克服汇编语言的缺陷,提高编程和维护的效率 特点: 接近人们日常使用的自然语言(主要是英语)容易理解、记忆和使用 可在不同计算机上通用 对使用的符号、词汇、语法
9、和语义等各种语言成分都有严格的规定 意义:使程序设计的难度降低,导致了计算机的发展进入新的阶段,高级程序设计语言的发展,50年代:Fortran,ALGOL 60年代:COBOL语言 70年代:Pascal 语言,C语言,BASIC语言 80年代: Ada语言,PROLOG语言,LISP语言 90年代起:面向对象语言C+、 JAVA、C#等,FORTRAN语言,FORTRAN是FORmula TRANslation (公式翻译)的缩写词,它是一种主要用于数值计算的面向过程的程序设计语言。FORTRAN语言的特点是接近数学公式,简单易用 目前最新的国际标准是FORTRAN2003,BASIC和V
10、isual Basic语言,BASIC语言的特点是简单易学 Visual BASIC(VB)语言是微软公司基于BASIC发展而来的一种程序设计语言,特点是: 是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言 具有高效率、简单易学及功能强大的特点 可以高效、快速地开发Windows 环境下功能强大、图形界面丰富的应用软件,Pascal语言,1968年由N.Wirth提出,1973年正式发表。 Pascal语言是结构化程序设计语言 适用于科学计算、数据处理、尤其是系统软件开发等,C语言和C+语言,C语言是19721973年间由ATT公司Bell实验室开发而成 C语言兼有高级语言
11、的优点和汇编语言的效率,有效地处理了简洁性和实用性、可移植性和高效性之间的矛盾 C+语言以C语言为基础发展而成,既有数据抽象和面向对象能力,运行性能高,又能与C语言兼容,因而C+语言迅速流行,成为当前面向对象程序设计的主流语言,Java语言,由SUN Microsystem公司于1995年发布的一种面向对象的、用于网络环境的程序设计语言 基本特征是: 适用于网络分布环境 具有一定的平台独立性 安全性和稳定性好 Java语言受到各种应用领域的重视,取得快速的发展,在Internet上已推出了用Java语言编写的很多应用程序,系统软件有哪些?,语言处理系统 人工智能高级语言人工智能高级语言不要求用
12、户给出问题的求解算法,只需要指出求解问题、输入数据和指出输出格式,就可以得到求解结果。又称面向问题的语言、非过程语言或描述性语言。,系统软件有哪些?,数据库管理系统(DBMS)是管理数据库的软件,主要解决数据处理中非数值计算问题,常用于各种管理信息系统。,1.4.2 系统支撑软件,支持其他软件实施设计、开发和维护的软件称为支撑软件。,1.4.3 应用软件,应用软件是针对某一专门目的而开发的软件。,关于微软的办公软件Office,历史与发展 内容与功能:以Office2003为例,共包含7个主要的软件:,成功软件的经验是什么?它们都具有如下特点: 1 它们能替代现实世界已有的其他工具,而且使用起
13、来比已有工具更方便有效 2 它们能完成已有工具很难完成甚至完全不可能完成的事,扩展了人们的能力 3 ,从软件知识产权对软件进行分类,商品软件 共享软件(shareware) 具有版权,可免费试用一段时间,允许拷贝和散发(但不可修改),过了试用期若还想继续使用,就得交一笔注册费,成为注册用户。 自由软件 (freeware)(开放源代码软件) 用户可共享,并允许随意拷贝、修改其源代码,允许销售和自由传播。但是,对软件源代码的任何修改都必须向所有用户公开,还必须允许此后的用户享有进一步拷贝和修改的自由。 自由软件的重大意义,2.1 Windows操作系统,2.1.1 操作系统的概述 2.1.2 典
14、型操作系统介绍 2.1.3 Windows操作系统,OS屏蔽了计算机中几乎所有物理设备的技术细节,为使用、开发和运行其他软件提供了一个高效、可靠的平台。 OS非常庞大和复杂,它由许多程序模块组成,没有安装任何软件的计算机称为裸机, 裸机是无法使用的操作系统是最重要的一种系统软件,几乎所有计算机都要安装OS,2.1.1操作系统概述,操作系统(Operating System,简称OS)是计算机系统中最基本的系统软件, 它统一管理和调度计算机系统的硬件资源和软件资源,它是保障计算机系统中所有软件和硬件资源协调一致,有条不紊工作的软件。用户通过它使用计算机。,1. 什么是操作系统,(1) 处理器管理
15、 允许多个程序同时运行的操作系统称为多道程序系统。 多道程序系统中,对某一处理器而言,任一时刻仅能执行一道程序,系统中各程序是交替执行的。 多道程序同时在系统中运行,它们共享系统资源,但操作系统也必须承担系统资源的管理任务,包括对处理器的分配管理。 处理器的分配和运行都是以进程为基本单位,因此,处理器管理也可称为进程管理。,2. 操作系统的管理对象,(1) 处理器管理 进程(Process):进程是指在系统中一个正在运行的应用程序,即一个程序被加载到内存,就建立了该程序的进程。程序是计算机的指令集合,是一个静态的概念;进程是一个动态的概念,是程序的一次执行过程,一个程序可以多次执行,每次执行就
16、会创建一个进程,进程在它的整个生命周期中,始终在就绪、运行、挂起的状态中变化着直到进程结束才撤销。 线程(Threads):随着软、硬件技术的发展,为了更好地实现并发处理和共享资源,提高CPU的利用率,目前许多操作系统把进程再细分成线程。线程又被称为轻量级进程,是系统分配处理器时间资源的基本单元。每个进程包含一到多个线程,它可与同属一个进程的其它线程共享进程所拥有的全部资源。,2. 操作系统的管理对象,为什么需要操作系统?,控制基本的输入/输出操作,分配系统中的资源,管理存储器空间,监测计算机运行和故障,维护计算机安全,操作系统的重要作用,三项主要作用: (1)为计算机中运行的程序管理和分配系
17、统中的各种软硬件资源 (2)为用户提供友善的人机界面(图形用户界面) (3)为开发和运行应用程序提供高效率的平台 其它辅助功能: 辅导用户操作(帮助功能) 显示系统状态 处理软硬件错误 保护系统安全,基本输入输出系统BIOS,基本输入/输出系统是存放在主板上只读存储器(flash ROM) 中的一组程序(也称为firmware, 固件 ) 主要包含4个部分: 加电自检程序 (诊断计算机故障) 系统自举(装入)程序 (启动计算机工作) CMOS设置程序 (设定和修改计算机配置) 基本外围设备的驱动程序 (控制基本的I/O操作) 计算机断电后,BIOS程序和CMOS中的数据仍保持不变 需要时BIO
18、S程序可以升级(update),操作系统的启动(boot up),ROM BIOS,RAM,CPU,CMOS,操作系统运行时内存的态势,什么是任务,什么是多任务处理?,“任务”指的是要计算机做的一件事,计算机执行一个任务通常就对应着运行一个应用程序 “单任务处理”与“多任务处理” 单任务处理:前一个任务完成后才能启动后一个任务的运行,任务是顺序执行的 多任务处理(Multitasking):允许计算机同时执行多个任务,任务是并发执行的 多任务处理举例: 编辑PPT讲稿 + 播放音乐 + 收发邮件 多任务处理的优点: 大大提高了用户的工作效率 大大提高了计算机的使用效率,如何知道有哪些任务在运行
19、?,每启动一个应用程序,OS就会打开一个相应的窗口,通常一个窗口就是一个任务 每启动一个应用程序,OS就会在任务栏上显示一个相应的任务按钮(程序按钮),通常一个按钮就是一个任务 窗口可以放大或缩小,甚至可以“最小化”,但任务的运行不受其影响 使用“任务管理器”程序可以了解每个任务的运行情况,什么是前台任务与后台任务?,前台任务:能接受用户输入(击键或按击鼠标)的窗口只能有一个,称为活动窗口,它所对应的任务称为前台任务 后台任务:除前台任务外,所有其它任务均为后台任务 前台任务与后台任务的区别: 前台任务对应的窗口(活动窗口)位于其它窗口的前面 活动窗口的标题栏比非活动窗口颜色更深(深蓝色) 前
20、台任务与后台任务的共同点:都在计算机中运行 前台任务与后台任务的切换: 为了输入信息到某个后台任务中去,必须切换窗口(单击要激活的后台任务窗口的任何部位, 或单击任务栏中对应的任务按钮),如何结束任务的运行?,每一个应用程序运行时都要占用大量的系统资源(存储器、CPU、屏幕等),所以当不再需要某个应用程序运行时,就应该退出这个应用程序,释放它所占用的资源 多数应用程序都设计成交互式控制的方式,所以运行完毕后必须由用户退出该程序。 Windows XP中退出应用程序的几种方法: 最快速的方法,是左击应用程序窗口右上角的红色“叉子”按钮 左击窗口左上角的控制按钮,在弹出菜单中选择“关闭” 在应用程
21、序的“文件”菜单中,选择“退出” 通过OS的任务管理器,强迫结束任务,OS如何支持多任务处理?,为什么可以实现多任务处理? CPU速度极高,必须并且可以充分发挥CPU的效能 CPU与I/O(外围设备)的并行工作 各个外围设备之间并行工作 实现多任务处理要解决哪些问题? CPU如何管理和调度 存储器空间如何分配和管理I/O设备和I/O操作如何管理和控制 谁来解决上述问题? 不是应用程序自己,而是操作系统(OS) !,Windows中的处理器管理,Windows为了确保每个已经启动的任务都有机会运行,它采用“抢先式”多任务处理技术: 由硬件计时器大约每10-20ms发出1次中断信号,Windows
22、立即暂停当前正在运行的任务,查看当前所有的任务,选择其中的一个交给CPU去运行 只要时间片结束,不管任务有多重要,也不管它执行到什么地方,正在执行的任务就会被强行暂时终止 上述的任务调度,每秒钟要进行几十次几百次 实际上,操作系统本身的若干程序也是与应用程序同时运行的,它们一起参与CPU时间的分配。当然,不同程序的重要性不完全一样,它们获得CPU使用权的优先级也有区别,2. 操作系统的管理对象,(2)存储管理和虚拟存储器 存储器资源包括内存储器和外存储器。 内存中存放着正在运行的程序 外存中存放着程序文件及数据 当外存中的文件及数据加载到内存中时,需要得到内存空间,当多个程序文件同时加载时,如
23、何来管理内存呢?,系统运行时内存储器的布局,内存储器空间划分为2个部分:系统区和用户区,用户区用来存放正在运行的应用程序,分析: 允许同时运行多少程序?数目有没有限制? 程序的大小和数据的规模受不受限制? 程序与程序相互之间会不会互相干扰?,存储管理的任务,为每个任务分配存储空间,任务结束之后收回存储空间 转换地址,当多进程同时运行时,将程序中的逻辑地址转换为内存中的物理地址 对存储空间进行扩充,使应用程序的存储空间不受实际存储容量大小的限制解决方案虚拟存储器(Virtual Memory) 对存储空间进行保护 保护操作系统所在区域不被应用程序修改 保护每个应用程序的私有区域不被其他程序修改,
24、虚拟存储器示意图,硬盘中专门划出一个“交换区”,作为物理内存的补充,称为“虚拟内存”,2. 操作系统的管理对象,(3)设备管理 缓冲区管理:解决CPU和外设速度不匹配的矛盾。 设备分配:根据用户的I/O请求和相应的分配策略,为该用户分配外部设备以及通道,控制器等,实现CPU与通道和外设之间的通信。 设备驱动:是指驱动相应设备进行I/O操作的程序。 设备无关性:又称设备独立性,即用户编写的程序与实际使用的物理设备无关,由操作系统把用户程序中使用的逻辑设备映射到物理设备。,(按名存取) (按地址存取),2. 操作系统的管理对象,(4)文件管理,什么是文件(file) ?,文件是存储在外存储器中的一
25、组相关信息的集合,例如: 一个程序 一张数码相片 一只MP3歌曲 一封电子邮件 文件是外存中信息的存取(读出/写入)单位 计算机中所有的程序和数据都组织成为文件存放在外存储器中,并使用其名字进行存取操作,复习:文件名和文件类型,文件的名字由两部分组成:(主文件名) .扩展名 主文件名(简称文件名)是文件的主要标识,不可省略 文件扩展名(类型名)由“.”加34个英文字母组成, 用于区分文件的类型: 程序文件(可执行文件):.exe .com文件中包含的是可以由CPU执行的程序的二进制代码 数据文件:纯文本文件(.txt) PDF文件(.pdf) Word文件(.doc) 投影片文件(.ppt)
26、数码照片文件(.jpg) MP3音乐文件(.mp3)文件中包含的是由程序处理的数据的二进制代码 处理不同类型的数据文件一般需要使用(关联)不同的程序! 文件名字使用西文(或中文)字符组成,但不能使用某些特殊字符(如 ? * :“”等),Windows XP 的文件,允许使用长文件名,即文件名最多可包含255个中文或西文字符 英文字母的大、小写只在形式上加以区分,实际上不予区别(例如: Text.DOC 与 text.doc 是同一个文件) 常用程序文件的扩展名: .exe .com .dll .bat 常用数据文件的扩展名:,文件的组成和文件说明信息,每一个文件都由2部分组成:,Windows
27、 XP 的文件组织,文件目录在Windows中称为文件夹 每个逻辑盘(物理盘或硬盘上的分区)是一个根文件夹 文件夹中既可包含文件,也可包含文件夹 (子文件夹),子文件夹又可存放文件和子文件夹, 形成树状多级文件夹结构,根节点和中间节点都是文件夹,叶节点都是文件,为什么使用多级文件夹? 1)有利于文件分类存储 2)允许文件同名(在不同 文件夹中时) 3)便于文件共享和保护,Windows XP中文件如何定位?,计算机中的每个文件都有一个确定的位置 文件的位置由存放文件的逻辑驱动器号、文件路径以及文件名组成:驱动器号(盘符) + 文件路径 + 文件名,例 右图中文件02.ppt的位置是:D:数据概
28、论讲稿02.ppt,从根文件夹到文件所在文件夹所顺序经过的一串文件夹,其间用“”相互隔开,文件管理和文件系统,文件系统需要解决的问题: 有效管理外存储器的存储空间 实现对文件方便而快速的存取操作 对软盘、硬盘、光盘、优盘等不同外存储器实现统一管理 统一本地文件/远程文件的存取操作 实现文件的安全存取,文件系统是OS的一个组成部分,它负责管理计算机中的文件,使用户(和程序)能很方便地进行文件的存取操作,3. 人机对话接口,用户向计算机发出的任何操作命令,都是由操作系统的人机对话接口程序接收、解释给计算机硬件,命令动作的实施由计算机硬件完成。 操作的反馈信息是硬件报告给操作系统的人机对话接口程序,
29、再由人机对话接口程序反馈给用户或应用程序。 任何用户都是通过操作系统使用计算机,使用操作系统主要是使用操作系统的人机对话接口。有了操作系统之后,普通用户才可以非常方便地使用计算机。 学会几种不同的操作系统的使用,是很有现实意义的。,4操作系统的分类,历经多年的发展,操作系统的种类越来越多,功能上的差异也很大,以适应不同的应用领域和不同的硬件配置。按系统的功能为标准分类,可分为批处理系统、分时系统、实时操作系统、网络操作系统、分布式操作系统、并行操作系统、嵌入式操作系统、个人计算机操作系统。,(1)批处理系统,批处理系统(batch prodessing system)产生于计算机发展的早期,它
30、把多个作业排列成一个作业队列,然后成批的执行,提高CPU的利用率,但用户的作业被计算机执行期间,用户不能和计算机交互,用户一旦将程序提交系统,就失去了对程序的控制。直到作业运行完成,才能根据输出的结果分析程序的正确性,并适应修改下次再运行。该系统一般运行于大型计算机系统中。,(2)分时系统,分时系统(time-sharing system)的产生是为了解决批处理系统的缺点,引进“多道程序”概念,把多个作业装入存储器,将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。,(3)实时操作系统,实时
31、操作系统(real time operating system)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。,(4)网络操作系统,网络操作系统(network operating system)是基于网络的操作系统。是为了管理网络中的共享资源,实现用户通信以及方便用户使用
32、网络,因而网络操作系统是作为网络用户与网络系统之间的接口。 功能 网络通信 资源管理 网络管理 网络服务,(4)网络操作系统,工作模式(两种) 客户机/服务器 网络中的计算机分成两类,一类作为网络控制中心或数据中心的服务器,提供文件打印、通信传输、数据库等各种服务。另一类是本地处理和访问服务器的客户机。 对等模式 网络中的计算机都是对等的,每一台计算机即可作为服务器又可作为客户机。 目前常用的网络操作系统由UNIX、NetWare、Windows NT等。,(5)分布式操作系统,分布式操作系统(distributed software systems)负责管理分布式系统资源和控制分布式程序运行
33、。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式操作系统的网络中,各计算机没有主次之分,在任意两台计算机之间可进行信息交换和资源共享。 分布式操作系统与网络操作系统的本质区别在于分布式操作系统能使系统中若干互连的计算机可以互相协调工作,共同完成一项任务。,(6)并行操作系统,并行处理技术包括并行结构、并行算法、并行操作系统、并行语言及其编译系统。 并行处理方式有多处理机体系结构、大规模并行处理系统、工作站群(包括工作站机群系统、网络工作站)。,(7)嵌入式操作系统,嵌入式操作系统(embedded Operating System )是一种支持嵌入式系统应用的操作系统
34、软件。 嵌入式系统主要由四个部分:嵌入式微处理器、外部硬件设备、嵌入式操作系统和用户的应用程序(由于多数嵌入式设备的应用程序和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和Windows系统的最大区别)。,(8)个人计算机操作系统,个人计算机操作系统(personal computer operating system)是前面所介绍的操作系统技术的选择性组合,它的进程调度、多任务切换、多线程技术、网络功能等都是沿用了操作系统技术的发展而形成的。 主要特点:支持单个用户使用、采用图形界面的人机交互方式、易学易用、支持网络、多媒体和娱乐功能。,2.1.2 典型操作系统介绍,1、
35、DOS操作系统DOS是19811995年的个人电脑上使用的一种主要的操作系统。由于早期的DOS系统是由微软公司为IBM的个人电脑(Personal Computer)开发的,故而称之为PC-DOS,又以其公司命名为MS-DOS 。字符界面的DOS系统已被Windows系统替代。,2.1.2 典型操作系统介绍,2、Windows系统Windows是Microsoft公司在1985年11月发布的第一代窗口式多任务系统,它使PC机开始进入了所谓的图形用户界面(GUI:Graphic User Interface)时代。从1995年开始,取代DOS在微机操作系统领域的地位成为无可争辩的霸主。,3、OS
36、/2系统1987年IBM公司在激烈的市场竞争中推出了PS/2(Personal System/2)个人电脑。PS/2系列电脑大幅度突破了现行PC机的体系,采用了与其它总线互不兼容的微通道总线MCA,并自行设计了该系统约80%的零部件,以防止其它公司仿制。OS/2系统正是为PS/2系列机开发的新型多任务操作系统。OS/2克服了DOS系统640KB内存的限制,具有图形界面、支持多任务的32位操作系统。OS/2的整体水平超过当时的Windows 3.X,但因“开放性”差,导致缺乏大量的应用软件的支持而失败。,2.1.2 典型操作系统介绍,4、MAC系统MAC系统是苹果机专用系统,在普通pc上无法安装
37、的,只能安装在苹果电脑上。其操作习惯与Windows有很大的不同。界面漂亮,处理图像具有优势。,2.1.2 典型操作系统介绍,5、Unix系统 Unix最初在小型计算机上开发的,后来不断向微型机、大、中型机和多处理机系统和网络领域渗透,并获得巨大成功。 Unix在技术上的成熟度以及稳定性、可靠性和安全性等方面性能非常好,目前仍是唯一能在从巨型计算机到微型计算机的各种硬件平台上运行的多用户、多任务网络操作系统。 Unix系统是1969年问世的,由美国电报电话公司(AT&T)的贝尔实验室研制。并于1973年用C语言重写了UNIX。用C语言编写的UNIX代码简洁紧凑,易移植,易读,易修改,为此后UN
38、IX的发展奠定了坚实基础。,2.1.2 典型操作系统介绍,6、Linux系统 Linux最初由芬兰人李纳斯托瓦兹 (Linus Torvalds)开发,其源程序在Internet网上公开发布。Linux与其他操作系统的区别在于Linux是一种开放、免费的操作系统,而其他操作系统都是封闭的系统,需要有偿使用。 缺憾:入门难度高,需要较高的计算机专业知识。,2.1.2 典型操作系统介绍,1、Windows 垄断地位的形成因素微软开发出来的Windows完全兼容IBM的兼容机结构,PC制造业的统一化造成了成本下降,廉价的PC加上便宜的Windows操作系统,销量巨大,采用NT内核改良Windows操
39、作系统,系统更加稳定,操作界面更加漂亮,操作也变得简单,容易上手,造就了Windows的垄断地位。,2.1.3 Windows 操作系统,微软Windows操作系统,特点: 提供了多任务处理能力 在个人计算机上广泛使用 采用图形用户界面,简化计算机操作 版本的演变:,2003,Win server 2003,2、Windows Vista简介 缺点: 对硬件配置要求过高 对各种软件兼容性差 没有令人特别激动的新特性 优点:界面华丽。 普及率不高,将被Windows 7 取代。,2.1.3 Windows 操作系统,总结: 唯美派的追求:苹果Mac 技术狂的最爱: Linux 实用流的选择:Wi
40、ndows,Vista,程序设计语言的成分,程序设计语言的要素,字符集(大多使用ASCII字符集) 词汇: 保留词 运算符 分隔符 标识符 语法:词法和句法 语义:,程序设计语言的4种基本成分,数据成分: 用于描述程序所涉及的对象数据 运算成分: 用以描述程序中所包含的运算(算术运算、逻辑运算、字符串运算等) 控制成分: 用以控制程序中所含语句的执行顺序 传输成分: 用以描述程序中的数据传输操作,程序语言中的数据成分,数据是客观事物在计算机内的(格式化)表示,是程序所操作和处理的对象 程序中的数据通常应该先说明、后使用 数据说明的内容包括: 变量还是常量 它们的标识符(符号表示) 它们的数据类
41、型 ,什么是数据类型(data type)?,数据类型:用于刻画数据的特性数据的取值范围和允许对它进行哪些操作 C 语言通常支持下列基本数据类型:,(基本数据类型是大部分CPU能直接支持的数据类型,也称为内部类型,是不可分解的),复合数据类型,通过类型构造符把1个或多个更简单的类型复合而成的数据类型 常见的复合数据类型有: 数组(含:字符数组字符串) 结构(记录) 指针 集合 枚举 联合(变体记录) 程序员定义的其它数据类型(定制类型) 数据类型的概念在各种程序设计语言中几乎都有,目的是实现信息的隐蔽,将程序员不必了解的细节都封装在数据类型中 例如使用浮点数类型时,可不必了解浮点数在CPU中如
42、何表示,如何完成运算,只需了解其数学特性即可,算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) -,运算成分:运算符和表达式,程序语言中的控制成分,控制成分用来提供一种基本框架,在此基本框架的支持下,将数据和对数据的运算组合成程序 三种控制结构:,例:C语言的9种控制语句,If ( P ) A ; else B 实现条件选择结构 for ( P1;P2;P3
43、 ) A 实现重复结构 while ( P ) A 实现重复结构 do A while ( P ) 实现重复结构 switch 实现条件选择结构 goto 无条件选择结构 return 无条件选择结构 continue break,程序设计语言处理系统,程序设计语言的翻译程序,把甲语言编写的程序翻译为等价的乙语言编写的程序。其中甲语言程序称为源程序,乙语言程序称为目标程序,常用的有下列几种:,编译程序与解释程序的区别,解释:解释器直接解释并且执行源语言程序,不产生目标程序(相当于“口译”) 编译:把源程序编译为机器语言目标程序后,再由计算机运行(相当于“笔译”),BASIC、Visual Ba
44、sic、VBScript、Java、JavaScript等都是解释执行的语言,C、C+等都是需要编译的语言,编译程序的处理过程,算法和数据结构,1 算法 2 数据结构,计算机求解问题的步骤,(1) 确定并理解问题; (2) 寻找解决问题的方法与步骤,并将其表示成算法(Algorithm) ; (3) 使用某种程序设计语言描述该算法(编程), 并进行调试; (4) 运行程序,获得问题的解答; (5) 进行评估,改进算法和程序,1. 什么是算法?,算法是解决问题的方法与步骤,例:有三个硬币,其中一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一座天平,如何找出伪币呢? 分析: 方法明确
45、而有序 按提供的条件进行操作 任何人均可仿照进行(共享智能),关于算法的三方面问题,如何确定算法(算法设计)? 如何表示算法(算法表示)? 如何使算法更有效(算法分析)?,2. 算法的表示,算法的表示方法,文字说明 流程图表示 用N-S盒图表示算法 用PAD图描述算法 伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达工具),自然语言描述,“比较与的重量,若,则是伪造的;否则再比较与的重量,若,则是伪造的;否则是伪造的。” 缺点: 容易产生歧义,很难 “精确”地进行表达 叙述冗长,很难清楚地表达算法的逻辑流程,算法的流程图表示,流程图由结点和有向边构成,它描述了算法所执行操作的顺序及执
46、行操作的条件 流程图符号 :,比文字描述简明,但当算法比较复杂时,理解困难,容易产生错误,求最大公约数的伪代码表示,算法3:辗转相除法求最大公约数 BEGINinput m,n; /*输入正整数m和n*/do rm mod n;m n; n r; while r0;print m; /*输出最大公约数*/ END,3. 算法的分析,算法分析的基本内容,正确性:给定有效输入后,经过有限时间的计算,产生正确的输出结果 简单性算法是否容易理解,是否容易验证其正确性,程序是否容易调试 简单的算法效率不一定高,要在保证一定效率的前提下力求算法简单 时间复杂性(Time Complexity) : 当问题
47、的规模n充分大时,运行该算法所需要的时间的数量级表示 空间复杂性(Space Complexity) : 除原始数据之外,额外占用的存储空间的大小,算法是计算机软件的灵魂,计算机的通用性是因为它能运行各种各样的程序,而程序之所以能解决问题,是因为它所体现了正确的算法 算法所解决的是一类问题而不是一个特定的问题,例如 排序(sort) 可以是表格内容的排序,也可以是文件夹中文件的排序,可以按数字或文字排序,也可以按日期排序,等等 查找(search), 可以在文档中查找某个单词或在硬盘中查找某个文件,也可在Web上查找某个网页,等等 开发计算机应用的核心是:根据实际问题给出解题的算法,然后再将该
48、算法在计算机上实现(即开发成为软件),计算机算法的4个特点,目的:完成某个特定的信息处理任务 必须满足的性质: 确定性:算法中每一步操作的含义必须清楚明确,无二义性 能行性: 算法中有待实现的操作都是计算机可执行的,即必须在计算机的能力范围之内,且在有限时间内能够完成 有穷性: 算法在执行了有限步操作后必须结束 算法结束后至少产生一个输出(包括参量或状态的变化),数据结构,算法(程序)的组成,算法(程序) 由2个部分组成:进行的操作所涉及的操作对象(数据),什么是数据结构?,数据结构 研究如何在计算机中表示被处理的对象及对象之间的关系,即如何组织数据。例如: 选择排序中,未排序整数和已排序整数
49、如何表示? 排序算法中,排序的对象若不是整数而是姓名如何表示?是文件夹中的文件名又如何表示?是表格中的“行”又如何表示? Word文档中插入的表格和图片如何表示? Windows操作系统中菜单如何表示?对话框如何表示?窗口如何表示? 计算机下棋时,棋盘和棋局如何表示? 精心设计的数据结构可使算法获得更高的时间效率或空间效率,数据结构的内容,1 数据的抽象(逻辑)结构,即数据结构中包括哪些元素,相互之间有什么关系等。例如:,2 数据的物理(存储)结构,即数据的抽象结构如何在实际的存储器中予以实现,数据元素如何表示,相互关系如何表示等,3 定义在数据结构上的一组运算(操作)及其实现方法,2. 线性数据结构,举例:线性表(Liner-List),定义:若干个相同类型的数据元素组成的一个有限序列,其中每个数据元素可由多个数据项组成。表中有且仅有一个开始元素和一个结束元素,且所有元素都最多只有一个直接前趋和一个直接后继 例:考生成绩登记表(table),