软件开发技术基础 第 3 章 操作系统及程序设计 讲授教师:卫颜俊. 主 要 内 容 主 要 内 容 操作系统及其功能 进程管理应用程序设计 内存管理应用程序设计 设备与文件管理应用程序设计 人机接口管理应用程序设计.

Slides:



Advertisements
Similar presentations
维普考试服务平台使用指南. 维普考试服务平台 维普考试服务平台是一个从单纯 海量题库资源扩充到教学场景应 用的考试信息化产品。平台包含 职业资格考试、高校课程试题、 在线考试、 移动助手 4 个功能模 块。 产品概述.
Advertisements

第 2 梯次鑑定提報特教通報網系統操作 學年度教育部國民及學前教育署 高級中等學校身心障礙學生鑑定.
福州职业技术学院图书馆 福州恒达通电子信息技术有限公司
21世纪全国高职高专 计算机系列实用规划教材 计算机网络技术基础 主 编: 杨瑞良 李 平 副主编: 邱 涛 李明龙.
公司保密工作要求及 院商秘保护工作安排 2014年9月12日.
C语言程序设计 主讲教师 :张群燕 电话:
第9章 计算机病毒的防治 计算机病毒基本常识 什么是计算机病毒 计算机病毒特点与危害 计算机病毒防治 病毒的传播途径 常用反病毒软件使用
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
大学计算机基础.
第一章 C语言概述 计算机公共教学部.
计算机体系结构 应用程序 软件 操作系统 编译器 固件 指令集 输入输出 CPU 硬件 内存 (I/O) 集成电路 元件,逻辑门.
操作系统原理 Principles of Operating System
有趣的linux入门文章 By dogfox 制作.
代表机构年报操作指南 (代表机构端) 二〇一一年二月.
操作系统结构.
Windows Server 2003操作系统相关配置
第13章 计算机的日常维护与故障检测 13.1 计算机的日常维护和保养 计算机对环境的要求
玉溪工业财贸学校副校长 示范校建设办公室主任 柏家渭 2014年5月13日
雷 霆 战 机 By—谷恩轩&余万全.
计算机图形学 授课教师:陈荣钦 短号: 单位:数信学院.
基于VC++的数字图像特效处理系统的设计与实现
吉林大学远程教育课件 Windows A P I编 程 (第四十五讲) 主讲人 : 翟慧杰 学 时:48.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
计算机最新实用技术 基础教程.
作業系統的結構 日期 : 2018/9/17.
第二十九章 DLL / LIB函式庫開發 當我們開發程式到一個階段之後,我們一定會希望各個Component的程式碼可以分開的越清楚越好。而這一章最主要就是要告訴各位讀者,我們常在Windows系統中看到的dll或是lib的檔案該怎麼實作?做出這樣的library我們又該如何運用?為什麼使用dll或是lib有利於我們開發程式?以上這些疑問都將會在這一章中得到解答。
动态链接库 多线程 文件操作 注册表 多媒体编程 Winsock编程(网络编程) 数据库.
学位授权审核材料填报及提交 系 统 操 作 介 绍
第4讲 Windows编程基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
组长:吴蔚 项目组成员:吴蔚,邱丁兰,汪琳莺
中视前卫OA项目培训 准备人: 李鹏 / 公司: 泛微公司 / 日期: 2017/11/20 中视前卫信息化项目组.
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
《计算机应用》课程电子教案 [沈阳电大第二届电子教案大赛] 沈阳广播电视大学 机电系 刘玉香 沈阳电大 机电系 刘玉香.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第1章 Windows应用程序框架的 创建与消息处理
第3章 Windows 应用程序基础 2018/12/6 第2讲 Windows 应用程序基础 VC++面向对象与可视化程序设计.
第十一讲 MFC常用控件的使用(3) 严宣辉 数学与计算机科学学院
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
网络游戏开发语言基础 ——Windows程序设计
Windows 编程技术 2005年9月 2018/12/31.
作業系統 (Operating System)
第4章 MFC编程 4.1 MFC概述 4.2 MFC和Win CObject类 4.4 消息映射的实现
课程简介 《计算机应用基础》 与《微机操作》课程组 2019/1/16 课程简介.
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
Visual C++ Windows Programming
付款作業錯誤態樣【出納組】 錯誤1~核銷文件備具不齊 錯誤2 ~戶名與系統不同 錯誤3 ~未輸發票號碼日期 錯誤4 ~受款人帳號輸錯
线程同步与异步套接字编程 主讲人:孙鑫
版权所有 复制必究 第 6 章 MFC原理与方法.
作業系統 第三章 作業系統結構.
【VA虚拟应用管理平台】专题培训 资源管理及个性化 陕西益和信息技术开发有限责任公司 2011年2月.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
靜宜大學專用 PowerPoint 檔案 數位教材
基础篇 微型计算机系统 硬件系统 软件系统 操作系统基础 作业 计算机编码和数制 系统综述.
_05MessageMap的原理 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
教 材 介 紹 靈活組合 愉快學習.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
功能表的建立 製作.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
第10章媒体控制接口 10.1 MCI设备类型 10.2 MCI编程步骤 10.3使用MCIWnd窗口类.
实验三 键盘软加锁实验 2019/5/9.
1.4WIN32中的宽字符.
售后培训系列之V9系统中心安装 SecManage 网安事业部 广州售后-王长绪.
2.4进程的遍历.
97學年度專題成果展 畢業生職業性向測驗系統之建立
MFC的六大核心 机制3 动态创建 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

软件开发技术基础 第 3 章 操作系统及程序设计 讲授教师:卫颜俊

主 要 内 容 主 要 内 容 操作系统及其功能 进程管理应用程序设计 内存管理应用程序设计 设备与文件管理应用程序设计 人机接口管理应用程序设计

学时安排 6 个学时讲授 (36/6) 2 个学时实验 (12/6)

本章序 计算机系统 硬件系统 主机、显示器、打印机、键盘和鼠标等 软件系统 操作系统、浏览器、办公软件、杀毒软件、多媒 体软件、软件开发工具和数据库软件等 Windows Server 2003 是一种操作系统

本章目标 《大学计算机基础 》为先修课程 回答了:操作系统在计算机中起的作用和它能干什 么 未回答:如何干、又如何在操作系统下编写程序 本课本章 不对操作系统的原理作深入的介绍,但以它的几项 重要功能为主线,以 C++ 为工具,揭示了一部分操作 系统 “ 内幕 ” ,使读者对操作系统的工作原理有进一步 的了解,同时对程序设计语言的应用有所加强

3 . 1 操作系统及其功能 操作系统的发展 手工操作、批处理、多道程序系统和分时操 作系统等四个阶段,其中分时操作系统为目 前最为流行 实用的操作系统 Windows X DOS Linux

3 . 1 . 1 操作系统的定义 定义 一组控制和管理计算机软、硬件资源,为用户提供 便捷使用计算机的程序的集合 作用 管理计算机和使用计算机 特征 并发性、共享性、虚拟性和不确定性 计算机系统组成 硬件、操作系统、其他系统软件、应用软件和用户 接口

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

用户接口类型 命令接口,用户通过交互命令方式直接或间 接地对计算机进行操作, DOS :是纯命令行输入方式, Windows :鼠标操作方式 程序接口,供用户以程序方式进行操作,或 API(Application Programming Interface) ,用 户通过 API 函数可以调用系统提供的例行程序, 实现既定的操作。 DOS :中断服务功能, Windows : Windows API 函数

3 . 1 . 3 DOS 与 Windows 操作使用 方法简介 DOS 常用命令: HELP DIR CLS CD RD COPY … Windows 最常用的功能是:桌面、浏览器、资源管理器、我的电脑、 网上邻居、控制面板 (Control) 、任务管理器 (taskmgr) 、 Word 、 Excel 、 VC++, 记事本 (Notepad) ,写字板 (write)…

3 . 1 . 4 DOS 与 Windows 操作系统 程序接口简介 DOS 单用户单任务的磁盘操作系统 功能体现在系统提供的 DOS 和 BIOS 层上,借助于高 级语言和汇编 语言,并通过调用中断服务程序,可以完成大部分编 程工作。 Windows 一种多用户多任务、图形化的新型操作系统

Windows NT 体系结构 登录进程和会话 管理器 事件日志、调度 服务、 SQL Server Win32 MS-DOS 程序和 Win32 程序 进程线程管理、 I/O 和内存管理 线程调度、中断 和异常处理 将内核、设备驱动 程序和执行体分离 以适应不同的平台 将 I/O 函数调用转 换为 I/O 请求 窗口和绘制

窗口

消息 Windows 程序是以事件为驱动、消息机制为基础 消息定义:由用户操作而向应用程序发出的信息,也包括操作 系统内部产生的消息。 消息类型: windows 消息,命令消息和控件通知 WM_LBUTTONDOWN 、 WM_PAINT 消息结构:消息号和参数组成 typedef struct tagMSG{ HWND hwnd; 窗口句柄,为 NULL ,则可检索所有驻留在消息队列中的消息 UINT message; 消息值,由 windows.h 头文件中的宏定义来标识 WPARAM wParam; 包含有关消息的附加信息, 不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至队列的时间 POINT pt; 指定消息发送时屏幕光标的位置, 其数据类型 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 字符等价于 char 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; 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 ” 改变窗口标题 在视图类的 OnDraw 函数中添加代码: “pDC->TextOut(100,100,"MFC 文档 / 视图演示程序 ");”

3 . 2 进程管理应用程序设计 CPU 与进程管理的相关概念 Windows 操作系统的进程和线程 管理 进程和线程的应用

3 . 2 . 1 CPU 与进程管理 主要任务 对处理器的时间进行合理分配、对处理器的运行实 施有效的管理 程序的概念 一个静态概念,代表有严格时间顺序的可执行指令 序列,输入、处理和输出三部分组成指令序列特征 并发性、共享性、虚拟性和不确定性 进程的概念 程序的一次执行。系统进行资源调度和分配的独立 单位

3 . 2 . 1 CPU 与进程管理 (2) 进程与程序的主要区别 进程是动态的,而程序是静态的 进程的特点 动态性、并发性、独立性、异步性、结构性 和制约性 进程的状态 就绪状态、运行状态和停止状态

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

3 . 2 . 1 CPU 与进程管理 (4) 多个进程并发执行 同步和互斥 协调点

3 . 2 . 1 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 为进程名, 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 dwFlags; char szExeFile[MAX_PATH]; // 进程执行文件名 } PROCESSENTRY32;

例 3-5 编程显示当前系统所有进程 (2) CreateToolhelp32Snapshot 函 数格式 HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, // TH32CS_SNAPPROCESS, TH32CS_SNAPTHREAD DWORD th32ProcessID // 进程标识好,当前进程为 0 );

例 3-5 编程显示当前系统所有进程 (3) Process32First 函数格式 BOOL WINAPI Process32First( 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 // 进程退出码 );

3 . 2 . 2 线程及其应用 线程的概念 指令序列 程序运行的基本单位,不过它是作为 CPU 调 度单位,它只拥有必不可少的资源 线程的优点 减小并发执行的时间和空间开销 线程的状态 就绪、阻塞(等待)和执行

3 . 2 . 2 线程及其应用 (2) 线程与进程的区别 线程是比进程更小的单位,从运行角度来讲, 同类线程的数据和代码区是共享的,这有利 于线程的快速调度和切换,而进程之间的数 据和代码区是独立的。

Windows 操作系统下的线程状态转 换

例 3-6 编写一个动态显示时钟时间的 线程 CTime 类 时间 CString 类 字符串 CreateThread 函数格式 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程安全属性 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