標籤:隔離 儲存 將不 抽象 退出 重要 jin 本地變數 獨立
# 理論知識#作業系統基礎知識#顧名思義,進程即正在執行的一個過程.進程是對正在運行程式的一個抽象#進程的概念起源於作業系統,是作業系統最核心的概念,也是作業系統提供的最#古老也是最重要的抽象概念之一.作業系統的其他所有內容都是圍繞進程的概念#展開的>#ps:利用cpu自有一個,也能保證支援並發的能力.將一個單獨的cpu變成多個虛擬cpu #(多道技術:時間多工和空間多工+硬體隔離),沒有進程的抽象,現代電腦將不複存在.# 必備基礎理論: #作業系統的作用: #1.隱藏醜陋複雜的硬體介面,提供良好的抽象介面 #2.管理,調度進程,並且將多個進程對硬體的競爭變的有序 #多道技術: #1.產生背景:針對單核,實現並發 #2.空間上的複用:如記憶體中同時有多道程式 #3.時間上的複用:複用一個cpu的時間片(來回切換)# 什麼是進程#進程是(Process)是電腦中的程式關於某資料集合上的一次運行活動,是系統進行資源分派#和調度的基本單位,是作業系統結構的基礎.在早期,進程是程式的基本執行實體,在當代,進程是線程的#容器.程式是指令,資料及其組織形式的描敘,進程是程式的實體.#狹義定義:進程是正在啟動並執行程式的執行個體>#廣義定義:進程是一個具有一定獨立功能的程式關於某個資料集合的一次運行活動.他是作業系統動態執行的 #基本單元,在傳統的作業系統中,進程即是基本的配置單位,也是基本的執行單元.#進程的概念: #1.進程是一個實體.每一個進程都有它自己的地址空間,一般情況下,包括三個:文本地區,資料,推棧 # 文本地區就是代碼,資料區域就是儲存變數和執行期間使用的動態分配的記憶體, # 堆棧地區儲存著活動調用的指令和本地變數 #2.進程是一個執行中的程式.程式是沒有生命的實體,只有處理器賦予程式生命時 #它才能成為一個活動的實體,我們稱為進程/#作業系統引入進程概念的原因: #從理論角度看,是對正在啟動並執行程式過程的抽象; # 從實現角度看,是一種資料結構,目的在於清晰地刻畫動態系統的內在規律, # 有效管理和調度進入電腦系統主儲存空間啟動並執行程式。#進程的特徵: #動態性:實質是程式在多道程式系統中的一次執行過程,進程是動態產生,動態消忙 #並發性:任何進程都可以同其它進程一起並發執行. #獨立性: 進程是一個獨立啟動並執行基本單位,同時也是系統調度和分配資源的獨立單位 #非同步性: 進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立,不可預知的速度向前推動 #結構特徵: 程式,資料,進程式控制制塊#進程和程式中的區別: #程式是指令和資料的有序集合,是一個靜態概念 #而進程是程式在處理器上的一次執行過程,它是一個動態概念 #程式可以作為一種軟體資料永久儲存,而進程是有一定的生命週期. #程式的永久的,進程是短暫的.#進程的調度: #當多個程式交替運行時,作業系統必須對這些進程進行調度,這個調度也不是隨機的,而是要遵循一定的原則 #先來先服務調度演算法: #短作業優先調度演算法: #時間片輪轉法: #多級反饋隊列:#進程的並發和並行: #並發:只資源有限的情況下,兩者交替使用資源(比如單核cpu) #並行:兩者同時執行 #注意兩者區別: #並行是從微觀上,在一個精準的時間,有不同的程式執行 #並發是從宏觀上,在一段時間上看出是同時執行#同步非同步阻塞和非阻塞#建立--->提交---> 就緒(除了cpu分配到了其他所有必須的資源)---->>進程調度-->>運行--->>釋放>..退出# --------<<時間片到<<運行# # 阻塞# 就緒狀態:進程分配到了程式除cpu以外的所有必須資源,只要獲得cpu,立即執行.# 執行狀態:程式在處理器上執行的狀態# 阻塞狀態:正在執行的程式,由於等待某件事情發生而無法執行,便放棄處理器而處於阻塞狀態,如i/o 等待訊號等# 同步和非同步#同步:一個任務的完成必需依賴另外一個任務是,只有等待被依賴的任務完成,依賴的任務才算完成,這是一種可 #靠的工作順序.同時成功,或者同時失敗,兩個任務的狀態可以保持一致.#非同步: 不需要依賴等待的任務完成,只是通知被依賴的任務要完成什麼工作,依賴的任務也立即執行 #只要自己的任務完成整個任務完成,至於被依賴的任務是否完成,無法確定,它是不可靠的工作順序#阻塞和非阻塞: #阻塞和非阻塞這兩個概念與程式(線程)等待訊息通知(無所謂同步或者非同步)時的狀態有關。 #也就是說阻塞與非阻塞主要是程式(線程)等待訊息通知時的狀態角度來說的#同步/非同步與阻塞/非阻塞 #1.同步阻塞形式:效率低,就是專心排隊,什麼別的事情都不做 #2.非同步阻塞形式:銀行的人辦業務,一個人領到一張排隊字條,這個人只能等待不能去做其它事情 #3.同步非阻塞形式:一邊打電話和一邊觀察排隊(兩者來回切換),效率低下 #4.非同步非阻塞形式:效率高.一邊打電話等待的事情,一邊等待銀行叫號等待通知,兩種不同操作中來回切換 #進程的建立和結束 #進程的建立 #凡是硬體都需作業系統去管理,只要有作業系統,就有進程的概念,就需要去建立進程, # 主要有四種建立方式: #1.系統初始化 #2.一個進程在運行過程中開啟子進程 #3.使用者的互動請求,而建立一個新jinc #4.一個批次工作的初始化(在大型主機的批處理系統中應用)#進程的結束 #1.正常退出 #2.出錯退出 #3.嚴重錯誤 #4.被其他進程殺死
python進程基礎