關於作業系統中程序、執行緒、和任務之間的關係
阿新 • • 發佈:2018-11-21
Vxworks系統中程序、執行緒和任務之間的關係
作業系統中每個程序在獨立的地址空間執行(作業系統以為只有一個程序,實際上是分時複用的),每個程序的邏輯地址為4GB(32位系統,邏輯地址的虛擬記憶體),實際不一定有4G(邏輯上作業系統以為有4G),整個電腦可能只有1G(實體記憶體,記憶體條)。實際程序使用多少,就在實體記憶體裡對應多少,虛擬記憶體和實體記憶體之間有個對映關係。
對於嵌入式而言,一般分為實時作業系統(RTOS)和非實時作業系統(OS)。RTOS主要就是實時性,在限定的時間內保持準確性。常用的有Vxworks,uCos-II,還有早期的手機;非實時的作業系統典型的就是Linux(實際linux也能做實時的),windows還有現在智慧手機。
由於RTOS作業系統沒有虛擬地址空間,直接用的是實體記憶體,那裡面的叫做任務。對於Vxworks實際上是單程序多執行緒。Vxworks只有一個程序(記憶體空間和資源分配),其任務的概念與執行緒相當。
程序、執行緒任務之間關係如圖所示,對於非實時作業系統,一般是多程序的,多工併發。Vxworks裡面實際相當於圖中的程序1,然後其中的任務1、任務2類似執行緒,每個任務包含TCB(儲存上下文)和堆疊。