(3 1)程序與執行緒 核心中的組織

2021-09-29 09:00:11 字數 1484 閱讀 3825

2.linux 程序控制塊:task_struct

3.程序在核心中的組織形式

pid_t pid;程序process id

uid_t uid,euid;程序屬性:使用者id,有效使用者id

gid_t gid,egid;

volatile long state;程序狀態

int exit_state;程序退出的狀態

下面是程序的排程資訊:

unsigned int rt_priority;程序的優先順序

unsigned int policy;排程策略的相關字段

組織程序的鍊錶資訊:

struct list_head tasks;

struct task_struct *real_parent;

struct task_struct *parent;

struct list_head children,sibling;

檔案系統管理相應的資訊:

(1)程序和檔案系統的關聯:目錄和根目錄

struct fs_struct *fs;

(2)對所有開啟檔案的組織

struct files_struct *files;

程序對於記憶體的管理:

struct mm_struct *mm;

struct signal_struct *signal;

struct sighand_struct *sighand;

(1)cputime_t utime, stime;用於記錄程序在使用者態,核心態所經歷的節拍數;

(2)struct timespec start_time;程序建立時間;

struct timespec real_start_time;real_start_time還包含了程序睡眠時間;

程序狀態:

volatile long state;

state成員的可能取值如下: 成員的可能取值如下:

多個程序如何建立聯絡?

執行緒與程序在核心中的實現

核心 為2.6.35.13。程序與其對應的執行緒之間使用相同的記憶體空間 檔案描述符和一些其他的東西。在核心中,執行緒與程序都是用結構體task struct來表示的,在核心排程上並沒有什麼區別。2.1 相同點 我們已經在上文中指出主線程與執行緒之間使用相同的記憶體空間 檔案描述符和一些其他的東西。...

Linux核心中的程序(一)

多工系統可以分為 非搶占式和搶占式。linux提供搶占式多工模式。程序在被搶占之前能夠執行的時間叫程序的時間片,linux獨一無二的公平排程程式本身並沒有採用時間片來達到公平排程。linux之前採用o 1 排程器,它對大伺服器的工作負載很理想,但是對響應時間敏感的程式卻有不足。在2.6.23核心版本...

程序的描述與組織

程序需要一定資源才能執行,最重要的資源是記憶體位址空間,此外還可能需要使用檔案 裝置等。這些資源均由核心負責管理和分配。分配給程序的資源登記在程序的pcb中。程序的乙個重要構成成分是程序映像,即程序所執行的 和資料在記憶體中的呈現。為了容納程序的映像,那個程序都有乙個自己的記憶體位址空間,這是程序執...