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