作業系統系列之概述

2021-08-29 04:32:54 字數 2281 閱讀 4030

對作業系統的研究已經很久了,一直以來比較喜歡這方面的東西,從現在開始,我要把我所了解的os的各個方面一一描述出來。基本的描述風格事先抽象後具體,先輪廓後細節。

os其實是乙個大家都知道一些的概念。但是我說得有可能跟傳統的說法有些不一樣,我按照我的思路和節奏說這些問題。希望大家多提意見。

說到os,一定要先從馮諾依曼抽象機器說起。馮諾依曼機器是圖靈機器加上程式存貯這個特性形成的。馮氏機器本身也像圖氏機器一樣,並沒有規定io,但是根據系統論的基本原理,我們知道乙個系統如果是封閉的,那麼就是不可知的,沒有什麼價值的,所以,現代的計算機都配備有大量的io部件。不過雖然io部件非常之多,但是由於我們的抽象機器是馮諾依曼機器,所以,我們研究os的時候並不分多少精力給io。當然,我也會講到io的。

有了計算和儲存這兩類基本的部件,我們的計算機系統基本上就算是有了基礎了,馮氏機器的儲存程式特性這時候就要大放光彩了!計算機相較之以前的其他機械,最顯著和誘人的特性就在這兒體現——程式儲存。以前的機械都是死的,固定的特性,而自從引入程式儲存,計算機這個機械就開始越過了龍門,公升入九天了。

我粗略的說說程式儲存吧。程式就是一堆指令,這些指令可以指導計算機的運算部件幹活,它們會被放到計算機的儲存部件中。同乙個計算機,給它不同的程式,它就會表現出不同的特性。

有了馮諾依曼機器,我們就可以設計我們的程式,讓計算機實現它存在的價值了,不過且慢,這裡面有一些問題需要解決。

語義鴻溝。

對於我們的問題,我們可以用人類語言描述之,甚至可以描述得很清楚,可是計算機並不懂得我們描述問題所用的語言。在計算機看來,問題很簡單,所有的問題不外是加減乘除邏輯運算等。這裡有乙個巨大的鴻溝。

複雜性問題。

這個前面的語義鴻溝有點關係,如果我們直接管理和控制馮諾依曼機器讓它幹我們希望它幹的活,就會出現複雜性問題。這個問題會讓人抓狂的。因為心理學家研究發現,乙個人同時可以關注的事情是有限的。

好,有了上面的東西墊底,我們可以討論問題了。

按照習慣,先明確幾個必要的概念。:)

沒有提到的概念要麼大家都很清楚,要麼可以查我原來的blog。

介面:乙個系統跟外界互動的通道,介面定義一套語言。通過這套語言可以跟介面後面的系統互動。

語言:一套表意的體系結構,它可以而且必須用一定的方式承載,不同的系統提供不同的語言機制。舉個簡單的例子:槓桿的語言是:你用力往下壓(告訴它乙個資訊),它幫你把某物撬起來。當然,槓桿很簡單了,一般來說,越複雜的系統的語言符號越豐富,表達的方式也越多樣化(不僅僅是簡單的機械力,可能是電磁波,聲波……什麼的)。對於人這個極端複雜的系統,語言就是我們常說的人類語言了。它(人類語言)的體系恢巨集壯麗,詞彙、語法、慣用法、……無窮無盡的範疇。它的表達方式是聲音,圖形(印刷在紙上的文字),……也是多種多樣的。一般我們跟計算機互動的時候都是採用的語言都隱喻**類語言的:)。計算機的語言通道(也就是介面)有輸入和輸出兩大類,其中,輸入是我們對計算機的控制,輸出是計算機對我們的回饋。抽象的計算機,輸入和輸出都是電訊號,也就是電子的流,所以叫做電子計算機:)。

前面說了,馮諾依曼計算機面對的問題就是可計算性問題,簡單而不精確地說,就是算術和邏輯運算問題。所以,它的語言(也就是他的介面可以理解的交流方式)也是比較簡單的,主要就是算術和邏輯運算以及一些控制計算機本身的電子訊號序列。由於我們人類很難通過這種手段直接跟計算機互動(你能發出0.0032v 的電流0.00002ms麼?),所以我們一般給計算機配上各種輸入輸出的介面卡,比如:鍵盤,滑鼠,顯示器,印表機,掃瞄器……。其實,他們很多也都是經過別的介面卡一層一層的適配到計算機主體上的。

就算我們有了io介面卡,我們也不想這樣跟計算機互動,想想我前面描述的兩個問題,語義鴻溝問題和複雜性問題。所以我們需要乙個中間層次,我們通過這個中間層次所能理解的語言跟中間層次互動,而這個中間層次把我們的意圖翻譯成計算機所能理解的語言(也就是算術邏輯和控制)。這樣,就給我們提供了乙個更友好,更豐富的系統。

這個中間層次叫做os。其實,可能會有很多別的東西,但是我這兒的焦點是os,所以就說它了。

我們仍然從os的介面開始看起,搞定它的基本概念。

os主要向上層提供乙個虛擬的機器,這個機器主要涉及到檔案和程序(包括執行緒等)這兩個主要概念。這倆概念其實是針對儲存和計算的包裝。檔案包裝了儲存系統,程序包裝了運算系統。事實證明,檔案這個概念非常強大,已經推而廣之到了io空間,甚至運算空間。os其實就是乙個以程序概念為核心,以儲存和檔案為輔助的vm。

檔案就是具名的資料。資料就是資訊的編碼。資料可以分成兩大類,一類是被動資料性的,一類是主動指令性的。程式就是那種指令性的檔案。所有的資料檔案都需要被某個程式(也就是指令檔案)解釋才有相應的意義和表現。對人來說,資料檔案是根本,程式檔案是工具,對os來說,它並不怎麼關注資料檔案(只要保證它們安安穩穩的呆在那兒就行了),它關注的是程式檔案。

我們下一節就講講os跟程式之間的關係。

作業系統之概述

作業系統的目標和功能 作業系統的分類和發展 分時作業系統 實時作業系統 網路作業系統和分布式計算機系統 個人計算機系統 作業系統的執行環境 中斷和異常的概念 中斷處理過程 控制和管理整個計算機系統的硬體與軟體資源,合理組織 排程計算機的工作與資源的分配,進而為使用者和其他軟體提供方便介面和環境的程式...

作業系統概述

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

作業系統概述

一.現代計算機系統由硬體和軟體兩部分組成.1.硬體包括處理器,暫存器,記憶體,外存及各種i o裝置.2.軟體包括系統軟體,支撐軟體和應用軟體.2.1系統軟體 作業系統 最接近硬體的一層,把硬體封裝起來,負責管理和控制計算機硬體並對其做首次擴充和改造 2.2支撐軟體層 建立在作業系統的封裝上,利用作業...