freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

6225軟件開發(fā)技術基礎(編輯修改稿)

2024-11-05 09:47 本頁面
 

【文章內容簡介】 息 ? 當前狀態(tài);優(yōu)先級 (priority);代碼執(zhí)行入口地址;程序的外存地址;運行統(tǒng)計信息(執(zhí)行時間、頁面調度);進程間同步和通信;阻塞原因 ? 資源占用信息 ? 虛擬地址空間的現(xiàn)狀、打開文件列表 ? CPU現(xiàn)場保護結構 ? 寄存器值(通用、程序計數器 PC、狀態(tài) PSW,地址包括棧指針 第 46頁 /共 72頁 CPU與進程管理 (4) ? 多個進程并發(fā)執(zhí)行 ? 同步和互斥 ? 協(xié)調點 第 47頁 /共 72頁 CPU與進程管理 (5) ? Windows進程的建立 ? 函數 CreateProcess ? 使一個程序運行 ? 使用 C的 spawnlp函數 ? 使用 Win API 函數 ShellExecute ? …… 第 48頁 /共 72頁 例、 程啟動兩個子進程 ? _spawnlp函數格式 ? “ ” ? int _spawnlp( int mode, const char *cmdname, const char *arg0, const char *arg1, ... const char *argn, NULL )。 ? 其中 mode表示運行方式, ? Cmdname 為進程名, ? arg0,… argn 為進程的若干個參數, ? NULL 為終止符。 ? 返回值: ? 1 Error ? 其他:進程返回碼 第 49頁 /共 72頁 例 顯示當前系統(tǒng)所有進程 ? PROCESSENTRY32 結構體格式 typedef struct tagPROCESSENTRY32 { DWORD dwSize。 DWORD tUsage。 DWORD th32ProcessID。 //進程編號 DWORD th32DefaultHeapID。 DWORD th32ModuleID。 DWORD tThreads。 DWORD th32ParentProcessID。 LONG pcPriClassBase。 DWORD dwFlags。 char szExeFile[MAX_PATH]。 //進程執(zhí)行文件名 } PROCESSENTRY32。 第 50頁 /共 72頁 創(chuàng)建進程 ? 在 Windows中,啟動一個程序時, Windows通過函數 CreateProcess建立一個進程,當程序結束時,通過 TerminateProcess函數推出程序執(zhí)行。 第 51頁 /共 72頁 例 31 啟動兩個子進程 ? 解題思路: ? 使用 “ ”中的 CreateProcess函數創(chuàng)建進程。 ? 步驟: ?打開 VC++ ?新鍵工程類型為 “ Win32 Application” ?添加 C++源程序 第 52頁 /共 72頁 CreateProcess函數的格式 BOOL CreateProcess( LPCTSTR lpApplicationName, //名稱 LPTSTR lpCommandLine, //命令 LPSECURITY_ATTRIBUTES lpProcessAttributes, //進程安全屬性 LPSECURITY_ATTRIBUTES lpThreadAttributes, //線程安全屬性 BOOL bInheritHandles, //句柄繼承標志 DWORD dwCreationFlags, //創(chuàng)建標志 LPVOID lpEnvironment, //環(huán)境塊指針 LPCTSTR lpCurrentDirectory, //當前目錄指針 LPSTARTUPINFO lpStartupInfo, //SARTUPINFO 指針 LPPROCESS_INFORMATION lpProcessInformation //PROCESSINFORMATION 指針 )。 第 53頁 /共 72頁 舉例 include include void child_process(char mand[]) { BOOL bSuccess。 PROCESS_INFORMATION piProcInfo。 //保存創(chuàng)建的進程信息 STARTUPINFO Info。 //定義進程的窗口特征參數 =sizeof(STARTUPINFO)。 //定義結構體的字節(jié)大小 =NULL。 //無進程桌面 =NULL。 //無進程窗口 =0。 //保留,必須是 0 bSuccess= //創(chuàng)建進程 CreateProcess(NULL,mand,NULL,NULL,FALSE,NULL,NULL,NULL,amp。Info,amp。piProcInfo)。 if(!bSuccess) cout錯誤命令 endl。 else coutmand進程創(chuàng)建成功 ,進程號是 :endl。 } 第 54頁 /共 72頁 主函數 void main() { cout父進程啟動 endl。 child_process(osk)。 child_process(mplay32)。 cout父進程退出 endl。 } 舉例 第 55頁 /共 72頁 線程及其應用 ? 線程的概念 ? 指令序列 ? 程序運行的基本單位,不過它是作為 CPU調度單位,它只擁有必不可少的資源 ? 線程的優(yōu)點 ? 減小并發(fā)執(zhí)行的時間和空間開銷 ? 線程的狀態(tài) ? 就緒、阻塞(等待)和執(zhí)行 第 56頁 /共 72頁 線程及其應用 (2) ? 線程與進程的區(qū)別 ? 線程是比進程更小的單位,從運行角度來講,同類線程的數據和代碼區(qū)是共享的,這有利于線程的快速調度和切換,而進程之間的數據和代碼區(qū)是獨立的。 第 57頁 /共 72頁 Windows操作系統(tǒng)下的線程狀態(tài)轉換 第 58頁 /共 72頁 程序算法 1. 定義 PROCESS_INFORMATION 結構體以保存創(chuàng)建的進程信息。 2. 定義 STARTUPINFO結構體,填入進程的窗口特征參數。 3. 調用函數 CreateProcess創(chuàng)建指定進程。 4. 創(chuàng)建成功顯示進程號,否則顯示出錯信息。 第 59頁 /共 72頁 源程序 include include void child_process(char mand[]){ BOOL bSuccess。 PROCESS_INFORMATION piProcInfo。 //保存創(chuàng)建的進程信息 STARTUPINFO Info。 //定義進程的窗口特征參數 = sizeof(STARTUPINFO)。 //定義結構體的字節(jié)大小 = NULL。 //無進程桌面 = NULL。 //無進程窗口 = 0。 //保留,必須是 0 bSuccess=CreateProcess(NULL,mand,NULL,NULL,FALSE, NULL,NULL,NULL,amp。Info,amp。piProcInfo)。 //創(chuàng)建進程 if (!bSuccess) cout錯誤命令 endl。 else coutmand進程創(chuàng)建成功 ,進程號是 :endl。 } void main() { cout父進程啟動 endl。 child_process(osk)。 child_process(mplay32)。 cout父進程退出 endl。 } 例 31源程序 例 31執(zhí)行程序 第 60頁 /共 72頁 例 32顯示當前系統(tǒng)中所有進程 ? 本程序中使用“ ”中的CreateToolhelp32Snapshot函數取得操作系統(tǒng)當前的所有進程描述表的一個備份。該函數格式為: HANDLE WINAPI CreateToolhelp32Snapshot(
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1