第二章 進程管理 輸入一批數據 處理數據 打印處理結果 數據庫
程序的順序執行特色 順序性 封閉性 可再現性數據結構
程序的並行執行 間斷性 失去封閉性 不可再現性併發
程序併發執行 異步
同一個程序在不一樣數據集合上的執行操作系統
不一樣的程序在不一樣數據集合上的執行線程
程序 具備獨立功能的一組指令的集合指針
進程 容許併發執行的程序在某個數據集合上的運行過程索引
進程是由正文段 用戶數據段及進程控制塊共同組成的執行環境接口
正文段 存放被執行的機器指令隊列
用戶數據段 存放用戶數據
進程控制塊 存放進程的運行環境
進程
1. 併發性 併發性是進程和現代操做系統的重要特徵
2.動態性 執行程序->建立進程 得到cpu->執行指令 運行停止->被撤銷
3.獨立性 獨立運行和資源調度的基本單元
4.進程的執行時斷時續,什麼時候執行,合適暫停都沒法預知
5.進程實體包括用戶正文段 用戶數據段和進程控制塊
程序和進程的區別
程序 靜態 永久 指令的集合
進程 動態 暫時 包括正文段 用戶數據段 進程控制塊
聯繫
進程是程序的一次執行
一個程序能夠對應多個進程
用一個程序能夠在不一樣的數據集合上運行,構成不一樣的進程
進程實體 包括 用戶正文段 用戶數據段和進程控制塊
程序狀態字 PSW
描述和記錄程序狀態
進程控制塊 PCB
管理和控制進程
進程控制塊PCB
定義: 進程控制塊是進程實體的一部分,是操做系統中最重要的數據結構。
進程控制塊彙總記錄了操做系統所須要的,用於描述進程及控制進程運行所需的所有信息
進程控制塊中的信息
進程表示符信息 用於惟一標識一個進程
處理機狀態信息 通用寄存器 指令計數器 程序狀態字PSW 用戶棧指令
進程調度信息 包括進程狀態信息,進程優先級和進程調度所需的其餘信息
進程控制信息 包括程序和數據的地址 進程同步和通訊機制 資源清單 以及鏈接指針
進程的三種基本狀態 之形態 阻塞態 就緒態
進程的組織方式
鏈接方式
把系統中具備相同狀態的進程控制塊PCB用其中的連接字連接成一個隊列
執行指針 正在執行的進程 PCB1
索引方式
系統根據全部進程的狀態,創建索引表,索引表的每個表項指向一個PCB物理塊
進程隊列
把具備相同狀態的進程控制塊用隊列組織起來
如何建立新進程 建立新進程的步驟
1. 申請空白PCB
2. 爲新進程分配資源
3. 初始化進程控制塊
4.將新進程插入到就緒隊列
什麼狀況下會進行進程的阻塞呢?
請求系統服務 啓動某種操做 新數據還沒有到達 無新工做可作
完成進程阻塞的簡化過程?
1.將進程的狀態改成阻塞態
2.將進程插入相應的阻塞隊列
3.轉到進程調度程序,從就緒隊列中選擇進程爲其分配CPU
進程的喚醒
進程進入阻塞天以後,經過喚醒使其變成就緒態進程
完成進程阻塞的簡化過程?
1.將進程從阻塞隊列中移除
2.將進程狀態由阻塞態改成就緒態
3.將進程插入就緒隊列
進程的終止
進程正常執行完畢,調用終止今晨的系統調用
操做系統經過系統調用完成進程終止的通常過程
1. 從進程PCB中讀進程狀態
2.若進程正在執行,則終止進程的執行
3.釋放資源
4.將終止進程的PCB移出
操做系統管理計算機系統資源 提供方便的接口,擴充硬件的功能等
操做系統內核
直接與硬件交互,提供cpu時間片管理中斷 內存管理 IO管理等等
操做系統內核
支撐功能 中斷處理 時鐘管理 原語操做
資源管理功能 進程管理 存儲管理 設備管理
什麼是中斷
中斷是改變處理器執行指令順序的一件事情
出現中斷時,計算機中止如今程序的運行,轉向對這些中斷事件的處理
處理結束後再返回到現行程序的間斷處
爲何須要中斷
CPU可使其餘設備並行工做,能有效提升CPU的利用率
中斷的類型 同步中斷 內部中斷或異常 如除數爲零,結果溢出等
異步中斷 外部中斷 如 I/o 中斷 硬件故障等
中斷響應
響應中斷的條件 對於可屏蔽中斷,開中斷是前提
響應中斷的時機 對於外部中斷 CPU每執行完一條指令都會檢測是否有中斷
什麼是系統調用?
系統調用是一羣預先定義好的模塊
提供一條管道讓應用程序能由此到核心程序的服務
系統調用時系統程序與用戶程序之間的接口
用戶空間 用戶進程所處的地址空間
用戶態執行 CPU 執行用戶空間的代碼時,該進程處於用戶態執行
系統空間 含有一切系統核心代碼的地址空間
系統態執行 CPU 執行系統核心代碼時,稱該進程處於系統態執行
根據系統調用的功能吧系統調用總結爲一下幾種類型
進程控制類系統調用
文件操縱類系統調用
設備管理類系統調用
通訊類系統調用
進程同步的基本概念
多道程序環境下進程之間的關係
資源共享關係 保證各進程以互斥的方式訪問臨界資源
相互合做關係 保證相互合做的各進程協調執行
必須以互斥方式訪問的共享資源稱爲臨界資源
進程中訪問臨界資源的那段代碼稱爲臨界區
同步機制應遵循的準則
空閒讓進
對於要訪問臨界資源的進程,應保證有限時間內進入臨界區
忙則等待
申請不到訪問權,應釋放處理機,以避免浪費CPU資源
有限等待
沒有進程處於臨界區,應容許一個請求進入臨界區的進程進入
讓權等待
臨界區已有進程,其餘視圖進入臨界區的進程必須等待
信號量機制
用信號量的取值來表示資源的使用情況,依次爲基礎實現進程同步
信號量 某種類型的變量 如整形,記錄型
信號量機制
整形信號量機制 記錄型信號量機制 AND型信號量機制
整形信號量機制 表示共享資源 只能由特殊的原子操做改變的整形量
原理:定義一個整形變量,用該變量的值來標記資源的使用狀況, 初始值=1
整形信號量 > 0 有資源可用
整形信號量 <= 0 資源忙,需等待
整形信息量機制中,用於申請資源的是 wait 原子操做。
整形信號量機制中,用於釋放資源的是 signal 原子操做
定義信號量s,初始值設置爲1
進程通訊機制
共享存儲器系統
相互通訊的進程共享某些數據結構或共享存儲區
消息傳遞系統
進程間經過操做系統提供的一組通訊程序傳遞消息
管道通訊
進程間經過管道(連接讀寫進程的特殊文件)進行信息通訊
消息緩衝隊列
利用消息緩衝區,發送原語和接收原語實現信息通訊
程序
具備獨立功能的一組指令的集合
進程
容許併發執行的程序在某個數據集合上的運行過程
線程
用戶要求執行數據庫應用程序
線程的定義 線程是進程中的一個實體,是被系統獨立調度和分派的基本單位
同一進程的各線程駐留在分配給進程的地址空間彙總,且共享該進程的全部資源。
2.一個進程被建立後便開始了它的聲明週期,直至執行結束而停止,線程在聲明期內會經歷
就緒態,阻塞態和運行態各類狀態變化
3.線程是處理器的獨立調度單位,多個線程能夠併發執行,交替佔用處理器。
4.不一樣的線程能夠執行相同的程序,即同一個服務程序若被不一樣用戶調用時操做系統就爲他們將建立不一樣的
線程。