1.電腦及作業系統的發展史:
1.在電腦發展初期採用的是程式和資料的以穿孔紙帶,裝入輸入機中,然後啟動輸入機進行資料讀取並傳遞給計算機進行計算。這種工作方式可以獨佔全機,但是在資料接受和輸出時cpu
的利用不充分。
2.根據這個問題,後來研究出了聯機批處理,即磁帶處理,可以在磁帶上放多個使用者的資料進行輸入,然後在輸出,這樣提高了效率,但是cpu利用率還是低。工作流程圖如下:
3.根據上述的現象我們又研製出了離線批處理: 這個系統就是在計算機進行完計算進行資料輸出的時候就可以進行下一次輸入機的輸入,又進一步有效進行cpu的利用
4.是否有一種方法可以在cpu進行計算的時候把另乙個資料傳送進去,等這一次cpu計算完成之後,在對讀取到的下乙個資料直接進行計算,這樣更加有效的提高了cpu的利用率
這種方法叫做多道程式執行:
5.分時系統,由於cpu速度不斷提高和採用分時技術,一台計算機可以同時連線多個使用者終端,而每個使用者可以在自己的終端上連線使用計算機,好像獨佔機器一樣
2.現在的作業系統一般都是通用作業系統:
通用作業系統一般是指多道批處理系統、分時系統、實時系統。
3.多道技術:為了實現併發
當計算機中的某個cpu遇到程式中的堵塞時,會等到程式io結束後在進行重新排程,就緒後會被排程到某乙個cpu上執行,具體哪乙個是由系統的排程演算法進行決定
空間上的復用:如記憶體中有多個程式同時進行
時間上的復用:復用乙個cpu的時間片
注:遇到io切,占用cpu時間長的也要進行切,核心在於切之前要將程序中的狀態儲存下來,這樣才能保證下次切換回來時,能夠找到切走時的位置繼續執行。
4.程序:
程序就是指正在執行的程式:是乙個具有一定獨立功能的程式關於某個資料即和的一次執行活動,他是作業系統動態執行的基本單元,它既是分配單元嗎,也是基本的執行單元
5程序和程式的區分:
程式是指令和資料的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念
而程序是程式在處理機上的一次執行過過程,他是乙個動態的概念
程式可以作為一種軟體長期儲存,而程序具有一定的生命週期
程序執行在記憶體中,而程式一般儲存在硬碟中
6.程序有許多呼叫演算法:
1.先來先服務原則:fcfs排程演算法,是一種簡單的排程演算法,該演算法既可用於作業排程也可用於程序排程,fcfs演算法比較有利於長期作業的程序,而不利於短期作業的程序。
2短作業優先排程法:先處理工作量少的任務,這樣對先來的大工作量不公平
3.時間片輪轉法:不停的進行任務的切換
4多級反饋佇列:
7.並行和併發:
並行指的是兩者同時進行工作,條件是要有多個cpu
併發:是指資源有限的情況下,兩者交替輪流使用資源,在單核cpu中,a走一段後,再讓b走一段時間,b走完這段時間後,再轉給a繼續走。交替使用提高效率
並行,在微觀上也是同一時刻有多個程式在執行
併發,在巨集觀上同一時刻執行多個程式,微觀上同一時刻只有乙個程式在執行
8.程序過程中的三態圖:
9.就緒狀態:當程式已經分配給cpu以外所有必要的資源時,只要獲得處理機就可以立即執行,這時的程序狀態成為就緒狀態
10執行執行狀態:已經獲得處理機,其程式正在處理機上執行,此時的程序狀態稱為執行狀態
11.堵塞:在程序執行過程中,由於某個事件發生而無法執行時,便放棄處理處於堵塞狀態,引起程序堵塞的事件有很多:i/o完成、申請緩衝區不能滿足、sleep、recv、accept等
用程式進行演示如下:
#view code程式在進行執行狀態以後,並不是立即執行**,而是進入
#就緒狀態,等待作業系統排程後才開始執行
import time #
程式執行狀態
print('
程式開始執行
') #
程式執行狀態
name=input('
請輸入名字;
')#在這裡遇到等待使用者輸入,程式進入堵塞狀態,使用者輸入完
#之後並不是立即執行,而是進入就緒狀態,等待作業系統的排程繼續執行
print(name) #
程式執行狀態
time.sleep(1) #
程式進行堵塞狀態
print('
程式執行結束
') #執行#
結束
12.同步和非同步
所謂同步就是乙個任務的完成需要依賴另外乙個任務時,只有等待被依賴的任務完成之後,依賴的任務才能完成,這是一種可靠的任務序列,要麼都成功,要麼都失敗。兩個任務的狀態
都要保持一致
所謂非同步就是指不需要等待依賴任務的完成,只要通知被依賴的任務完成什麼樣的工作,依賴的任務也立即執行,只要自己完成整個任務就算完成了。至於被依賴的任務最終是否完成依賴
它的任務無法確定,所以他是不可靠的任務序列。
比如我們去銀行辦理業務,可能會有兩種方式:view code第一種:選擇排隊等候
第二種:選擇取乙個小紙條上面有我的號碼,等到排到我這一號由櫃檯的人通知我輪到我去辦理業務了
第一種:前者(排隊等侯)就是同步等待訊息通知,也就是我要一直等待銀行辦理業務情況;
第二種:後者(就是等待別人通知),就是非同步等待訊息通知,在一步訊息處理中,等帶訊息者,往往註冊乙個**機制,在所等待的事件被觸發時由觸發機制通過某種機制找到等待該事件的人
學習python的第三十四天 檔案
文中這段話很準確的說明了有關檔案的使用 你可以通過建立乙個file類的物件來開啟乙個檔案,分別使用file類的read readline或write方法來恰當地讀寫檔案。對檔案的讀寫能力依賴於你在開啟檔案時指定的模式。最後,當你完成對檔案的操作的時候,你呼叫close方法來告訴python我們完成了...
python第三十四課 1 匿名函式的定義和使用
演示匿名函式的定義和使用 定義無參有返回值的有名函式 deffunc return true 定義無參有返回值的匿名函式 f lambda true 呼叫有名函式執行 print func 呼叫匿名函式執行 print f 定義無參無返回值的有名函式 deffunc print true 定義無參無...
作業系統中的串程序和執行緒
程序是乙個動態概念,表示程式在乙個資料集合上的一次動態執行過程。程序包含正在執行的乙個程式的所有狀態資訊 資料 狀態暫存器 通用暫存器 系統資源 檔案 記憶體.程序可以動態建立和結束,多個程序可以併發執行,不同程序間互不影響 作業系統實現 同時程序間又相互制約,它們因訪問共享資料 資源或程序間同步而...