激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

11月ATI(下屬AMD)筆試題及答案

時(shí)間:2024-08-20 21:14:48 綜合指導 我要投稿
  • 相關(guān)推薦

2006年11月ATI(下屬AMD)筆試題及答案


ATI筆試題共有8個(gè)題目: 1:windows API里面用于線(xiàn)程同步的有哪些?

答案:共有12個(gè)API

1) 臨界區共有五個(gè)API

(1)InitializeCriticalSection

此函數用于設置臨界區對象,即對臨界區對象初始化。該函數必須在執行EnterCriticalSection前調用。單個(gè)進(jìn)程的線(xiàn)程可以為互斥同步使用臨界區對象。進(jìn)程負責分配臨界區對象使用的內存,可以通過(guò)對CRITICAL_SECTION類(lèi)型變量的定義和使用來(lái)實(shí)現。

(2)EnterCriticalSection

此函數用于等待指定的臨界區對象的所有權。授予調用線(xiàn)程所有權后,該函數返回,臨界區對象在單個(gè)進(jìn)程的各線(xiàn)程內強制互斥同步。在線(xiàn)程擁有臨界區對象以后,對同一個(gè)臨界區對象應調用EnterCriticalSection函數,防止發(fā)生死鎖。在退出臨界區后用LeaveCriticalSe- ction函數使其他線(xiàn)程可以進(jìn)入臨界區。

(3)TryEnterCriticalSection

此函數用沒(méi)有阻塞的方式試圖進(jìn)入一個(gè)臨界區。若函數調用成功,則進(jìn)行調用的線(xiàn)程擁有對臨界區的所有權,否則立即返回。

(4)LeaveCriticalSection

此函數用于釋放對臨界區對象的所有權。每次線(xiàn)程對同一個(gè)對象執行EnterCriticalSection或TryEnterCriticalSection都必須調用

LeaveCriticalSection函數。

(5)DeleteCriticalSection

此函數用于刪除一個(gè)臨界區對象,釋放所有與不再為自己所控制的臨界區對象有關(guān)的資源。一個(gè)臨界區對象被刪除,就不能再對其調用函數EnterCriticalSection,函數TryEnterCriticalSection和函數LeaveCriticalSection了。

2) 互斥和信號量共有7個(gè)API

(1) CreateMutex

此函數用于創(chuàng )建命名或未命名的互斥對象。這些互斥對象用于進(jìn)程同步,當互斥對象不為任何線(xiàn)程擁有時(shí)才處于信號態(tài),否則將處于非信號態(tài)。若要線(xiàn)程釋放其所有權,則線(xiàn)程在每次互斥對象處于非信號態(tài)時(shí)都調用函數ReleaseMutex。當不再需要互斥對象時(shí)可以使用函數CloseHandle來(lái)關(guān)閉互斥對象。當所有互斥對象的打開(kāi)句柄都關(guān)閉時(shí),就刪除互斥對象。

(2)OpenMutex

用于返回存在的已命名互斥對象的句柄。該函數允許多個(gè)進(jìn)程打開(kāi)同一個(gè)互斥對象的句柄。該函數的調用一定要在函數CreateMutex創(chuàng )建互斥對象之后,當不需要句柄時(shí)可以調用CloseHandle函數。

(3)ReleaseMutex

此函數用于釋放互斥對象。若函數調用成功,互斥對象處于信號態(tài)。

(4)CreateSemaphore

此函數用于創(chuàng )建已命名或未命名的信號量對象,信號量用計數器實(shí)現同步。每次取信號量時(shí)(可利用函數WaitForSingleObject來(lái)。,信號量計數器遞減;每次ReleaseSemaphore釋放信號量值時(shí),信號量計數器遞增。計數永遠不會(huì )小于0或大于在lSemMaxCount參數中定義的值。

(5)OpenSemaphore

用于打開(kāi)一個(gè)已經(jīng)存在的命名的信號量對象。該信號量必須是函數CreateSemaphore創(chuàng )建的。如果不再需要時(shí),可以用函數CloseHandle關(guān)閉返回的句柄。

(6)WaitForSingleObject

此函數僅當在參數列表中指定的對象處于信號態(tài)或超過(guò)了超時(shí)間隔時(shí),該函數才返回。

(7)ReleaseSemaphore

用來(lái)遞增信號量的計數。對于CreateSemaphore函數創(chuàng )建的對象使用,計數可以達到設定的最大計數值。


2: windows內核內存分為paged memory和 nonpaged memory,請問(wèn)有什么區別?

答案:

paged memory:是指可以分頁(yè)的內存,可以交換到硬盤(pán)文件上。

Nonpaged memory:不可分頁(yè),也就是不能交換到硬盤(pán)文件上。有些內存,比如驅動(dòng)程序,內核代碼是不允許交換出去的,應該常駐內存,就使用nonpaged memory。

3:請問(wèn)什么情況下,cache中只放指令(數據直接從存儲器存。┍萩ache中放數據和指令的效率高?

答案:計算密集型 cache中只放指令(數據直接從存儲器存。┍萩ache中放數據和指令的效率高,可以充分利用指令的局部原理。


4:RISC和CISC等其他指令集相比有哪些優(yōu)點(diǎn),請至少舉出5個(gè)。

答案:

(1)尋址方式少且簡(jiǎn)單,一般為2—3種,最多不超過(guò)4種,絕不出現存儲器間接尋址方式。

(2)指令集中的指令數目一般少于100種,指令格式一般少于4種。

(3)指令功能簡(jiǎn)單,控制器多采用硬布線(xiàn)方式,以期更快的執行速度。

(4)平均而言,所有指令的執行時(shí)間為一個(gè)處理時(shí)鐘周期。

(5)指令格式中用于指派整數寄存器的個(gè)數不少于32個(gè),用于指派浮點(diǎn)數寄存器的個(gè)數不少于16個(gè)。

(6)強調通用寄存器資源的優(yōu)化使用。

(7)支持指令流水并強調指令流水的優(yōu)化使用。


5:選擇題:如果兩個(gè)節點(diǎn)x,y,preorder遍歷,x在y之前,postorder遍歷,x在y之后,請問(wèn)x,y的關(guān)系為:

A x是y的左兄弟 B x是y的右兄弟

C x是y的祖先 D x是y的后裔

答案:C


6:請問(wèn)下面程序如果運行會(huì )出現什么結果?如果有錯誤請指出并改正。

include
include
class mystring{

public:

mystring(){

m_str=NULL;

}

mystring(mystring& str){

if(m_str!=NULL){

delete []m_str;

}

m_str=new char[strlen(str.m_str)];

strcpy(m_str,str.m_str);

}

mystring & operator=(const char *str){

if(m_str!=NULL){

delete []m_str;

}

m_str=new char[strlen(str)+1];

strcpy(m_str,str);

}

~mystring(){

if(m_str!=NULL){

delete m_str;

}

}

private:

char *m_str;

};

int main(){

mystring str1;

str1="hello world";

mystring str2;

str2=str1;

mystring str3=str2;

return 0;

}

~

答案:

程序運行會(huì )出現內存釋放錯誤

錯誤共有四處,分別在下面改正的代碼中標出。

include
include
class mystring{ public: mystring(){ m_str=NULL; } mystring(mystring& str){

/*if(m_str!=NULL){ delete []m_str; }*/

//錯誤1,因為m_str沒(méi)有被初始化,所以此處可能為NULL,也可能不為NULL,如果不為null,則會(huì )出錯,因為m_str是一個(gè)隨機的值。 m_str=new char[strlen(str.m_str)+1];

//錯誤2:長(cháng)度應該+1 strcpy(m_str,str.m_str); }

mystring & operator=(mystring& str){

//錯誤3:缺少賦值重載函數 if(m_str!=NULL){ delete []m_str; } m_str=new char[strlen(str.m_str)+1];

//錯誤2:長(cháng)度應該+1 strcpy(m_str,str.m_str); } mystring & operator=(const char *str){ if(m_str!=NULL){ delete []m_str; } m_str=new char[strlen(str)+1]; strcpy(m_str,str); } ~mystring(){ if(m_str!=NULL){ delete []m_str;

//錯誤4:析構函數中,應該析構數組 } } private: char *m_str; }; int main(){ mystring str1; str1="hello world"; mystring str2; str2=str1; mystring str3=str2; return 0; } ~


7:100個(gè)乒乓球取勝之道,A,B兩個(gè)人輪流拿,A先拿,一次只能拿[1,5]個(gè),獲勝者為拿到最后一個(gè)球的人。請問(wèn)A第一次該拿幾個(gè)?以后又該怎么拿,才能夠確保獲勝?

答案:A先拿4個(gè),然后B拿,設B拿x個(gè),則每次A拿6-x個(gè)即可。


8:有編號1-50的人,依次排列,然后單號出列,然后剩下的人重新編號,單號出列,依次類(lèi)推,最后剩下一個(gè)人,請問(wèn)這個(gè)人原來(lái)編號是多少號?如果是每一次雙號出列,請問(wèn)這個(gè)人原來(lái)編號是多少?

答案:?jiǎn)翁柍隽校?2號

雙號出列:1號

【11月ATI(下屬AMD)筆試題及答案 】相關(guān)文章:

AMD北京筆試經(jīng)歷11-21

java筆試題及答案08-20

英語(yǔ)面試試題及答案02-18

外企面試的經(jīng)典試題及答案02-18

經(jīng)典java筆試題及答案分享02-25

報社筆試題目及答案03-23

2017華為筆試題及答案02-23

醫院面試試題及答案02-18

經(jīng)典面試題 及答案分析11-20

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频