UNIX上機實驗10筆記

2021-09-23 05:52:01 字數 1570 閱讀 4484

1.在linux系統中,除編號為1的程序(init程序)外,其它程序都有對應的父程序

2.通常程序的pid會被順序編號,即新建立的程序pid通常為前乙個程序的pid加1.但是linux系統上pid的取值範圍是有限的,因此若當前程序的pid已為最大值,系統建立下乙個程序的pid就必須使用閒置的數值。

3.uid:使用者識別符號,即建立這個程序的使用者表示;

euid:有效使用者識別符號,即以有效許可權發起程序的使用者

4.gid,egid和uid,euid的定義類似,不過前者是組,後者是使用者

5.程序識別符號與函式介面:(注意,pid_t這些都是巨集定義,實質是unsigned int)

6.程序的狀態被劃分為5種:初始態,就緒態,執行態,睡眠態和終止態

7.睡眠態分為不可中斷睡眠和可中斷睡眠。不可中斷睡眠是由外部i/o呼叫等造成的睡眠,此時該程序正在等待所需的i/o資源,即便強制中斷睡眠狀態,程序仍無法執行,這種睡眠態亦可稱為阻塞;當程序處於可中斷睡眠態時,往往是因為程序對應的當前使用者請求已處理完畢,因此暫時退出cpu,當使用者再次發出請求時,該程序可以被喚醒,這種睡眠態也被稱為掛起。

10.會話是程序組的集合,會話中的每個程序組稱為乙個工作,會話由其中的程序建立,建立會話的程序稱為會話的領導程序,會話領導程序的pid也是標識會話的會話id,即sid.

11.使用pstree命令可以檢視當前系統中的程序樹。程序樹的頂端是程序init

12.執行緒是系統排程分配的最小單位,程序是系統資源分配的最小單位。總之,執行緒是系統排程,程序是系統資源。同乙個程序中的執行緒共享程序的資源,比如記憶體,開啟的檔案,甚至可能是網路連線。

13.雖然屬於同一程序的轉殖程序可以共享相同的記憶體空間,但它們不能共享相同的使用者堆疊。因此,clone()呼叫為每個程序建立單獨的堆疊空間。

14.多執行緒之間可能需要互斥的訪問一些全域性變數,這就需要互斥地訪問。這些需要共享訪問的字段被稱作臨界資源,訪問臨界資源的程式段被稱為臨界區。

*************************====題目******************************====
2.⼀個程式中分別建立5個執行緒,按順序列印數字1-5。因為要確保按照順序,所以要進⾏⼀定程度的同步。

//**

#include

#include

#include

#include

#include

#define thread_num 5

pthread_mutex_t mutex = pthread_mutex_initializer;

void

*thread_handler

(void

*a);

intmain()

}void

*thread_handler

(void

*a)

unix實驗9筆記

1.centos中普通使用者切換到root使用者 su 回車 ubuntu中普通使用者切換到root使用者 sudo i 2.好像math.h中的atof函式和stdlib.h中的atof函式不是一回事,今天我試了一下在往c程式裡傳命令列引數實現加減法運算,如果標頭檔案是math.h,沒有實現字串到...

UNIX系統程式設計1《筆記》

linux系統程式設計課堂筆記 1 20121013 一 每個應用程式是獨享的 1.對於32 位的cpu 來說,應用程式程式設計和核心共占有 4g的空間 應用層是0 3g 核心層是 3g 4g 2.每個程式是獨享的 每個程式都有3g 的空間來進行使用,這個空間是虛擬記憶體,在實際的呼叫的時候,每個應...

《UNIX網路程式設計 卷1》 筆記 UNIX域協議

unix域協議並不是乙個實際的協議族,而是在單個主機上客戶程序和伺服器程序之間通訊的一種方法。unix域使用的套接字結構如下 struct sockaddr un int main int argc,char argv 執行結果如下 可以看到繫結的路徑名 tmp 123 現在是乙個套接字檔案。uni...