计算机导论教材课件_第1页
计算机导论教材课件_第2页
计算机导论教材课件_第3页
计算机导论教材课件_第4页
计算机导论教材课件_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机导论教材课件第1页,共146页,2023年,2月20日,星期四第三章计算机软件系统教学目标掌握软件的相关概念了解系统软件和应用软件的基本知识了解计算机操作系统的基本知识了解几种常用的操作系统了解程序设计语言的相关概念了解软件工程的相关概念第2页,共146页,2023年,2月20日,星期四程序和程序设计语言软件的核心内容是程序,而程序是指令的序列。起初,程序员用计算机能够直接执行的二进制码(机器语言,Machinelanguage)来写程序。工作效率非常低,而且容易出错、不容易查错。随后的思路:先用英文字母和数字按照一定规则来写程序,再由另一个已经可以执行、具有翻译能力的程序把它翻译成等价的二进制表示,交给计算机执行。因此,程序实际上是用特定语言表示的指令的序列。这样的语言叫做程序设计语言(Programminglanguages)。汇编语言(Assemblelanguage)高级语言(High-levelprogramminglanguage)第3页,共146页,2023年,2月20日,星期四程序和程序设计语言对程序进行自动翻译:#include<stdio.h>voidf(int*j);{*j=9;};voidmain(){printf(’myProgram\n');

i=1;

printf(“i=”,i);

f(i);

printf(“i=“,i);}高级语言程序MOVDX,OFFSETFILEMOVAL,0MOVAH,3DHINT21HJCOPERRMOVHANDLE,AXMOVBX,HANDLEMOVDX,OFFSETBUFMOVCX,512MOVAH,3FHINT21HJCREADERRCMPAX,0JECLOSEMOVBX,AXMOVBUF[BX],’$’MOVDX,OFFSETBUFMOVAH,9INT21HJMPREAD汇编语言程序11011010110001000101100011000010010110110100010101011111011001010111001011101111011000000100111001010110011101010101110010101001010101010001011000110110111011100101100011010111001011010110001101010011111010101010100100100101110100011100101011000110010110001100110010101010101000000111100101101111100101100001011111111001011001011101010101010100010101111110010100100101110010机器语言程序编译汇编编译第4页,共146页,2023年,2月20日,星期四软件只有程序就可以了吗?通常不是这样,因为:使用这个程序的人一般不是写程序的人,他们很可能不懂程序,因此需要有使用说明,甚至需要培训教材;以后要修改这个程序的人可能不是写程序的人,他们需要理解这个程序的设计思想和程序的演变过程;这个程序可能只是一个大系统的一部分,承担其他任务的人需要知道怎样才能在系统中利用这个程序。因此,还需要与程序有关的其他信息,这些信息要以人们能够理解的方式加以表现:文档(Documents)。软件:程序和与之相关的所有文档。第5页,共146页,2023年,2月20日,星期四ïïïïïïîïïïïïïíìïïîïïíìïïîïïíì等应用软件数据库管理系统系统支撑和服务程序语言处理程序操作系统系统软件软件系统Photoshop

AdobeOffice

WPSOfficeMicrosoft第一节计算机软件概述第6页,共146页,2023年,2月20日,星期四系统软件和应用软件的概念系统软件系统软件是围绕计算机系统本身开发的软件,它介于硬件和应用软件之间。其主要功能是管理、监控和维护计算机软硬件资源,为应用软件的开发和运行提供环境支持,为用户提供友好的使用计算机的交互界面。主要包括:操作系统、程序设计语言、语言处理程序、数据库管理系统、系统支撑和服务程序等。第7页,共146页,2023年,2月20日,星期四系统软件和应用软件的概念应用软件应用软件是为用户解决各类应用问题开发的程序。应用软件涉及的应用范围广泛,种类繁多。如今,计算机能够渗透到人们生活的方方面面,就是各种应用软件得到大量成果研发的结果。常见应用软件有办公自动化软件、管理信息系统、大型科学计算软件包以及各类游戏软件等。具体的软件有MicrosoftOffice、WPSOffice、PhotoShop、CorelDraw等。第8页,共146页,2023年,2月20日,星期四应用软件、系统软件、硬件之间的层次关系计算机硬件系统软件应用软件用户按下

‘P’

键Hi,OS,发生了一个事件:‘P’

键被按下了!Hi,财务系统,键盘输入的是‘P’,看着办吧!Hi,OS,打印我送到你那里的工资报表文件!Hi,激光打印机,把我送给你的数据打印出来!激光打印机开始打印*第9页,共146页,2023年,2月20日,星期四系统软件第10页,共146页,2023年,2月20日,星期四管理和控制计算机的要求计算机有许多部件,需要对它们进行统一管理,包括:内存和外存;各个部件之间的通信与协调运行。还有许多与硬件有关的、公共的事情:接受输入设备(例如键盘)送来的数据;把数据存储到外存,或者从外存读取所需要的数据;把数据送给输出设备(例如显示器、打印机等)。这些事情:完全可以用程序来做。因为计算机不仅可以为用户计算,还可以为计算。不应当由每一个程序都来做,而应当由专门的程序来做。第11页,共146页,2023年,2月20日,星期四系统软件这类软件不需要用户的干预,就能处理技术上很复杂的、繁杂的、一般用户处理不了的那些事情。这类软件包括:操作系统(Operatingsystem,OS)程序设计语言(Programingdesignlanguage)语言处理程序(Languagetranslators)数据库管理系统(DataBaseManagementSystem,DBMS)设备驱动程序(Devicedrivers)系统支撑和服务程序第12页,共146页,2023年,2月20日,星期四

计算机系统是由硬件和软件两部分构成的。操作系统属于软件中的系统软件,操作系统是紧挨着硬件的第一层软件,是对硬件功能的首次扩充,其他软件则是建立在操作系统之上的。通过操作系统对硬件功能进行扩充,并在操作系统的统—管理和支持下运行各种软件。因此,操作系统在计算机系统中占据着一个非常重要的地位,它不仅是硬件与所有其他软件之间的接口,而且任何数字电子计算机,从微处理器到巨型计算机都必须在其硬件平台上加载相应的操作系统之后,才能构成一个可以协调运转的计算机系统。

操作系统的概念第13页,共146页,2023年,2月20日,星期四只有在操作系统的指挥控制下,各种计算机资源才能被分配给用户所使用。也只有在操作系统的支撑下,其他系统软件如各类编译系统、程序库、运行支持环境才得以取得运行条件。没有操作系统,任何应用软件都无法运行。可见,操作系统实际上是一个计算机系统中硬、软件资源的总指挥部。操作系统的性能高低,决定了整体计算机的潜在硬件性能能否发挥出来。操作系统本身的安全可靠程度,决定了整个计算机系统的安全性和可靠性。操作系统正是软件技术含量最大、附加值最高的部分,是软件技术的核心,是软件的基础运行平台。操作系统的概念第14页,共146页,2023年,2月20日,星期四据此,我们可给出操作系统的一个定义:

操作系统是计算机系统中的一个系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行的一组程序模块的集合。操作系统的概念第15页,共146页,2023年,2月20日,星期四

其中,“有效”主要指操作系统在管理资源方面要考虑到系统运行效率和资源的利用率,要尽可能的提高处理器的利用率,让它尽可能少的空转,其他的资源例如内存、硬盘则应该在保证访问效能的前提下尽可能的减少浪费的空间等。“合理”主要是指操作系统对于不同的用户程序要“公平”,以保证系统不发生“死锁”和“饥饿”的现象。“方便”主要是指人机界面方面,包括用户使用界面和程序设计接口两方面的易用性、易学性和易维护性。

操作系统的概念第16页,共146页,2023年,2月20日,星期四操作系统的功能存储器管理处理器管理(进程管理)文件管理设备管理作业管理第17页,共146页,2023年,2月20日,星期四处理器管理的主要任务是对处理器进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理。它包括以下几方面:⑴进程控制在多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。进程运行结束时,要立即撤销该进程,以便及时回收该进程所占用的各类资源。进程控制的主要任务便是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换。

一、处理机管理功能第18页,共146页,2023年,2月20日,星期四⑵进程同步进程是以异步方式运行的,并以人们不可预知的速度向前推进。为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是对诸进程的运行进行协调。有两种协调方式:①进程互斥方式。指诸进程在对临界资源进行访问时,应该用互斥方式。②进程同步方式。指在相互合作完成共同任务的进程间,由同步机构对它们的执行次序加以协调。第19页,共146页,2023年,2月20日,星期四为了实现进程同步与互斥,系统中必须设置进程同步机制。最简单的用于实现进程互斥的机制是为每一种临界资源配置一把锁。当锁打开时,进程可以对临界资源进行访问;而关上时,则禁止进程访问该临界资源。③进程通信在多道程序环境下,可由系统为一个应用程序建立多个进程。这些进程相互合作去完成一共同任务,而在这些相互合作的进程之间,往往需要交换信息。第20页,共146页,2023年,2月20日,星期四例如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程。输入进程负责将所输入的数据传送给计算进程;计算进程利用输入数据进行计算,并把计算结果传送给打印进程,由打印进程把结果打印出来。进程通信的任务就是用来实现相互合作进程之间的信息交换。当相互合作的进程处于同一计算机系统时,通常是采用直接通信方式。即由源进程利用发送命令直接将消息挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。第21页,共146页,2023年,2月20日,星期四当相互合作的进程处于不同的系统中时,常采用间接通讯方式,即由源进程利用发送命令将消息送入一个存放消息的中间实体中,以后由目标进程利用接收命令从中间实体中取走消息。该中间实体通常称为邮箱,相应的通信系统称为电子邮件系统。④调度等待在后备队列上的每个作业,通常要经过调度(包括作业调度和进程调度两步),才能执行。作业调度的基本任务是从后备队列中按照一定的算法,选择若干个作业,为它们分配必要的资源(首先是分配内存)。第22页,共146页,2023年,2月20日,星期四在将它们调入内存后,便为它们建立进程,使之成为可能获得处理机的就绪进程;并将它们按一定算法插入就绪队列。而进程调度的任务则是从进程的就绪队列中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,使进程投入运行。在进行作业调度和进程调度时,都必须遵循某种调度算法。第23页,共146页,2023年,2月20日,星期四

存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。为此,存储器管理应具有以下功能:内存分配、内存保护、地址映射和内存扩充等。⑴内存分配内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”,提高存储器的利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

二、存储器管理功能第24页,共146页,2023年,2月20日,星期四操作系统在实现内存分配时,可采取以下两种方式:①静态分配方式。每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许再申请新的内存空间,也不允许作业在内存中“移动”。②动态分配。每个作业所要求的基本内存空间也是在装入时确定的;但允许作业在运行过程中继续申请新的附加空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。

第25页,共146页,2023年,2月20日,星期四为了实现内存分配,在内存分配的机制中应具有以下结构和功能①内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据。②内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间。③内存回收功能。系统对于用户不再需要的内存,通过用户的释放请求,去完成系统的回收功能。第26页,共146页,2023年,2月20日,星期四⑵内存保护内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不干扰。进一步说,绝不允许用户程序访问操作系统的程序和数据;也不允许转移到非共享的其他用户程序中去执行。为了确保每道程序只在自己的内存区内运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统需对每条指令所访问的地址进行越界检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。

第27页,共146页,2023年,2月20日,星期四

如果这种检查完全用软件实现,则每执行一条指令,便需要增加若干条指令去进行越界检查,这将显著地降低程序的执行速度。因此,越界检查都由硬件实现,当然,对发生越界后的处理,还须与软件配合来完成。⑶地址映射一个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链接而形成可装入程序。这些程序的地址都是从“0”开始的,程序中的其他地址都是相对于起始地址计算的;由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。第28页,共146页,2023年,2月20日,星期四此外,由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。在多道程序环境下,地址空间中的逻辑地址和内存空间中的物理地址是不可能一致的,因此,存储器管理必须提供地址映射功能,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能同样应在硬件的支持下完成。

第29页,共146页,2023年,2月20日,星期四⑷内存扩充由于物理内存的容量有限(它是非常宝贵的硬件资源,不可能做得太大),因而难以满足用户的需要,势必影响到系统的性能。在存储器管理中的内存扩充任务,并非是去增加物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存比物理内存大得多;或者是让更多的用户程序能并发运行。这样,即满足了用户的需要、改善了系统性能,又基本上不增加硬件投资。第30页,共146页,2023年,2月20日,星期四为了从逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:①请求调入功能。允许在仅装入一部分用户程序和数据的情况下,启动该程序运行。在运行过程中当发现继续运行时所需的程序和数据尚未装入内存时,可向操作系统发出请求,由操作系统将所需部分调入内存,以便继续运行。②置换功能。若内存中已无足够的空间来装入需要调入的部分时,系统应能将内存中的一部分暂时不用的程序和数据调至磁盘上,以便腾出内存空间,然后再将需部分调入内存。第31页,共146页,2023年,2月20日,星期四

设备管理的主要任务是完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备。为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。三、设备管理功能第32页,共146页,2023年,2月20日,星期四

⑴缓冲管理缓冲管理的基本任务是管理好各种类型的缓冲区,如字符缓冲区和字符块缓冲区,以缓和CPU和I/O速度不匹配的矛盾,最终达到提高CPU和I/O设备利用率,进而提高系统吞吐量的目的。在不少系统中,还通过增加缓冲区容量的办法来改善文件系统的性能。对于不同的系统,可以采用不同类型的缓冲区机制。最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制、以及能供多个设备同时使用的公用缓冲池机制。

第33页,共146页,2023年,2月20日,星期四⑵设备分配设备分配的基本任务是根据用户的I/O请求,为之分配其所需的设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。为了实现设备分配,系统中应配置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态。它们可用以说明该设备是否可用、是否忙碌,以供设备分配时参考。在进行设备分配时,应针对不同的设备而采用不同的设备分配方式。对于独占设备(临界资源)的分配,还应考虑到该设备被分配出去后,系统是否安全。设备用完后还应立即加以回收。第34页,共146页,2023年,2月20日,星期四

⑶设备处理设备处理程序又称为设备驱动程序。其基本任务通常是实现CPU和设备控制器之间的通信。即由CPU向设备控制器发出I/O指令,要求它完成指定的I/O操作;并能接收由设备控制器发来的中断请求,给予及时的响应和相应的处理。处理过程是:设备处理程序首先检查I/O请求的合法性、了解设备的状态是否空闲、了解有关传递参数以及设置设备的工作方式。然后,便向设备控制器发出I/O命令,启动I/O设备去完成指定的I/O操作。最后是及时响应由控制器发来的中断请求,并根据该中断请求的类型调用相应的中断处理程序进行处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的I/O请求,自动地构成通道程序。第35页,共146页,2023年,2月20日,星期四

⑷设备独立性和虚拟设备①设备独立性。设备独立性的基本含义是指应用程序独立于物理设备,以使用户编制的程序与实际使用的物理设备无关。这种独立性不仅能提高用户程序的可适应性,使程序不局限于某具体的物理设备,而且易于实现输入、输出的重定向。即在I/O操作中所使用的设备可方便地重新指定,而无须改变原有程序。②虚拟设备功能。这一功能可把每次仅允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备。或者说,它能把一个物理设备变换为多个对应的逻辑设备,以使一个物理设备能供多个用户共享。这样,不仅提高了设备的利用率,而且还加速了程序的运行,使每个用户都感觉到自己在独占该设备。第36页,共146页,2023年,2月20日,星期四四、文件管理功能

在现代计算机系统中,总是把程序和数据以文件的形式存储在磁盘和磁带上,供所有的或指定的用户使用。为此,在操作系统中必须配置文件管理机构。文件管理的主要任务,是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理,目录管理,文件的读、写管理以及文件的共享与保护等功能。第37页,共146页,2023年,2月20日,星期四⑴文件存储空间的管理为了方便用户的使用,对于一些当前需要使用的系统文件和用户文件,都必须存放在可随机存取的磁盘上。在多用户环境下,若由用户自己对文件的存储进行管理,不仅非常困难,而且也必然是十分低效的。因而,需要由文件系统对诸多文件及文件的存储空间,实施统一的管理。其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的工作速度第38页,共146页,2023年,2月20日,星期四

为了实现对文件存储空间的管理,系统应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考;系统还应具有对存储空间进行分配和回收的功能。为了提高存储空间的利用率,对存储空间的分配通常是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。盘块的大小通常为512字节至4K字节。第39页,共146页,2023年,2月20日,星期四

⑵目录管理为了使用户能方便地在外存上找到他所需要的文件,通常由系统为每个文件建立一个目录项。目录项包含文件名、文件属性、文件在磁盘上的物理位置等。由若干个目录项又可构成一个目录文件。目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取。也就是说,用户只须提供文件名,即可对该文件进行存取。其次,目录管理还应能实现文件共享,这样,只需在外存上保留一份该共享文件的副本。此外,还应能提供快速的目录查询手段,以提高文件的检索速度。第40页,共146页,2023年,2月20日,星期四⑶文件的读、写管理和存取控制①文件的读、写管理。读、写管理是最基本的功能。这是根据用户的请求,从外存中读取数据;或将数据写入外存。在进行文件读(写)时,系统先根据用户给出的文件名,去检索文件目录,从中获得文件在外存中的位置。然后,利用文件读(写)指针,对文件进行读(写)。一旦读(写)完成,便修改读(写)指针,为下一次读(写)做好准备。由于读和写操作不会同时进行,故可以和用一个读/写指针。第41页,共146页,2023年,2月20日,星期四

②文件的存取控制为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:防止未经核准的用户存取文件;防止冒名顶替存取文件;防止以不正确的方式使用文件。在一个完善的文件系统中,可以采取多级保护设施来达到这一目标。第一是进行系统级存取控制,通常是以使用口令并对口令进行加密的方法来防止非法用户进入系统,从而不可能进行文件访问。第二是用户级存取控制,这常常是通过对用户进行分类和为用户分配适当的“文件存取权限”等方法来实现。第三是文件级存取控制,这是通过设置文件属性(如只读、只执行、读/写等属性)来控制对文件的存取。第42页,共146页,2023年,2月20日,星期四操作系统的功能五、作业管理作业:用户在一次事务处理过程中要求计算机所做工作的总和。作业管理:主要是对作业进行合理的调度与控制。第43页,共146页,2023年,2月20日,星期四操作系统的分类从功能角度来分批处理OS分时OS实时OS网络OS分布式OS第44页,共146页,2023年,2月20日,星期四操作系统的分类

1、多道批处理操作系统所谓多道程序设计是指在主存储器中存放多道用户的作业,使其按照一定的策略插空在CPU上运行,共享CPU和输入输出设备等系统资源。多道批处理操作系统负责把用户作业成批地接收进外存储器,形成作业队列,然后按一定的策略将作业队列中的用户作业调入主存储器,并使得这些作业按其优先级轮流占用CPU和外部设备等系统资源。因此,在宏观上看,计算机中有多个作业在运行,但在微观上看,对于单CPU的计算机而言,在某一个瞬间实际上只有一道作业在CPU上运行。第45页,共146页,2023年,2月20日,星期四操作系统的分类

2、分时操作系统所谓分时是指多个用户终端共享使用一台计算机,即把计算机系统的CPU时间分割成一个个小的时间段(称其为一个时间片),从而将CPU的工作时间分别提供给各个用户终端。分时操作系统设计的主要目标是提高对用户响应的及时性。它一般适用于带有多个终端的小型机。第46页,共146页,2023年,2月20日,星期四操作系统的分类

3、实时操作系统在把计算机应用于过程控制系统时,通常要求计算机能够对外部事件作出及时的响应并对其进行处理,这样的系统称为实时系统。实时操作系统强调对外部事件响应的及时性和快捷性及系统的可靠性。第47页,共146页,2023年,2月20日,星期四

操作系统的分类

4、网络操作系统计算机网络是将物理位置各异的计算机通过通信线路连接起来以实现共享资源的计算机集合。由于在网络上的计算机的硬件特性、数据表示格式等的不同,为了在互相通信时彼此能够理解,必须共同遵循某些约定,这些约定称为协议。因此,网络操作系统实际上是使网络上的计算机能够方便而有效地共享网络资源,为网络用户提供各种服务队尾软件和有关协议的集合。第48页,共146页,2023年,2月20日,星期四网络操作系统除了应具有通常操作系统所具有的处理机管理、存储器管理、设备管理和文件管理功能之外,还应该能够提供高效、可靠的网络通信以及多种网络服务功能。其中网络通信将按照网络协议来进行;而网络服务包括文件传输、远程登录、电子邮件、信息检索等,使网络用户能够方便地利用网络上的各种资源。第49页,共146页,2023年,2月20日,星期四

5、分布式操作系统在以往的计算机系统中,其处理和控制功能都高度地集中在一台主机上,所有的任务都有主机处理,这样的系统成为集中式处理系统在分布式处理系统中,系统的处理和控制功能都分散在系统的各个处理单元上。系统中的所有任务也可动态地被分配到各个处理单元上去,使它们并行执行,实现分布处理。可见,分布式处理系统最基本的特征是处理上的分布。而处理分布的实质是资源、功能、任务和控制都是分布的。所谓分布式处理系统,是指由多个分散的处理单元经互连网络的连接而形成的系统。其中,每个处理单元既具有高度的自治性,又相互协同,能在系统范围内实现资源管理、动态地分配任务,并能并行地运行分布式程序。第50页,共146页,2023年,2月20日,星期四在分布式系统中,如果每个处理单元都是计算机,则可称为分布式计算机系统。它通常是计算机网络,也是目前最常见的分布式系统;如果处理单元只是处理器和局部存储器,则只能称作分布式(处理)系统。在分布式系统上配置的操作系统,称为分布式操作系统,它虽与网络操作系统有许多相似之处,但两者都各有其特点。第51页,共146页,2023年,2月20日,星期四

操作系统的特征

前面所介绍的三种基本操作系统,虽然它们各有自己的特征,如批处理系统具有成批处理的特征,分时系统具有交互特征,实时系统具有实时特征,但它们也都具有以下四个基本特征:1.并发并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同—时间间隔内发生。在多道程序环境下,并发性是指宏观上在—段时间内有多道程序在同时运行。但在单处理机系统中.每一时刻仅能执行一道程序,故微观上,这些程序是在交替执行的。

第52页,共146页,2023年,2月20日,星期四2.共享所谓共享是指,系统中的资源可供内存中多个并发执行的进程共同使用。由于资源的属性不同,放多个进程对资源的共享方式也不同,可分为以下两种资源共享方式:(1)互斥共享方式系统中的某些资源如打印机、磁带机,虽然它们可以提供给多个进程使用,但在一段时间内却只允许一个进程访问该资源。当一个进程正在访问该资源时,其它欲访问该资源的进程必须等待,仅当该进程访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把在一段时间内只允许—个进程访问的资源称为临界资源。许多物理设备以及某些变量、表格都属于临界资源,它们要求互斥地被共享。(2)同时访问方式系统中还有另一类资源,允许在一段时间内由多个进程同时对它进行访问。这里所谓的“同时”往往是宏观上的。而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程同时访问的资源是磁盘;一些用重入码编写的文件,也可同时共享。

第53页,共146页,2023年,2月20日,星期四

并发和共享是操作系统的两个最基本的特征,它们又是互为存在条件。一方面,资源共享是以程序(进程)的并发执行为条件的;若系统不允许程序并发执行,自然不存在资源共享问题。另一方面,若系统不能对资源共享实施有效管理,则也必将影响到程序的并发执行,甚至根本无法并发执行。第54页,共146页,2023年,2月20日,星期四3.虚拟在操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变成若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的.而后者是虚的,是用户感觉上的东西。例如,在多道分时系统中,虽然只有—个CPU,但每个终端用户却都认为是有一个CPU在专门为他服务,亦即,利用多道程序技术可以把一台物理上的CPU虚拟为多台逻辑上的CPU,也称为虚处理机。类似地,也可以把—台物理I/O设备虚拟为多台逻辑上的I/O设备。此外,也可以把一条物理信道虚拟为多条逻辑信道(虚信道)。在操作系统中虚拟的实现,主要是通道分时使用的方法。显然,如果n是某一物理设备所对应的虚拟的逻辑设备数.则虚拟设备的速度必然是物理设备速度的1/n.

第55页,共146页,2023年,2月20日,星期四

4.异步性在多道程序环境下,允许多个进程并发执行,但由于资源等因素的限制.通常,进程的执行并非“一气呵成”,而是以“走走停停”的方式运行。内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需多少时间才能完成,都是不可预知的。很可能是先进入内存的作业后完成;而后进人内存的作业先完成。或者说,进程是以异步方式运行的。尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果,因此,异步运行方式是允许的。此即进程的异步性,是操作系统的一个重要特征。第56页,共146页,2023年,2月20日,星期四操作系统操作系统的其它分类方法:从用途的角度:通用OS,专用OS从单机和网络角度分析:单机OS,网络OS按管理用户的数量分:单用户操作系统、多用户操作系统按同时管理作业的数量分:单任务操作系统、多任务操作系统第57页,共146页,2023年,2月20日,星期四典型操作系统介绍MicrosoftWindowsUnixLinuxMacOS第58页,共146页,2023年,2月20日,星期四MicrosoftWindows目前最流行的微机操作系统。要求CPU是Intel微处理器。具有简单、易学、易用的图形用户界面(GraphicalUserInterface,GUI)。第59页,共146页,2023年,2月20日,星期四微软Windows操作系统产品线

图4-6微软Windows操作系统产品线1985年WindowsXP1993年1994年1995年1996年2000年1998年个人操作系统Windows1.0Windows2.0………Windows3.0………Windows3.xWindows95Windows98WindowsMe商用操作系统WindowsNT3.1第1版WindowsNT3.5第2版WindowsNT3.51第3版WindowsNT4.0第4版Windows2000(NT5.0)WindowsCE4.01995年1998年2000年2001年1987年1990年第60页,共146页,2023年,2月20日,星期四Windows操作系统主要技术特点(1)真正的多用户多任务操作系统(2)支持对称多处理和多线程(3)32位页式虚拟存储管理(4)支持多种可装卸文件系统(5)提供“即插即用”功能(6)新的图形化界面,较强的多媒体支持功能(7)集成网络功能,支持联网和网络通信(8)具有更高的安全级和容错功能第61页,共146页,2023年,2月20日,星期四Unix原本主要是在大型机、小型机和工作站上运行,现可在各种

CPU、各种档次的计算机上运行。运行稳定、可靠。较强的安全性控制。目前的大型网络服务器主要采用的操作系统。标准化程度很高。GUI和命令行界面。Unix操作系统是20世纪60年代末由美国的电话电报公司(AT&T)和贝尔(Bell)实验室的计算机科学家K.Thompson和D.M.Ritchie等研制的。由于上述两位学者对Unix操作系统的卓越贡献,获得了1983年的图灵奖。

第62页,共146页,2023年,2月20日,星期四

Unix的特点

Unix主要特点是:Unix是一个多用户操作系统,适合于将终端或工作站连接到小型机或主机的场合使用。功能可由许多小的功能模块连接组装而成。提供了功能完备、使用灵活、可编程的命令语言(Shell语言),用户可以使用该语言与计算机进行交互以及方便地进行程序设计。具有分层的、可装卸的文件系统,并提供了完整的文件保护功能。采用了输入输出缓冲技术,主存储器和磁盘的分配与释放可以高效地、自动地进行。提供了文本编辑程序、Shell语言解释程序、汇编程序、十几种程序设计语言的编译程序、连接装配程序、调试程序、用户间通信程序以及系统管理与维护程序等。Unix的代码大部分是用C语言书写,因而有很好的可移植性。Unix系统有一系列网络通信工具和协议,TCP/IP协议就是在Unix上开发成功。第63页,共146页,2023年,2月20日,星期四

Unix的组成Unix操作系统包含了4个最基本的成分:内核、文件系统、Shell和公用程序,其框架结构如图4-7所示。用户

Shell语言解释程序系统调用命令程序设计语言

编译程序各种应用程序包子系统用户层内核层进程管理存储管理设备管理

I/O

中断管理文件管理汇编程序计算机硬件(裸机)

UNIX系统的框架结构第64页,共146页,2023年,2月20日,星期四Unix的组成

内核是Unix操作系统的核心,它的作用是调度和管理计算机系统的各种资源。文件系统在Unix操作系统中主要用来组织并管理数据资源。Shell是一种命令解释程序,它用来读入用户输入的命令并调用相应的程序来执行用户提出的命令。公用程序是Unix系统提供给用户的常用标准软件,包括编辑工具、网络管理工具、开发工具及保密与安全工具等。第65页,共146页,2023年,2月20日,星期四Linux

Linux是一种可以运行在微机上的免费的Unix操作系统。它由芬兰赫尔辛基大学的学生LinusTorvalds在1991年开发,今天Linux已发展成为功能很强的操作系统。Linux的开发及其源代码对每个人都是完全免费的。但是这并不意味着Linux和它的一些周边软件发行版本也是免费的。Linux有着广泛的用途,包括网络应用、软件开发、建立用户平台等等,Linux被认为是一种高性能、低开支的可以替换其他昂贵操作系统的软件系统。现在主要流行的版本有:RedHatLinux、TurboLinux及我国自己开发的红旗Linux、蓝点Linux等。第66页,共146页,2023年,2月20日,星期四Linux免费使用和自由传播的类Unix操作系统继承了Unix以网络为核心的设计思想,稳定、可靠、安全。有很多发行版本,较流行的有:RedHatLinuxDebianLinuxRedFlagLinux,第一个国产的操作系统版本第67页,共146页,2023年,2月20日,星期四Linux的特点

与Unix兼容的32位操作系统,它能运行主要的Unix工具软件、应用程序和网络协议支持32位和64位的硬件设计继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统支持多任务、多进程和多CPU模块化设计结构,使它有优于其他操作系统的扩充性用户不仅可以免费获得Linux的源代码,还可以修改,以实现特定的功能,使任何人都可以参与Linux的开发是一个提供完整网络集成的操作系统,它可以轻松地与TCP/IP、LANManager、WindowsforWorkgroups、NovellNetWare或WindowsNT集成在一起第68页,共146页,2023年,2月20日,星期四Linux的用途

主要的应用有以下几个方面:被广泛应用于Internet/intranet中,提供Web服务Linux下的服务器不但可以轻松地向用户提供文件及打印服务,还可以通过磁盘定额做到限制某些不合理使用提供了对数据库系统的全力支持,目前可以在Linux运行的大型数据库系统有:SybaseASE、InformixDynamicServer、Oracle和IBMDB2等将Linux系统用作路由器,这类系统通常情况下只安装简单的网络服务功能软件包。对于安全性要求较高的网络,还可以在Linux上用IPChain作防火墙来使用,以杜绝外部入侵者的破坏Linux还可以用作代理服务器提供了文字处理软件、绘图软件、动画软件和看图软件,它还提供了窗口系统第69页,共146页,2023年,2月20日,星期四MacOS

Apple公司为它的计算机设计的操作系统大多称为MacOS,MacOS是最早利用图形用户界面的操作系统,它具有很强的图形处理能力,被广泛地用在桌面出版和多媒体应用等领域。由于MacOS在中国不普及,加上它以往的MacOS又和Microsoft的Windows操作系统缺乏兼容性,因而它的使用也就受到了限制。最近Apple公司推出了新一代操作系统MacOSX。MacOSX的核心系统被称为Darwin(意为“达尔文”),它采用了由卡耐基梅隆大学所开发的Mach微内核,所以也可以将MacOSX看作为一种符合POSIX(PortableOperatingSystemInterface,可移植操作系统接口)标准的Unix变种。由于Darwin本身是开放源代码的,MacOSX受到各OpenSource社团的强烈关注和广泛支持。第70页,共146页,2023年,2月20日,星期四AppleMacOS在Apple公司的Macintosh计算机上运行。Apple公司拥有最先进的GUI技术要求CPU是PowerPC微处理器。Apple

公司拥有最先进的GUI技术。在影视、广告等行业被广泛使用。第71页,共146页,2023年,2月20日,星期四MacOSX的特点

1、系统稳定和良好的性能Darwin集成了多项技术,包括Mach3.0内核、基于BSDUnix(BerkeleySoftwareDistribution)的操作系统服务、高性能的网络工具,以及对多种集成的文件系统的支持。Darwin的内存保护和管理系统,为每个程序或进程分配单独的地址空间,利用这种坚固的结构保护程序,来确保系统的可靠性。Darwin可以同时管理不同的应用程序环境,给用户一种无缝整合的体验。它的文件系统组件使用一种层结构,其系统是可堆叠的。Darwin依靠其内核实现抢先与协同多任务,支持多线程的增强对称多重处理(SMP)功能。设备驱动程序可以轻松地实现真正的即插即用、动态设备管理(“热插拔”)和电源管理。2、图形功能MacOSX集合了三个应用广泛的图形技术:Quartz、OpenGL和QuickTime。第72页,共146页,2023年,2月20日,星期四MacOSX的特点Quartz由一个高性能的,简洁的窗口服务器和一个用于二维(2D)形状的图形渲染库组成。窗口服务器具有许多先进的性能,如与设备无关的色彩和象素深度、远程显示、分层合成,以及用于自动窗口修复的缓冲窗口。Quartz还为开发商提供了利用浮点协作系统和高精度的矢量处理功能实现图形和文字的即时抗锯齿、直接访问视频帧缓冲、高质量的屏幕渲染等功能。对于三维(3D)图形,MacOSX配备了工业标准OpenGL的一个优化版本,可以创造极为逼真的视觉效果。OpenGL是应用最广泛的图形标准之一,它非常适用于游戏、动画、CAD/CAM,医学图像和其他一些需要丰富视觉效果的应用程序。QuickTime是一种超强的多媒体技术,用于操作、增强和存储视频、声音、动画、图形、文字、音乐,甚至360°虚拟现实。它还能够支持实时的或已存储好的数字视频的流式传播(streaming)。为了增强其跨平台的功能,QuickTime支持所有主要的图像文件格式,包括BMP,GIF,JPEG,TIFF和PNG。它也支持各种重要的专业视频文件格式,包括AVI,AVR,DV,JPEG,MPEG和OpenDML等。第73页,共146页,2023年,2月20日,星期四MacOSX的特点3、用户界面MacOSX最为形象的诠释是它新的用户界面Aqua。Aqua结合了许多Macintosh用户所希望拥有的品质和特性,同时添加了许多先进特性,还包含了对系统的功能与操作方式的暗示4、文件系统与网络MacOSX可以管理多种文件格式与网络协议文件系统支持通用文件系统(UFS)、POSIX文件系统语义(semantics)及通用磁盘格式(UDF)在互联特性方面,MacOSX支持TCP/IP(传输控制协议)、PPP(点对点协议)和UDP/IP(用户Datagram协议)等多种协议MacOSX内置了通过AirPort(IEEE802.11)实现的无线网络,还提供了通过USB(通用串行总线)和FireWire(IEEE1394)的外设互联第74页,共146页,2023年,2月20日,星期四计算机专业人员应当怎样看待操作系统?当然要能够熟练地通过操作系统来使用计算机,但绝不能满足于只会手工使用操作系统。在开发应用系统时:能够通过系统功能调用,来充分、有效地利用操作系统已有的功能,而不是一切白手起家;能够充分发挥操作系统同时运行多个应用程序的能力,这就是并发程序设计(Concurrentprogramming);操作系统是一类水平最高的软件,要认真学习其设计思想,以及表示和管理各种资源的手法,再应用到自己的开发工作中去。建议在学过《操作系统》课程后,读一读经典操作系统的源程序。第75页,共146页,2023年,2月20日,星期四要点与引伸CPU和存储器相当于计算机的“大脑”,输入设备相当于计算机的“眼、耳、鼻”,输出设备相当于计算机的“口、手、脚”。计算机的许多部件是非常精密的电子设备,必须小心对待,不可莽撞从事。系统软件的主要功能是处理计算机硬件的物理复杂性,操作系统管理并协调计算机中的各种资源、运行应用程序,并为计算机用户提供使用接口。第76页,共146页,2023年,2月20日,星期四程序设计语言1、程序设计语言是什么?2、程序是什么?对解决某个问题的算法的描述,是语句的集合用来编程序的工具语句是若干条指令的集合3、语句=指令?第77页,共146页,2023年,2月20日,星期四指令指令是对计算机进行程序控制的最小单位。所有的指令的集合称为计算机的指令系统。程序是为完成一项特定任务而用某种语言编写的一组指令序列。机器指令格式操作码操作数机器执行什么操作执行对象(具体数、存放位置)第78页,共146页,2023年,2月20日,星期四3.3程序设计语言程序是为解决某一特定问题按照既定算法用某种计算机语言编写的一系列有序的指令或语句的集合。程序=数据结构+算法+某种程序设计语言第79页,共146页,2023年,2月20日,星期四一、数据结构数据结构是从问题中抽象出来的数据之间的关系,它代表信息的一种组织方式,用来反映一个数据的内部结构,即一个数据由哪些数据项构成,以什么方式构成,成什么结构。数据结构包括数据的逻辑结构和物理结构。数据的逻辑结构反映的是各数据项之间的逻辑关系,数据的物理机构反映的是各数据项在计算机内部的存储安排。第80页,共146页,2023年,2月20日,星期四二、算法

算法是对特定问题求解步骤的一种描述,它是指令的有限序列。实质上反映的是解决问题的思路。例如:求1到100这100个数的和的算法是:步骤1:k=1,s=0

步骤2:如果k>100,则算法结束,s即为所求的和,输出s;否则转向步骤3

步骤3:s=s+k,k=k+1

步骤4:转向步骤2第81页,共146页,2023年,2月20日,星期四二、算法算法的5个重要特性有穷性。一个算法必须在执行有穷步之后结束,且每一步都可在有穷时间内完成。确定性。算法的每一步都必须有明确的定义,不应该在理解时产生二义性,且算法只有唯一的执行的路径,即对于相同的输入只能得出相同的输出。可行性。一个算法是能行的,即算法中的描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。输入。一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。输出。一个算法有一个或多个的输出,这些输出是同输入有着某些特定关系的量。第82页,共146页,2023年,2月20日,星期四三、程序设计语言程序设计语言是用户编写应用程序使用的语言,是人与计算机之间交换信息的工具,程序设计语言可以看做是计算机下达命令的工具,是数学算法的语言描述,它包括了一组用来定义计算机程序的语法规则,可以让程序设计员准确的定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的操作。第83页,共146页,2023年,2月20日,星期四三、程序设计语言机器语言机器语言是用二进制代码表示的计算机能直接识别和执行的一组机器指令的集合。特点:编写困难,可读性差、可移植性差汇编语言用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码。特点:编写相对容易,可读性相对较好,可移植性差第84页,共146页,2023年,2月20日,星期四三、程序设计语言高级语言与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。特点:编写容易,可读性好、可移植性好面向过程:把大的问题按照步骤分解成若干小的问题,然后用函数把这些小问题一一实现,使用的时候依次调用。面向对象:把构成问题的事物分解成若干对象,通过对象之间的相互作用来解决问题。第85页,共146页,2023年,2月20日,星期四四、程序的翻译处理编译程序当用户由高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。编译程序主要有词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等功能模块组成第86页,共146页,2023年,2月20日,星期四语言处理程序机器语言源程序汇编语言源程序高级语言源程序汇编目标程序

编译

解释逐条转换执行低级语言第87页,共146页,2023年,2月20日,星期四四、程序的翻译处理翻译程序对高级语言程序进行解释并执行的程序为解释程序。它的功能是源程序按动态逻辑顺序进行逐句分析解释,解释一句执行一句,不产生任何中间代码,最终得到程序的执行结果。在多数情况下,建立在编译基础上的系统在执行速度上都优于建立在解释基础上的系统。但是编译程序比较复杂,使得开发和维护费用较高;相反,解释程序比较简单,可移植性也好,缺点是执行速度慢。第88页,共146页,2023年,2月20日,星期四语言翻译程序将用高级语言或汇编语言编写的程序(源程序,Sourceprograms),翻译成等价的机器语言程序。翻译时,要对源程序进行检查,来保证翻译后的程序是可执行的。但是,语言翻译程序无法保证程序的执行结果是正确的,这要靠程序设计人员自己来判断。这是因为,在正确地表达了一个错误的源程序时,语言翻译程序只能肯定源程序的表达方式(语法,Syntax)是正确的,而没有能力判断出程序的内涵(语义,Semantics)是错误的。第89页,共146页,2023年,2月20日,星期四语言翻译程序类别:编译程序(Compiler):将高级语言程序翻译成对应的汇编语言程序,或者直接翻译成对应的机器语言程序(称为目标程序(Objectprogram),存储于外存,不能直接执行)。汇编程序(Assembler):将汇编语言程序翻译成对应的目标程序。链接程序(Linker):将一个或多个目标程序与一个或多个相关的程序库(Library,也是由一些目标程序构成)组织在一起,产生可执行代码(Executablecode)并存入外存,在需要运行时再由操作系统加载后执行。解释程序(Interpreter):对高级语言程序逐句地进行翻译,产生对应的机器语言指令序列并执行之。第90页,共146页,2023年,2月20日,星期四语言翻译程序编译-链接-加载-执行的过程:编译链接目标程序其他目标程序与程序库可执行程序源程序加载ExecutableCode执行第91页,共146页,2023年,2月20日,星期四语言翻译程序不同的高级语言有不同的编译程序或解释程序。目前主要的高级语言有:C++、C#、CJavaVisualBasicPASCAL、DelphiAdaFortranCOBOL计算机的机器指令不同,汇编程序就不同。链接程序通常与操作系统有关,可以链接同一操作系统中不同语言的编译程序或汇编程序所产生的目标程序。第92页,共146页,2023年,2月20日,星期四计算机专业人员应当怎样看待语言翻译程序?计算机上所使用的语言并不限于程序设计语言:计算机总是要与用户对话的。对话时所使用的语言应当易于用户理解和使用,可能是文字语言,可能是图形语言,还可能就直接是用户的声音或图像。与用户对话的语言,必须能够被翻译成计算机中的程序能够理解和执行的方式。用户在使用对话语言时,不可能不犯错误,因此需要把能够判断清楚的错误都查出来,而不能稀里糊涂地执行。因此,计算机专业人员应当能够设计和实现与用户对话的语言。认真学习语言翻译程序的原理和技术是必要的。第93页,共146页,2023年,2月20日,星期四数据库第94页,共146页,2023年,2月20日,星期四数据信息系统五要素之一就是数据。数据是关于人、地点、事物、事件等的事实。计算机所存储、管理和处理的数据有着非常大的数量与相当多的种类。在计算机中表示和存储数据,需要有许多种格式。如何来看数据?物理视图(Physicalview):看到的是数据的外在特征。如格式、位置等。逻辑视图(Logicalview):看到的是数据的内在特征。如涵义、内容等。第95页,共146页,2023年,2月20日,星期四数据的组织对数据必须进行精心的组织。数据的组织分为以下层次:字符(Characters)域(Fields)记录(Records)文件数据库(Database)第96页,共146页,2023年,2月20日,星期四为什么要用数据库来组织和管理数据?数据是信息系统中最宝贵、最脆弱的财富:程序被丢失或破坏,还可以重新产生。数据是大量的最终用户日积月累产生的,如果被丢失或破坏,要付出很大代价才能恢复(有些甚至无法恢复)。应用软件几乎都要涉及数据的组织和管理,在实现上要做大量的工作。数据库统一承担了数据的组织和管理工作,其优点是:与具体的应用程序无关,因而减少了应用程序的开发工作量,并使得多个应用程序共享所需要的或要处理的数据。容易保证数据的安全性。减少了数据的冗余(Redundancy),节省了存储空间。保证了数据的完整性(Integrity)。第97页,共146页,2023年,2月20日,星期四用什么来管理数据库?有专门的软件:数据库管理系统(DatabaseManagementSystem,DBMS)。其职责是:为产生、修改、访问数据库提供有效的支持。DBMS一般包含以下这些子系统(Subsystems):DBMS引擎(DBMSengine)数据定义子系统(Datadefinitionsubsystem)数据操纵子系统(Datamanipulationsubsystem)应用程序生成子系统(Applicationgenerationsubsystem)数据管理子系统(Dataadministrationsubsystem)第98页,共146页,2023年,2月20日,星期四数据模型数据模型(Datamodels)是数据库管理和组织数据时所采用的结构模型。已有的数据模型:关系(Relational)模型层次(Hierarchical)模型网状(Network)模型多维(Multidimensional)模型面向对象(Object-oriented)模型目前的

DBMS主要采用的是关系模型,但已经开始向多维模型(亦称为对象-关系模型)演变。第99页,共146页,2023年,2月20日,星期四数据库语言与产品目前的数据库语言基本上都服从

SQL(StructuredQueryLanguage)标准。SQL语言可以完成数据定义、数据操纵(包括数据的查询(Query)、插入(Insert)、删除(Delete)、修改(Update)等操作)和数据管理等功能。目前常见的

DBMS:OracleSQLServerUDB/DB2MySQLSybaseInformix第100页,共146页,2023年,2月20日,星期四软件开发过程第101页,共146页,2023年,2月20日,星期四软件开发是智力密集型的工作到目前为止,无论是系统软件还是应用软件,还主要靠人(通常是许多人一起合作)来进行开发(development);开发工作完成后,要向用户交付,并继续进行维护和扩充。因此,软件的开发与维护有一个过程,其持续时间少则几个月,多则十几年。软件开发是一种高风险工作。如果对软件开发过程不进行科学的、系统的管理,几乎可以肯定将导致软件开发的失败。1960年代末,出现了软件危机(Softwarecrisis)。软件工程:对软件开发过程进行管理和控制的技术。第102页,共146页,2023年,2月20日,星期四软件开发与建造房屋的类比一个人就可以建造。需要的是:最小限度的设计(建模,modeling)简单的建造过程简单的工具由一个团队来建造是最有效、时间最快的。需要的是:认真的建模认真定义的建造过程功能强大的工具第103页,共146页,2023年,2月20日,星期四软件开发与建造房屋的类比一般需要多个专业团队(公司)来共同建造。需要的是:认真的建模认真定义的建造过程功能强大的工具标准化构件化第104页,共146页,2023年,2月20日,星期四系统生存周期(SystemLifeCycle)初步调查(Preliminaryinvestigation)系统分析(Systemsanalysis)系统维护(Systemsmaintenance)系统实现(Systemsimplementation)系统开发(Systemsdevelopment)系统设计(Systemsdesign)第105页,共146页,2023年,2月20日,星期四程序的开发过程规格说明(Specification)(数据结构与算法)设计(Design)维护(Maintenance)产生文档(Documentation)测试(Test)编码(Code)第106页,共146页,2023年,2月20日,星期四对程序设计的建议不要急于动手写程序。应当先对这个程序所面向的问题进行认真的分析,用规范的语言(能够用数学语言最好)来阐述分析的结果。认真考虑解决这个问题的方案,把关键的步骤一一列出来,这就是初步的算法(Algorithm)。不能把程序看成隐私。所写的程序一定要让别人能够看懂,不要故意在细节上耍小聪明。学会读别人写的程序,特别是高手写的程序(例如操作系统、程序库等)。大家将来会体会到,程序设计的水平高低主要在于数据结构(Datastructure)的设计与实现。第107页,共146页,2023年,2月20日,星期四要点与引伸计算机不仅可以为用户计算,还可以为自己计算。计算机硬件只能支持二进制表示,计算机软件主要靠人工编制。因此,以提高效率、保证质量、降低成本为目的,出现了各种系统软件。应用软件和数据库是信息系统建设中成本最高的部分。软件是工业品而不是艺术品,目标是工业化生产,但现在还有相当大的差距。思考:为什么计算机系统中要让处于不同层次的硬件、软件承担不同的职能?如果把课堂上讲过的系统软件再分层,至少能分为几层?第108页,共146页,2023年,2月20日,星期四

软件工程

第109页,共146页,2023年,2月20日,星期四为什么提出软件工程

从20世纪40年代开始到软件工程术语提出为止的20多年时间里,对软件开发的理解就是编程序,那时的编程有以下特点:软件规模相对较小,人们关心的是计算机硬件的发展。作为一个计算机专业人员,他必须懂得计算机的结构。作为一个机构,其大量资金也是用于计算机硬件开销上,软件只是作为展现其硬件性能的一种手段而投入的少量资金。编程仅作为一门技艺,大部分软件技术人员不太关心他人的工作,决定软件质量的惟一因素就是该编程人员的素质。缺少有效方法与软件工具的支持。由于重视个人技能,软件开发过程能见度低,许多管理人员不知道他们的软件技术人员工作究竟做得如何。由于人们重视个人技能,一旦需要做某些修改,就要原编程人员进行修改。这使得软件开发后的维护工作很难进行。第110页,共146页,2023年,2月20日,星期四为什么提出软件工程

20世纪60年代,国外在开发一些大型软件系统时,遇到了许多困难:有些系统最终彻底失败了有些系统虽然完成了,但比原定计划推迟了好几年,而且费用大大超过了预算;有些系统未能圆满地符合用户当初的期望;有些系统则无法进行修改维护。这是由于大型软件系统大大增加了软件复杂性,软件规模的增加使技术复杂性和管理复杂性呈指数上升。20世纪60年代末期所发生的软件危机,体现在软件可靠性没有保障、软件维护费用不断上升、进度无法预测、成本增长无法控制、程序人员无限度地增加等各个方面,以致形成人们难以控制软件开发的局面。软件开发工程化的概念和方法应运而生。第111页,共146页,2023年,2月20日,星期四什么是软件工程

软件工程定义:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程的内涵:是应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来创建软件,从而达到提高质量、降低成本的目的。其中计算机科学和数学用于构造模型、分析算法,工程科学用于制定规范、明确样例、评估成本、确定权衡,管理科学用于进度、资源、质量、成本等的管理第112页,共146页,2023年,2月20日,星期四什么是软件工程(续)

软件工程的目标:研制开发与生产出具有良好的软件质量和费用合理的产品。费用合理是指软件开发运行的整个开销能满足用户要求的程度,软件质量是指该软件能满足明确的和隐含的需求能力的有关特征和特性的总和。软件质量可用功能性、可靠性、易使用性、有效性、可维护性和易移植性6个特性来评价。软件工程的指导性原则软件工程的基础是一些指导性原则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论