软件开发技术基础.ppt

上传人:本田雅阁 文档编号:3302385 上传时间:2019-08-10 格式:PPT 页数:40 大小:574.05KB
返回 下载 相关 举报
软件开发技术基础.ppt_第1页
第1页 / 共40页
软件开发技术基础.ppt_第2页
第2页 / 共40页
软件开发技术基础.ppt_第3页
第3页 / 共40页
软件开发技术基础.ppt_第4页
第4页 / 共40页
软件开发技术基础.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《软件开发技术基础.ppt》由会员分享,可在线阅读,更多相关《软件开发技术基础.ppt(40页珍藏版)》请在三一文库上搜索。

1、软件开发技术基础,第3章 操作系统及程序设计 讲授教师:卫颜俊,主 要 内 容,操作系统及其功能 进程管理应用程序设计 内存管理应用程序设计 设备与文件管理应用程序设计 人机接口管理应用程序设计,学时安排,6个学时讲授(36/6) 2个学时实验(12/6),本章序,计算机系统 硬件系统 主机、显示器、打印机、键盘和鼠标等 软件系统 操作系统、浏览器、办公软件、杀毒软件、多媒体软件、软件开发工具和数据库软件等 Windows Server 2003是一种操作系统,本章目标,大学计算机基础 为先修课程 回答了:操作系统在计算机中起的作用和它能干什么 未回答:如何干、又如何在操作系统下编写程序 本课

2、本章 不对操作系统的原理作深入的介绍,但以它的几项重要功能为主线,以C+为工具,揭示了一部分操作系统“内幕”,使读者对操作系统的工作原理有进一步的了解,同时对程序设计语言的应用有所加强,31 操作系统及其功能,操作系统的发展 手工操作、批处理、多道程序系统和分时操作系统等四个阶段,其中分时操作系统为目前最为流行 实用的操作系统 Windows X DOS Linux,311 操作系统的定义,定义 一组控制和管理计算机软、硬件资源,为用户提供便捷使用计算机的程序的集合 作用 管理计算机和使用计算机 特征 并发性、共享性、虚拟性和不确定性 计算机系统组成 硬件、操作系统、其他系统软件、应用软件和用

3、户接口,312 操作系统的功能,CPU与进程管理 对处理器的时间进行合理分配、对处理器的运行实施有效的管理 存储器管理 对存储器进行分配、保护和扩充 设备管理 根据确定的设备分配原则对设备进行分配,使设备与主机能够并行工作,为用户提供良好的设备使用界面 文件管理 有效地管理文件的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段 用户接口 用户操作计算机的界面,或称为用户界面,通过用户接口,用户只需进行简单操作,就能实现复杂的应用处理,用户接口类型,命令接口,用户通过交互命令方式直接或间接地对计算机进行操作, DOS:是纯命令行输入方式,Windows:鼠标操作方式

4、 程序接口,供用户以程序方式进行操作,或API(Application Programming Interface),用户通过API函数可以调用系统提供的例行程序,实现既定的操作。 DOS:中断服务功能,Windows:Windows API函数,313 DOS与Windows操作使用方法简介,DOS 常用命令:HELP DIR CLS CD RD COPY Windows 最常用的功能是:桌面、浏览器、资源管理器、我的电脑、网上邻居、控制面板(Control)、任务管理器(taskmgr)、Word、Excel、VC+,记事本(Notepad),写字板(write),314 DOS与Wind

5、ows操作系统程序接口简介,DOS 单用户单任务的磁盘操作系统 功能体现在系统提供的DOS和BIOS层上,借助于高级语言和汇编 语言,并通过调用中断服务程序,可以完成大部分编程工作。 Windows 一种多用户多任务、图形化的新型操作系统,Windows NT体系结构,登录进程和会话管理器,事件日志、调度服务、SQL Server,Win32,MS-DOS程序和Win32程序,进程线程管理、I/O和内存管理,线程调度、中断和异常处理,将内核、设备驱动程序和执行体分离以适应不同的平台,将I/O函数调用转换为I/O请求,窗口和绘制,窗口,消息,Windows程序是以事件为驱动、消息机制为基础 消息

6、定义:由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。 消息类型:windows消息,命令消息和控件通知 WM_LBUTTONDOWN 、WM_PAINT 消息结构:消息号和参数组成 typedef struct tagMSG HWND hwnd;窗口句柄,为NULL,则可检索所有驻留在消息队列中的消息 UINT message;消息值,由windows.h头文件中的宏定义来标识 WPARAM wParam;包含有关消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至队列的时间 POINT pt;指定消息发送时屏幕光标的位置,

7、 其数据类型POINT也是一个结构体 MSG;,Windows数据类型,Windows程序框架,WinMain框架结构 例3-1 对话框框架程序 例3-2 文档视图框架程序 例3-3,例3-1 WinMain框架结构,要求: 显示一个窗口 在窗口中显示一段文字 步骤: 打开VC+ 新键工程类型为“Win32 Application” 添加C+源程序,例3-1 WinMain框架结构(2),用到的主要数据结构: UINT 无符号整数 等价于 unsigned int HINSTANCE 实例句柄等价于 unsigned ong PSTR 字符指针等价于 char * TCHAR 字符等价于 ch

8、ar HWND窗口句柄等价于 unsigned long MSG 消息结构 WINAPI CDECL LRESULT 消息返回值等价于long CALLBACK PASCAL WPARAM 消息参数 等价于UINT LPARAM 消息参数 等价于long PAINTSTRUCT 窗口绘制信息结构 HDC设备环境句柄等价于unsigned long WNDCLASS 窗口结构体,例3-1 WinMain框架结构(3),typedef struct _WNDCLASS UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra;

9、HANDLE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; WNDCLASS;,例3-2对话框框架程序,步骤 打开VC+ 工程类型为“MFC AppWizard(exe) ” 程序类型为“Dialog based ” 改变窗口标题 改变静态控件标题,例3-3文档视图框架程序,步骤 打开VC+ 工程类型为“MFC AppWizard(exe) ” 程序类型为“Single document ” 改变窗口标题 在视图类的OnDra

10、w函数中添加代码: “pDC-TextOut(100,100,“MFC文档/视图演示程序“);”,32 进程管理应用程序设计,CPU与进程管理的相关概念 Windows操作系统的进程和线程管理 进程和线程的应用,321 CPU与进程管理,主要任务 对处理器的时间进行合理分配、对处理器的运行实施有效的管理 程序的概念 一个静态概念,代表有严格时间顺序的可执行指令序列,输入、处理和输出三部分组成指令序列特征 并发性、共享性、虚拟性和不确定性 进程的概念 程序的一次执行。系统进行资源调度和分配的独立单位,321 CPU与进程管理(2),进程与程序的主要区别 进程是动态的,而程序是静态的 进程的特点

11、动态性、并发性、独立性、异步性、结构性和制约性 进程的状态 就绪状态、运行状态和停止状态,321 CPU与进程管理(3),进程数据结构 进程描述信息 进程标识符(process ID),唯一,通常是一个整数;进程名,通常基于可执行文件名(不唯一);用户标识符(user ID);进程组关系(process group) 进程控制信息 当前状态;优先级(priority);代码执行入口地址;程序的外存地址;运行统计信息(执行时间、页面调度);进程间同步和通信;阻塞原因 资源占用信息 虚拟地址空间的现状、打开文件列表 CPU现场保护结构 寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针,3

12、21 CPU与进程管理(4),多个进程并发执行 同步和互斥 协调点,321 CPU与进程管理(5),Windows进程的建立 函数CreateProcess 使一个程序运行 使用C的spawnlp函数 使用Win API 函数ShellExecute ,例3-4 编程启动两个子进程,_spawnlp函数格式 “process.h” int _spawnlp( int mode, const char *cmdname, const char *arg0, const char *arg1, . const char *argn, NULL ); 其中mode表示运行方式, cmdname为进程

13、名, arg0,argn为若干个进程参数, NULL为终止符。 返回值: -1 Error 其他:进程返回码,例3-5编程显示当前系统所有进程,PROCESSENTRY32 结构体格式 typedef struct tagPROCESSENTRY32 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; /进程编号 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD

14、dwFlags; char szExeFileMAX_PATH; /进程执行文件名 PROCESSENTRY32;,例3-5编程显示当前系统所有进程(2),CreateToolhelp32Snapshot函数格式 HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, /TH32CS_SNAPPROCESS , TH32CS_SNAPTHREAD DWORD th32ProcessID /进程标识好,当前进程为0 );,例3-5编程显示当前系统所有进程(3),Process32First函数格式 BOOL WINAPI Process32F

15、irst( HANDLE hSnapshot, LPPROCESSENTRY32 lppe );,例3-5编程显示当前系统所有进程(4),Process32Next函数格式 BOOL WINAPI Process32Next( HANDLE hSnapshot, LPPROCESSENTRY32 lppe );,例3-5编程显示当前系统所有进程(5),TerminateProcess函数格式 BOOL TerminateProcess( HANDLE hProcess, / 进程句柄 UINT uExitCode / 进程退出码 );,322 线程及其应用,线程的概念 指令序列 程序运行的基本

16、单位,不过它是作为CPU调度单位,它只拥有必不可少的资源 线程的优点 减小并发执行的时间和空间开销 线程的状态 就绪、阻塞(等待)和执行,322 线程及其应用(2),线程与进程的区别 线程是比进程更小的单位,从运行角度来讲,同类线程的数据和代码区是共享的,这有利于线程的快速调度和切换,而进程之间的数据和代码区是独立的。,Windows操作系统下的线程状态转换,例3-6编写一个动态显示时钟时间的线程,CTime类 时间 CString类 字符串 CreateThread 函数格式 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttribu

17、tes, / 线程安全属性 DWORD dwStackSize, / 初始线程栈大小 LPTHREAD_START_ROUTINE lpStartAddress, /线程函数 LPVOID lpParameter, / 参数 DWORD dwCreationFlags, / 标志 LPDWORD lpThreadId / 保存线程号 ); 返回线程句柄,例3-6编写一个动态显示时钟时间的线程(2),TerminateThread 函数格式 BOOL TerminateThread( HANDLE hThread, / 线程句柄 DWORD dwExitCode / 退出码 ); 成功返回非0,例3-6编写一个动态显示时钟时间的线程(3),步骤 建立对话框程序 在对话框中拖入一个静态文本控件(时间标题) 一个编辑文本控件(时间) 四个按钮(启动、停止、确定、取消) 增加按钮消息函数 添加全局变量和函数代码 DWORD ThreadID;/定义线程编号变量 HANDLE hThread;/定义线程句柄变量 void ThreadProc()/线程函数 添加按钮消息代码 OnStart() OnStop(),Thank You !,By Yan-jun Wei,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1