第3章计算机软件3.1概述3.2操作系统3.3算法与程序设计3.1软件概述1.什么是计算机软件2.计算机软件的特性3.计算机软件的分类33.1计算机软件概述3.1什么是计算机软件43.1计算机软件概述计算机系统=硬件+软件计算机系统计算机硬件计算机软件运算器控制器输入设备存储器输出设备系统软件应用软件操作系统数据库管理系统程序设计语言处理系统文字处理通信软件···学习、娱乐软件输入硬件&软件输出计算机系统是由硬件和软件组成的,两者缺一不可!53.1计算机软件概述软件、硬件和用户的关系•硬件的能力非常有限,只是速度极高而已•没有软件,硬件几乎什么任务也完成不了BasicInput/OutputSystem硬件BIOS操作系统应用软件用户应用软件系统软件数据信息处理任务处理结果硬件用户通过应用软件完成特定的任务63.1计算机软件概述计算机通过软件才能进行信息处理不同的任务,需要使用不同的软件来完成Word论文Excel统计报表Outlook电子邮件暴风影音影视剧73.1计算机软件概述什么是程序(program)?程序是告诉计算机做什么和如何做的一组指令(语句),这些指令(语句)都是计算机能够理解并能够执行的一些命令程序的特性:①用于完成某一确定的信息处理任务②使用某种计算机语言描述如何完成该任务③预先存储在计算机中,启动运行后才能完成任务83.1计算机软件概述程序与数据的关系程序所处理的对象和处理后得到的结果统称为数据(分别称为输入数据和输出数据)程序必须处理合理的输入数据,否则不会产生有意义的输出程序和数据有相对性Word论文输入数据输出数据PhotoshopMusic.mp3???PhotoshopNJU.jpg93.1计算机软件概述程序与软件是什么关系?软件往往指的是设计比较成熟、功能比较完善、具有某种使用价值、且有一定规模的程序软件既包含程序、也包含与程序相关的数据和文档:程序是软件的主体数据指的是程序运行过程中处理的对象和必须使用的一些参数(如三角函数表、英汉词典等)文档指的是与程序开发、维护及操作有关的一些资料(如设计报告、维护手册和使用指南等)“软件”强调的是产品、工程、产业或学科等宏观方面的含义,“程序”更侧重技术层面的含义软件和程序本质上相同,在不会发生混淆的场合,软件和程序两个名称经常混用,并不严格加以区分103.1计算机软件概述2.计算机软件的特性113.1计算机软件概述计算机软件有哪些特性?(1)1.不可见性(是无形的,不能被人们直接观察、欣赏和评价)2.适用性(可以适应一类应用问题的需要)3.依附性(依附于特定的硬件、网络和其他软件)4.复杂性(规模越来越大,开发人员越来越多,开发成本也越来越高),例如:Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人微软Vista操作系统及Office2007两个团队的开发人员总共9000余人,仅Vista就投入90亿美元,开发历时6年!123.1计算机软件概述计算机软件有哪些特性?(2)5.无磨损性(功能和性能一般不会发生变化)6.易复制性(可以非常容易且毫无失真地进行复制)7.不断演变性(软件的生命周期),例如:版本不断改版(Office2000,2003,2007,2010,2013,2016)软件不断更新(升级、补丁或servicepack)添加新特性修复漏洞,提高安全性8.有限责任(有限保证)9.脆弱性(黑客攻击、病毒入侵、信息盗用···)“本软件不做任何保证。程序运行的风险由用户自己承担。这个程序可能会有一些错误,你需要自己承担所有服务、维护和纠正软件错误的费用。另外,生产厂商不对软件使用的正确性、精确性、可靠性和通用性做任何承诺。”133.1计算机软件概述3.计算机软件的分类按产权性质商品软件共享软件自由软件/开源软件按软件用途应用软件系统软件143.1计算机软件概述计算机软件与知识产权软件是智力活动的成果,受到知识产权(版权)法的保护版权授予软件作者(版权所有者)享有下列权利:拷贝、发布、修改、署名、出售、···保护知识产权的目的:确保脑力劳动成果受到奖励,鼓励人们进行发明创造购买一个软件,用户仅仅得到了该软件的使用权,并没有获得它的版权随意进行软件拷贝和分发是一种违法行为IDC的一项调查标明,25%提供盗版软件的网站在用户下载时,装置了恶意代码;微软报告称46%盗版Windows7系统含木马及病毒。我国公安部2010.2发布报告,使用盗版软件病毒感染率高达70.5%153.1计算机软件概述从软件知识产权对软件进行分类商品软件共享软件(shareware)(也称为试用软件demoware)具有版权,可免费试用一段时间,允许拷贝和散发(但不可修改),试用期满后需交费才能继续使用自由软件(FreeSoftware)(≈开放源代码软件)用户可共享,并允许随意拷贝、修改其源代码,允许销售和自由传播。但是,对软件源代码的任何修改都必须向所有用户公开,还必须允许此后的用户享有进一步拷贝和修改的自由免费软件(Freeware)(≠FreeSoftware)无需付费即可获得的软件。例如PDF阅读器、Flash播放器等自由软件很多是免费软件;免费软件不全是自由软件163.1计算机软件概述软件的许可证(license)软件许可证也称为“许可证协议”,它规定了计算机软件使用方式的法律合同,软件使用有哪些额外的限制,有哪些额外的权利等许可证的类型:单用户许可证多用户许可证并发用户许可证定点(fixedsite)许可证许可证的形式:拆封许可证最终用户许可证•不能再次出售•只能安装在1台计算机上•不得进行反汇编、反编译•不得将其组成部分分散在多台计算机上使用•不得出租或出借•······173.1计算机软件概述从用途对计算机软件分类系统软件不是为了解决某种具体应用,而是为了:给用户使用计算机提供方便给应用软件的开发与运行提供支持使计算机有效、安全、可靠地运行应用软件(APP)专门用于帮助最终用户解决各种具体应用问题的软件分类(按开发方式):定制应用软件通用应用软件几乎所有领域、所有人都需要使用设计精巧,易学易用商品化,价格较低183.1计算机软件概述应用软件/系统软件/硬件之间的分工计算机硬件系统软件应用软件(APP)用户按下‘P’键Hi,OS,发生了一个事件:“P”键被按下了!Hi,财务系统,键盘输入的是‘P’,看着办吧!Hi,OS,请打印我送到你那里的工资报表文件!Hi,激光打印机,把我送给你的数据打印出来!激光打印机开始打印20:22193.1计算机软件概述通用应用软件的类别与功能类别功能流行软件举例文字处理软件文本编辑、文字处理、桌面排版等WPS、Word、AdobeAcrobat等电子表格软件表格设计、数值计算、制表、绘图等Excel、WPS等演示软件投影片制作与播放PowerPoint、WPS等网页浏览软件浏览网页、信息检索、电子邮件通信等微软IE、百度、搜狗、UC浏览器、Firefox、Safari等音视频播放软件播放各种数字音频和视频MicrosoftMediaPlayer、RealPlayer、QuickTime、暴风影音、Winamp等通信与社交软件电子邮件、IP电话、微博、微信等Outlook、MSN、QQ、微信等个人信息管理软件记事本、日程安排、通讯录Outlook,LotusNotes游戏软件游戏和娱乐下棋、扑克、休闲游戏、角色游戏等203.1计算机软件概述启发:成功软件的经验是什么?它们都具有如下特点:1它们能替代现实世界已有的其他工具,而且使用起来比已有工具更方便有效2它们能完成已有工具很难完成甚至完全不可能完成的工作,扩展了人们的能力3成功的市场运作和售后服务4不断更新、不断发展(功能、技术、性能等)···213.1计算机软件概述什么是系统软件?系统软件是给用户使用计算机提供方便、为应用软件提供支持、使计算机安全可靠高效地运行的必不可少的软件举例:基本输入/输出系统(BIOS)操作系统(如Windows、Unix、Linux等)程序开发工具与环境(如C语言编译器等)数据库管理系统(DBMS)实用程序(Utility,如磁盘清理程序、备份程序、杀毒软件、防火墙等)223.1计算机软件概述系统软件有哪些特性?1.与计算机硬件有密切的关系,能对硬件进行统一的控制、调度和管理;2.具有通用性,能为多种不同应用软件的开发和运行提供支持与服务3.在任何计算机系统中,系统软件都是必不可少的4.在购买计算机时,通常计算机供应厂商会提供给用户一些最基本的系统软件,否则计算机无法工作。233.1计算机软件概述最重要的系统软件有哪些?操作系统(OS)OS是最重要的系统软件,几乎所有计算机都需要OS功能上也包含BIOS在内程序设计语言处理系统编译器解释器汇编程序(汇编器)开发工具与平台数据库管理系统(DBMS)实用程序AntivirusProgramPersonalFirewallSpywareRemoverInternetFiltersFileManagerFileCompressionBackupCD/DVDBurningPCMaintenance杀毒软件防火墙软件去间谍软件过滤软件文件管理软件文件压缩软件备份软件刻录软件维护软件AntivirusProgramPersonalFirewallSpywareRemoverInternetFiltersFileManagerFileCompressionBackupCD/DVDBurningPCMaintenance杀毒软件防火墙软件去间谍软件过滤软件文件管理软件文件压缩软件备份软件刻录软件维护软件实用程序用于协助OS或用户完成日常系统维护和监管任务,使计算机系统更加安全、可靠、方便、有效3.2计算机操作系统3.2.1什么是操作系统3.2.2多任务处理3.2.3文件与文件管理3.2.4存储管理3.2.5设备管理3.2.6常用操作系统253.1计算机软件概述3.2.1什么是操作系统(OS)?OS为用户提供了一个操作使用计算机的友善的用户界面OS屏蔽了计算机中几乎所有物理设备的技术细节,为开发和运行其他软件提供了一个高效、可靠的平台没有安装任何软件的计算机称为裸机,裸机是无法使用的操作系统是用于执行各种具有共性和基础性操作的软件,是最重要的一种系统软件,几乎所有计算机都要安装OS263.1计算机软件概述为什么需要操作系统?控制基本的输入/输出操作分配系统中的资源管理存储器空间监测计算机运行和故障维护计算机安全进行计算机之间的通信方便用户的操作使用提供应用程序开发平台273.1计算机软件概述操作系统的组成操作系统是一种大型、复杂的软件产品,它包括:操作系统内核(kernel)其他配套软件,如:图形用户界面程序GUI实用程序(任务管理器、磁盘清理程序、杀毒软件、防火墙等)为支持应用软件开发和/或运行的各种软件构件(如应用框架、编译器、程序库等)常用的应用程序(如日历、计算器、资源管理器、网络浏览器等)硬件平台(x86,ARM,···)操作系统内核(NT,Linux,Darwin···)引导程序设备驱动程序卖方应用程序第3方应用程序应用程序接口(API)应用框架(appframework)程序库(library)操作系统283.1计算机软件概述操作系统内核(kernel)OS内核指的是能提供进程管理(任务管理)、存储管理和设备管理等功能的那些软件模块,它们是操作系统中最基本的部分OS内核的特点:常驻在内存中;以CPU的最高优先级运行,能执行指令系统中的特权指令;具有直接访问各种外设和全部主存空间的特权;负责系统资源的管理和分配系统调用接口任务管理文件管理存储管理通信协议设备管理安全管理硬件平台(x86,ARM,···)操作系统内核(NT,Linux,Darwin,···