1. 程式人生 > >作業系統學習筆記--程序生命週期

作業系統學習筆記--程序生命週期

     程序管理中最基本功能是程序控制。程序控制任務:程序的建立、終止、程序狀態的轉變等。程序控制一般由OS核心來實現。

    程序圖(樹狀結構)描述的是程序家族之間的關係,任何一個程序可以產生它的子程序。子孫程序可以繼承父程序的資源,比如父程序擁有的資料、緩衝區、檔案。當子孫程序結束的時候,將資源歸還的父程序。

    引起建立程序的事件。(1)使用者登入(分時系統,使用者登入後,建立程序);(2)作業排程(批處理作業系統);(3)提供服務(作業系統為使用者提供服務);(4)應用請求(由程序自己建立自己的子程序)。其中(1)(2)(3)由系統核心建立

    程序的建立:CREATE()原語 (1)申請空白PCB。(2)為新程序分配資源(資源清單寫在PCB中)。(3)初始化程序控制塊(程序的標誌資訊、處理機的狀態資訊、資源資訊),剛產生的程序處於就緒狀態。(4)將新程序插入就緒佇列。

    PCB初始化 ①初始化標識資訊(給系統看的內部標識、給使用者看的外部標識)。②初始化處理機狀態資訊(通用暫存器:暫放資料、指令、指令計數器、psw使用者棧指標)。③初始化處理機控制資訊(置於就緒狀態)

    引起程序終止的事件:1)正常結束

    異常結束:①越界(超出記憶體訪問範圍)錯誤;②保護(對只讀的檔案進行寫的操作等)錯誤;③非法指令;④特權指令錯誤;⑤執行超時;⑥等待超時;⑦算術運算錯(例如除0);⑧I/O故障

    外界干預:①操作員或OS干預;②被父程序終止;③父程序終止。如果父程序終止,則它的所有子程序都終止。

    程序終止過程:從PCB集合中檢索(根據內部標識)出該程序的PCB,從中讀出該程序的狀態。若程序處於執行狀態,終止該程序的執行,並且置排程標誌為真,重新排程(使CPU不處於空閒狀態)。若有子孫程序,將所有子孫程序終止。將程序全部資源歸還其父程序或系統。將其PCB從所在佇列(或連結串列)中移除。

    引起阻塞(自己阻塞自己,等待I/O)和喚醒的事件:請求系統服務、啟動某種操作、新資料尚未到,無新工作可作

    程序阻塞過程:由阻塞原語BLOCK完成。入口->儲存當前程序的CPU現場->置該程序狀態(將執行狀態置於阻塞狀態)->進入等待佇列(阻塞佇列)->轉程序排程

    程序喚醒過程:由喚醒原語WAKEUP完成。入口->從等待佇列中摘下被喚醒程序(的PCB)->置該程序為就緒狀態->進入就緒佇列->(還要看優先順序)轉程序排程或返回

    如果在某程序中呼叫了阻塞原語,則必須在與之相合作(等待事件)的另一程序中或其它相關程序中,安排喚醒原語

,以能喚醒阻塞程序;否則,被阻塞程序將會因不能被喚醒而長久地處於阻塞狀態,從而再無機會繼續執行。(有阻塞必然有喚醒。自己阻塞自己,與之相關的程序喚醒被阻塞的程序)

    程序的掛起。引入原因:由於作業系統或使用者的需要,將處於就緒狀態、執行的程序或記憶體等待佇列的程序,暫時調出記憶體,調到外存,以便監督記憶體的執行或解決系統當中比較繁忙的狀態。

    掛起原語:SUSPEND() 掛起原語的執行過程:檢查(對不同狀態的程序採用不同的操作)被掛起程序的狀態,若處於活動就緒狀態,改為靜止就緒;若處於活動阻塞狀態,則改為靜止阻塞;若正在執行,改為靜止就緒,轉向排程程式重新排程(在活動就緒佇列中的程序選擇一個) (掛起是把被掛起程序的資源從記憶體調到外存)

相關推薦

作業系統學習筆記--程序生命週期

     程序管理中最基本功能是程序控制。程序控制任務:程序的建立、終止、程序狀態的轉變等。程序控制一般由OS核心來實現。    程序圖(樹狀結構)描述的是程序家族之間的關係,任何一個程序可以產生它的子程序。子孫程序可以繼承父程序的資源,比如父程序擁有的資料、緩衝區、檔案。當

Android學習筆記2-生命週期

元件的生命週期   應用程式元件都有一個生命週期,從響應Intent的Android例項開始到這個例項被銷燬。在這期間,他們或許有效或許無效,有效時或許對使用者可見或許不可見。下面我們就來討論四個基本元件的生命週期,包括在生命週期內的各種狀態,以及狀態之間的轉換。這幾種狀態可

python學習筆記 --- 變數生命週期問題

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

Ubuntu作業系統學習筆記2(vi文字編輯器、程序的基本狀態及其轉換)

文字編輯器是對純文字檔案進行編輯、檢視、修改等操作的應用程式。vi編輯器具有文字編輯的所有功能,並且執行速度快,具有強大的編輯功能,廣泛的適用性和靈活性。 一、vi文字編輯器 1、vi編輯器的啟動與退出 (1)啟動 格式:vi  [檔名] 檔名有以下情況: 未指定檔

作業系統學習筆記程序同步

互相協作的程序之間有共享的資料,於是這裡就有一個併發情況下,如何確保有序操作這些資料、維護一致性的問題,即程序同步。從底層到高階應用,同步機制依次有臨界區、訊號量、管程、原子事務。1、臨界區每個程序有一個程式碼段稱為臨界區,共享資料在此進行操作。沒有兩個程序同時在臨界區執行。

作業系統學習筆記(3)——程序描述與程序狀態變化

一、程序的描述 程序:是系統中佔用處理機及爭奪其它系統資源的實體;程式必須在程序中執行;程序執行必須有棧用於儲存現場。 程序的引入: 為了能實現同一作業的作業步併發在作業某作業步等I/O時,另一邏輯上可併發作業步能使用CPU執行引入程序後,邏輯上課併發的作業步在不同的程序

linux學習筆記--程序與進程管理

ref monitor vim 子進程 free task 排序 image ctrl 、工作管理 1、前臺程序放後臺程序 命令後 加 & 2、任務執行時將前臺任務任務放到後臺中並【暫停】 ctr + z 3、jobs 觀察後臺工作狀態 及多少任務

作業系統學習筆記2_處理器管理

一、中央處理器 一個程式裝載入記憶體後有四個部分: 程式碼 資料 堆(heap):malloc分配的空間就是從這裡來的 棧(stack):系統使用的空間,儲存函式的返回地址。                 &n

作業系統學習筆記1_概論

一、認識作業系統 作業系統(OS)是管理系統資源、控制程式執行,改善人機介面,提供各種服務,合理組織計算機工作流程和為使用者有效使用計算機提供良好執行環境的一種系統軟體 ,它和硬體之間是軟-硬介面。 主要功能有:處理器管理、儲存管理、裝置管理 、檔案管理、網路與通訊管理和使用者介面功能。

深入理解計算機作業系統學習筆記、一

前言 《深入理解計算機作業系統》這本書是作業系統領域內非常經典的書,只要在網上搜索作業系統的書籍,必然會有人推薦這一本書,這本書也被各路大牛所推薦。雖然之前在圖書館借過這本書,但是匆匆看了一遍,只是記住了皮毛,最近下決心買了本紙質版的書,準備重讀經典,順便寫下讀書的收穫與思考。 這本

Maven學習 04 - 構建生命週期

文章目錄 1、標準生命週期 2、default 生命週期的階段 3、生命週期階段的執行順序 4、Clean 生命週期 5、Site生命週期 構建生命週期是指為一個工程進行專案構建和釋出的過程,它是

Ubuntu作業系統學習筆記1(基本概念、常用指令)

一、Ubuntu 1、什麼是Ubuntu Ubuntu是一個以桌面應用為主的Linux作業系統。 2、Ubuntu特點 (1)操作簡單,方便使用,安裝人性化。 (2)系統安全方面:Ubuntu預設以普通使用者許可權登入,執行所有與系統相關的任務均需要sudo指令 (3)軟體更

Cocos Creator學習三:生命週期回撥函式

1.目的:學習生命週期回撥函式以及回撥順序,更有利於我們邏輯的處理把控。   2.生命週期回撥函式: 節點:指cc.Node;元件:指cc.Component。 ①onLoad:指令碼元件繫結的節點所在場景載入時系統回撥一次(或者節點active從false變為true時系統回撥一次)。可在

linux作業系統學習筆記(四)軟體安裝

    Ubuntu系統中,軟體通常以 deb 格式的包檔案釋出,它是一種預編譯軟體包。deb包中除了包含已編譯的軟體,通常還包括軟體的拷貝路徑、對其它軟體包的依賴關係紀錄、比較通用的配置檔案以及軟體的描述、版本、作者、類別、佔用空間等資訊。 使用 dpkg 命令來管理de

vue筆記生命週期

var vm = new Vue ({ el:'#app', data:{ msg: 'ok' }, methods: { show () { console.log("執行了show方法") } }, beforeCreat

Spring學習--------Bean 的生命週期

                                                      Bean 的生命週期 Spring IOC 容器可以管理 Bean 的生命週期, Spring 允許在 Bean 生命週期的特定點執行定製的任務。 Spring I

React學習之旅----生命週期函式

app.js import React, { Component } from 'react'; // import logo from './assets/images/logo.svg'; // import './assets/css/App.css'; // 引入

計算機作業系統——學習筆記(上)

第一章 作業系統引論 作業系統OS是配置在計算機硬體上的第一層軟體,是對硬體系統的首次擴充。 1. 目標 有效性、方便性、可擴充性、開放性。 2. 作用 作為使用者與計算機硬體系統之間的介面 作為計算機系統資源的管理者 實現了對計算機資源的抽象 3.發展過程

計算機作業系統——學習筆記(下)

第六章 檔案管理 基於檔案系統的概念,可以把資料組成分為資料項、記錄和檔案三級。 檔案型別 按用途分類: ①系統檔案:由系統軟體構成。 ②使用者檔案:使用者的檔案。 ③庫檔案:標準子例程及常用的例程。 按檔案中資料的形式分類: ①原始檔:由源程式和資料構成的。

Linux 學習筆記程序通訊之 訊號

2.4訊號 2.4.1 訊號的概念和機制 訊號是UNIX/Linux系統響應某些條件而產生的一個事件,接收到該訊號的程序會相應地採取一些行動。通常訊號是由一個錯誤產生的。但它們還可以作為程序間通訊或修改行為的一種方式,明確地由一個程序傳送給另一個程序。一個訊