Linux學習筆記十四:進程管理

---進程管理---

程序怎麼執行?
                1,將程序從硬盤複製到kernel中
                2,將程序複製到一個獨立的內存空間

內存空間有什麼組成?
                用戶內存空間 + kernel

什麼是進程?
                程序本身 + 內存空間 + 數據 + 線程 等程序執行需要的各種資源

                線程(thread):進程執行的最小單位

分類:
                前臺任務:一次執行 ls
                後臺任務:一直在執行 init       pstree -p       查看

CoW:寫時複製

進程:都是由父進程創建,怎麼創建?      fork(), clone()

CPU進行線程切換叫做上下文!

緩存失效:CPU處理一個進程時被切換到另一個進程,造成當前緩存失效。這種現象極大浪費CPU性能

內存存儲單位:Page Frame 頁框   4K

物理地址空間:應用程序在內存中的真實存儲位置
線性地址空間:應用程序認爲自己的存儲位置

MMU:memory management unit     在cpu中,負責轉換物理地址和線性地址

內存釋放算法:LRU 近期最少使用算法

規則:淘汰老舊,老舊更新。

進程間通信:
                同一臺主機
                                pipe    管道
                                socket  套接字
                                signal  信號    ^ + c 等
                                shm     shared memory
                                semaphore       信號量
                不同主機
                                socket  ip和端口
                                RPC     remote procedure call   遠程過程調用
                                MQ      消息隊列

進程優先級:
                實時進程:  0-99
                非實時進程:100-139
reltime
nice
top

Linux內核:搶佔式多任務

進程類型:
                守護進程:daemon,在系統引導過程中啓動的進程,和終端無關進程
                前臺進程:跟終端相關,通過終端啓動的進程

進程狀態:
                運行態:running
                就緒態:ready
                睡眠態:
                                可中斷:interruptable
                                不可中斷:uninterruptable
                停止態:stopped
                僵死態:zombie
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章