作業系統中最核心的概念是程序:這是乙個對正在執行程式的抽象。作業系統的其他所有內容都是圍繞著程序的概念展開的。
程序是作業系統提供的最古老的也是最重要的抽象概念之一。即使只有乙個cpu,它也是支援(偽)併發操作的能力。它們將乙個cpu變成多個虛擬cpu。這裡我同大家一起學習關於程序的基礎知識。
在程序模型中,計算機上所有可執行的軟體,通常也包括作業系統,都被組織成若干順序程序(sequential process),簡稱程序(process)。乙個程序就是乙個正在執行的程式例項,包括程式計數器,暫存器和變數的當前值。從概念上講,每個程序都擁有它自己的虛擬cpu。在單cpu模式下,任何給定瞬間都只有乙個進**正在執行。當然,實際上只有乙個物理程式計數器,所以在每個程式執行時,它的邏輯程式計數器會被裝入實際的物理計數器中。當該程式執行結束或暫定時,物理程式計數器被儲存在記憶體中該程序的邏輯程式計數器中。
新程序都是由於乙個已經存在的程序執行了乙個用於建立程序的系統呼叫而建立的,這個程序的作用是,執行乙個用來建立程序的系統呼叫,這個系統呼叫通知作業系統建立乙個新程序,並且直接或間接地指定在該程序中執行的程式。
程序終止通常有四種條件引起:
1)正常退出(自願)
2)錯誤退出(自願)
3)嚴重錯誤(非自願)
4)被其他程序殺死(非自願)
程序有三種狀態:
1)執行態(該時刻程序實際占用cpu)
2)就緒態(可執行,但因為其他程序正在執行而暫時停止)
3)阻塞態(除非某種外部事件發生,否則程序不能執行,比如等待外部輸入)
程序的三種狀態直接有四種切換關係,執行態和就緒態可以相互切換;執行態可以進入阻塞態;阻塞態可以進入就緒態。
為了實現程序模型,作業系統維護著一張**(乙個結構陣列),即程序表(process table)。每個程序占用乙個程序表項。該表項包含了程序狀態的重要資訊,包括程式計數器,堆疊指標、記憶體分配狀況、所開啟的檔案狀態、賬號和排程資訊,以及其他在程序由執行態轉換到就緒態或阻塞態時必須保留的資訊,從而保證該程序隨後能再次啟動,就像從未被中斷過一樣。
當乙個磁碟中斷發生時,使用者程序正在執行,則中斷硬體將程式計數器、程式狀態字、暫存器等壓入堆疊,計算機隨即跳到中斷向量所指示的位址。這些是硬體完成的所有操作,然後軟體,特別是中斷服務例程就接管一切剩餘操作。
基礎知識之作業系統實驗 三 程序互斥
標頭檔案 include 函式原型 lockf fd,mode,size 函式引數 fd 操作的檔名,如果檔案不存在,系統會建立這個檔名,其中0為鎖住鍵盤,1為鎖住顯示器 mode 鎖定方式,1表示加鎖,0表示解鎖 size fd的指定區域,用0表示從當前位置到檔案結尾 作用 對指定區域 有size...
作業系統基礎知識
最近複習自考的作業系統資料主要分為六部分介紹作業系統知識,分別為 引論 處理器管理 儲存管理 檔案管理 裝置管理和併發程序。作業系統在計算機系統硬體和軟體中起到乙個承上啟下的作用,類似於三層架構中的業務邏輯層 個人之見 最近的博文將會分章節對作業系統知識總結。引論 有關作業系統的基礎知識 什麼是作業...
作業系統 基礎知識
作業系統的定義 作業系統 operating system,os 是指控制和管理整個計算機系統的硬體與軟體資源,合理地組織 排程計算機地工作與資源地分配,進而為使用者和其他軟體提供方便介面與環境的程式集合。作業系統是計算機系統中最基本的系統軟體。2.作業系統的特徵 併發 共享 虛擬 非同步 其中最基...