python可以实现操作系统管理_Python并发编程 —— 操作系统基础
1、手工操作 —— 穿孔卡片
1946年第一臺計算機誕生--20世紀50年代中期,計算機工作還在采用手工操作方式。此時還沒有操作系統的概念。
特點:
(1)用戶獨占全機。不會出現因資源已被其他用戶占用而等待的現象,但資源的利用率低。
(2)CPU 等待手工操作。CPU的利用不充分。
2、批處理 —— 磁帶存儲和批處理系統
批處理系統:加載在計算機上的一個系統軟件,在它的控制下,計算機能夠自動地、成批地處理一個或多個用戶的作業(這作業包括程序、數據和命令)。
聯機批處理系統 ——> 脫機批處理系統
特點:
?(1)它極大緩解了人機矛盾及主機與外設的矛盾。
(2)每次主機內存中僅存放一道作業,每當它運行期間發出輸入/輸出(I/O)請求后,高速的CPU便處于等待低速的I/O完成狀態,致使CPU空閑。
3、多道程序系統
第一次提出了多個程序可以同時在計算機中被計算
?·遇到IO就讓出CPU
?·把CPU讓給其他程序,讓其他程序能夠使用CPU
?·CPU的讓出這件事,占用時間
?·兩個程序之間來回在CPU上切換,不會發生混亂
?每個程序有獨立的內存空間
?每個程序在切換的前后會把當前程序的狀態記錄下來
多道程序設計技術,就是指允許多個程序同時進入內存并運行。即同時把多個程序放入內存,并允許它們交替在CPU中運行,它們共享系統中的各種硬、軟件資源。當一道程序因I/O請求而暫停運行時,CPU便立即轉去運行另一道程序。
多道程序系統的出現,標志著操作系統漸趨成熟的階段,先后出現了作業調度管理、處理機管理、存儲器管理、外部設備管理、文件系統管理等功能。
由于多個程序同時在計算機中運行,開始有了空間隔離的概念,只有內存空間的隔離,才能讓數據更加安全、穩定。
除了空間隔離之外,多道技術還第一次體現了時空復用的特點,遇到IO操作就切換程序,使得cpu的利用率提高了,計算機的工作效率也隨之提高。
特點:
(1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個后備隊列,系統按一定的調度原則每次從后備作業隊列中選取一個或多個作業進入內存運行,運行作業結束、退出運行和后備作業進入運行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。
(2)成批:在系統運行過程中,不允許用戶與其作業發生交互作用,即:作業一旦進入系統,用戶就不能直接干預其作業的運行。
(3)不提供人機交互能力,給用戶使用計算機帶來不便。雖然用戶獨占全機資源,并且直接控制程序的運行,可以隨時了解程序運行情況。但這種工作方式因獨占全機造成資源效率極低。
CPU計算和不計算(IO)操作:
IO操作(網絡操作 \ 文件操作): 輸入輸出 :相對內存
阻塞:sleep \ input \ recv \ accept \ recvfrom 是不需要CPU參與的
對文件的讀取:對硬盤的操作一次讀取相當于CPU執行90w條代碼
Input :向內存輸入數據
讀文件\ load \ input \ recv \ recvfrom \ accept \ connect \ close
Ouput :從內存中輸出數據
寫文件\ dump \ print \ send \ sendto \ accept \ connect \ close
所有的IO操作本質都是文件操作:
input \ print : input是寫入文件,然后通過讀取文件把輸入的內容加載到內存
print是直接寫入文件,然后通過文件展示給用戶看
socket中的交互方法:都是文件操作
send : 是向緩存文件中寫
recv :是從緩存文件中讀
也就是說只要涉及到IO操作,至少就是一個0.009s == 就是CPU執行90w條python代碼的時間
# 操作系統每秒500000000條指令,一般情況下一句python代碼被翻譯為5條指令
0.009s
500000000條指令/s /5 = 100000000條python代碼/s
0.009s * 100000000 = 900000條python代碼
import dis # dis 模塊可以查看python代碼被翻譯為的操作系統指令
a = 1
def func():
global a
a+=1
dis.dis(func)
4、分時系統
分時技術:把處理機的運行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。
若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其運行。由于計算機速度很快,作業運行輪轉得很快,給每個用戶的印象是,好象他獨占了一臺計算機。而每個用戶可以通過自己的終端向系統發出各種操作控制命令,在充分的人機交互情況下,完成作業的運行。
特點:
(1)多路性。若干個用戶同時使用一臺計算機。微觀上看是各用戶輪流使用計算機;宏觀上看是各用戶并行工作。
(2)交互性。用戶可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使用戶與系統進行人機對話的工作方式,明顯地有別于批處理系統,因而,分時系統又被稱為交互式系統。
(3)獨立性。用戶之間可以相互獨立操作,互不干擾。系統保證各用戶程序運行的完整性,不會發生相互混淆或破壞現象。
(4)及時性。系統可對用戶的輸入及時作出響應。分時系統性能的主要指標之一是響應時間,它是指:從終端發出命令到系統予以應答所需的時間。
時間片輪轉算法:
?時間片到了才讓出CPU
?CPU的讓出事件占用時間
?減低工作效率,提高了用戶體驗
5、實時系統
雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時信息處理兩個應用領域的需求。于是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,并在嚴格的時間范圍內完成對該事件的處理。
特點:
(1)及時響應。每一個信息接收、分析處理和發送的過程必須在嚴格的時間限制內完成。
(2)高可靠性。需采取冗余措施,雙機系統前后臺工作,也包括必要的保密措施等。
6、通用操作系統
操作系統的三種基本類型:多道批處理系統、分時系統、實時系統。
通用操作系統:具有多種類型操作特征的操作系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。
7、操作系統的進一步發展
個人計算機操作系統:個人計算機上的操作系統是聯機交互的單用戶操作系統,它提供的聯機交互功能與通用分時系統提供的功能很相似。由于是個人專用,因此一些功能會簡單一些。
網絡操作系統:在原來各自計算機操作系統上,按照網絡體系結構的各個協議標準增加網絡管理模塊,其中包括:通信、資源共享、系統安全和各種網絡應用服務。
分布式操作系統:
? (1)分布式系統要求一個統一的操作系統,實現系統操作的統一性。
(2)分布式操作系統管理分布式系統中的所有資源,它負責全系統的資源分配和調度、任務劃分、信息傳輸和控制協調工作,并為用戶提供一個統一的界面。
(3)用戶通過這一界面,實現所需要的操作和使用系統資源,至于操作定在哪一臺計算機上執行,或使用哪臺計算機的資源,則是操作系統完成的,用戶不必知道,此謂:系統的透明性。
(4)分布式系統更強調分布式計算和處理,因此對于多機合作和系統重構、堅強性和容錯能力有更高的要求,希望系統有:更短的響應時間、高吞吐量和高可靠性。
8、操作系統的作用
現代的計算機系統主要是由一個或者多個處理器,主存,硬盤,鍵盤,鼠標,顯示器,打印機,網絡接口及其他輸入輸出設備組成。
一般而言,現代計算機系統是一個復雜的系統。
其一:如果每位應用程序員都必須掌握該系統所有的細節,那就不可能再編寫代碼了(嚴重影響了程序員的開發效率:全部掌握這些細節可能需要很長很長很長時間....)
其二:并且管理這些部件并加以優化使用,是一件極富挑戰性的工作,于是,計算安裝了一層軟件(系統軟件),稱為操作系統。它的任務就是為用戶程序提供一個更好、更簡單、更清晰的計算機模型,并管理剛才提到的所有設備。
總結:
程序員無法把所有的硬件操作細節都了解到,管理這些硬件并且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是操作系統來干的,有了他,程序員就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟件的編寫就可以了,應用軟件直接使用操作系統提供的功能來間接使用硬件。
精簡的說的話,操作系統就是一個協調、管理和控制計算機硬件資源和軟件資源的控制程序。
細說的話,操作系統應該分成兩部分功能:
# 一:隱藏了丑陋的硬件調用接口,為應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口后,就不用再考慮操作硬件的細節,專心開發自己的應用程序即可。
例如:操作系統提供了文件這個抽象概念,對文件的操作就是對磁盤的操作,有了文件我們無需再去考慮關于磁盤的讀寫控制(比如控制磁盤轉動,移動磁頭讀寫數據等細節),
# 二:將應用程序對硬件資源的競態請求變得有序化
例如:很多應用軟件其實是共享一套計算機硬件,比方說有可能有三個應用程序同時需要申請打印機來輸出內容,那么a程序競爭到了打印機資源就打印,然后可能是b競爭到打印機資源,也可能是c,這就導致了無序,打印機可能打印一段a的內容然后又去打印c...,操作系統的一個功能就是將這種無序變得有序。
總結
以上是生活随笔為你收集整理的python可以实现操作系统管理_Python并发编程 —— 操作系统基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 95号汽油或进入10元时代:多家机构预测
- 下一篇: python去掉最高分和最低分_去掉一个