首先先補充一下上一篇的一個小問題。
應用程式的啟動流程:
前提:應用程式是執行於作業系統之上的
舉例:啟動暴風音影
1.雙擊快捷方式
2.告訴作業系統一個檔案路徑
3.作業系統從硬碟讀取檔案內容到記憶體中
4.cpu從記憶體讀取資料執行
下面開始今天的課程:
一、作業系統發展史及多道技術
1.第一代計算機(1940~1955):真空管和穿孔卡片
特點:沒有作業系統的概念,所有的程式設計都是直接操控硬體。
優點:每個人獨享,可以自己除錯程式碼,找到bug。
缺點:浪費計算機資源。
2.第二代就算機(1955~1965):電晶體和批處理系統
特點:把程式碼都贊到一塊,讓一個CPU共享,但是還是一個一個的去執行,還是順序演算法(序列)
優點:批處理,節省了機時。
缺點:有人的參與了,搬過來搬過去的麻煩,拖慢程式執行的速度
3.第三代計算機(1965~1980):積體電路晶片和多道程式設計
第三代計算機的作業系統廣泛應用了第二代計算機的作業系統沒有的關鍵技術:多道技術
多道技術:(指的是多道/個程式)
1.空間上的複用:記憶體要支援同時跑進多個程式
2.時間上的複用:多個程式要讓它們能切換(什麼時候要切?一個程式佔用的時間過長要切;當CPU遇到IO阻塞時,等待的時間要切)
4.第四代計算機(1980~至今):個人計算機
二、為什麼要使用作業系統呢?
程式設計師無法把所有的硬體操作細節都瞭解到,管理這些硬體並且加以最佳化使用是非常繁瑣的工作,這個繁瑣的工作就是作業系統來乾的,有了他,程式設計師就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體。
三、作業系統的兩大作用
1.為應用程式提供如何使用硬體資源的抽象
2.把多個程式對硬體的競爭變得有序化(管理應用程式)
四、計算機語言的分類
機器語言:
特點:用計算機能看懂的0和1去寫程式
優點:程式執行速度快
缺點:開發效率低
組合語言:
特點:用一些英文標籤代替一串二進位制數字去寫程式
優點:比機器語言好一點,作業系統內使用大量組合語言(作業系統不需要網路,則速度越來越好)
比如:關於程序的呼叫程式碼,就是用匯編語言寫的
缺點:開發效率低
高階語言:
特點:用人能讀懂的(英文)字元去寫程式
優點:開發效率高
缺點:執行速度慢,必須經過翻譯才能讓計算機識別,導致執行速度慢
以上得出結論:開發效率從低到高,執行速度從低到高,學習難度由難到易。