<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 11月ATI(下屬AMD)筆試題及答案

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

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


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

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

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

    (1)InitializeCriticalSection

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

    (2)EnterCriticalSection

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

    (3)TryEnterCriticalSection

    此函數(shù)用沒有阻塞的方式試圖進(jìn)入一個(gè)臨界區(qū)。若函數(shù)調(diào)用成功,則進(jìn)行調(diào)用的線程擁有對(duì)臨界區(qū)的所有權(quán),否則立即返回。

    (4)LeaveCriticalSection

    此函數(shù)用于釋放對(duì)臨界區(qū)對(duì)象的所有權(quán)。每次線程對(duì)同一個(gè)對(duì)象執(zhí)行EnterCriticalSection或TryEnterCriticalSection都必須調(diào)用

    LeaveCriticalSection函數(shù)。

    (5)DeleteCriticalSection

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

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

    (1) CreateMutex

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

    (2)OpenMutex

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

    (3)ReleaseMutex

    此函數(shù)用于釋放互斥對(duì)象。若函數(shù)調(diào)用成功,互斥對(duì)象處于信號(hào)態(tài)。

    (4)CreateSemaphore

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

    (5)OpenSemaphore

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

    (6)WaitForSingleObject

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

    (7)ReleaseSemaphore

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


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

    答案:

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

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

    3:請(qǐng)問什么情況下,cache中只放指令(數(shù)據(jù)直接從存儲(chǔ)器存取)比cache中放數(shù)據(jù)和指令的效率高?

    答案:計(jì)算密集型 cache中只放指令(數(shù)據(jù)直接從存儲(chǔ)器存取)比cache中放數(shù)據(jù)和指令的效率高,可以充分利用指令的局部原理。


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

    答案:

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

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

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

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

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

    (6)強(qiáng)調(diào)通用寄存器資源的優(yōu)化使用。

    (7)支持指令流水并強(qiáng)調(diào)指令流水的優(yōu)化使用。


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

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

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

    答案:C


    6:請(qǐng)問下面程序如果運(yùn)行會(huì)出現(xiàn)什么結(jié)果?如果有錯(cuò)誤請(qǐng)指出并改正。

    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;

    }

    ~

    答案:

    程序運(yùn)行會(huì)出現(xiàn)內(nèi)存釋放錯(cuò)誤

    錯(cuò)誤共有四處,分別在下面改正的代碼中標(biāo)出。

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

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

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

    //錯(cuò)誤2:長(zhǎng)度應(yīng)該+1 strcpy(m_str,str.m_str); }

    mystring & operator=(mystring& str){

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

    //錯(cuò)誤2:長(zhǎng)度應(yī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;

    //錯(cuò)誤4:析構(gòu)函數(shù)中,應(yīng)該析構(gòu)數(shù)組 } } 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è)球的人。請(qǐng)問A第一次該拿幾個(gè)?以后又該怎么拿,才能夠確保獲勝?

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


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

    答案:?jiǎn)翁?hào)出列:32號(hào)

    雙號(hào)出列:1號(hào)

    【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

    報(bào)社筆試題目及答案03-23

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

    醫(yī)院面試試題及答案02-18

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

    主站蜘蛛池模板: 欧美在线精品一区二区三区| 亚洲国产成人精品女人久久久| 久久e热在这里只有国产中文精品99| 人妻少妇偷人精品无码| 97久人人做人人妻人人玩精品| 无码日韩精品一区二区免费暖暖| 国产精品主播一区二区| 97精品久久天干天天天按摩| 亚洲国产精品无码久久久久久曰| 久久免费精品视频| 精品人妻中文av一区二区三区| 久久亚洲中文字幕精品一区四| 日本欧美韩国日本精品| 亚洲精品成人网站在线观看| 国产精品无码国模私拍视频| 国产一成人精品福利网站| 无码国产精品一区二区免费vr| 精品国产呦系列在线观看免费| 精品视频在线v| 国产欧美精品一区二区三区| 欲帝精品福利视频导航| 久草欧美精品在线观看| 87国产私拍福利精品视频| 97精品一区二区视频在线观看| 久久这里只有精品18| 最新国产乱人伦偷精品免费网站 | 欧美成人精品一区二区综合| 91在线手机精品超级观看| 国产精品乱码高清在线观看| 亚洲国产精品无码久久久不卡| 欧美精品亚洲日韩aⅴ| 国产精品国产三级国产AⅤ| 精品无人区麻豆乱码1区2区| 精品无码AV一区二区三区不卡| 麻豆精品| 久久久久九九精品影院| 国产精品丝袜久久久久久不卡| 久热这里只精品99re8久| 国产亚洲精品一品区99热| 国内精品久久久人妻中文字幕| 欧洲成人午夜精品无码区久久|