1. 程式人生 > >計算機作業系統的主要功能

計算機作業系統的主要功能

    作業系統的主要任務,是為多道程式的執行提供良好的執行環境。作業系統應具有這樣幾方面的功能:處理機管理,儲存器管理,裝置管理和檔案管理。此外還需提供面向使用者的介面以及面向網路的服務。

(一)處理機管理功能

 1、處理機管理功能的本質:在傳統的多道程式系統中,處理機的分配和執行都是以程序為基本單位,因而對處理機的管理          可歸結為對程序的管理;處理機管理的主要功能是建立和撤消程序(執行緒),對諸程序(執行緒)的執行進行協調,實現進 程(線            程) 之間的資訊交換,以及按照一定的演算法把處理機分配給程序(執行緒)。

  2、程序控制:為作業建立程序,撤消已結束的程序,以及控制程序在執行過程中的狀態轉換。

  3、程序同步

 (1)程序同步的作用:程序同步的主要任務是為多個程序(含執行緒)的執行進行協調。

 (2)程序同步的兩種協調方式

   1)程序互斥方式:諸程序(執行緒)在對臨界資源進行訪問時,應採用互斥方式。最簡單的用於實現程序互斥的機
   制是為每一個臨界資源配置一把鎖 W,當鎖開啟時,程序(執行緒)可以對該臨界資源進行訪問;而當鎖關上時,則禁止                  程序(執行緒)訪問該臨界資源。

    2)程序同步方式:在相互合作去完成共同任務的諸程序(執行緒)間,由同步機構對它們的執行次序加以協調。實現進                     程同步的最常用的機制則是訊號量機制

    4、程序通訊

程序通訊的任務就是用來實現在相互合作的程序之間的資訊交換。當相互合作的程序(執行緒)處於同一計算機系統                          時,通常在它們之間是採用直接通訊方式,即由源程序利用傳送命令直接將訊息(Message)掛到目標程序的訊息佇列                  上,以後由目。標程序利用接收命令從其訊息佇列中取出訊息。

    5、排程

    排程分類:作業排程、程序排程

     作業排程:作業排程的基本任務是從後備佇列中按照一定的演算法,選擇出若干個作業,為它們分配執行所需的資源(首先             是分配記憶體)。在將它們調入記憶體後,便分別為它們建立程序,使它們都成為可能獲得處理機的就緒程序,並按照一定的             演算法將它們插入

就緒佇列

    程序排程:程序排程的任務是從程序的就緒佇列中,按照一定的演算法選出一個程序,把處理機分配給它,併為它設定運               行現場,使程序投入執行。

(二)儲存器管理功能

  1、記憶體分配

  (1)作用:為每道程式分配記憶體空間;

  (2)兩種記憶體分配方式:

    動態記憶體分配:每個作業所要求的基本記憶體空間也是在裝入時確定的,但允許作業在執行過程中繼續申請新的附加內                 存空間,以適應程式和資料的動態增長,也允許作業在記憶體中“移動”。

    靜態記憶體分配:每個作業的記憶體空間是在作業裝入時確定的;在作業裝入後的整個執行期間,不允許該作業再申請                     新的記憶體空間,也不允許作業在記憶體中“移動”。

   (3)記憶體分配機制應具有的結構和功能:

    記憶體分配資料結構、記憶體分配功能、記憶體回收功能。

     2、記憶體保護

    (1)主要作用:確保每道使用者程式都只在自己的記憶體空間內執行,彼此互不干擾;絕不允許使用者程式訪問作業系統的程              序和資料;也不允許使用者程式轉移到非共享的其它使用者程式中去執行。

     (2)記憶體保護機制:設定兩個界限暫存器,分別用於存放正在執行程式的上界和下界。

     3、地址對映

 程式的邏輯地址通常從0開始,而實體地址不從0開始,因此需要一個對映轉換過程。

      4、記憶體擴充

(1)藉助於虛擬儲存技術,從邏輯上去擴充記憶體容量。

     (2)為了能在邏輯上擴充記憶體,系統必須具有記憶體擴充機制,用於實現下述各功能:

         1)請求調入功能:允許在裝入一部分使用者程式和資料的情況下,便能啟動該程式執行。在程式執行過程中,若發                      現要繼續執行時所需的程式和資料尚未裝入記憶體,可向 OS 發出請求,由 OS 從磁碟中將所需部分調入記憶體,以便                     繼續執行。

         2)置換功能:若發現在記憶體中已無足夠的空間來裝入需要調入的程式和資料時,系統應能將記憶體中的一部分暫時                       不用的程式和資料調至盤上,以騰出記憶體空間,然後再將所需調入的部分裝入記憶體。