51 程序之程序的正式引入

2021-08-17 17:33:18 字數 1564 閱讀 3581

程序是乙個動態的過程,而不是乙個靜態的實物

程序就是程式的一次執行過程,乙個可執行程式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語言 程式被轉換成二進位制指令序列 像這樣 十六進製制...