1004
此文試圖回答以下問題:
為什麼需要學習作業系統?
作業系統可以拆分成哪幾個部份?
電腦程式是怎麼執行起來的?
為什麼需要學習作業系統?
答:這個問題可以換成為什麼學好編成語言需要了解作業系統?答:因為程式語言相當於是人和計算機之間的中介,我們依靠程式語言和計算機進行溝通,安排他們替我們做事。而程式語言顯然不是計算機硬體(任務直接執行者)能讀懂的,需要經過一級一級的翻譯。而其中作業系統便是連線硬體和客戶端(應用端)最重要的橋梁。舉例說來,我們平時常用的單擊雙擊拖動等滑鼠操作,鍵盤輸入漢字/字元等都是直接作用給了作業系統,作業系統經過一系列複雜的轉換將這些訊號以數碼訊號的形式傳遞給硬體。
所以,我們對計算機下達的幾乎每乙個指令都會經過作業系統,為了設計出更友好更高效的程式必須了解作業系統。
另外,因為作業系統本身也是程式,本身就蘊含著很多巧妙的設計思想。所以如果能學好作業系統的話,就意味著程式設計能力有了一定的水準。
電腦程式是怎麼執行起來的?
答:大致都會經過如下幾步:
a. 源程式經過編譯器/直譯器等變成機器語言
b. 機器語言載入到記憶體,形成運動中的程式,也就是「程序」(需要作業系統的幫助)
c. 程序被排程到cpu上執行(同樣需要作業系統幫助)
d. 然後,在cpu上執行的機器語言指令需要變成能夠在乙個個時鐘脈衝裡執行的基本操作,這需要指令集系統和硬體的支援。
注意:整個程式的執行過程實際上當然不是像上述流程那樣順次進行的,而是充滿了穿插和互動。比如硬體的執行肯定是貫穿始終的。另外,作業系統起到的平台作用也是貫穿始終的。
從中可以看出,程式的執行至少需要如下四個因素:
程式語言;
編譯系統;
作業系統;
指令集結構(計算機硬體系統)。
作業系統可以拆分為哪幾個有機的部分?
答:先**以下一下作業系統充當的角色。
像是魔術師:
把差的東西變好,複雜東西變容易,相對於裸機程式設計。
少的東西變多,虛擬記憶體抽象,使用者感覺物理記憶體無限多。
像是管理者:
cpu管理(程序管理);
記憶體管理;
外存管理;
i/o管理。
引用作業系統之哲學原理的目錄回答此問題:
第六篇:i/o原理
第五篇:檔案原理
第四篇:記憶體原理
第三篇:執行緒原理
第二篇:程序原理
作業系統原理番外篇 硬體架構
from ongoingcre 依稀記得那是乙個記得那是2011年的夏天,都已經到了穿涼拖的地步了。那個時候的自己感覺很陽光,哈哈!總是那麼的無畏,那麼的瀟灑!就這樣子,我接觸到了我們所謂的計算機原理課,那個時候感覺很是高大上,所以就一直嘗試著努力的去聽。可是貌似事與願違,課程開始了好幾個禮拜,基本...
為什麼需要作業系統
對於乙個程式而言,它為了保障自己的程式執行流暢,勢必就會要求自己分配到的資源越多越好,但是計算機的資源總是有限的,大家都自顧自搶資源的話,要麼就是大家一起跑不動,要麼就是某幾個程式把別的程式的資源都擠占掉。更麻煩的是,由於程式設計者不可能 到自己的程式會和什麼樣的別的程式同時在乙個電腦中執行,所以很...
從ucOS談,為什麼需要作業系統?
1.作業系統可以顯著降低開發難度。作業系統幫我們協調多個程式之間的耦合關係,比如我們需要將串列埠的接收到的資料顯示在一塊lcd上。傳統做法是如圖1所示 圖1.無作業系統流程 該流程中當串列埠接收到資料再呼叫lcd顯示程式將資料顯示出來,而圖2展示了一種基於作業系統的方法。在該方法中串列埠接收資料和l...