资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
下一页软件技术基础主讲:刘志强西安交通大学 计算机教学实验中心第10单元 典型OS平台下 编程模式*1下一页上一页停止放映教学目标l了解在三种OS平台上 软件编程模式 开发流程 开发工具的基本知识2下一页上一页停止放映教学要求l通过本单元学习,了解: DOS OS编程模式 DOS结构、DOS编程流程及开发工具、内存 分配、OS程序员接口 UNIX OS编程模式 UNIX 结构、编程流程几开发包、多进程编 程特点、常见进程通信方式、程序员接口 Windwos编程模式 Windows编程模式、WOSA及WindoowsDNA、 事件几消息机制、多线程、编程流程及开 发包、程序员接口3下一页上一页停止放映本单元涉及的内容l第5章5.1 DOS操作系统编程模式 5.2 UNIX 操作系统编程模式 5.3 Windows操作系统编程模式lP156P1834下一页上一页停止放映一、DOS OS编程模式lDOS是微机系统配备的主流操作系统之一,是单用 户、单任务的磁盘操作系统。oDOS提供功能服务的两种方式: 键盘命令 程序执行方式DOS的主要功能: 管理各种设备 管理CPU 管理各种文件 管理内存 支持用户的各种命令和程序 支持shell操作和Windows 支持网络环境5下一页上一页停止放映DOS系统结构 lDOS由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操作. 命令管理模块(Command.com)主要负责接受并处 理各种输入命令.它是直接面向用户操作的.6下一页上一页停止放映DOS模块结构图 DOS 系 统BOOT模块Command模块MD-DOS模块IO模块Command常驻部分Command暂驻部分COM-INIT初始化 程序内核初始化程序 DOS-INITDOS中断服务程序IO初始化程序 SYS-INIT标准设备驱动程序7下一页上一页停止放映DOS的层次结构ROM-BIOS硬件系统IO.SYS 设备驱动MSDOS.SYS系统功能Command.com用户程序键盘命令用户的操作8下一页上一页停止放映 DOS编程流程DOS编程流程: 确定程序目标设计程序编码编译运行测试与调试维护与修改确定程序的目标,算法、语言、处理技巧等系统设计;包括用户界面、数据结构等系统编程;用指定程序设计语言编写源程序编译产生可执行文件运行可执行文件对运行的程序进行正确性测试,修改错误对程序不断进行建设性维护,使其完善9下一页上一页停止放映DOS编程开发工具lDOS环境下的程序设计语言很多,包括:Fortran、 BASIC、Pascal、C、C+、汇编语言等。l不同的语言有其各自的适用领域和特点。如果是科 学计算应用,选Fortran语言比其它语言和合适。lC和C+是比较流行的程序设计语言,但它们也不是 万能的。在C语言中做不到的,在C+语言中也做不 到。但用C+编写程序,比用C写程序更容易阅读和 交流,编程效率更高、更好。l汇编语言适合对硬件接口类快速响应的应用,但汇 编语言编写、调试、维护很困难,也不便于阅读。l具体使用哪一种语言,还是要具体情况具体分析, 根据实际情况和需要进行选用。10下一页上一页停止放映DOS内存分配图lDOS内存可以划分为四种类型:l基本内存:计算机主板上640KB以下的存储空间。DOS 的系统程序和用户的应用程序都要使用这片空间。l扩展内存(Extended):计算机主板上640KB以上的 存储空间。这部分空间DOS不能直接管理,而是要通 过扩展内存管理程序HIMEM.SYS来使用这部分内存。l扩充内存(Expanded):插在计算机主板的扩充槽中 的内存扩充板上的那部分存储器,它们是通过 EMS.SYS程序来管理的。l保留内存(Reserved):这是给计算机留做存储I/O 系统数据及各种接口驱动程序使用的存储器,也称适 配器内存。11下一页上一页停止放映操作系统程序员接口 l在DOS平台下,通过DOS、BIOS和应用程序都可以 实现对计算机硬、软件资源的操作。lBIOS提供的是最接近硬件的低层接口,操作最 直接;DOS提供的是高层次的功能服务;而高级 语言则是通过对DOS和BIOS功能的调用来实现对 计算机硬件设备的操作。操作是间接的。l高级语言具有编程效率高、可移值性好、便于 交流等优点。但也存在着执行效率较低(不如 DOS、BIOS功能),不能直接对硬件进行操作的 不足。l在开发程序过程中,使用什么语言,采用何种 编程方式,都要视具体情况和需要来选择。绝 对的“好”是不存在的。12下一页上一页停止放映二、UNIX OS编程模式 lUNIX 结构lUNIX编程流程及开发包l多进程编程特点l常见进程通信方式l程序员接口13下一页上一页停止放映UNIX 结构lUNIX系统分为三层: 内层:核心层,UNIX内核,是OS管理和 控制中心,常驻内存。 中间层:系统调用层,界于核心层和应 用层(外层)之间,是供程序员设计、开 发应用程序时调用的。UNIX系统调用包括 :进程管理、文件管理、终端状态等。 外层:应用层,包括各种开发工具、高 级语言编译器、网络通讯处理程序等。所 有应用层程序都是在shell(命令语言解 释程序)的管理和控制下为用户服务的, 是面向用户操作的界面。14下一页上一页停止放映UNIX系统结构图裸机存储程序、进程管理、文件管理、I/O设备管理系统调用应用程序、各种语言处理程序Shell命令解释程序系 统 程 序 员终端机 用户n用户n用户n应用层系统调用层内核层15下一页上一页停止放映 UNIX编程流程及开发包lUNIX编程流程主要包含4个过程: 源代码编辑。UNIX的编辑器是vi、ed。 编译。对源程序文件进行编译,产生目标程序。UNIC 的C编译命令是cc,创建类库的命令是ar,编译大的应 用程序用make命令。 调式。UNIX提供了三种调试工具: Lint 用于检查源代码的错误,包括数据类型不匹配 ,语法问题; Prof 分析程序运行花费的时间, 可用于优化代码 ; Sdb 是符号诊错器,也提供断点支持及编程环境中 的交互式的程序调用。 链接。将目标程序和库函数等链接、装配成可直接执 行的程序。 执行程序。运行可执行程序(将可执行程序名做为命 令执行)。16下一页上一页停止放映创建可执行C程序的操作步骤l编译程序的预处理程序逐行读入源代码, 替换符号名(#define定义的),接受来自 用户源文件中的指令、用户程序中命名文 件的内容等。l编译程序把用户源代码文件中的c语言代 码翻译成汇编语言代码。l汇编程序把汇编语言代码翻译为目标机器 的机器指令,并将这些指令保存在目标文 件中。l链接编辑程序把目标文件、用户程序中调 用的库函数进行链接,生成可执行程序。17下一页上一页停止放映UNIX开发包l基于图形界面的UNIX程序开发与Windows32位 程序开发类似。lMOTIF API是功能强大的提供一致性外观和用户 接口的窗口部件的集合的集合;lTCL/TK是功能强大且简单易学的一种解释性语 言,也是一套C的函数库,可提供基本的命令与 控制结构;而TK是一个X Window的工具包,是 TCL在X Window 系统的应用。lGTK(GIMP ToolKit)开发工具,基本是面向对 象的应用程序设计的一套API,有些类似于 Microsoft的MFC编程。lUNIX下的开发语言包括:C、C+、Fortran、 Ada、Pascal、Lisp、Small Talk等。18下一页上一页停止放映多进程编程特点lUNIX操作系统是分时多用户系统。在处理过程中, 将CPU时间片分配给每个进程。由于每个进程都有各 自的运行环境,因此在进程状态转换控制过程中要 考虑处理不同的内容数据: 用户数据保存:包括正文段(TEXT)、数据段、堆栈段( Stack)和共享内存段; 寄存器数据保存:包括PC(指向下一条要执行的地址 )、 PSW(处理机状态)、SP(堆栈指针)、PCBP(进程控制块 指针),FP(指向堆栈中一个函数的Local变量的地址)、 AP(指向堆栈中函数调用的实参位置)、ISP(中断堆栈指 针)及其他通用寄存器等。 系统层次保存:包括虚拟存储空间管理表格,中断处理堆 栈。当该进程再得到CPU时间片时,能够从“断点”处 开始正常地运行处理。19下一页上一页停止放映多进程程序的特点l并行化。将一个大而复杂的问题,划分为一系列 小而简单的问题进行处理。处理时,各个小处理 可以同时进行,而在一些关键点的处理时,再采 用集中式。l简单有序。经并行化分解的程序是简单的,可以 单独处理,但相互之间通过通讯机制而有机地结 合成一个整体。l互不干扰。各个进程是独立的。l事务化。将程序设计成一个进程只进行一次处理 ,相当于完成一个事物。进程处理完相当于一次 事物完成。这样的变成简单易行。20下一页上一页停止放映常见进程通信方式lUNIX系统中的进程间的通讯有两层含义: 单一进程内部各个模块间的通讯 作为单独单位的各个不同进程间的通讯l前者沿袭了单任务操作系统中的模块通讯方 法;l后者必须保证各个进程在通讯过程中互不干 扰从而保持其通信的一致性。21下一页上一页停止放映UNIX采用的进程通信方式l文件和记录锁定。为避免两个进程间同时要求访问同一共享资源 而引起访问和操作的混乱,在进程对共享资源进行访问前必须对 其进行锁定,该进程访问完后再释放。这是UNIX为共享资源提供 的互斥性保障。l管道。管道一般用于两个不同进程之间的通信。当一个进程创建 一个管道,并调用fork创建自己的一个子进程后,父进程关闭读 管道端,子进程关闭写管道端,这样提供了两个进程之间数据流 动的一种方式。lFIFO。FIFO是一种先进先出的队列。它类似于一个管道,只允许 数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访 问同一个FIFO。因此也成为命名管道。l消息队列。UNIX下不同进程之间可实现共享资源的一种机制; UNIX允许不同进程将格式化的数据流以消息形式发送给任意进程 。对消息队列具有操作权限的进程都可以使用msget完成对消息 队列的操作控制。通过使用消息类型,进程可以按任何顺序读消 息,或为消息安排优先级顺序。l信号灯。作为进程间通讯的一种方法,它不是用于交换大批数据 ,而用于多进程之间的同步(协调对共享存储段的存取)。l共享内存。通过信号灯实现存储共享(类似“红灯停、绿灯行” )22下一页上一页停止放映程序员接口lUNIX提供了在POSIX(计算机环境的可移植操作系 统界面)的UNIX API,使其成为跨平台的编程接口 。lUNIX 是一套类库中可调用的函数集,它的主要函 数功能包括:标准C类库的I/O功能、文件及目录操 作、进程的创建与终止、通信设施、设备驱动函数 、系统数据库、数据交换格式等。l由于UNIX API是直接与OS及编程语言环境相关的, 程序员可根据具体产品查阅相关技术资料以更好地 掌握不同的API接口。l要想更好地掌握UNIX环境下的应用程序开发,象 UNIX系统的Berkeley套接字、System V传送接口( TLI)、其他多线程API、X窗口的MOTIF API等是 UNIX程序员必修的课程。23下一页上一页停止放映三、Windwos编程模式lWindows结构lWOSA及Windows DNAl事件及消息机制l多线程l编程流程几开发包l程序员接口24下一页上一页停止放映基本系统设备驱动程序虚拟机管理程序子系
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号