linux建立新程序的過程

2021-06-20 01:33:41 字數 400 閱讀 6047

linux系統中建立新程序使用fork()系統呼叫。所有程序都是通過複製程序0而得到的。都是程序0的子程序。linux建立新程序的過程:

1.系統首先在任務陣列中找出乙個還沒有被任何程序使用的空項。如果陣列已滿,沒有空項,則fork系統呼叫出錯返回。系統將會為新建程序在記憶體區中分配一頁記憶體來存放其任務資料結構資訊,並複製當前程序任務資料結構中的所有內容作為新程序任務資料結構的模板。

2.對複製的任務資料結構進行修改。把當前程序設定為新建程序的父程序,清除訊號點陣圖並復位新程序各統計值,並設定初始化執行時間片值為15個時間滴答數。接著根據當前程序設定任務狀態段(tss)中各暫存器的值

3.系統設定新任務的**和資料段基址、限長,並複製當前程序記憶體管理的記憶體頁表。

4.如果父程序中有檔案時開啟的,則應將對應檔案的開啟次數增1。

Linux建立新程序

在linux系統中,建立新程序涉及到兩個系統呼叫api 分別是fork 和exec 首先,在當前程序中,呼叫fork 複製出自身的乙個拷貝,此時主要涉及到核心中與程序上下文相關的資料複製操作,而使用者 和資料則採用寫時複製技術共享同乙份資源。當乙個程序複製後,原程序稱為父程序,新程序則稱為子程序.然...

Linux基礎 建立新程序

好久沒學習了,最近都在忙著上班的事情,過年後這段時間感覺每天都有事情做,忙忙忙,學linux感覺說實話,有點枯燥,比當初學fpga還要枯燥。真的是畢業之後,再去學習的動力就下降很多嗎。但是還是要堅持啊。程式並不能單獨執行,只有將程式載入到記憶體中,系統為他分配資源後才能夠執行,這種執行著的程式稱之為...

Linux核心建立乙個新程序的過程

第一部分 程序控制塊pcb task struct資料結構 圖 1 task struct 為了管理程序,核心必須對每個程序進行清晰的描述,程序描述符提供了核心所需了解的程序資訊。task struct資料結構龐大,包含以下 1 程序狀態 define task running 0 define t...