Linux學習(三)關於程序和執行緒概念

2021-08-20 14:42:44 字數 832 閱讀 4164

程式——編譯好的二進位制檔案,不占用資源。

程序——活躍著的程式,占用資源,是作業系統的基本單位。

執行緒——程序的執行單位,與程序共享資源

使用者角度:程序是程式的乙個執行過程

作業系統角度:程序是系統分配的記憶體、cpu時間片等資源的基本單位

區別:(程序是戲劇,程式是劇本,戲劇根據劇本來)

程式是乙個靜態檔案,存於磁碟中;

程序處於動態程式執行的系統資源管理實體;

三、編譯的過程:(將**轉化為二進位制)

預處理 - 編譯 - 彙編 - 連線

預取器:(預處理將指令從cashe緩衝區取出)

|分析解碼器(指令的作用)

|計算alu 算數邏輯單元

mmu記憶體管理單元:1、虛擬記憶體(是不存在的,程式執行時產生,可用的位址空間為4g)

2、物理記憶體

mmu功能:將虛擬記憶體和物理記憶體對映、對應,在實際過程之中不要手動轉化,mmu自動轉化即可。

虛擬位址4g內分為:.text(存放**)、data資料區(變數)、heap堆區(空間)、stack棧(存放函式)、

核心區(pcb程序控制)

1、程序終止方式:

從main返回、呼叫exit、呼叫_exit、呼叫abort、由乙個訊號終止

2、程序間通訊方式:管道、共享記憶體、訊息佇列

管道即是利用核心在兩個程序間建立通訊,特點是一端讀一端寫(類似檔案)

共享記憶體:將記憶體中的一段位址,與多個程序間共享

訊息佇列:在核心中建一張鍊錶,傳送方按照標識將資料傳送到核心,核心將其放入量表後,等待接收方的請求。接收方傳送請求後,核心按照訊息的標識,從核心中將訊息從鍊錶中摘下,傳遞給接收方。

關於程序和執行緒

什麼是程序。最直觀的就是乙個個 pid,官方的說法就 程序是程式在計算機上的一次執行活動。執行緒是可執行 的可分派單元。這個名稱 於 執行的線索 的概念。在基於執行緒的多工的環境中,所有程序有至少乙個執行緒,但是它們可以具有多個任務。這意味著單個程式可以併發執行兩個或者多個任務。1.概念 程序 正在...

多執行緒 三 關於鎖的8個問題

使用synchronized鎖 先發簡訊後打 原因 synchronized鎖的物件是方法的呼叫者,test1的物件都是phone,因為用的同一把鎖,所以誰先拿到誰先執行。public synchronized void sendsms catch interruptedexception e sy...

MYSQL資料庫學習 三)關於約束

null 可以為空約束 例 id int null not null 不可為空約束 例 id int not null default 預設值約束 例 id int default 1 1為預設值 comment 列描述 例 id int comment 是主鍵id 類似於說明的作用 zerofil...