【目錄】
一、引子——什么是行程
二、為什么要有作業系統
三、什么是作業系統
四、作業系統與普通軟體的區別
五、作業系統發展史
—多道技術
一、引子——什么是行程
# 顧名思義,行程即正在執行的一個程序,行程是對正在運行程式的一個抽象,
# 行程的概念起源于作業系統,是作業系統最核心的概念,也是作業系統提供的最古老也是最重要的抽象概念之一,
作業系統的其他所有內容都是圍繞行程的概念展開的,
# 所以想要真正了解行程,必須事先了解作業系統,
二、為什么要有作業系統
現代計算機系統是一個復雜的系統,
程式員無法把所有的硬體操作細節都了解到,管理這些硬體并且加以優化使用是非常繁瑣的作業,
這個繁瑣的作業就是作業系統來干的,這樣 程式員就從這些繁瑣的作業中解脫了出來,
只需要考慮自己的應用軟體的撰寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體,
三、什么是作業系統
1、作業系統的概念
作業系統,就是一個協調、管理和控制計算機硬體資源和軟體資源的控制程式,
作業系統位于計算機硬體與應用軟體之間,本質也是一個軟體(系統軟體),
作業系統由作業系統的內核(運行于內核態,管理硬體資源)以及系統呼叫(運行于用戶態,為應用程式員寫的應用程式提供系統呼叫介面)兩部分組成,所以,單純的說作業系統是運行于內核態的,是不準確的,
2、作業系統的作用
1:隱藏丑陋復雜的硬體介面,提供良好的抽象介面
(為應用程式員提供呼叫硬體資源的更好,更簡單,更清晰的模型(系統呼叫介面)),
2:管理、調度行程,并且將多個行程對硬體的競爭變得有序
四、作業系統與普通軟體的區別
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具有全新的代碼基礎)
五、作業系統發展史

1、第一代計算機(1940~1955):真空管和穿孔卡片
(1)特點: 沒有作業系統的概念 所有的程式設計都是直接操控硬體
(2)優點:程式員在申請的時間段內獨享整個資源,可以即時地除錯自己的程式(有bug可以立刻處理)
(3)缺點:浪費計算機資源,一個時間段內只有一個人用,
注意:同一時刻只有一個程式在記憶體中,被cpu呼叫執行,比方說10個程式的執行,是串行的,
2、第二代計算機*(1955~1965)*:晶體管和批處理系統
(1)特點:設計人員、生產人員、操作人員、程式人員和維護人員直接有了明確的分工,計算機被鎖在專用空調房間中,由專業操作人員運行,這便是‘大型機’,
(2)優點:批處理,節省了機時
(3)缺點:
1.整個流程需要人參與控制,將磁帶搬來搬去(中間倆小人)
2.計算的程序仍然是順序計算-》串行
3.程式員原來獨享一段時間的計算機,現在必須被統一規劃到一批作業中,等待結果和重新除錯的程序都需要等同批次的其他程式都運作完才可以(這極大的影響了程式的開發效率,無法及時除錯程式)
3、第三代計算機*(1965~1980)*:集成電路芯片和多道程式設計
(1)特點: 第三代計算機的作業系統廣泛應用了第二代計算機的作業系統沒有的關鍵技術:多道技術
如何解決第二代計算機問題的手段之一 ——分時作業系統: 多個聯機終端+多道技術
(2)多道技術
# 多道技術中的多道指的是多個程式,
多道技術的實作是為了解決多個程式競爭或者說共享同一個資源(比如cpu)的有序調度問題,
解決方式即多路復用,多路復用分為空間上的復用和時間上的復用,
#空間上的復用
將記憶體分為幾部分,每個部分放入一個程式,這樣,同一時間記憶體中就有了多道程式,(程式之間的記憶體必須分割,這種分割需要在硬體層面實作,由作業系統控制,)
#時間上的復用
當一個程式在等待i/o(input / output)時,另一個程式可以使用cpu,
如果記憶體中可以同時存放足夠多的作業,則cpu的利用率可以接近100%,
類似于我們小學數學所學的統籌方法(統籌方法,是指通過各手段改變原本的固有辦事格式,優化辦事效率的一種辦事方法),
(作業系統采用了多道技術后,可以控制行程的切換,或者說行程之間去爭搶cpu的執行權限,
這種切換不僅會在一個行程遇到io時進行,一個行程占用cpu時間過長也會切換,或者說被作業系統奪走cpu的執行權限)
4、第四代計算機**(1980~至今):個人計算機**
即使可以利用的cpu只有一個(早期的計算機確實如此),也能保證支持(偽)并發的能力,
將一個單獨的cpu變成多個虛擬的cpu(多道技術:時間多路復用和空間多路復用+硬體上支持隔離),沒有行程的抽象,現代計算機將不復存在,
參考閱讀:
https://zhuanlan.zhihu.com/p/110824253
https://www.cnblogs.com/linhaifeng/p/6295875.html
https://www.cnblogs.com/Dominic-Ji/articles/10929381.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155314.html
標籤:Python
上一篇:Node
下一篇:jieba庫使用以及好玩的詞云

