天天看點

NCRE - 嵌入式系統開發工程師 – 作業系統(随筆)

NCRE - 嵌入式系統開發工程師 – 作業系統(随筆)

1、基本知識

(1)嵌入式系統的定義:以應用為中心,以計算機技術為基礎,軟硬體可裁剪,适應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

(2)嵌入式系統發展的4個階段:無作業系統階段、簡單作業系統階段、實時作業系統階段、面向Internet階段。

(3)嵌入式系統的組成:硬體層、中間層、系統軟體層、應用軟體層。

   ①硬體層:嵌入式微處理器、存儲器、通用裝置接口和I/O接口。

   ②中間層(也稱為硬體抽象層HAL或者闆級支援包BSP):它将系統上層軟體和底層硬體分離開來,使系統上層軟體開發人員無需關系底層硬體的具體情況,根據BSP層提供的接口開發即可。

      BSP有兩個特點:硬體相關性和作業系統相關性。

   ③系統軟體層:由RTOS、檔案系統、GUI、網絡系統及通用元件子產品組成。RTOS是嵌入式應用軟體的基礎和開發平台。

   ④應用軟體:由基于實時系統開發的應用程式組成。

2、重難點

Ⅰ.概念類

(1)從不同角度審視作業系統的作用

         計算機安全保護角度:提供第一道安全防線

         計算機系統的發展角度:提供虛拟機和擴充機

         計算機應用角度:提供人機互動接口

         軟體設計和開發角度:提供軟體開發基礎

(2)函數fork()

         作用:程序控制類函數。通過系統調用建立一個與原來程序幾乎完全相同的程序(子程序)。但是被建立的子程序的起始執行指令位址卻是從原程序代碼所執行fork()函數之後開始執行的。

(3)通路磁盤時間分為三部分

         尋道時間Ts,旋轉延時時間Tr,傳輸時間Tt。

         其中尋道時間和旋轉延時時間屬于機械操作,操作用時占大頭,資料傳輸時間最短。

(4)Pthread線程包中,幾個線程操作的差別

         pthread_join:等待一個特定的線程退出

         pthread_yield:線程讓出CPU

         pthread_exit:終止調用它的線程并傳回一個指向某個對象的指針

         pthread_create:使用者程式設計建立一個新的線程

(5)在虛拟頁式系統中,當需要進行頁面置換時,有關置換算法作用對象

         先進先出頁面置換算法(FIFO):将駐留在記憶體中時間最長的一頁調出

         最近最少使用頁面置換算法(LRU):最長時間未被使用過的頁面

         最近最不常用頁面置換算法(LFU):在一段時間裡被使用的次數最少的頁面

         理想頁面置換算法(OPT):置換以後不再需要的,或者在最長時間以後才可能會用到的頁面

(6)死鎖、活鎖、饑餓對應的現象(所舉例僅為了差別)

         死鎖:相關程序進入阻塞狀态,且無法喚醒

         活鎖:相關程序沒有阻塞,可被排程,但是沒有進展

         饑餓:相關程序沒有阻塞,但是排程被無限推後

(7)下列程序之間的通信方式是同步還是異步(僅一部分)

         共享記憶體:即共享緩沖區方式,緩沖區數目不為1時可同步或異步;

         消息機制:指程序間通過互相發送資訊進行通信,可同步或異步;

         管道通信:是一方程序發送另一方隻能接收,此方式隻為同步;

         套接字:是一組程序間交換資料的協定,可以是同步或異步;

(8)對于不同的系統,其排程算法的設計目标是

         ①互動式系統:較均勻的性能、較快的響應時間

         ②批處理系統:較大的吞吐量、較短的周轉時間、較高的CPU使用率

         ③實時系統:滿足截止時間要求、滿足可靠性要求

Ⅱ.計算類

(1)假設系統由相同類型的7個資源被3個程序共享,若要使系統不會死鎖,每個程序最多可以申請的資源個數是?

      解析: 假設n個程序同時請求資源(共a個同類型資源),每個程序占有m個資源,不發生死鎖的條件是

n×(m-1)﹤a

(2)頁式存儲管理方案中,若一個程序的虛拟位址空間為2GB,頁面大小為4KB。當用4位元組表示實體頁号時,頁表需要占用的頁面數?

      解析: 該程序虛拟位址空間存在的頁面數=2GB÷4KB=219=512K(頁)

                   用4位元組表示實體頁号,則頁表占219×4B=2MB

(頁表:一種特殊的資料結構,放在系統空間的頁表區,存放邏輯頁與實體頁幀的對應關系。)

                   是以,頁表占用的頁面數=2MB÷4KB=512

(3)某頁式存儲管理系統采用一級頁表。如果通路記憶體的時間為0.4us,快表的命中率為90%,請問有效通路時間是多少?

      解析: 命中率——CPU在任一時刻從Cache中可靠擷取資料的機率。命中率越高,正确擷取資料的可靠性就越大。

命中率=命中次數÷存儲器通路總次數×100%

                   分頁系統要通路兩次(一級頁表):

                   第一次要通路頁表,将頁号換成頁位址,并與偏移量相加,得出實際位址;

                   第二次要通路實際的位址。

                   則所用時間是0.8us。

                   有快表,命中率為90%,則通路時間為0.4×90%+0.8×10%=0.44us

(由于CPU以及快表本身耗用的時間沒有給出,是以假定這些時間可以忽略不計)

(4)在一個采用虛拟頁式存儲管理方案的系統中,頁面大小為50個整型變量。假設某一個程序配置設定有3個頁框,其中程式占用2個頁框并常駐記憶體。下列程式資料進行初始化時,會産生多少次缺頁中斷?

              for(i = 1; i <= 50; i++ )

                    for(j = 1; j <= 100; j++) C[i,j] = 0;

      解析: 由于程式運作需要3個頁框,而程式需要使用2個頁框來常駐記憶體,那麼就隻有一個頁框來支援換頁。在進行初始化時,數組需要的容量為50×100=5000個整型的空間,每一個頁面大小為50個整型,是以會産生5000÷50=100次缺頁中斷。

(5)下表是某頁式記憶體配置設定的情況,頁面大小為4096B,有效位為1表示該頁在記憶體。系統将邏輯位址0x0E8D、0x3010、0x411B、0x00FB、0x231E轉換為實體位址時,會發生幾次缺頁中斷?

邏輯頁号 頁框号 有效位
08000000 1
1 --------
2 08005000 1
3 --------
4 FF003000 1

      解析: 頁面大小為4096B=212,是以頁内位址共有12位,也就是須有12位位址才能表示一個大小為4096B的頁的所有位的位址。

                  五個十六進制數對應的二進制形式為:

0x0E8D:0000 1110 1000 1101

0x3010:0011 0000 0001 0000

0x411B:0100 0001 0001 1011

0x00FB:0000 0000 1111 1011

0x231E:0010 0011 0001 1110

                  由上得:将每一個二進制位址從右往左數12位即是邏輯位址的頁内位址,剩下的就是邏輯位址的頁号,然後根據上表判斷該頁号在不在記憶體中。如果在記憶體中,将邏輯位址轉換為實體位址自然是不會發生缺頁中斷的;反之,如果不在記憶體中,就會存在缺頁中斷。比如:

0x411B:0100 0001 0001 1011 

(邏輯頁号為高四位0100,即4,表中顯示邏輯頁号為4的頁在記憶體中,是以不發生缺頁中斷)

(6)假設某檔案由100個邏輯記錄組成,每個邏輯記錄長度為80個字元。磁盤空間被劃分為若幹塊,塊大小為1024個字元。若:

    ①不采用成組操作時,磁盤空間的使用率是多少?

    ②采用成組操作,且塊因子為12,那麼磁盤空間的使用率又是多少?

      解析: 隻計算每塊的使用率。不去考慮前面的“100個邏輯記錄”這句話。則

不采用成組操作:80÷1024=7.8%

采用成組操作:12×80÷1024=94%

(7)假設某檔案系統的實體結構采用類UNIX的二級索引結構。主索引表有12項,前10項給出檔案前10塊的磁盤位址,第11項給出一級索引表的位址,第12項給出二級索引表的位址。一級和二級索引表的大小均為一個磁盤塊,可存放100個磁盤位址。針對以上描述的檔案系統,一個檔案最大為多少塊?

      解析: 一級索引表可存放100個磁盤位址,則二級索引表可存放100×100。題目已給出前面的10項可存放10快,是以:10+100+100×100=10110(塊)

(8)在UNIX系統中,若檔案File1的權限是756。則檔案屬主、同組使用者、其他使用者的權利範圍?

      解析: 根據公式

x, y, z=4a+2b+c

                  式中:

                           x:檔案屬主(對應數字7);

                           y:同組使用者(對應數字5);

                           z:其他使用者(對應數字6)。

                           a:為1表示可讀,為0表示不可讀;

                           b:為1表示可寫,為0表示不可寫;

                           c:為1表示可執行,為0表示不可執行。(注:a, b, c隻能為整數!)

                                                                    4a+2b+c

                                                               [x]   1   1   1   [7]

                                                               [y]   1   0   1   [5]

                                                               [z]   1   1   0   [6]

是以:檔案屬主可讀、可寫、可執行;同組使用者可讀、不可寫、可執行;其他使用者可讀、可寫、不可執行。

【--- 本篇完 ---】

NCRE - 嵌入式系統開發工程師 – 作業系統(随筆)

聲明:由于筆者水準有限,文中錯誤和未了解到處在所難免,敬請讀者批評指正。

繼續閱讀