NCRE - 嵌入式系統開發工程師 – 作業系統(随筆)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TNwgjNwADMwITOyMDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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]
是以:檔案屬主可讀、可寫、可執行;同組使用者可讀、不可寫、可執行;其他使用者可讀、可寫、不可執行。
【--- 本篇完 ---】
聲明:由于筆者水準有限,文中錯誤和未了解到處在所難免,敬請讀者批評指正。