1. 程式人生 > >現代作業系統-引論

現代作業系統-引論

1,作業系統對資源的管理主要有時間複用和空間複用兩種方式

     時間複用舉例:每個程序在指定時間段內使用CPU

     空間複用舉例:記憶體空間多個程序之間共享

2,虛擬記憶體機制使得程式需要的記憶體大於實體記憶體成為可能,其方法是把程式存放在磁碟上,把記憶體當做快取,用來儲存最頻繁          使用的部分程式,這種機制需要快速的對映記憶體地址,以便把程式生成的地址快速轉換為有關位元組在RAM中的實體地址,這種        映像由CPU的一個部件MMU來完成,MMU(memory management unit)。

3, I/O裝置

      IO裝置一般都有儲存本身+控制器組成,控制器可以理解為對儲存的一種抽象,使使用者更容易的使用IO的儲存。

     每個裝置控制器都有少量的用於通訊的暫存器:指定磁碟地址,記憶體地址,扇區計數和方向(讀或者寫),多有的暫存器的集合

     構成了所謂的IO埠空間。

     實現對於IO裝置的輸入輸出的方式有三種(兩大類):

     a,輪詢方式:

           使用者程式發出一個系統呼叫,系統呼叫由核心轉換為對應裝置的驅動程式的過程呼叫,裝置驅動程式啟動IO並在一個迴圈中 一直檢測過程執行結束狀態,IO結束後,裝置驅動程式會把資料放到指定記憶體地址中(如果有需要),作業系統將控制返回給呼叫者,這種就是輪詢方式,目前DPDK就是使用該方式(當IO量特別大的時候,忙等待比起程序之間的切換來說是一個相對更快的操作?)

   b,中斷方式:

   b1,程序或者執行緒的IO請求到裝置驅動程式後,裝置驅動程式把IO請求寫到裝置控制暫存器中之後就返回,也就意味中使用者呼叫返回,作業系統會阻塞該程序,並且排程其它程序使用CPU。IO控制器根據裝置控制暫存器來啟動IO裝置,執行對應操作,執行完成之後會通知中斷控制器,中斷控制器通知CPU,並且把中斷訊號放到總線上面,CPU讀取執行對應中斷程式。

b2,DMA方式

     b1方式CPU在驅動程式把指令寫到IO裝置的控制暫存器之後才返回,DMA(direct memory access)晶片可以直接控制記憶體和IO裝置的暫存器,不需要CPU後面持續的干預,CPU把指令發給DMA,DMA會接管接下來的動作,節省CPU時間,DMA完成之後也是發中斷通知CPU。