作業系統原理 作業系統概述

2021-10-24 07:14:16 字數 1981 閱讀 4094

1.2 作業系統的定義和作用

1.3 作業系統的主要特性

1.4典型作業系統的架構

1.5 作業系統的分類

假設有乙個簡單的c語言程式:helloworld,我們通過這個簡單程式的執行過程來看一下作業系統對這個程式的過程有哪些支援!

#include

intmain

(int argc,

char

*ar**)

這個程式的主要功能是呼叫乙個puts函式,其作用是在顯示器上顯示字串"hello world",下面看一下這個程式的執行過程。

首先啟動程式執行,使用者告訴作業系統執行helloword程式,有以下方式可以告訴作業系統執行哪個程式,比如說可以在命令列輸入命令,也可以通過滑鼠雙擊helloworld的程式圖示等等;

作業系統接到使用者請求之後,會根據使用者提供的檔名到磁碟上找到對應程式的相關資訊,找到資訊後檢查程式是否是乙個可執行檔案,有的時候乙個檔案不是可執行檔案,這時候作業系統會報錯,如果是乙個可操作檔案,則作業系統才能執行;檢查完檔案的型別後,作業系統會根據程式的首部資訊來確定**和資料在可執行檔案中的位置,並計算出相應磁碟塊的位址;

為了執行檔案,作業系統首先建立乙個新的程序,並將helloword可執行檔案對映到該程序結構,表示由該程序執行helloworld程式;

做完以上工作,作業系統便把控制權交給排程程式,我們假設排程程式正好選中了helloworld程式,那麼由作業系統為可執行檔案設定cpu上下文環境,並跳到程式開始處,準備執行這個程式,下乙個指令週期便是執行這個helloworld檔案。

當執行helloworld程式的第一條指令的時候會發生缺頁異常。我們知道,程式在執行的時候需要先將**和資料讀入記憶體,cpu才能執行;但是helloworld的**和資料還沒有讀入記憶體,這時候硬體機制就會捕獲出缺頁異常,並且把控制權交給作業系統;

作業系統管理了計算機系統中的記憶體,有很多種記憶體,如果有頁式儲存管理方案,那麼記憶體就會有很多管理頁面,作業系統的記憶體管理模組就會分配一頁空閒的物理記憶體,並且根據前面計算出的磁碟管理位址把helloworld的程式**讀入記憶體,然後繼續執行helloworld程式;有的時候程式很大,一頁記憶體不夠。因此在執行過程中會多次產生缺頁異常,會不斷從磁碟讀入程式到記憶體;

helloworld程式執行puts函式(系統呼叫),puts的作用是在標準的輸出裝置上顯示字串,標準的輸出裝置通常是顯示器等;puts實際上是系統呼叫,由作業系統完成這個功能,所以控制權又轉回給作業系統,作業系統找到要將字串送到哪乙個顯示裝置,通常這個裝置是由程序控制的,所以作業系統把要寫的字串送給程序;

控制裝置的程序會告訴控制裝置的視窗它要顯示字串,視窗系統確認這是乙個合法的操作,然後將字串轉換成畫素,將畫素寫入裝置的儲存映像區;

顯示器解釋訊號,激發液晶屏;

最後一步,我們在螢幕上看到了「hello world」;

在cpu上執行使用者程式,使用者程式會不時請求作業系統的服務,因此在cpu上時而執行的是使用者程式,時而是作業系統在執行。

helloworld程式在執行的時候需要作業系統來建立程序,因此會轉到作業系統建立程序,程序建立完之後會從作業系統返回接著執行helloword程式,出現缺頁異常之後控制權又交到作業系統,作業系統分配物理記憶體給使用者程式,然後又轉向使用者程式執行,使用者程式要執行puts程式又轉向作業系統;

以上為從使用者程式在執行過程中不斷請求作業系統服務的角度來分析的;

我們現在換乙個角度看使用者程式的執行

實際上是作業系統在執行過程中如果選中乙個程式,作業系統會通過排程執行helloworld程式,程式在執行過程中會不斷陷入缺頁異常,這樣會不斷訪問作業系統的儲存管理,然後由作業系統完成一些服務,然後通過排程再選中helloworld程式繼續執行;

從上面的介紹可以看出,在乙個程式的執行過程中,作業系統負責了程式的啟動過程,負責了程式的執行過程,同時在執行的過程中不斷為使用者程式提供各種各樣的支援;

操縱系統是計算機系統中的乙個系統軟體,是一些程式模組的集合,程式模組相互協作、相互配合完成以下功能:

作業系統 作業系統 一 作業系統概述

好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...

《作業系統 精髓與設計原理》 作業系統概述

作業系統為應用程式提供與硬體互動的介面,它的主要功能是為執行中的程式動態地分配可共享的系統資源,與之相關的研究主要涉及記憶體 程序及外設的管理和排程。相鄰層次間的介面不斷改變。一方面,原來由作業系統負責的功能被遷移到硬體中,另一方面,一些與應用程式解決的問題無關的程式化函式也被加入作業系統中 作業系...

作業系統概述

作業系統幾大管理 1 cpu管理 cpu是作業系統中最重要的部分之一。cpu管理又稱程序管理,即是如何將cpu真正地分配給每個任務。我們無法直接操控硬體,只能通過程式來控制硬體。程序排程有以下幾種主要的排程方法 a fifo b 時間片輪轉排程 c 短程序優先 類似1970年一篇 中得比率單調演算法...