Linux 程序 任務和執行緒

2021-08-26 04:10:54 字數 1074 閱讀 9143

程序、任務和執行緒 程序在os中是乙個非常關鍵的抽象概念。 在os中虛擬cpu稱為執行執行緒,簡稱為執行緒。 用於建立和管理多執行執行緒的實用工具通常包含在乙個pthread庫。因為該庫中介面是按照posix標準定義的,所以以p開頭。 在unix os中,單執行緒程序和多執行緒程序模型如下:

在linux中,單執行緒任務和多執行緒任務組模型如下:

在ia64架構下,linux 中定義每次分配給任務的位址空間是ia64_stk_offset,如下: #define ia64_stk_offset ((1 << kernel_stack_size_order)*page_size) #if defined(config_ia64_page_size_4kb) # define kernel_stack_size_order 3 #elif defined(config_ia64_page_size_8kb) # define kernel_stack_size_order 2 #elif defined(config_ia64_page_size_16kb) # define kernel_stack_size_order 1 #else # define kernel_stack_size_order 0 #endif 通過以上語句定義ia64_stk_offset,決定分配記憶體的大小。就是說,如果系統配置每個頁面的大小為4kb的情況下,那麼ia64_stk_offset就是8*4kb=32kb; 如果page_size=8kb,那麼ia64_stk_offset就是4*8kb=32kb; 如果page_size=16kb,那麼ia64_stk_offset就是2*16kb=32kb; 如果page_size=64kb,那麼ia64_stk_offset就是1*64kb=64kb; 在上圖中還有乙個變數ia64_rbs_base,該變數用來描述什麼?看linux是如何實現的就知道了,用中文描述,我還真不知道。 #define ia64_rbs_offset ((ia64_task_size + ia64_thread_info_size + 31) & ~31) define(ia64_task_size, sizeof (struct task_struct)); define(ia64_thread_info_size, sizeof (struct thread_info));

Linux 程序 任務和執行緒

程序 任務和執行緒 程序在os中是乙個非常關鍵的抽象概念。在os中虛擬cpu稱為執行執行緒,簡稱為執行緒。用於建立和管理多執行執行緒的實用工具通常包含在乙個pthread庫。因為該庫中介面是按照posix標準定義的,所以以p開頭。在unix os中,單執行緒程序和多執行緒程序模型如下 linux中,...

任務 程序 執行緒

認識多工 多程序 單執行緒 多執行緒 現在的作業系統都是多工作業系統,每個執行的任務就是作業系統所做的一件事情,比如你在聽歌的同時還在用msn和好友聊天。聽歌和聊天就是兩個任務,這個兩個任務是 同時 進行的。乙個任務一般對應乙個程序,也可能包含好幾個程序。比如執行的msn就對應乙個msn的程序,如果...

linux程序和執行緒

這兩天一直在看linxu程序和執行緒的東西,總是效率比較低,這麼一點基礎的東西還看了這麼久。該自我反省一下。首先來看看程序。程序分為三個部分,程序控制塊,程式段和資料段。程序是乙個有生命的實體,程式是乙個沒有生命的實體。只有cpu賦予程式生命的時候,程式才成為乙個活動的實體,我們稱之為 程序 每乙個...