計(ji)算機四級嵌入式(shi)題庫,還有(you)易(yi)錯題總結哦
時(shi)間:2018-08-27 來源(yuan):未(wei)知
很多人都(dou)在考(kao)計算(suan)機四(si)(si)級(ji)(ji)嵌入式(shi),為的(de)(de)是(shi)有(you)(you)(you)(you)一(yi)個更好的(de)(de)工作(zuo),嵌入式(shi)四(si)(si)級(ji)(ji)四(si)(si)級(ji)(ji),聽名字就知(zhi)道他不簡單(dan),對于嵌入式(shi)四(si)(si)級(ji)(ji)來(lai)說,包含(han)的(de)(de)知(zhi)識點比較(jiao)多,有(you)(you)(you)(you)編程開發(fa)方向的(de)(de),有(you)(you)(you)(you)操作(zuo)系(xi)統方面的(de)(de)都(dou)是(shi)這(zhe)種有(you)(you)(you)(you)難度的(de)(de)題型(xing),介于這(zhe)個,我總結(jie)出了一(yi)些嵌入式(shi)四(si)(si)級(ji)(ji)題,計算(suan)機四(si)(si)級(ji)(ji)考(kao)試的(de)(de)可(ke)以(yi)來(lai)參考(kao)哦。
一、編程開發能力方向(xiang):
1、用預(yu)處理指令#define聲明(ming)一個(ge)常數(shu)(shu),用以(yi)表明(ming)一年中有多少秒(miao)(忽略閏年問題);寫一個(ge)“標準”宏MIN函數(shu)(shu),這個(ge)宏輸入(ru)兩個(ge)參數(shu)(shu)并返回較(jiao)小的一個(ge)。
2、用變量a給出(chu)下面的定義:
(1)一(yi)個(ge)整型數(An integer);
(2)一個(ge)指向(xiang)整型數的指針(A pointer to an integer);
(3)一個指(zhi)向(xiang)指(zhi)針(zhen)的(de)指(zhi)針(zhen),它指(zhi)向(xiang)的(de)指(zhi)針(zhen)是指(zhi)向(xiang)一個整型數(shu)(A pointer to a pointer to an integer);
(4)一個有10個整型數(shu)的數(shu)組(An array of 10 integers);
(5)一(yi)個(ge)有10個(ge)指(zhi)針(zhen)的數(shu)組,該(gai)指(zhi)針(zhen)是指(zhi)向一(yi)個(ge)整(zheng)型(xing)數(shu)的(A array of 10 pointers to integers);
(6)一個指向有10個整(zheng)型數組的指針(zhen)(A pointer to an array of 10 integers);
(7)一(yi)個指向函數(shu)(shu)的指針,該函數(shu)(shu)有一(yi)個整型參數(shu)(shu)并返回一(yi)個整型數(shu)(shu)(A pointer to a function that takes an integer as an argument returns an integer);
(8)一個(ge)有10個(ge)指針的數(shu)組(zu),該(gai)指針指向一個(ge)函數(shu),該(gai)函數(shu)有一個(ge)整型參數(shu)并返回一個(ge)整型數(shu)(An array of 10 pointers to functions that take an integer argument and return an integer);
3、關鍵(jian)字(zi)volatile有什么含義?并舉出(chu)三個(ge)不同(tong)的例子。
4、嵌入式系(xi)統總是要(yao)用戶對變(bian)量(liang)或寄存器進行位操(cao)作,給定一個整(zheng)型變(bian)量(liang)a,寫兩(liang)段代碼,第一個設置a 的(de)bit 3,第二(er)個清除a 的(de)bit 3,在以上操(cao)作中,要(yao)保持其他(ta)位不變(bian)。
5、嵌(qian)入式系統經(jing)常具有要(yao)求(qiu)程序員去(qu)(qu)訪(fang)問某特定的(de)內存位(wei)置的(de)特點(dian),在某工程中,要(yao)去(qu)(qu)設(she)置一(yi)絕對地址為(wei)0x67a9的(de)整型(xing)變量的(de)值(zhi)為(wei)0xaa66。編(bian)譯器是一(yi)個純粹的(de)ANSI編(bian)譯器,寫(xie)代碼去(qu)(qu)完成這一(yi)任務。
6、中斷是嵌入(ru)式系統中的(de)(de)重要組成部分,這(zhe)導致了(le)很多(duo)編譯開發商(shang)提供一種擴展(zhan)——讓(rang)標準C支持中斷,具(ju)有(you)代(dai)(dai)表性的(de)(de)是,產生一個新的(de)(de)關鍵字:__interrupt,下面(mian)的(de)(de)代(dai)(dai)碼就(jiu)使用(yong)了(le)__interrupt去定義了(le)一個中斷子程序(ISR),請評(ping)論下這(zhe)段代(dai)(dai)碼的(de)(de)__interrupt,
double compute_area(double radius) {
double area=PI*radius*radius; print f(" Area"=%f,area); return area; }
7、盡管不像非嵌(qian)(qian)入式(shi)計算機那(nei)樣常見(jian),嵌(qian)(qian)入式(shi)系(xi)統(tong)還是有(you)從堆(heap)中動態分配內存的(de)過程的(de),那(nei)么嵌(qian)(qian)入式(shi)系(xi)統(tong)中,動態分派內存可能發生(sheng)的(de)問題(ti)是什么?
8、關鍵字static 的作用是什么(me)?
9、#include 與(yu)#include "file.h"的區別? 10、請說(shuo)出(chu)const 與(yu)#define 相比,有何優點?
二、嵌入(ru)式系統編程(cheng):
1、進程與線程有什么(me)區別(bie)?
2、操(cao)作系(xi)統有(you)哪幾個特征?最主要的特征是什么(me)?虛擬存(cun)儲器有(you)哪幾個特征?
其(qi)最本(ben)質(zhi)的特征是什么?
3、庫函(han)數的(de)調用(yong)和(he)系(xi)統調用(yong)的(de)區別(bie)?
4、Linux進程間通行方式有哪幾種以及各(ge)自的特點?
5、Linux中四層網絡模(mo)型(xing)?IP的各種類型(xing)的范圍?
6、在Linux系統中,造成死鎖(suo)的(de)原因有哪些?
7、Linux網(wang)絡(luo)編程中主要使(shi)用的(de)(de)API有哪(na)些以及網(wang)絡(luo)服務器模型的(de)(de)種類(lei)? 8、簡述對Linux的(de)(de)認識(shi)(特點,優(you)勢)。
三、嵌入(ru)式平(ping)臺開發
1、bootloader 是什么?bootloader的(de)(de)stage1和stage2分(fen)別做的(de)(de)工(gong)作有哪(na)些? 2、Linux內核(he)版本命名的(de)(de)規則? 3、Linux設備(bei)文件有哪(na)幾類?
4、Linux文件系(xi)(xi)統(tong)的種類有哪些以及(ji)使用特(te)點? 5、嵌(qian)入式系(xi)(xi)統(tong)移植的主要工作步驟是什么?
四、編程能力實測(ce)
1、編寫一(yi)個C函(han)數,將“I am from shanghai”倒置為(wei)“shanghai from am I”即將句(ju)子中的單詞位置倒置,并不改(gai)變單詞內(nei)部結構。
2、請(qing)編寫一個(ge)C函數,該(gai)函數可以實現將一個(ge)整(zheng)數轉為(wei)任意進(jin)制的字符串輸出。
五、操作系統方向
1.異(yi)步環(huan)境下的(de)一組并發(fa)的(de)進(jin)程因為(wei)直接(jie)制約而相(xiang)互(hu)發(fa)送消息(xi),進(jin)行相(xiang)互(hu)合作,相(xiang)互(hu)等待,使得各進(jin)程按照一定的(de)速度執行的(de)過程稱(cheng)為(wei)進(jin)程間的(de)同步。
2.P,V操作可以(yi)實(shi)現進程(cheng)同步,進程(cheng)互(hu)斥,進程(cheng)的前驅關系,進程(cheng)共(gong)享(xiang)是屬于進程(cheng)間大量(liang)信息(xi)的交換
3.在民航(hang)訂票系(xi)(xi)統中,每個訂票點在票務服(fu)務器上發起(qi)了請(qing)求訂票進(jin)程(cheng)(cheng),這(zhe)些進(jin)程(cheng)(cheng)的(de)關系(xi)(xi)是互斥關系(xi)(xi)
4.進程間(jian)的相互(hu)制約關系(xi)如下:
相互感知程度(du) 交互關系 一(yi)個進程對其他進程的影響 潛在(zai)的控制問題
相互不感知 競爭關(guan)系 一個進(jin)程(cheng)的操作對其他(ta)進(jin)程(cheng)的結果無影響(xiang) 互斥,死(si)鎖,饑(ji)餓
間(jian)接感知(zhi) 通過共(gong)享進行協作 互斥,死鎖,饑餓,數據一致性(xing)
直接感(gan)知 通過通信進(jin)行協(xie)作(zuo)
其(qi)中間(jian)接感知 共(gong)享進(jin)行協作 進(jin)程死鎖,互斥,饑餓,數據一(yi)致性
5.不同(tong)的用戶(hu)在(zai)同(tong)一臺游(you)戲機(ji)上玩踢足(zu)球的電子游(you)戲的時(shi)候既有(you)同(tong)步(bu)關系(xi)又有(you)互斥關系(xi)
6.用P,V操作管(guan)理臨界區的(de)時候,把信號量(liang)(liang)mutex的(de)初值設(she)定(ding)為(wei)1,。當有k(k>1 )個進程在mutex的(de)等待隊(dui)列中,信號量(liang)(liang)的(de)值為(wei)-k
7.進(jin)程間通信時,已經滿的郵件槽(cao),發(fa)送進(jin)程不能再(zai)申請(qing)互斥鎖
8.共(gong)享內存適合傳送大量的信息,是非高效
9.對信(xin)(xin)號量的操作有:初始化(hua),等信(xin)(xin)號,給信(xin)(xin)號,清理
10.在訪問(wen)前必須先調用進入區(qu)代(dai)碼(ma),然后(hou)執行臨界區(qu)代(dai)碼(ma),最后(hou)執行退出區(qu)代(dai)碼(ma)
11.管道通(tong)信時同(tong)步的
12.信息緩沖(chong)通信機(ji)制(zhi)包括:信息緩沖(chong)區,消息隊列首地址,同步互斥信號量,發送(song)接收信息原語
六、最重要的:算(suan)機嵌入(ru)式四級考試易錯題
1.進程由多個線(xian)程組成,有一個線(xian)程被調度程序選(xuan)入投入運(yun)行(占(zhan)用CPU),則該(gai)進程就為運(yun)行狀態。
2.pthread_join: 等(deng)待一個特定(ding)的線程退出(chu)。
pthread_yield:表(biao)示線程(cheng)讓(rang)出CPU。(yield:讓(rang)位(wei),退位(wei))
pthread_mutex_init:創建一個互斥(chi)量。
pthread_create:創建線程(cheng)后運行該線程(cheng)。
pthread_exit:運行后主動退(tui)出。
沒調用這些函(han)數(shu)時,也沒有(you)出錯指(zhi)令,線程(cheng)執行完指(zhi)令后退出。
3.有(you)CPU資(zi)源讓出來的不(bu)一定(ding)能發生調度,但沒(mei)有(you)CPU資(zi)源讓出,則一定(ding)不(bu)會發生進程調度。
4.同步(bu)關系:異(yi)步(bu)環(huan)境下的(de)一組并發的(de)進(jin)程因(yin)直(zhi)接制約而相(xiang)互(hu)發送消(xiao)息、進(jin)行(xing)相(xiang)互(hu)合(he)作(zuo)、相(xiang)互(hu)等待,使(shi)得各進(jin)程按一定的(de)速度執行(xing)的(de)過程(流(liu)水線,無競爭(zheng));競爭(zheng)關系:公共資源,導致(zhi)競爭(zheng)。
5.有(you)K個進程在mutex(初始為1)的等(deng)待隊列,當(dang)前需(xu)要訪問臨界區的進程有(you)k+1個,此時mutex=-k。
6.p_v操作。
7.虛擬頁(ye)(ye)式存(cun)儲管理:在(zai)進程(cheng)開始運行(xing)之前不是(shi)裝(zhuang)(zhuang)入(ru)(ru)全部頁(ye)(ye)面(mian)(mian),而是(shi)裝(zhuang)(zhuang)入(ru)(ru)一個或零個頁(ye)(ye)面(mian)(mian),之后根據進程(cheng)運行(xing)的(de)需(xu)要,動(dong)態轉(zhuan)入(ru)(ru)其他頁(ye)(ye)面(mian)(mian)。當內存(cun)空間已滿(man),而又(you)需(xu)要裝(zhuang)(zhuang)入(ru)(ru)新(xin)的(de)頁(ye)(ye)面(mian)(mian)時(shi),根據某(mou)種算法置換頁(ye)(ye)面(mian)(mian),裝(zhuang)(zhuang)入(ru)(ru)新(xin)的(de)頁(ye)(ye)面(mian)(mian)。
將內存等(deng)分成大(da)小為2的冪次方(fang)的內存塊(kuai),成為頁框
系統將虛擬地址空間等分為(wei)若干頁面,大小與頁框相同(tong)
虛(xu)擬頁面在物理(li)空間上不要求連續存放
硬件機制實現邏輯地址(zhi)到(dao)物理地址(zhi)的動(dong)態(tai)轉換(huan)
虛擬頁式(shi)存儲技術的基(ji)本思(si)想(xiang)就(jiu)是(shi)利用(yong)大容量(liang)的外存來擴充(chong)內存。(使用(yong)交換技術)
8.在成功打開一個文(wen)件系統調用(yong)后,系統會給用(yong)戶返回一個文(wen)件描述符(fu)。
系(xi)統描述符在形式上是(shi)一個(ge)非負整(zheng)數。(實際上是(shi)一個(ge)索(suo)引(yin)值,指向內核為每一個(ge)進程所維(wei)護的該(gai)進程打開文(wen)(wen)(wen)(wen)件(jian)的記錄(lu)表)。當程序打開一個(ge)現有(you)文(wen)(wen)(wen)(wen)件(jian)或(huo)者創建一個(ge)新(xin)文(wen)(wen)(wen)(wen)件(jian)時,內核向進程返回一個(ge)文(wen)(wen)(wen)(wen)件(jian)描述符。(文(wen)(wen)(wen)(wen)件(jian)描述符只(zhi)在UNIX,LINUX提到)
9.指(zhi)令流(liu)水線(xian)(xian)中,最大吞吐率(lv)是(shi)指(zhi):流(liu)水線(xian)(xian)達(da)到穩(wen)定(ding)狀(zhuang)態后(hou)可以獲得的(de)吞吐率(lv)。
指(zhi)令(ling)(ling)流水(shui)線(xian)(xian)中的(de)吞吐率是指(zhi):單(dan)位時間內(nei)流水(shui)線(xian)(xian)上(shang)所完成的(de)指(zhi)令(ling)(ling)或輸出結果(guo)的(de)數量。
10.光磁(ci)記錄型可擦寫光盤的存取原理:熱磁(ci)效應。
11.8086CPU在響應(ying)INTR中(zhong)斷時,為了(le)得到(dao)指向(xiang)存放中(zhong)斷向(xiang)量的內存的實際(ji)物理地(di)址,將I/O給(gei)的中(zhong)斷類(lei)型碼乘以4。
中斷(duan)類型(xing)碼→中斷(duan)向量(左移)
中斷(duan)向量→中斷(duan)類(lei)型碼(右移)
其(qi)實也(ye)不(bu)只是這(zhe)些,還有很多,這(zhe)是我總(zong)結(jie)的(de)一部分,計算機四級嵌入式(shi)考(kao)試的(de)人都快(kuai)來看看,為自己以后的(de)考(kao)試做(zuo)好充分的(de)準備。

