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中。程序的乙個重要構成成分是程序映像,即程序所執行的 和資料在記憶體中的呈現。為了容納程序的映像,那個程序都有乙個自己的記憶體位址空間,這是程序執...