Рет қаралды 503
這是並行計算(Concurrent Computing)中文版的第四集、process基本觀念的第二集。我們繼續第三集的討論,本集解釋殭屍(zombie)process、execvp()和共用記憶體。
本集會討論到以下內容:我們先討論殭屍(zombie)process;接著介紹exec系列的系統叫用、但我們只討論execvp(),了解execvp()之後其它exec函數是大同小異的;其次的重頭戲是Unix中的共用記憶體,各獨立執行的process可以透過共用記憶體溝通。最後是一個程式習題,透過它讓您實際使用fork()、wait()、execvp()和共用記憶體,這道題是用多process實現並行的合併排序。
您可以在這個網頁下載投影片和程式:pages.mtu.edu/...
這個網頁是所有影片(含原英文版)的入口:pages.mtu.edu/...
目次
00:00:00 前言
00:03:19 本集內容
00:07:03 殭屍(zombie)process
00:12:42 兩個課題
00:14:50 exec()系統叫用
00:14:55 argc和argv
00:19:01 exec()叫用系統
00:23:32 execvp()
00:25:11 execvp()範例
00:30:20 一個簡單的Mini Shell程式
00:38:57 共用記憶體
00:39:01 何謂共用記憶體
00:41:04 使用共用記憶體的手續
00:42:04 關鍵值(key)
00:44:45 配置共用記憶體(shmget())
00:50:43 成功執行shmget()之後
00:51:17 加入process的記憶空間(shmat())
00:54:31 成功執行shmat()之後
00:56:22 切斷和移除共用記憶體(shmdt()和shmctl())
00:57:48 和子Process溝通
01:01:09 和其它獨立的Process溝通
01:07:03 重要的資訊
01:11:27 程式習題
01:11:56 並行合併排序
01:15:15 用共用記憶體的二分搜尋法合併
01:17:55 如何並行化?
01:19:54 如何SPLIT?
01:21:57 如何MERGE?
01:24:16 程式結構
01:27:17 討論
01:35:30 一些提示
01:40:03 我們學到了什麼?
01:40:44 結語
#fork #wait #process #execvp #共用記憶體 #關鍵值 #Key #ftok #zombieprocess #殭屍process #shmget #shmat #shmdt #shmctl #ipcs #ipcrm