程序怎麼執行? 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