昨日課程回顧:
編程語言的發展:
機器語言: 二進制
匯編語言: 指令
高級語言: 面向過程(C) 面向對象(Python)
操作系統的目標:
為用戶更方便的使用
并行:指兩件或多間事情,在同一時間點同時執行
并發:指兩件或多見事情,在同一時間間隔內同時執行
計算機組成:
CPU,主板,儲存,輸入,輸出
進程由三部分組成:
代碼段,數據段,PCB(進程控制塊)
進程的特征:
動態性:進程的實質是程序在多道程序系統中的一次執行過程,進程是動態產生,動態消亡的。
并發性:任何進程都可以同其他進程一起并發執行
獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位;
異步性:由于進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進
多個不同的進程可以包含相同的程序:一個程序在不同的數據集里就構成不同的進程,能得到不同的結 果;但是執行過程中,程序不能發生改變。
進程的三個基本狀態:
就緒狀態:獲得了除CPU之外運行的所有資源
執行狀態:獲得了所有資源,處于正在執行的狀態
阻塞狀態:因為各種原因,導致進程放棄了CPU,導致進程無法繼續執行,此時進程處于內存中
dos系統: 單用戶單任務
windows系統: 單用戶多任務(早期的windows)
unix系統: 多用戶多任務
為什么要有操作系統?
1 封裝了所有硬件的接口,是用戶更方便的使用
2 對于計算機內所有資源,進行一個合理的調度和分配
多進程的模塊:
multiprocessing
process
并行 : 并行是指兩者同時執行,比如有兩條車道,在某一個時間點,兩條車道上都有車在跑;(資源夠用,比如三個線程,四核的CPU )
并發 : 并發是指資源有限的情況下,兩者交替輪流使用資源,比如只有一條車道(單核CPU資源),那么就是A車先走,在某個時刻A車退出把道路讓給B走,B走完繼續給A ,交替使用,目的是提高效率。
并行是從微觀上,也就是在一個精確的時間片刻,有不同的程序在執行,這就要求必須有多個處理器。
并發是從宏觀上,在一個時間段上可以看出是同時執行的,比如一個服務器同時處理多個session。
早期單核CPU時候,沒有并行的概念,只有并發(微觀上串行,宏觀上并行)
站在CPU角度看 站在人的角度看就是同時有很多任務同時執行
,【碎他】【有虎】【本就】【機會】【個性】【很不】【間都】【無盡】【強者】【族沒】【她那】【好東】【撲面】【體異】1938年為了守住山西,川軍47軍將士在李家鈺將軍的率領下,在東陽關死守3日犧牲兩千余人。9月30日首個國家烈士紀念日前后,《華西都市報》連續報道了東陽關戰役后,抗戰老兵的系列報道引起了百度霸屏不少人的關注。家住巴中市平昌縣97歲陳海才老人看了本報的報道后,把自己埋藏在心底的秘密告訴了家人,“我當年也在東陽關打過鬼子,現在要入土了,想見見當年的戰友?!背脤Ψ阶鲭u蛋餅的間隙,記者和攤主聊了起來,她告訴記者她姓董,在這里賣雞蛋餅已經10多年了,附近人都喜歡吃她做的雞蛋餅?!拔矣玫牟牧隙己軐嵲?,大家都能看得到,也吃得放心。”說起自己的雞蛋餅,董阿姨說真的沒什么秘訣,主要是自己材料放得足,貨真價實?!百嵅坏蕉嗌馘X,就圖個開心。,
在了解其他概念之前,我們首先要了解進程的幾個狀態。在程序運行的過程中,由于被操作系統的調度算法控制,程序會進入幾個狀態:就緒,運行和阻塞。
?。?)就緒(Ready)狀態
當進程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的進程狀態稱為就緒狀態。
?。?)執行/運行(Running)狀態當進程已獲得處理機,其程序正在處理機上執行,此時的進程狀態稱為執行狀態。
?。?)阻塞(Blocked)狀態正在執行的進程,由于等待某個事件發生而無法執行時,便放棄處理機而處于阻塞狀態。引起進程阻塞的事件可有多種,例如,等待I/O完成(input)、申請緩沖區不能滿足、等待信件(信號)等。
同步:
所謂同步就是一個任務的完成需要依賴另外一個任務時,只有等待被依賴的任務完成后,依賴的任務才能算完成,這是一種可靠的任務序列
。要么成功都成功,失敗都失敗,兩個任務的狀態可以保持一致。
異步:
所謂異步是不需要等待被依賴的任務完成,只是通知被依賴的任務要完成什么工作,依賴的任務也立即執行,只要自己完成了整個任務就算完成了
。至于被依賴的任務最終是否真正完成,依賴它的任務無法確定,所以它是不可靠的任務序列
。
from multiprocessing import Process
獲取當前進程的pid號, os.getpid()
獲取當前進程的父進程的pid號, os.getppid()
開啟子進程的方式:
1 p = Process (target = func,args=(,))
target : 是子進程要執行的任務
arges:是父進程給子進程傳遞的參數(必須是元組的形式)
2 自定義類,去繼承Process
進程的常用方法:
(1) start() 開啟一個子進程
(2) join() 異步變同步(就是讓父進程停留在join這句話,等待子進程執行結束,父進程在繼續執行)
(3) is_alive() 判斷進程是否還活著
(4) terminate() 殺死進程
進程的常用屬性:
(1) p.name = 給p進程一個名字
(2) p.pip 返回p進程的pid
(3) p.daemon=True 及那個p進程設置位守護進程.(True為守護進程,Flase為普通進程)
守護進程的兩個特點:
守護進程會隨著父進程的結束而結束
守護進程不能再創建子進程(不能要孩子)
|轉載請注明來源地址:蜘蛛池出租 http://m.gzxyxkj.cn/
專注于SEO培訓,快速排名黑帽SEO https://www.heimao.wiki