當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 入門指導(dǎo) > 計(jì)算機(jī)四級(jí)嵌入式題庫(kù),還有易錯(cuò)題總結(jié)哦
很多人都在考計(jì)算機(jī)四級(jí)嵌入式,為的是有一個(gè)更好的工作,嵌入式四級(jí)四級(jí),聽(tīng)名字就知道他不簡(jiǎn)單,對(duì)于嵌入式四級(jí)來(lái)說(shuō),包含的知識(shí)點(diǎn)比較多,有編程開發(fā)方向的,有操作系統(tǒng)方面的都是這種有難度的題型,介于這個(gè),我總結(jié)出了一些嵌入式四級(jí)題,計(jì)算機(jī)四級(jí)考試的可以來(lái)參考哦。
一、編程開發(fā)能力方向:
1、用預(yù)處理指令#define聲明一個(gè)常數(shù),用以表明一年中有多少秒(忽略閏年問(wèn)題);寫一個(gè)“標(biāo)準(zhǔn)”宏MIN函數(shù),這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。
2、用變量a給出下面的定義:
(1)一個(gè)整型數(shù)(An integer);
(2)一個(gè)指向整型數(shù)的指針(A pointer to an integer);
(3)一個(gè)指向指針的指針,它指向的指針是指向一個(gè)整型數(shù)(A pointer to a pointer to an integer);
(4)一個(gè)有10個(gè)整型數(shù)的數(shù)組(An array of 10 integers);
(5)一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù)的(A array of 10 pointers to integers);
(6)一個(gè)指向有10個(gè)整型數(shù)組的指針(A pointer to an array of 10 integers);
(7)一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)(A pointer to a function that takes an integer as an argument returns an integer);
(8)一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)(An array of 10 pointers to functions that take an integer argument and return an integer);
3、關(guān)鍵字volatile有什么含義?并舉出三個(gè)不同的例子。
4、嵌入式系統(tǒng)總是要用戶對(duì)變量或寄存器進(jìn)行位操作,給定一個(gè)整型變量a,寫兩段代碼,第一個(gè)設(shè)置a 的bit 3,第二個(gè)清除a 的bit 3,在以上操作中,要保持其他位不變。
5、嵌入式系統(tǒng)經(jīng)常具有要求程序員去訪問(wèn)某特定的內(nèi)存位置的特點(diǎn),在某工程中,要去設(shè)置一絕對(duì)地址為0x67a9的整型變量的值為0xaa66。編譯器是一個(gè)純粹的ANSI編譯器,寫代碼去完成這一任務(wù)。
6、中斷是嵌入式系統(tǒng)中的重要組成部分,這導(dǎo)致了很多編譯開發(fā)商提供一種擴(kuò)展——讓標(biāo)準(zhǔn)C支持中斷,具有代表性的是,產(chǎn)生一個(gè)新的關(guān)鍵字:__interrupt,下面的代碼就使用了__interrupt去定義了一個(gè)中斷子程序(ISR),請(qǐng)?jiān)u論下這段代碼的__interrupt,
double compute_area(double radius) {
double area=PI*radius*radius; print f(" Area"=%f,area); return area; }
7、盡管不像非嵌入式計(jì)算機(jī)那樣常見(jiàn),嵌入式系統(tǒng)還是有從堆(heap)中動(dòng)態(tài)分配內(nèi)存的過(guò)程的,那么嵌入式系統(tǒng)中,動(dòng)態(tài)分派內(nèi)存可能發(fā)生的問(wèn)題是什么?
8、關(guān)鍵字static 的作用是什么?
9、#include 與#include "file.h"的區(qū)別? 10、請(qǐng)說(shuō)出const 與#define 相比,有何優(yōu)點(diǎn)?
二、嵌入式系統(tǒng)編程:
1、進(jìn)程與線程有什么區(qū)別?
2、操作系統(tǒng)有哪幾個(gè)特征?最主要的特征是什么?虛擬存儲(chǔ)器有哪幾個(gè)特征?
其最本質(zhì)的特征是什么?
3、庫(kù)函數(shù)的調(diào)用和系統(tǒng)調(diào)用的區(qū)別?
4、Linux進(jìn)程間通行方式有哪幾種以及各自的特點(diǎn)?
5、Linux中四層網(wǎng)絡(luò)模型?IP的各種類型的范圍?
6、在Linux系統(tǒng)中,造成死鎖的原因有哪些?
7、Linux網(wǎng)絡(luò)編程中主要使用的API有哪些以及網(wǎng)絡(luò)服務(wù)器模型的種類? 8、簡(jiǎn)述對(duì)Linux的認(rèn)識(shí)(特點(diǎn),優(yōu)勢(shì))。
三、嵌入式平臺(tái)開發(fā)
1、bootloader 是什么?bootloader的stage1和stage2分別做的工作有哪些? 2、Linux內(nèi)核版本命名的規(guī)則? 3、Linux設(shè)備文件有哪幾類?
4、Linux文件系統(tǒng)的種類有哪些以及使用特點(diǎn)? 5、嵌入式系統(tǒng)移植的主要工作步驟是什么?
四、編程能力實(shí)測(cè)
1、編寫一個(gè)C函數(shù),將“I am from shanghai”倒置為“shanghai from am I”即將句子中的單詞位置倒置,并不改變單詞內(nèi)部結(jié)構(gòu)。
2、請(qǐng)編寫一個(gè)C函數(shù),該函數(shù)可以實(shí)現(xiàn)將一個(gè)整數(shù)轉(zhuǎn)為任意進(jìn)制的字符串輸出。
五、操作系統(tǒng)方向
1.異步環(huán)境下的一組并發(fā)的進(jìn)程因?yàn)橹苯又萍s而相互發(fā)送消息,進(jìn)行相互合作,相互等待,使得各進(jìn)程按照一定的速度執(zhí)行的過(guò)程稱為進(jìn)程間的同步。
2.P,V操作可以實(shí)現(xiàn)進(jìn)程同步,進(jìn)程互斥,進(jìn)程的前驅(qū)關(guān)系,進(jìn)程共享是屬于進(jìn)程間大量信息的交換
3.在民航訂票系統(tǒng)中,每個(gè)訂票點(diǎn)在票務(wù)服務(wù)器上發(fā)起了請(qǐng)求訂票進(jìn)程,這些進(jìn)程的關(guān)系是互斥關(guān)系
4.進(jìn)程間的相互制約關(guān)系如下:
相互感知程度 交互關(guān)系 一個(gè)進(jìn)程對(duì)其他進(jìn)程的影響 潛在的控制問(wèn)題
相互不感知 競(jìng)爭(zhēng)關(guān)系 一個(gè)進(jìn)程的操作對(duì)其他進(jìn)程的結(jié)果無(wú)影響 互斥,死鎖,饑餓
間接感知 通過(guò)共享進(jìn)行協(xié)作 互斥,死鎖,饑餓,數(shù)據(jù)一致性
直接感知 通過(guò)通信進(jìn)行協(xié)作
其中間接感知 共享進(jìn)行協(xié)作 進(jìn)程死鎖,互斥,饑餓,數(shù)據(jù)一致性
5.不同的用戶在同一臺(tái)游戲機(jī)上玩踢足球的電子游戲的時(shí)候既有同步關(guān)系又有互斥關(guān)系
6.用P,V操作管理臨界區(qū)的時(shí)候,把信號(hào)量mutex的初值設(shè)定為1,。當(dāng)有k(k>1 )個(gè)進(jìn)程在mutex的等待隊(duì)列中,信號(hào)量的值為-k
7.進(jìn)程間通信時(shí),已經(jīng)滿的郵件槽,發(fā)送進(jìn)程不能再申請(qǐng)互斥鎖
8.共享內(nèi)存適合傳送大量的信息,是非高效
9.對(duì)信號(hào)量的操作有:初始化,等信號(hào),給信號(hào),清理
10.在訪問(wèn)前必須先調(diào)用進(jìn)入?yún)^(qū)代碼,然后執(zhí)行臨界區(qū)代碼,最后執(zhí)行退出區(qū)代碼
11.管道通信時(shí)同步的
12.信息緩沖通信機(jī)制包括:信息緩沖區(qū),消息隊(duì)列首地址,同步互斥信號(hào)量,發(fā)送接收信息原語(yǔ)
六、最重要的:算機(jī)嵌入式四級(jí)考試易錯(cuò)題
1.進(jìn)程由多個(gè)線程組成,有一個(gè)線程被調(diào)度程序選入投入運(yùn)行(占用CPU),則該進(jìn)程就為運(yùn)行狀態(tài)。
2.pthread_join: 等待一個(gè)特定的線程退出。
pthread_yield:表示線程讓出CPU。(yield:讓位,退位)
pthread_mutex_init:創(chuàng)建一個(gè)互斥量。
pthread_create:創(chuàng)建線程后運(yùn)行該線程。
pthread_exit:運(yùn)行后主動(dòng)退出。
沒(méi)調(diào)用這些函數(shù)時(shí),也沒(méi)有出錯(cuò)指令,線程執(zhí)行完指令后退出。
3.有CPU資源讓出來(lái)的不一定能發(fā)生調(diào)度,但沒(méi)有CPU資源讓出,則一定不會(huì)發(fā)生進(jìn)程調(diào)度。
4.同步關(guān)系:異步環(huán)境下的一組并發(fā)的進(jìn)程因直接制約而相互發(fā)送消息、進(jìn)行相互合作、相互等待,使得各進(jìn)程按一定的速度執(zhí)行的過(guò)程(流水線,無(wú)競(jìng)爭(zhēng));競(jìng)爭(zhēng)關(guān)系:公共資源,導(dǎo)致競(jìng)爭(zhēng)。
5.有K個(gè)進(jìn)程在mutex(初始為1)的等待隊(duì)列,當(dāng)前需要訪問(wèn)臨界區(qū)的進(jìn)程有k+1個(gè),此時(shí)mutex=-k。
6.p_v操作。
7.虛擬頁(yè)式存儲(chǔ)管理:在進(jìn)程開始運(yùn)行之前不是裝入全部頁(yè)面,而是裝入一個(gè)或零個(gè)頁(yè)面,之后根據(jù)進(jìn)程運(yùn)行的需要,動(dòng)態(tài)轉(zhuǎn)入其他頁(yè)面。當(dāng)內(nèi)存空間已滿,而又需要裝入新的頁(yè)面時(shí),根據(jù)某種算法置換頁(yè)面,裝入新的頁(yè)面。
將內(nèi)存等分成大小為2的冪次方的內(nèi)存塊,成為頁(yè)框
系統(tǒng)將虛擬地址空間等分為若干頁(yè)面,大小與頁(yè)框相同
虛擬頁(yè)面在物理空間上不要求連續(xù)存放
硬件機(jī)制實(shí)現(xiàn)邏輯地址到物理地址的動(dòng)態(tài)轉(zhuǎn)換
虛擬頁(yè)式存儲(chǔ)技術(shù)的基本思想就是利用大容量的外存來(lái)擴(kuò)充內(nèi)存。(使用交換技術(shù))
8.在成功打開一個(gè)文件系統(tǒng)調(diào)用后,系統(tǒng)會(huì)給用戶返回一個(gè)文件描述符。
系統(tǒng)描述符在形式上是一個(gè)非負(fù)整數(shù)。(實(shí)際上是一個(gè)索引值,指向內(nèi)核為每一個(gè)進(jìn)程所維護(hù)的該進(jìn)程打開文件的記錄表)。當(dāng)程序打開一個(gè)現(xiàn)有文件或者創(chuàng)建一個(gè)新文件時(shí),內(nèi)核向進(jìn)程返回一個(gè)文件描述符。(文件描述符只在UNIX,LINUX提到)
9.指令流水線中,最大吞吐率是指:流水線達(dá)到穩(wěn)定狀態(tài)后可以獲得的吞吐率。
指令流水線中的吞吐率是指:?jiǎn)挝粫r(shí)間內(nèi)流水線上所完成的指令或輸出結(jié)果的數(shù)量。
10.光磁記錄型可擦寫光盤的存取原理:熱磁效應(yīng)。
11.8086CPU在響應(yīng)INTR中斷時(shí),為了得到指向存放中斷向量的內(nèi)存的實(shí)際物理地址,將I/O給的中斷類型碼乘以4。
中斷類型碼→中斷向量(左移)
中斷向量→中斷類型碼(右移)
其實(shí)也不只是這些,還有很多,這是我總結(jié)的一部分,計(jì)算機(jī)四級(jí)嵌入式考試的人都快來(lái)看看,為自己以后的考試做好充分的準(zhǔn)備。