進程和阻塞


一、進程

 

  進程(Process)是保存在硬盤上的程序運行以后,會在內存空間里形成一個獨立的內存體,這個內存體有自己獨立的地址空間,有自己的堆,上級掛靠單位是操作系統。操作系統會以進程為單位,分配系統資源(CPU時間片、內存等資源),進程是資源分配的最小單位。進程是一個實體,每一個進程都有它自己的內存空間

 

 

進程和程序的區別:

  •  進程:一堆代碼
  • 程序:正在運行的程序

理論基礎:

一 操作系統的作用:
  1. 隱藏丑隨復雜的硬件接口,提供良好的抽象接口
  2. 管理調度進程並且將多個進程對硬件的競爭變得有序
二多道技術:
1.產生背員:針對單核,實現並發
  ps:
  現在的主機一般是多核,那么每個被都會利用多道技術
  有4個cpu.運行於cpu1的某個程序遇到1o阻塞,會等到:o結束再重新調度,會被調度到4個 cpu中的任意一個,具體由操作系統調度算法決定,
2.空間上的復用:如內存中同時有多道程序
3.時間上的復用:復用一個cpu的時間片
  強調:遇到1o切,占用cpu時間過長也切。核心在於切之前將進程的狀態保存下來,這樣
  才能保證下次切換回來時,能基於上次切走的位置繼續運行 
時間片:
  時間片即CPU分配給各個程序的時間,每個線程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間,使各個程序從表面上看是同時進行的。如果在時間片結束時進程還在運行,則CPU將被剝奪並分配給另一個進程。如果進程在時間片結束前阻塞或結束,則CPU當即進行切換。而不會造成CPU資源浪費。在宏觀上:我們可以同時打開多個應用程序,每個程序並行不悖,同時運行。但在微觀上:由於只有一個CPU,一次只能處理程序要求的一部分,如何處理公平,一種方法就是引入時間片,每個程序輪流執行。

三進程的特征:

  動態性:進程的實質是程序在多道程序系統中的一次執行過程,進程是動態產生,動態消亡的。

  並發性:任何進程都可以同其他進程一起並發執行

  獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位;

  異步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進

  結構特征:進程由程序、數據和進程控制塊三部分組成。

  多個不同的進程可以包含相同的程序:一個程序在不同的數據集里就構成不同的進程,能得到不同的結果;但是執行過程中,程序不能發生改變。

注意:同一個程序執行兩次,就會在操作系統中出現兩個進程,所以我們可以同時運行一個軟件,分別做不同的事情也不會混亂

 

進程調度算法

 

   先來先服務(FCFS)可用於做業調度和進程調度,有利於長作業,不利於短作業,適用於cup繁忙,不適用於I/o繁忙

 

  短作業(SJ/PF)是先執行短作業

 

   時間片輪算法和多級反饋隊列

 

 

 

 

進程的並發與並行

 

並行 : 並行是指兩者同時執行,比如賽跑,兩個人都在不停的往前跑;(資源夠用,比如三個線程,四核的CPU )

 

並發 : 並發是指資源有限的情況下,兩者交替輪流使用資源,比如一段路(單核CPU資源)同時只能過一個人,A走一段后,讓給B,B用完繼續給A ,交替使用,目的是提高效率。

 

區別:

  並行是從微觀上,也就是在一個精確的時間片刻,有不同的程序在執行,這就要求必須有多個處理器。
  並發是從宏觀上,在一個時間段上可以看出是同時執行的,比如一個服務器同時處理多個session。

 

同步異步非阻塞

 

  

 

 三種狀態

  • 就緒狀態
    • 當進程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的進程狀態稱為就緒狀態。
  • 執行/運行狀態
    • 當進程已獲得處理機,其程序正在處理機上執行,此時的進程狀態稱為執行狀態。
  • 阻塞狀態
    • 正在執行的進程,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態。引起進程阻塞的事件可有多種,例如,等待I/O完成、申請緩沖區不能滿足、等待信件(信號)等

 

同步異步

  所謂同步就是一個任務的完成需要依賴另外一個任務時,只有等待被依賴的任務完成后,依賴的任務才能算完成,這是一種可靠的任務序列。要么成功都成功,失敗都失敗,兩個任務的狀態可以保持一致。

  所謂異步是不需要等待被依賴的任務完成,只是通知被依賴的任務要完成什么工作,依賴的任務也立即執行,只要自己完成了整個任務就算完成了。至於被依賴的任務最終是否真正完成,依賴它的任務無法確定,所以它是不可靠的任務序列

 

阻塞與非阻塞

   阻塞和非阻塞這兩個概念與程序(線程)等待消息通知(無所謂同步或者異步)時的狀態有關。也就是說阻塞與非阻塞主要是程序(線程)等待消息通知時的狀態角度來說的

 

阻塞與異步結合的幾種形式

  1. 同步阻塞形式
  2. 異步阻塞形式 
  3. 同步非阻塞形式 
  4. 異步非阻塞形式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM