# 進程復習題
> 原文:<https://github.com/angrave/SystemProgramming/wiki/Processes-Review-Questions>
## 話題
* 正確使用 fork,exec 和 waitpid
* 使用 exec 與路徑
* 了解 fork 和 exec 以及 waitpid 的作用。例如。如何使用他們的返回值。
* SIGKILL vs SIGSTOP vs SIGINT。
* 按 CTRL-C 時發送的信號
* 使用 shell 中的 kill 或 kill POSIX 調用。
* 進程內存隔離。
* 進程內存布局(堆,棧等;無效的內存地址)。
* 什么是叉炸彈,僵尸和孤兒?如何創建/刪除它們。
* getpid 和 getppid
* 如何使用 WAIT 退出狀態宏 WIFEXITED 等
## 問題/練習
* 有沒有 p 和沒有 p 的高管有什么區別?什么是操作系統
* 如何將命令行參數傳遞給`execl*`? `execv*`怎么樣?按慣例,第一個命令行參數應該是什么?
* 你怎么知道`exec`或`fork`是否失敗了?
* 什么是`int *status`指針進入等待狀態?什么時候等待失敗?
* `SIGKILL`,`SIGSTOP`,`SIGCONT`,`SIGINT`之間有什么區別?什么是默認行為?您可以為哪些設置信號處理程序?
* 按`CTRL-C`時發送了什么信號?
* 我的終端錨定到 PID = 1337 并且剛剛變得沒有響應。寫下終端命令和 C 代碼,將`SIGQUIT`發送給它。
* 一個進程可以通過正常方式改變另一個進程內存嗎為什么?
* 堆,棧,數據和文本段在哪里?你能寫些哪些細分?什么是無效的內存地址?
* 用 C 編碼叉炸彈(請不要運行它)。
* 什么是孤兒?它是如何變成僵尸的?我如何成為一個好父母?
* 當你父母告訴你不能做某事時,你不討厭它嗎?給我寫一個程序,將`SIGSTOP`發送給你的父母。
* 編寫 fork exec 等待可執行文件的函數,并使用等待宏告訴我進程是否正常退出或是否已發出信號。如果進程正常退出,則使用返回值打印該進程。如果沒有,則打印導致進程終止的信號編號。
- UIUC CS241 系統編程中文講義
- 0. 簡介
- #Informal 詞匯表
- #Piazza:何時以及如何尋求幫助
- 編程技巧,第 1 部分
- 系統編程短篇小說和歌曲
- 1.學習 C
- C 編程,第 1 部分:簡介
- C 編程,第 2 部分:文本輸入和輸出
- C 編程,第 3 部分:常見問題
- C 編程,第 4 部分:字符串和結構
- C 編程,第 5 部分:調試
- C 編程,復習題
- 2.進程
- 進程,第 1 部分:簡介
- 分叉,第 1 部分:簡介
- 分叉,第 2 部分:Fork,Exec,等等
- 進程控制,第 1 部分:使用信號等待宏
- 進程復習題
- 3.內存和分配器
- 內存,第 1 部分:堆內存簡介
- 內存,第 2 部分:實現內存分配器
- 內存,第 3 部分:粉碎堆棧示例
- 內存復習題
- 4.介紹 Pthreads
- Pthreads,第 1 部分:簡介
- Pthreads,第 2 部分:實踐中的用法
- Pthreads,第 3 部分:并行問題(獎金)
- Pthread 復習題
- 5.同步
- 同步,第 1 部分:互斥鎖
- 同步,第 2 部分:計算信號量
- 同步,第 3 部分:使用互斥鎖和信號量
- 同步,第 4 部分:臨界區問題
- 同步,第 5 部分:條件變量
- 同步,第 6 部分:實現障礙
- 同步,第 7 部分:讀者編寫器問題
- 同步,第 8 部分:環形緩沖區示例
- 同步復習題
- 6.死鎖
- 死鎖,第 1 部分:資源分配圖
- 死鎖,第 2 部分:死鎖條件
- 死鎖,第 3 部分:餐飲哲學家
- 死鎖復習題
- 7.進程間通信&amp;調度
- 虛擬內存,第 1 部分:虛擬內存簡介
- 管道,第 1 部分:管道介紹
- 管道,第 2 部分:管道編程秘密
- 文件,第 1 部分:使用文件
- 調度,第 1 部分:調度過程
- 調度,第 2 部分:調度過程:算法
- IPC 復習題
- 8.網絡
- POSIX,第 1 部分:錯誤處理
- 網絡,第 1 部分:簡介
- 網絡,第 2 部分:使用 getaddrinfo
- 網絡,第 3 部分:構建一個簡單的 TCP 客戶端
- 網絡,第 4 部分:構建一個簡單的 TCP 服務器
- 網絡,第 5 部分:關閉端口,重用端口和其他技巧
- 網絡,第 6 部分:創建 UDP 服務器
- 網絡,第 7 部分:非阻塞 I O,select()和 epoll
- RPC,第 1 部分:遠程過程調用簡介
- 網絡復習題
- 9.文件系統
- 文件系統,第 1 部分:簡介
- 文件系統,第 2 部分:文件是 inode(其他一切只是數據...)
- 文件系統,第 3 部分:權限
- 文件系統,第 4 部分:使用目錄
- 文件系統,第 5 部分:虛擬文件系統
- 文件系統,第 6 部分:內存映射文件和共享內存
- 文件系統,第 7 部分:可擴展且可靠的文件系統
- 文件系統,第 8 部分:從 Android 設備中刪除預裝的惡意軟件
- 文件系統,第 9 部分:磁盤塊示例
- 文件系統復習題
- 10.信號
- 過程控制,第 1 部分:使用信號等待宏
- 信號,第 2 部分:待處理的信號和信號掩碼
- 信號,第 3 部分:提高信號
- 信號,第 4 部分:信號
- 信號復習題
- 考試練習題
- 考試主題
- C 編程:復習題
- 多線程編程:復習題
- 同步概念:復習題
- 記憶:復習題
- 管道:復習題
- 文件系統:復習題
- 網絡:復習題
- 信號:復習題
- 系統編程笑話