操做系統簡介

操做系統簡介

爲什麼要有操做系統
    操做系統的位置
    操做系統的功能
    操做系統的發展
    多道技術html

一 爲何要有操做系統

一臺電腦爲何要有操做系統,比如你買了一個毛坯房,你得裝修吧,不裝修你能住麼,不能吧,因此操做系統就是這中起到承上啓下的做用。應用軟件的誕生就是爲了操控硬件去工做,解放勞動力,而若是一個應用程序開發人員去先了解硬件的基礎,工做原理,再來編寫軟件,那個這個時間須要多久,因此爲了減小軟件開發人員的辛苦,操做系統應運而生了。計算安裝了一層軟件(系統軟件),稱爲操做系統。它的任務就是爲用戶程序提供一個更好、更簡單、更清晰的計算機模型,並管理剛纔提到的全部設備。linux

總結:程序員沒法把全部的硬件操做細節都瞭解到,管理這些硬件而且加以優化使用是很是繁瑣的工做,這個繁瑣的工做就是操做系統來乾的,有了他,程序員就從這些繁瑣的工做中解脫了出來,只須要考慮本身的應用軟件的編寫就能夠了,應用軟件直接使用操做系統提供的功能來間接使用硬件。程序員

 

 

三 什麼是操做系統

精簡的說的話,操做系統就是一個協調、管理和控制計算機硬件資源和軟件資源的控制程序。算法

操做系統的位置shell

操做系統位於計算機硬件與應用軟件之間,本質也是一個軟件。操做系統由操做系統的內核(運行於內核態,管理硬件資源)以及系統調用(運行於用戶態,爲應用程序員寫的應用程序提供系統調用接口)兩部分組成,因此,單純的說操做系統是運行於內核態的,是不許確的。數據庫

 

細說的話,操做系統應該分紅兩部分功能編程

一:隱藏了醜陋的硬件調用接口,爲應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操做硬件的細節,專心開發本身的應用程序便可。windows

好比,磁盤資源的抽象是文件系統(C盤,D盤,E盤...下的目錄及文件),有了文件的概念,咱們直接打開文件,讀或者寫就能夠了,無需關心記錄是否應該使用修正的調頻記錄方式,以及當前電機的狀態等細節安全

    須要指出的是,操做系統的實際客戶是應用程序(應用程序員負責開發應用程序,於是也能夠說應用程序員是操做系統的客戶)。應用程序直接與操做系統及其抽象打交道。而最終,用戶則是與應用程序(即用戶接口)打交道,或者是命令行shell或者是圖形界面(好比桌面),它們都只是運行於操做系統之上的應用軟件,並不屬於操做系統。網絡

 

二:將應用程序對硬件資源的競態請求變得有序化,例如:不少應用軟件實際上是共享一套計算機硬件,比方說有可能有三個應用程序同時須要申請打印機來輸出內容,那麼a程序競爭到了打印機資源就打印,而後多是b競爭到打印機資源,也多是c,這就致使了無序,打印機可能打印一段a的內容而後又去打印c...,操做系統的一個功能就是將這種無序變得有序。

 

 

四 操做系統與普通軟件的區別

1.主要區別是:你不想用暴風影音了你能夠選擇用迅雷播放器或者乾脆本身寫一個,可是你沒法寫一個屬於操做系統一部分的程序(時鐘中斷處理程序),操做系統由硬件保護,不能被用戶修改。

2.操做系統與用戶程序的差別並不在於兩者所處的地位。特別地,操做系統是一個大型、複雜、長壽的軟件,

  • 大型:linux或windows的源代碼有五百萬行數量級。按照每頁50行共1000行的書來算,五百萬行要有100卷,要用一整個書架子來擺置,這還僅僅是內核部分。用戶程序,如GUI,庫以及基本應用軟件(如windows Explorer等),很容易就能達到這個數量的10倍或者20倍之多。
  • 長壽:操做系統很難編寫,如此大的代碼量,一旦完成,操做系統全部者便不會輕易扔掉,再寫一個。而是在原有的基礎上進行改進。(基本上能夠把windows95/98/Me看出一個操做系統,而windows NT/2000/XP/Vista則是兩位一個操做系統,對於用戶來講它們十分類似。還有UNIX以及它的變體和克隆版本也演化了多年,如System V版,Solaris以及FreeBSD等都是Unix的原始版,不過儘管linux很是依照UNIX模式而仿製,而且與UNIX高度兼容,可是linux具備全新的代碼基礎)
 

五 操做系統發展史

操做系統的發展能夠用編程語言的發展來闡述

機器語言:
    特色:用計算機能看的懂的0和1去寫程序
    優勢:程序運行速度快
    缺點:開發效率低
    
彙編語言:
    特色:用一些英文標籤代替一串二進制數字去寫程序
    優勢:比機器語言好一點,操做系統內大量使用匯編語言
          好比關於進程的調度代碼,就是用匯編寫的
    缺點:開發效率低
    
高級語言:
    特色:用人能讀懂的(英文) 字符去寫程序
    優勢:開發效率高
    缺點:必須通過翻譯才能讓計算機識別,致使運行速度慢運行速度慢

    按照翻譯的方式分爲:
        編譯型  把源程序翻譯成機器語言(生成可執行文件,好比com或exe文件),而後執行。包含彙編和連接兩個過程)
        解釋型  解釋執行:把一行源程序翻譯成機器語言,而後執行;再翻譯下一行源程序成機器語言,而後執行。(翻譯一句,執行一次。不生成可執行文件)

第三代計算機的操做系統普遍應用了第二代計算機的操做系統沒有的關鍵技術:多道技術

cpu在執行一個任務的過程當中,若須要操做硬盤,則發送操做硬盤的指令,指令一旦發出,硬盤上的機械手臂滑動讀取數據到內存中,這一段時間,cpu須要等待,時間可能很短,但對於cpu來講已經很長很長,長到可讓cpu作不少其餘的任務,若是咱們讓cpu在這段時間內切換到去作其餘的任務,這樣cpu不就充分利用了嗎。這正是多道技術產生的技術背景

多道技術(詳見第七節):

多道技術中的多道指的是多個程序,多道技術的實現是爲了解決多個程序競爭或者說共享同一個資源(好比cpu)的有序調度問題,解決方式即多路複用,多路複用分爲時間上的複用和空間上的複用。

空間上的複用:將內存分爲幾部分,每一個部分放入一個程序,這樣,同一時間內存中就有了多道程序。

 

時間上的複用:當一個程序在等待I/O時,另外一個程序可使用cpu,若是內存中能夠同時存放足夠多的做業,則cpu的利用率能夠接近100%,相似於咱們小學數學所學的統籌方法

空間上的複用最大的問題是:程序之間的內存必須分割,這種分割須要在硬件層面實現,由操做系統控制。若是內存彼此不分割,則一個程序能夠訪問另一個程序的內存,

首先喪失的是安全性,好比你的qq程序能夠訪問操做系統的內存,這意味着你的qq能夠拿到操做系統的全部權限。

其次喪失的是穩定性,某個程序崩潰時有可能把別的程序的內存也給回收了,比方說把操做系統的內存給回收了,則操做系統崩潰。

 

分時操做系統:
多個聯機終端+多道技術

20個客戶端同時加載到內存,有17在思考,3個在運行,cpu就採用多道的方式處理內存中的這3個程序,因爲客戶提交的通常都是簡短的指令並且不多有耗時長的,索引計算機可以爲許多用戶提供快速的交互式服務,全部的用戶都覺得本身獨享了計算機資源

CTTS:麻省理工(MIT)在一臺改裝過的7094機上開發成功的,CTSS兼容分時系統,第三代計算機普遍採用了必須的保護硬件(程序之間的內存彼此隔離)以後,分時系統纔開始流行

MIT,貝爾實驗室和通用電氣在CTTS成功研製後決定開發可以同時支持上百終端的MULTICS(其設計者着眼於建造知足波士頓地區全部用戶計算需求的一臺機器),很明顯真是要上天啊,最後摔死了。

後來一位參加過MULTICS研製的貝爾實驗室計算機科學家Ken Thompson開發了一個簡易的,單用戶版本的MULTICS,這就是後來的UNIX系統。基於它衍生了不少其餘的Unix版本,爲了使程序能在任何版本的unix上運行,IEEE提出了一個unix標準,即posix(可移植的操做系統接口Portable Operating System Interface)

後來,在1987年,出現了一個UNIX的小型克隆,即minix,用於教學使用。芬蘭學生Linus Torvalds基於它編寫了Linux

 

 

六 本節重點知識總結

 

一:操做系統的倆大做用

做用一:爲應用程序提供如何使用硬件資源的抽象
    做用二:把多個程序對硬件的競爭變的有序化(管理應用程序)
 

二:多路複用

現代計算機或者網絡都是多用戶的,多個用戶不只共享硬件,並且共享文件,數據庫等信息,共享意味着衝突和無序。

操做系統主要使用來

1.記錄哪一個程序使用什麼資源

2.對資源請求進行分配

3.爲不一樣的程序和用戶調解互相沖突的資源請求。

咱們可將上述操做系統的功能總結爲:處理來自多個程序發起的多個(多個即多路)共享(共享即複用)資源的請求,簡稱多路複用

多路複用有兩種實現方式

1.時間上的複用

當一個資源在時間上覆用時,不一樣的程序或用戶輪流使用它,第一個程序獲取該資源使用結束後,在輪到第二個。。。第三個。。。

例如:只有一個cpu,多個程序須要在該cpu上運行,操做系統先把cpu分給第一個程序,在這個程序運行的足夠長的時間(時間長短由操做系統的算法說了算)或者遇到了I/O阻塞,操做系統則把cpu分配給下一個程序,以此類推,直到第一個程序從新被分配到了cpu而後再次運行,因爲cpu的切換速度很快,給用戶的感受就是這些程序是同時運行的,或者說是併發的,或者說是僞並行的。至於資源如何實現時間複用,或者說誰應該是下一個要運行的程序,以及一個任務須要運行多長時間,這些都是操做系統的工做。

2.空間上的複用

每一個客戶都獲取了一個大的資源中的一小部分資源,從而減小了排隊等待資源的時間。

例如:多個運行的程序同時進入內存,硬件層面提供保護機制來確保各自的內存是分割開的,且由操做系統控制,這比一個程序獨佔內存一個一個排隊進入內存效率要高的多。

有關空間複用的其餘資源還有磁盤,在許多系統中,一個磁盤同時爲許多用戶保存文件。分配磁盤空間而且記錄誰正在使用哪一個磁盤塊是操做系統資源管理的典型任務。

這兩種方式合起來即是多道技術


多道技術:(多道指的是多道/個程序)
    空間上的複用:內存中進入多個程序
    PS:內存必須實現物理級別的隔離
    時間上的複用:cpu要切換:
                    1. 一個程序佔用cpu的時間過長
                    2. 一個程序遇道了IO阻塞

                   

 操做系統的發展能夠用三句話來講明

運行效率從高到低
    開發效率從低到高
    學習難度從難到易
   

以上內容來自於

相關文章
相關標籤/搜索