作業系統(Linux與Windows)的程序管理

2021-09-19 10:10:48 字數 2188 閱讀 9835

描述和管理程式的「執行過程」-------程序

定義:程序是程式在某個資料集合上的一次執行活動

程序狀態的變遷

程序的掛起和解掛操作

掛起:使用者或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的叫系統匯流排,各種鍵盤,滑鼠需要的匯流排也是不一樣的。為了進可能 利用計算機的資源...