1. 程式人生 > 實用技巧 >作業系統基礎知識

作業系統基礎知識

作業系統的演進

多道程式設計

多道程式設計:多道程式設計是指在計算機中同時存放多個程式;多道程式在計算機的管理程式之下相互穿插執行。
對多道程式的管理也是作業系統的重要功能。作業系統有以下五大功能:

程序管理:
    ①程序管理之程序實體;
    ②程序管理之五狀態模型;
    ③程序管理之程序同步;
    ④Linux的程序管理;
作業管理:
    ①作業管理之程序排程;
    ②作業管理之死鎖;
儲存管理
    ①儲存管理之記憶體分配與回收;
    ②儲存管理之段頁式儲存管理;
    ③儲存管理之虛擬記憶體;
    ④Linux的儲存管理;
檔案管理
    ①Linux的檔案系統;
    ②Linux檔案的基本操作;
裝置管理:
    ①作業系統的裝置管理;

作業系統概覽

What&Why
    ①作業系統是管理計算機硬體和軟體資源的計算機程式;
    ②管理配置記憶體、決定資源供需順序、控制輸入輸出裝置等;
    ③作業系統提供讓使用者和系統互動的作業系統;
    ④作業系統的種類是多種多樣的,不侷限於計算機;
    ⑤從手機到超級計算機,作業系統可簡單也可複雜;
    ⑥在不同的裝置上,作業系統可向使用者呈現多種操作手段;
    ⑦我們不可能直接操作計算機硬體;
    ⑧裝置種類繁多複雜、,需要同一介面;
    ⑨作業系統的簡易性使得更多人能夠使用計算機。

作業系統的基本功能

作業系統統一管理著計算機資源;

作業系統實現了對計算機資源的抽象;
作業系統提供了使用者與計算機之間的介面;

作業系統相關概念

併發性
  併發:是指兩個或多個事件可以在同一時刻發生;   並行:是指兩個或多個事件可以在同一時間間隔發生;

共享性:表現為作業系統的資源可供多個併發的程式共同使用;這種共同使用的形式稱之為資源共享。
多個程式可以同時使用主存資源;資源共享根據屬性可分為兩種形式:互斥共享形式,同時訪問形式;
  互斥共享形式:當資源被A佔用時,其他想使用的話只有等待;只有程序A使用完以後,其他程序才可以使用該資源。如:印表機。
  同時訪問形式:某種資源在一段時間內併發的被多個程式訪問;這種"同時"是巨集觀的,從巨集觀去看該資源可以被同時訪問。如:硬碟。

虛擬性
虛擬性-時分複用技術
    ①資源在時間上進行復用,不同程式併發使用;
    ②多道程式分時使用計算機的硬體資源;
    ③提高資源的利用率;
虛擬性-時分複用技術-虛擬處理器技術
    ①藉助多道程式設計技術;
    ②為每個程式建立程序;
    ③多個程式分時複用處理器;
虛擬性-時分複用技術-虛擬裝置技術
    ①物理裝置虛擬為多個邏輯裝置;
    ②每個程式佔用一個邏輯裝置;
    ③多個程式通過邏輯裝置併發訪問;
虛擬性-空分複用技術
    ①空分複用技術用來實現虛擬磁碟、虛擬記憶體等;
    ②提高資源的利用率,提升程式設計效率;
虛擬性-空分複用技術-虛擬磁碟技術
    ①物理磁碟虛擬為邏輯磁碟;
    ②C、D、E等邏輯盤;
    ③使用起來更加安全、方便;
虛擬性-空分複用技術-虛擬記憶體技術
    ①在邏輯上擴大程式的儲存容量;
    ②使用比實際記憶體更大的容量;
    ③大大提升程式設計效率;
非同步性
    ①在多道程式環境下,允許多個程序併發執行;
    ②程序在使用資源時可能需要等待或放棄;
    ③程序的執行並不是一氣呵成的,而是以走走停停的形式推進;

 

程序管理之程序實體

由於多道程式設計的原因:
    ①程序是系統進行資源分配和排程的基本單位;
    ②程序作為程式獨立執行的載體保障程式正常執行;
    ③程序的存在使得作業系統資源的利用率大幅提升;

識別符號:識別符號唯一標記一個程序,用於區別其他程序(程序ID就是唯一的識別符號!);
狀態:標記程序的程序狀態,如執行狀態、阻塞狀態等;
程式計數器:程式即將被執行的下一條指令的地址;
記憶體指標:程式程式碼、程序資料相關指標;
上下文資料:程序執行時處理器儲存的資料;
IO狀態資訊:被程序IO操作所佔用的檔案列表;
記賬資訊:使用處理器時間、時鐘數總和等。