中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LINUX系統編程之進程

發布時間:2020-07-09 20:01:13 來源:網絡 閱讀:433 作者:Czyy1 欄目:系統運維

LINUX系統編程之進程

一、操作系統職責:管理所有的資源,將不同的設備和不同的程序關聯起來。


二、系統調用是操作系統提供給用戶程序的一組特殊函數接口,用戶程序可以通過這組接口獲得系統內核提供的服務,例如:打開文件,關閉文件,讀寫文件。


三、POSIX(Portable Operation System interface)

Linux中,應用程序編程接口(API)遵循POSIX標準,用于保證應用程序可以在源代碼一級上在多種操作系統上移植運行。


四、系統調用按功能邏輯可分為:進程控制、進程間通信、文件系統控制、系統控制、內存管理、網絡管理、socket控制、用戶管理。

通常用一個負的返回值表明錯誤,0值表明成功可用perror打印出錯信息


五、進程

程序:可執行文件(靜態),進程:程序的執行實例(動態)

進程的狀態:創建,調度,消亡

進程擁有自己的環境和資源

用exec函數將程序由內核讀入內存使其執行起來成為一個進程


六、進程的生命周期

創建

調度

就緒態:已具備執行條件,等待分配CPU時間

執行態:正在占用CPU

等待態:不具備某些執行條件,無法繼續執行

消亡


七、PCB(進程控制塊)

OS根據PCB對并發執行的進程進行控制和管理,系統在創建一個進程時會開辟一段內存空間存放與此進程相關的PCB數據結構

PCB中記錄了用于描述進程進展情況及控制進程運行所需的全部信息。

PCB是進程存在的唯一標志,linux中PCB存放在task_struct結構體中,打開/include/linux/sched.h可以找到task_struct 的定義


八、進程控制

進程號0~32767   0號調度進程   1號init進程

除調度進程外,所有進程都是由init進程直接或間接創建的

PID進程號getpid()   PPID父進程號getppid()  PGID進程組號getpgid()


九、文件描述符:以進程為單位分配0-1023最小可用的描述符


十、進程狀態轉換

CPU調度算法:優先級,先來先調度,短時間優先,時間片輪轉

umask掩碼,屏蔽文件權限

ps命令查看當前進程


十一、創建進程 fork()  vfork()

1.fork()在子進程中返回0,在父進程中返回值大于0,調用fork()以后,源程序被復制了一份,兩份程序中只有fork()返回值不一樣,兩份程序同時執行,順序不定,父子進程物理地址不同,虛擬地址相同。

問:如果一個程序同時執行了三個fork(),它創建了幾個進程

fork();1(0)

fork();2(0) 3(1)

fork();4(0) 5(1) 6(2) 7(3)

第一次調用,0號進程創建了1號進程

第二次調用,0號進程創建了2號進程,1號進程創建了3號進程

第三次調用,0號進程創建了4號進程,1號進程創建了5號進程,2號進程創建了6號進程,3號進程創建了7號進程

一共創建了2的n次方減一個進程


2.vfork()一般配合exec使用,子進程共用父進程地址空間,保證子進程先運行,調用exec或exit后父進程再運行

exec函數族是進程替換函數,將新的地址空間賦給原來的進程,進程號不變,新程序從main開始運行

exec只有失敗才返回,exec后面的代碼不執行

但注意exec是一個函數族,有execlp,execvp,execle,execve等

只能用exit()結束子進程,而return是返回到函數執行的首地址

atexit(void (*function)(void))注冊退出處理函數



十二、輸入輸出緩沖區

系統調用無緩沖

標準IO庫函數輸入輸出為行緩沖

標準IO庫操作文件為全緩沖


十三、

僵尸進程:子進程結束而父進程未調用wait()或waitpid()回收其資源

孤兒進程:父進程結束而子進程未結束

守護進程:特殊的孤兒進程,脫離終端運行在后臺

wait()/waitpid():等待子進程結束并回收其資源

用ps查看進程,kill+pid或pkill+進程名結束進程


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昆山市| 富锦市| 合肥市| 方城县| 施秉县| 武城县| 巍山| 临沭县| 德保县| 邢台县| 台山市| 乌什县| 丽水市| 菏泽市| 兴义市| 湘西| 军事| 通州市| 辽阳市| 福清市| 营山县| 浦县| 云南省| 秦皇岛市| 无极县| 台东县| 富蕴县| 白城市| 吉林市| 黄陵县| 德化县| 吉隆县| 大石桥市| 玛纳斯县| 赤水市| 教育| 桐柏县| 若尔盖县| 集安市| 金华市| 永城市|