描述和管理程式的「執行過程」-------程序
定義:程序是程式在某個資料集合上的一次執行活動
程序狀態的變遷
程序的掛起和解掛操作
掛起:使用者或os將程序有意暫停
解掛:將掛起的程序繼續
阻塞:禁止阻塞(阻塞時掛起)和活動阻塞(正常阻塞)
就緒:禁止就緒(就緒時掛起)和活動就緒(正常就緒)
1.描述程序狀態、資源、和相關程序關係的一中資料結構
2.pcb是程序的標誌
3.建立程序時建立pcb;程序撤銷後pcb同時撤銷
linux 程序的標識:
pi***id:父程序id
pgid:程序組id
linux程序的使用者標識:
uid:使用者id
gid:使用者組id
stat:程序狀態
符號含義
r執行或準備執行
s睡眠狀態i空閒
z殭屍d不間斷睡眠
w程序沒有駐留頁
t停止或跟蹤
四個典型控制為:
建立乙個空白pcb
賦予程序識別符號id
為程序分配空間
初始化pcb(預設值)
插入相應的程序佇列(新程序插入就緒佇列)
在pcb佇列中檢索出pcb
獲取該程序狀態
時機;停止執行
將pcb「執行態」改為「阻塞態」
插入相應原因的阻塞佇列
轉排程程式
系統服務由不滿足到滿足
i/o完成
新資料到達
程序提出新請求
建立程序fork
fork執行流程:
分配task_struct結構
為新程序堆疊分配物理頁
拷貝父程序內容
把新程序的task_struct結構位址儲存在task指標陣列中
子程序由fork建立後,通常屬於就緒狀態
init程序:
在linux系統初啟時,生成init程序(1號程序)
其他程序有當前程序通過系統呼叫fork建立
子程序執行自己的功能
exce函式族
功能:
步驟:
程序阻塞 wait
程序立即阻塞自己,如果它找到乙個已經成為殭屍的子程序,wait就會收集這個子程序的資訊,並把它徹底銷毀後返回
程序終結exit
程序釋放自己占用的資源並匯報給父程序
呼叫exit後變為殭屍態,幾乎所有的記憶體空間,儲存pcb資訊供wait收集
程序的休眠sleep程序是被載入到記憶體的,正在執行的應用程式例項
程序由核心物件和位址空間所組成
windows建立程序creatprocess
過程:windows結束程序
主函式返回
守護程序程式設計:
pid =
fork()
;//建立子程序
if(pid>0)
eixt(0
);//退出父程序
setsid()
;//讓程序脫離控制終端
chdir
("/");
//避免原工作目錄不能被解除安裝
umake(0
);//檔案許可權掩碼設定0
for(
int i =
0;i)close
(i);
//關閉繼承自父程序的檔案
unix作業系統與linux作業系統的區別
unix是乙個大公司實驗室做的,at t公司的實驗員,開始是屌絲自己玩著做的免費的,後來發現能產金商業化了,變成高富帥產品了。屌絲沒的用了,鬱悶了,於是山寨了乙個,名字也差不多,就叫linux,小的unix。因為也是小孩玩出來的,所以開始的功能比較少,因為屌絲仇富,所以堅持免費!後來改叫自由軟體了,...
Linux作業系統
本書以當前最流行的red hat linux的最新發行版本為基礎,論述作業系統的基本原理 基本思想和基本方法,並在此基礎上介紹linux網路作業系統的核心結構 安裝 配置 基本操作 系統管理及網路應用等,從而系統 完整地講述linux作業系統從基本原理到應用實踐的主要內容。本書注意理論內容的選取,注...
Linux 作業系統
linux 作業系統 計算機本身就是一堆硬體,最核心 就是cpu和儲存器裝置,為了能夠計算機獲得資料,有輸入裝置和輸出裝置,輸入輸出裝置通過南橋 北橋接入cache 接入系統的,彼此之間還有匯流排,比如記憶體到cpu的叫系統匯流排,各種鍵盤,滑鼠需要的匯流排也是不一樣的。為了進可能 利用計算機的資源...