程序是乙個動態的過程,而不是乙個靜態的實物
程序就是程式的一次執行過程,乙個可執行程式a。out的一次執行過程,a.out從執行到結束,就是乙個程序。
程序控制塊pcb process contrl block就是核心中專門管理程序的資料結構,包含了程序相關的各種資訊。
程序id,os給每乙個程序分配了乙個id,根檔案描述符很像
ps命令,列印系統當前程序
pid程序id號
tty在哪個終端上面
時間和哪乙個命令
輸入ps -a 顯示
ps-aux顯示所有程序 類似於windows下的任務管理器
從1開始,0是系統內部的,核心態下面的程序 我們看不到的
有一些連著有些不連著 不連著執行一下就終結了
再分配給新的程序就接著往下分配了
程序號的意義,能夠標識唯一的程序
getpid,getppid獲取本程序 父程序的id,當前程序是父程序產生的 parents的意思
getuid,獲取當前的使用者id,用乙個數字編號表示當前是哪個使用者的id
geigid,獲取當前的組id
geteuid,獲取有效使用者id
geiegid,獲取有效組id
linux下有實際使用者id和有效使用者id,實際組id,有效組id
pid_t t代表type,所以讀作pid type 型別的意思
bash是指令碼是當前程式的父程序
每一次當前的程序的id都變化 ,但是父程序的id不變
程序被分配的數字不會被重複使用
執行完,這個id也不會再分配給別的 程序id
其實是直接去程序控制塊去拿出的id
多程序排程的原理
作業系統同時執行多個程序,多個程序在被同時執行,裸機程式其實就是只執行乙個程序
主要因為cpu的效能不夠好,高階cpu效能快,要發揮最大的效能,從而有了巨集觀的並行,微觀的序列
要通過多程序發揮cpu的最大效能
多程序要有排程,比如十個時間片,給三個程序分
所以必須要有一套機制和策略排程程序,其實是一套演算法,先執行誰後執行誰,每乙個執行多久,
什麼樣的任務合理,比較急的先做,不太急得後做
要考慮任務的複雜情況,排程原理,跟我們做事是一樣的
排程雖然複雜,但是不用我們考慮
準確的來說,系統排程是以執行緒為單位的而不是以程序為單位的
類似於飯館上菜,給大家都先上點
程序就是程式的一次執行
程序的引入
1.程式順序執行時的特徵 1 順序性 2 封閉性 3 可再現性 2.程式併發執行時的特徵 1 間斷性 2 失去封閉性 3 不可再現性 3.從結構上看,程序實體是由程式段 資料段和程序控制塊三部分組成,也稱這三部分為程序映像。4.系統資源可以分為cpu和外部事件 包括資源 時鐘中斷 外部事件等 5.在...
引入程序的目的
強烈推薦人工智慧學習 作業系統為何要引入程序這個概念,這要從多批道處理系統說起。為了提高cpu利用率,多批道處理系統一次性載入多個作業到記憶體中讓程式併發執行,但這會造成一系列的問題。這裡也談到乙個概念 併發 併發和並行的概念很多人混淆不清。併發 指你有處理多個任務的能力,不一定要同時進行。並行 指...
Unix程序之程序概述
程序是計算機程式執行起來的動態過程。發明計算機的目的就是為了處理各式各樣的資料,人類通過程式設計工具 c c 等 編寫對處理資料的程式,完成了對現實世界中各類資料的抽象 資料型別 通過函式 類等方式把我們對資料處理的過程表達出來 程式像這樣的 c語言 程式被轉換成二進位制指令序列 像這樣 十六進製制...