標籤:根據 申請 之一 div 就是 python 伺服器 機制 port
作業系統
分時系統
由於CPU速度不斷提高和採用分時技術,一台電腦可同時串連多個使用者終端,而每個使用者可在自己的終端上聯機使用電腦,好象自己獨佔機器一樣。
分時技術:把處理機的已耗用時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。
特點:
(1)多路性。若干個使用者同時使用一台電腦。微觀上看是各使用者輪流使用電腦;宏觀上看是各使用者並行工作。
(2)互動性。使用者可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使使用者與系統進行人機對話的工作方式,明顯地有別於批處理系統,因而,分時系統又被稱為互動式系統。
(3)獨立性。使用者之間可以相互獨立操作,互不干擾。系統保證各使用者程式啟動並執行完整性,不會發生相互混淆或破壞現象。
(4)及時性。系統可對使用者的輸入及時作出響應。分時系統效能的主要指標之一是回應時間,它是指:從終端發出命令到系統予以應答所需的時間。
即時系統
即時作業系統的主要特點:
(1)及時響應。每一個資訊接收、分析處理和發送的過程必須在嚴格的時間限制內完成。
(2)高可靠性。需採取冗餘措施,雙機系統前後台工作,也包括必要的保密措施等。
分時——現在流行的PC,伺服器都是採用這種運行模式,即把CPU的運行分成若干時間片分別處理不同的運算請求 linux系統
即時——一般用於單片機上、PLC等,比如電梯的上下控制中,對於按鍵等動作要求進行即時處理
UNIX作業系統是一個通用的多使用者分時互動型的作業系統
作業系統就是一個協調、管理和控制電腦硬體資源和軟體資源的控製程序。
作業系統的作用:
1:隱藏醜陋複雜的硬體介面,提供良好的抽象介面
2:管理、調度進程,並且將多個進程對硬體的競爭變得有序
進程的概念和特徵
進程的定義
在講進程前首先要弄明白什麼是程式:程式(Program)是為實現特定目標或解決特定問題而用電腦語言編寫的命令序列的集合,必須python就是個程式
- 進程是程式的一次執行過程。
- 進程是一個程式及其資料在處理機上順序執行時所發生的活動。
- 進程是具有獨立功能的程式在一個資料集合上啟動並執行過程,它是系統進行資源分派和調度的一個獨立單位。
進程的並行和並發
並行 : 並行是指兩者同時執行,比如賽跑,兩個人都在不停的往前跑;(資源夠用,比如三個線程,四核的CPU )
並發 : 並發是指資源有限的情況下,兩者交替輪流使用資源,比如一段路(單核CPU資源)同時只能過一個人,A走一段後,讓給B,B用完繼續給A ,交替使用,目的是提高效率。
進程同步和非同步
所謂同步就是一個任務的完成需要依賴另外一個任務時,只有等待被依賴的任務完成後,依賴的任務才能算完成,這是一種可靠的工作順序。要麼成功都成功,失敗都失敗, 兩個任務的狀態可以保持一致。
所謂非同步是不需要等待被依賴的任務完成,只是通知被依賴的任務要完成什麼工作,依賴的任務也立即執行,只要自己完成了整個任務就算完成了。至於被依賴的任務最終是否真正完成,依賴它的任務無法確定,所以它是不可靠的工作順序。
進程的特徵
進程是由多程式的並發執行而引出的,它和程式是兩個截然不同的概念。進程的基本特徵是對比單個程式的順序執行提出的,也是對進程管理提出的基本要求。
- 動態性:進程的實質是程式在多道程式系統中的一次執行過程,進程是動態產生,動態消亡的。
- 並發性:任何進程都可以同其他進程一起並發執行
- 獨立性:進程是一個能獨立啟動並執行基本單位,同時也是系統分配資源和調度的獨立單位;
- 非同步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進
- 結構特徵:進程由程式、資料和進程式控制制塊三部分組成。
多個不同的進程可以包含相同的程式:一個程式在不同的資料集裡就構成不同的進程,能得到不同的結果;但是執行過程中,程式不能發生改變
進程狀態的轉換
進程在其生命週期內,由於系統中各進程之間的相互制約關係及系統的運行環境的變化,使得進程的狀態也在不斷地發生變化(一個進程會經曆若干種不同狀態)。通常進程有以下五種狀態,前三種是進程的基本狀態。
1) 運行狀態:進程正在處理機上運行。在單處理機環境下,每一時刻最多隻有一個進程處於運行狀態。
2) 就緒狀態:進程已處於準備啟動並執行狀態,即進程獲得了除處理機之外的一切所需資源,一旦得到處理機即可運行。
3) 阻塞狀態,又稱等待狀態:進程正在等待某一事件而暫停運行,如等待某資源為可用(不包括處理機)或等待輸入/輸出完成。即使處理機空閑,該進程也不能運行。
4) 建立狀態:進程正在被建立,尚未轉到就緒狀態。建立進程通常需要多個步驟:首先申請一個空白的PCB,並向PCB中填寫一些控制和管理進程的資訊;然後由系統為該進程分配運行時所必需的資源;最後把該進程轉入到就緒狀態。
5) 結束狀態:進程正從系統中消失,這可能是進程正常結束或其他原因中斷退出運行。當進程需要結束運行時,系統首先必須置該進程為結束狀態,然後再進一步處理資源釋放和回收等工作。
注意區別就緒狀態和等待狀態:就緒狀態是指進程僅缺少處理機,只要獲得處理機資源就立即執行;而等待狀態是指進程需要其他資源(除了處理機)或等待某一事件。之所以把處理機和其他資源劃分開,是因為在分時系統的時間片輪轉機制中,每個進程分到的時間片是若干毫秒。也就是說,進程得到處理機的時間很短且非常頻繁,進程在運行過程中實際上是頻繁地轉換到就緒狀態的;而其他資源(如外設)的使用和分配或者某一事件的發生(如I/O操作的完成)對應的時間相對來說很長,進程轉換到等待狀態的次數也相對較少。這樣來看,就緒狀態和等待狀態是進程生命週期中兩個完全不同的狀態,很顯然需要加以區分。
五種狀態的轉換
就緒狀態----->>>運行狀態:處於就緒狀態的進程被調度後,獲得處理機資源(指派處理機時間片),於是進程由就緒狀態轉換為運行狀態。
運行狀態----->>>就緒狀態:處於運行狀態的進程在時間片用完後,不得不讓出處理機,從而進程由運行狀態轉換為就緒狀態。此外,在可剝奪的作業系統中,當有更高優先順序的進程就緒時,調度程度將正執行的進程轉換為就緒狀態,讓更高優先順序的進程執行。
運行狀態----->>>阻塞狀態:當進程請求某一資源(如外設)的使用和分配或等待某一事件的發生(如I/O操作的完成)時,它就從運行狀態轉換為阻塞狀態。進程以系統調用的形式請求作業系統提供服務,這是一種特殊的、由運行使用者態程式叫用作業系統核心過程的形式。
阻塞狀態----->>>就緒狀態:當進程等待的事件到來時,如I/O操作結束或中斷結束時,中斷處理常式必須把相應進程的狀態由阻塞狀態轉換為就緒狀態。
python中的進程
進程的建立與結束
from multiprocess import Processprocess(target= 子進行的函數名 ,args=參數) def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):強調:1. 需要使用關鍵字的方式來指定參數2. args指定的為傳給target函數的位置參數,是一個元組形式,必須有逗號參數介紹:1 group參數未使用,值始終為None2 target表示調用對象,即子進程要執行的任務3 args表示調用對象的位置參數元組,args=(1,2,‘egon‘,)4 kwargs表示調用對象的字典,kwargs={‘name‘:‘egon‘,‘age‘:18}5 name為子進程的名稱
電腦作業系統的進程和線程