1.helloworld.c 的執行過程中,計算機作業系統做了什麼?
2.作業系統的主要工作
#include int main(int argc, char *ar**)
使用者告訴作業系統執行helloworld 程式( 如何告知 ?)
作業系統:找到helloworld 程式的相關資訊, 檢查其 型別是否是可執行檔案;並通過程式首部資訊,確定** 和 資料在可執行檔案中的位置並計算出對應的磁碟塊 位址( 檔案格式?)
作業系統: 建立 乙個新 的程序,並將helloworld可執行檔案對映到該程序結構,表示由該程序執行helloworld 程式(之後的排程流程?)
作業系統:為helloworld 程式設定cpu 上下文環境,並跳到程式 開始 處( 假設排程程式選中hello 程式)
執行helloworld 程式 的 第一 條 指令,由於此時**資料還沒有調入記憶體,發生 缺頁異常
作業系統:分配 一 頁物理記憶體 ,並將**從磁碟 讀入記憶體,然後繼續執行helloworld 程式
helloworld 程式執行puts 函式( 系統呼叫 ),在顯示器上寫 一字串
作業系統:找到要將字串送往的顯示裝置,通常裝置是由 乙個程序 控制 的 ,所以,作業系統將要寫的字串送給該程序
作業系統:控制裝置的 程序告訴裝置的視窗系統它要顯示 字串,視窗系統確定這是乙個合法的操作,然後將字串轉換成 畫素, 將畫素寫入裝置的儲存 映像區
顯示器解釋訊號,激發液晶屏
ok !!!我們 在螢幕上 看到了「hello world」
程式的執行:啟動程式 、執行程式以及程式結束的工作
完成個性的工作(與硬體有關)
完成共性的工作:易於使用,基本服務,統一性
效能、安全、健壯性等問題
看完下邊的2.1再來理解這4點工作就容易多了
思考:假如沒有作業系統,怎樣將目標**送給硬體?怎樣輸出列印結果?
→ 人們將對二進位制程式操作 從二極發光管讀答案
例如:實現**中 包含儲存器的實體地址 ,或者 包含對裝置介面暫存器和裝置介面緩衝區的讀寫 等等
實現該工作的過程**和硬體因素密切相關,即需要設定與測試、使用實體地址、裝置接暫存器等等
硬體相關必然複雜繁瑣、**量大;硬體相關的工作,其實現**不通用(缺陷)
例子:有兩個要求,哪乙個更簡單易實現?
從檔案讀資料塊 和 移動磁頭、等待放下
共性:任何乙個程式都需要的、最基本的工作,它們具有共性、工作過程相同、與具體應用無直接關係(即與使用者所關心的應用目標無直接關係)
理解了上述的缺陷和共性,作業系統的作用和工作就呼之欲出了。缺陷-作用,共性-工作(部分)。
作業系統是應用軟體與現實硬體之間的軟體,如圖:
作業系統導讀 什麼是作業系統
作業系統 operating system 是管理計算機硬體的程式,它還為應用程式提供基礎,並且充當計算機硬體和計算機使用者之間的媒介。令人驚奇的是作業系統完成這些任務的方式多種多樣。大型機的作業系統設計的主要目的是為了充分優化硬體的利用率,個人計算機的作業系統是為了能支援複雜遊戲 商業應用或介於兩...
什麼是作業系統?作業系統介紹
一 作業系統介紹 作業系統是管理計算機硬體與軟體資源的電腦程式,會對計算機管理硬體 驅動硬體 管理軟體 資源分配與 作業系統也提供乙個讓使用者與系統互動的操作介面。在計算機中,作業系統是其最基本也是最為重要的基礎性系統軟體。經過幾十年以來的發展,計算機作業系統已經由一開始的簡單控制迴圈體發展成為較為...
什麼是作業系統,作業系統概述
作業系統 operating system,os 是軟體的一部分,它是硬體基礎上的第一層軟體,是硬體和其它軟體溝通的橋梁 或者說介面 中間人 中介等 作業系統會控制其他程式執行,管理系統資源,提供最基本的計算功能,如管理及配置記憶體 決定系統資源供需的優先次序等,同時還提供一些基本的服務程式,例如 ...