* 作業系統同時執行多種程序(例如Web瀏覽器、文本編輯器等) * Program - 被動實體:存儲在磁盤中的二進製文件 * Process - 活動實體:內存中執行的程序 * process 包括: * Code segment (文本部分) * Data section - 全局變量 * Stack - 臨時局部變量和函數 * Heap - 動態分配的變量或類 * Current activity (程序計數器、寄存器內容) * A set of associated resources(例如打開文件處理程序) **從作業系統角度來看,一個執行中的程式實體,便被稱為process**  thread * 又名lightweight process:CPU利用率的基本單位 屬於同一process的所有線程共享 > 代碼部分、數據部分和作業系統資源(例如打開的文件和信號) process和thread之間的主要區別如下: 定義:process是獨立的實體,有自己的記憶體空間和資源,而thread則是process內的輕量級執行單位。在同一個process中可以存在多個thread,它們共享相同的記憶體空間和資源。 資源擁有權:每個process有自己的資源,例如記憶體、檔案處理器和裝置實例等。process內的thread共享這些資源。  process狀態 * 狀態 * 新建(New):正在創建process * 就緒(Ready):process在內存中等待分配給處理器 * 運行中(Running):CPU正在執行指令 * 等待(Waiting):process正在等待事件發生 * 終止(Terminated):process執行完畢 ## 狀態圖(Diagram of Process State)  在任何時刻,任何處理器上都只有一個process在運行。但是,許多process可能已準備就緒或正在等待 ## Process Control Block (PCB) Info。 與每個process相關聯 * process狀態 * 程序計數器 * CPU 寄存器 * CPU 調度信息(例如優先級) * Memory 管理信息(例如基址/限制寄存器) * I/O狀態信息 * 會計信息 PCB是作業系統使用的資料結構,用於管理和控制每個process。它包含有關process及其執行內容的資訊。 PCB的主要目的是提供作業系統追蹤和管理process所需的必要資訊。 當process發生切換或被中斷時,作業系統可以使用PCB中的資訊來保存當前process的狀態並恢復到正確的執行點。  ## Context Switch * Context Switch:Memory保存舊process的狀態並為新process加載保存的狀態 Context Switch切換時間(約1~1000 ms)取決於 * Memory速度 * 寄存器數量 * 存在特殊說明 * 保存/加載所有寄存器的單個指令 * 硬體支持 多組寄存器(Sun UltraSPARC-Context Switch意味著更改寄存器文件指針) 切換process需要進行Context Switch,涉及保存和恢復整個process狀態。在同一個process中的thread切換更快,需要的開銷較少,因為它們共享相同的記憶體空間和資源。 通信和同步:process之間需要使用各種通信機制(如管道、套接字、共享記憶體和訊息佇列)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up