软件技术基础主讲刘志强西安交通大学计算机教学实验中心.PPT_第1页
软件技术基础主讲刘志强西安交通大学计算机教学实验中心.PPT_第2页
软件技术基础主讲刘志强西安交通大学计算机教学实验中心.PPT_第3页
软件技术基础主讲刘志强西安交通大学计算机教学实验中心.PPT_第4页
软件技术基础主讲刘志强西安交通大学计算机教学实验中心.PPT_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

,软件技术基础 主讲:刘志强 西安交通大学 计算机教学实验中心,第10单元 典型OS平台下 编程模式,第 2 页,教学目标,了解在三种OS平台上 软件编程模式 开发流程 开发工具的基本知识,第 3 页,教学要求,通过本单元学习,了解: DOS OS编程模式 DOS结构、DOS编程流程及开发工具、内存分配、OS程序员接口 UNIX OS编程模式 UNIX 结构、编程流程几开发包、多进程编程特点、常见进程通信方式、程序员接口 Windwos编程模式 Windows编程模式、WOSA及WindoowsDNA、事件几消息机制、多线程、编程流程及开发包、程序员接口,第 4 页,本单元涉及的内容,第5章 5.1 DOS操作系统编程模式 5.2 UNIX 操作系统编程模式 5.3 Windows操作系统编程模式 P156P183,第 5 页,一、DOS OS编程模式,DOS是微机系统配备的主流操作系统之一,是单用户、单任务的磁盘操作系统。 DOS提供功能服务的两种方式: 键盘命令 程序执行方式 DOS的主要功能: 管理各种设备 管理CPU 管理各种文件 管理内存 支持用户的各种命令和程序 支持shell操作和Windows 支持网络环境,第 6 页,DOS系统结构,DOS由4个模块构成: 引导模块(BOOT引导区)用于启动DOS时自动引导、装入DOS系统到内存。 DOS内核模块(MSDOS.SYS)由两部分组成:内核初始化程序DOS-INIT和DOS中断服务程序。前者仅用于启动DOS;后者则是真正DOS的内核,提供系统的中断服务功能。 DOS I/O接口模块(IO.SYS)是DOS的I/O设备处理程序.它与ROM-BIOS一起组成I/O处理的服务体系,完成所有的I/O操作. 命令管理模块(C)主要负责接受并处理各种输入命令.它是直接面向用户操作的.,第 7 页,DOS模块结构图,DOS 系 统,BOOT模块,Command模块,MD-DOS模块,IO模块,Command常驻部分,Command暂驻部分,COM-INIT初始化 程序,内核初始化程序 DOS-INIT,DOS中断服务程序,IO初始化程序 SYS-INIT,标准设备驱动程序,第 8 页,DOS的层次结构,ROM-BIOS,硬件系统,IO.SYS 设备驱动,MSDOS.SYS系统功能,C,用户程序,键盘命令,用户的操作,第 9 页, DOS编程流程,DOS编程流程:,确定程序目标,设计程序,编码,编译,运行,测试与调试,维护与修改,确定程序的目标,算法、语言、处理技巧等,系统设计;包括用户界面、数据结构等,系统编程;用指定程序设计语言编写源程序,编译产生可执行文件,运行可执行文件,对运行的程序进行正确性测试,修改错误,对程序不断进行建设性维护,使其完善,第 10 页,DOS编程开发工具,DOS环境下的程序设计语言很多,包括:Fortran、BASIC、Pascal、C、C+、汇编语言等。 不同的语言有其各自的适用领域和特点。如果是科学计算应用,选Fortran语言比其它语言和合适。 C和C+是比较流行的程序设计语言,但它们也不是万能的。在C语言中做不到的,在C+语言中也做不到。但用C+编写程序,比用C写程序更容易阅读和交流,编程效率更高、更好。 汇编语言适合对硬件接口类快速响应的应用,但汇编语言编写、调试、维护很困难,也不便于阅读。 具体使用哪一种语言,还是要具体情况具体分析,根据实际情况和需要进行选用。,第 11 页,DOS内存分配图,DOS内存可以划分为四种类型: 基本内存:计算机主板上640KB以下的存储空间。DOS的系统程序和用户的应用程序都要使用这片空间。 扩展内存(Extended):计算机主板上640KB以上的存储空间。这部分空间DOS不能直接管理,而是要通过扩展内存管理程序HIMEM.SYS来使用这部分内存。 扩充内存(Expanded):插在计算机主板的扩充槽中的内存扩充板上的那部分存储器,它们是通过EMS.SYS程序来管理的。 保留内存(Reserved):这是给计算机留做存储I/O系统数据及各种接口驱动程序使用的存储器,也称适配器内存。,第 12 页,操作系统程序员接口,在DOS平台下,通过DOS、BIOS和应用程序都可以实现对计算机硬、软件资源的操作。 BIOS提供的是最接近硬件的低层接口,操作最直接;DOS提供的是高层次的功能服务;而高级语言则是通过对DOS和BIOS功能的调用来实现对计算机硬件设备的操作。操作是间接的。 高级语言具有编程效率高、可移值性好、便于交流等优点。但也存在着执行效率较低(不如DOS、BIOS功能),不能直接对硬件进行操作的不足。 在开发程序过程中,使用什么语言,采用何种编程方式,都要视具体情况和需要来选择。绝对的“好”是不存在的。,第 13 页,二、UNIX OS编程模式,UNIX 结构 UNIX编程流程及开发包 多进程编程特点 常见进程通信方式 程序员接口,第 14 页,UNIX 结构,UNIX系统分为三层: 内层:核心层,UNIX内核,是OS管理和控制中心,常驻内存。 中间层:系统调用层,界于核心层和应用层(外层)之间,是供程序员设计、开发应用程序时调用的。UNIX系统调用包括:进程管理、文件管理、终端状态等。 外层:应用层,包括各种开发工具、高级语言编译器、网络通讯处理程序等。所有应用层程序都是在shell(命令语言解释程序)的管理和控制下为用户服务的,是面向用户操作的界面。,第 15 页,UNIX系统结构图,裸机,存储程序、进程管理、文件管理、 I/O设备管理,系统调用,应用程序、各种语言处理程序,Shell命令解释程序,系 统 程 序 员,终端机,用户n,用户n,用户n,应用层,系统调用层,内核层,第 16 页, UNIX编程流程及开发包,UNIX编程流程主要包含4个过程: 源代码编辑。UNIX的编辑器是vi、ed。 编译。对源程序文件进行编译,产生目标程序。UNIC的C编译命令是cc,创建类库的命令是ar,编译大的应用程序用make命令。 调式。UNIX提供了三种调试工具: Lint 用于检查源代码的错误,包括数据类型不匹配,语法问题; Prof 分析程序运行花费的时间, 可用于优化代码; Sdb 是符号诊错器,也提供断点支持及编程环境中的交互式的程序调用。 链接。将目标程序和库函数等链接、装配成可直接执行的程序。 执行程序。运行可执行程序(将可执行程序名做为命令执行)。,第 17 页,创建可执行C程序的操作步骤,编译程序的预处理程序逐行读入源代码,替换符号名(#define定义的),接受来自用户源文件中的指令、用户程序中命名文件的内容等。 编译程序把用户源代码文件中的c语言代码翻译成汇编语言代码。 汇编程序把汇编语言代码翻译为目标机器的机器指令,并将这些指令保存在目标文件中。 链接编辑程序把目标文件、用户程序中调用的库函数进行链接,生成可执行程序。,第 18 页,UNIX开发包,基于图形界面的UNIX程序开发与Windows32位程序开发类似。 MOTIF API是功能强大的提供一致性外观和用户接口的窗口部件的集合的集合; TCL/TK是功能强大且简单易学的一种解释性语言,也是一套C的函数库,可提供基本的命令与控制结构;而TK是一个X Window的工具包,是TCL在X Window 系统的应用。 GTK(GIMP ToolKit)开发工具,基本是面向对象的应用程序设计的一套API,有些类似于Microsoft的MFC编程。 UNIX下的开发语言包括:C、C+、Fortran、Ada、Pascal、Lisp、Small Talk等。,第 19 页,多进程编程特点,UNIX操作系统是分时多用户系统。在处理过程中,将CPU时间片分配给每个进程。由于每个进程都有各自的运行环境,因此在进程状态转换控制过程中要考虑处理不同的内容数据: 用户数据保存:包括正文段(TEXT)、数据段、堆栈段(Stack)和共享内存段; 寄存器数据保存:包括PC(指向下一条要执行的地址 )、PSW(处理机状态)、SP(堆栈指针)、PCBP(进程控制块指针),FP(指向堆栈中一个函数的Local变量的地址)、AP(指向堆栈中函数调用的实参位置)、ISP(中断堆栈指针)及其他通用寄存器等。 系统层次保存:包括虚拟存储空间管理表格,中断处理堆栈。 当该进程再得到CPU时间片时,能够从“断点”处开始正常地运行处理。,第 20 页,多进程程序的特点,并行化。将一个大而复杂的问题,划分为一系列小而简单的问题进行处理。处理时,各个小处理可以同时进行,而在一些关键点的处理时,再采用集中式。 简单有序。经并行化分解的程序是简单的,可以单独处理,但相互之间通过通讯机制而有机地结合成一个整体。 互不干扰。各个进程是独立的。 事物化。将程序设计成一个进程只进行一次处理,相当于完成一个事物。进程处理完相当于一次事物完成。这样的变成简单易行。,第 21 页,常见进程通信方式,UNIX系统中的进程间的通讯有两层含义: 单一进程内部各个模块间的通讯 作为单独单位的各个不同进程间的通讯 前者沿袭了单任务操作系统中的模块通讯方法; 后者必须保证各个进程在通讯过程中互不干扰从而保持其通信的一致性。,第 22 页,UNIX采用的进程通信方式,文件和记录锁定。为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是UNIX为共享资源提供的互斥性保障。 管道。管道一般用于两个不同进程之间的通信。当一个进程创建一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。 FIFO。FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管道。 消息队列。UNIX下不同进程之间可实现共享资源的一种机制;UNIX允许不同进程将格式化的数据流以消息形式发送给任意进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。 信号灯。作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步(协调对共享存储段的存取)。 共享内存。通过信号灯实现存储共享(类似“红灯停、绿灯行”),第 23 页,程序员接口,UNIX提供了在POSIX(计算机环境的可移植操作系统界面)的UNIX API,使其成为跨平台的编程接口。 UNIX 是一套类库中可调用的函数集,它的主要函数功能包括:标准C类库的I/O功能、文件及目录操作、进程的创建与终止、通信设施、设备驱动函数、系统数据库、数据交换格式等。 由于UNIX API是直接与OS及编程语言环境相关的,程序员可根据具体产品查阅相关技术资料以更好地掌握不同的API接口。 要想更好地掌握UNIX环境下的应用程序开发,象UNIX系统的Berkeley套接字、System V传送接口(TLI)、其他多线程API、X窗口的MOTIF API等是UNIX程序员必修的课程。,第 24 页,三、Windwos编程模式,Windows结构 WOSA及Windows DNA 事件及消息机制 多线程 编程流程几开发包 程序员接口,第 25 页,基本系统,设备驱动程序,虚拟机管理程序子系统,操作系统服务,网络子系统,文件管理子系统,Windows Kernel,Windows GDI,Windows User,Windows子系统,Windows API 层,32位 Windows 应用程序,Windows Kernel,外壳,16位 Windows 应用程序, Windows结构,系统虚拟机器,共享地址空间,MS-DOS 虚拟机,第 26 页,Windows结构(续),系统虚拟机器VM:是系统的环境名,在这种环境下,系统将支持所有的Windows应用程序和Windows子系统组件。如图形设备接口(GDI)等。 32位Windows应用程序:是一种新的Windows应用程序,是Microsoft Win32应用程序编程接口API的一个子集。 外壳:是一种32位的Windows应用程序,它为系统提供必须的用户界面。 16位Windows应用程序:是在Windwos 3.x上使用的应用程序。 Windows内核:支持Windows应用程序所要求的低级服务,如动态内存分配。 GDI:是Windows图形功能的核心。 User:是Windows管理程序。 MS-DOS虚拟机器:支持在Windows下的MS-DOS应用程序。,第 27 页,WOSA,WOSA( Windows Open Service Architecture)Windows开放服务 体系结构,是Windows为实现分布式计算而设计的一套API。该结构模型可以使不同的提供商提供访问多个后端的服务程序。WOSA包括: MAPI:消息API。在不同网络类型上,给Windows程序提供不同类型的透明的消息服务。 ODBC:开放数据库连接。ODBC允许不同的Windows应用程序访问任何企业网络上的、多种类型数据库系统。 RPC:远程方法调用。使Windows应用程序可以跨异质的网络去调用远程的方法或应用。,第 28 页,WOSA(续),Windows SoketS:Windows 套接字。使网络上使用不同类型数据传输协议的程序通过套接字进行透明的操作。 License Services API:验证字服务API。这是一个软件验证字的编程接楼,可以实行对不同公司产品的监控以及控制网络程序的应用。 TAPI:提供一个电话应用的API接口。使Windows应用程序可以对传统的电话网络及设备进行透明存取。,第 29 页,Windows DNA,Windows DNA(Windows Distibuted interNet Applications Architecture)。Windows分布式Internet应用结构。其目的是创建一个框架,用以建立基于微软Windows平台的各种应用程序,从而使PC机和Internet完美结合。 Windwos DNA建立了一个计算模型,它实现了Web和客户机/服务器计算的集成。 在最高层次上,Windows DNA融合PC机和Internet是通过两种途径:一是使计算机之间通过协作望、公众网能很好地湖用和共同运作;二是将应用的核心服务或“管道”服务更深地综合于操作系统。 更重要的是Windwos DNA 提供了一个基于开放式协议和公开界面的互用性框架,这一框架能使用户以新功能(Web)扩展现有系统。 Windows DNA的核心是通过一个公共对象模型(COM)将Web和客户机/服务器应用开发模式结合起来。Windows DNA通过构件对象模型使用一套通用的服务集,如构件,动态HTML、网络浏览器和服务器、脚本、事物处理、消息序列、安全性、目录、DB和数据存取、系统管理以及用户界面。这些服务一统一的方式公开于各个层面,供应用程序使用。,第 30 页,Windows DNA体系结构,1、Windows平台:WindowsOS、Win32技术 2、部件对象模型COM:COM、DCOM及与之相关的技术 3、Internet技术:MS-IE、动态HTML(DHTML)、IIS、MS-Site Server、JAVA 4、Windows DNA 服务:包括安全性、目录、事物处理、消息队列、DB管理、数据存取、E-mail与协作、脚本、系统管理等; 5、Windows DNA的工具:快速应用开发工具、组件的创建、协同开发、内容的创建与发布、Web网站的开发。 6、其他Windows DNA 服务器的应用。MS-BackOffice等。,第 31 页,Windows DNA体系结构示意图,工具集,用户接口 及浏览,事务处理,集成化存储,分布式 操作系统 (DOE),第 32 页,事件及消息机制,Windows是事件驱动(消息驱动)的OS,也是基于消息的OS。 Windows 应用程序中消息有两种送出途径;直接和排队。Windows或某些运行的应用程序可直接发布消息给窗口过程,或者,消息可送到消息队列,在应用程序执行期间应用程序对象连续不断轮询消息队列的消息。凡是以排队方式送出的消息都被送到一个由操作系统提供的消息队列的保留区。在OS中当前执行的每个进程都有各自的消息队列。 事件驱动程序不是由事件的顺序来控制,而是由事件的发生来控制,而事件的发生是随机的、不确定的,这就允许程序的用户用各种合理的顺序来安排程序的流程。 事件驱动围绕消息的产生与处理展开,它是靠消息循环机制来实现的,消息是一种报告有关事件发生的通知。,第 33 页,Windows应用程序的消息来源,输入消息:包括键盘和鼠标的输入。这类消息首先放在系统消息队列中,然后由Windows将它们送到应用程序的消息队列中,由应用程序来处理消息。 控制信息:用来与Windows的控制对象(列表框、按钮等)进行双向通信。这类信息一般不经过应用程序消息队列,而是直接发送到控制对象上去。 系统消息:对程序化的事件或系统时钟中断作出反映。有些消息(动态数据交换消息DDE)要通过Windows的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列(如创建窗口消息)。 用户消息:这是程序员自己定义并在应用程序中主动发出的消息,一般由应用程序的某一部分内部处理。,第 34 页,多线程,线程(Thread)是Win32分配CPU的基本单位。线程是代码执行的流程,它可以执行应用程序代码的任何部分。 32位的Windows应用程序可包含一个或多个进程,每个进程由一个或多个线程构成。 线程分为两种类型:worker和user-interface;前者不处理窗口信息,用于在后台执行任务,Worker线程是易用和常用的类型。后者用来处理用户输入和相应由用户产生的事件和消息。 Windows的多任务是通过使用Win32 API,从而允许多进程与多线程同时执行。对于用户来说,多任务和多线程的应用程序更易于响应用户的需求。例如,用户可同时打印一个文件和编辑另一个文件,甚至有可能是在欣赏着VCD的同时,做上述工作的。,第 35 页,编程流程及开发包,传统的Windows3.X应用开发者必须使用Windows软件开发包SDK。 Windows SDK主要包括:

温馨提示

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

评论

0/150

提交评论