IO進(jìn)程測(cè)試題_第1頁
IO進(jìn)程測(cè)試題_第2頁
IO進(jìn)程測(cè)試題_第3頁
IO進(jìn)程測(cè)試題_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、選擇題 (每題 2分,共 40分)1. 下列哪種打開文件的方式不能修改文件已有的內(nèi)容 ( B)A r+ B r C w+ D a+2. 以下哪種不是進(jìn)程的狀態(tài) ( B )A運(yùn)行態(tài)B鎖定態(tài)C3. 以讀寫方式打開一個(gè)已存在的標(biāo)準(zhǔn)I/OA rB r+C w+ Da+4. fork()的返回值不可能是 ( C )A -1B 0C 1D5. 常用來進(jìn)行多任務(wù)同步的機(jī)制是( B )A 管道B宀口 曰信號(hào)量C睡眠態(tài) D 停止態(tài)流時(shí)應(yīng)指定哪個(gè) mode參數(shù)(B )大于 10000 的正整數(shù)信號(hào) (異步通信方式,中斷機(jī)制的模擬)D 共享內(nèi)存 (本身不提供同步機(jī)制,可自行添加信號(hào)量 實(shí)現(xiàn)同步 ) 信號(hào)量:解決

2、進(jìn)程 線程之間的同步與互斥問題的一種通信機(jī)制: 信號(hào)量變量 和這個(gè)變量的等待隊(duì)列 、 兩個(gè)原子操作( PV)6. 下列哪個(gè)函數(shù)無法傳遞進(jìn)程結(jié)束時(shí)的狀態(tài) ( A )Aclose B exit C _exit D return void exit( int status)7. 以下哪種用法可以等待接收進(jìn)程號(hào)為 pid 的子進(jìn)程的退出狀態(tài) ( A ) P59A waitpid(pid, &status, 0)B waitpid(pid, &status, WNOHANG)C waitpid(-1, &status, 0)D waitpid(-1, &status, WNOHANG)WNOHAN子進(jìn)程

3、沒結(jié)束,不阻塞立即返回,返回值為0。0:阻塞父進(jìn)程,直到子進(jìn)程退出。8. What kind of IPC has the highest efficiency? (B)A semaphoreB sharedmemoryC fifoD message queueE signal9. 下列對(duì)無名管道描述錯(cuò)誤的是 ( C )A 半雙工的通信模式B 有固定的讀端和寫端C 可以使用 lseek 函數(shù)D 只存在于內(nèi)存中10. 下列對(duì)于有名管道描述錯(cuò)誤的是 ( D )A 可以用于互不相關(guān)的進(jìn)程間B 通過路徑名來打開有名管道C 在文件系統(tǒng)中可見D 管道內(nèi)容保存在磁盤上11.下列不屬于用戶進(jìn)程對(duì)信號(hào)的響應(yīng)方式

4、的是(B )A忽略信號(hào)B保存信號(hào)C捕捉信號(hào)D按缺省方式處理(1 終止 SIGINT Ctrl+c ,SIGINTQUIT。2 暫停 SIGSTOP 3 停止 SIGTSTPCtrl+z.。4 忽略 SIGCHILD)12.不能被用戶進(jìn)程屏蔽的信號(hào)是(B )A SIGINTB SIGSTOP/SIGKILLC SIGQUITD SIGILL非法指令時(shí)發(fā)出13.下列哪個(gè)是不帶緩存的(C )A stdinB stdoutC stderrD都不是14. 下列不屬于IPC對(duì)象的是(A )A 管道 B共享內(nèi)存C消息隊(duì)列D信號(hào)燈IPC對(duì)象通過它的標(biāo)識(shí)符來引用和訪問,這個(gè)標(biāo)識(shí)符是一個(gè)非負(fù)整數(shù),它唯一的標(biāo)識(shí)了一

5、個(gè)IPC對(duì)象,這個(gè)IPC對(duì)象可以是消息隊(duì)列或信號(hào)量或共享存儲(chǔ)器中的任意一種類型15. 如果鍵盤輸入為abcdef,程序如下所示,打印結(jié)果應(yīng)該是(A )char buffer6;fgets(buffer, 6, stdin); printf(“S , buffer);A abcde B abcdef C abcdef后出現(xiàn)亂碼D 段錯(cuò)誤刪除原有數(shù)據(jù) )16.用open()創(chuàng)建新文件時(shí),若該文件存在則可以返回錯(cuò)誤信息的參數(shù)是A O_CREAT (創(chuàng)建新文件 )B O_EXCL C O_TRUNC(D O_NOCTTYint ope n( const char *path name, int fla

6、gs, int perms)17. 下列不是用戶進(jìn)程的組成部分的是(D )A正文段 B 用戶數(shù)據(jù)段 C系統(tǒng)數(shù)據(jù)段D elf段進(jìn)程是由 進(jìn)程控制塊、程序段、數(shù)據(jù)段三部分組成18. 以下哪種方法無法查看進(jìn)程的信息(C )A ps B查看 /proc 目錄 C kill D topLinux系統(tǒng)中每一個(gè)進(jìn)程都會(huì)有/proc文件系統(tǒng)下的與之對(duì)應(yīng)的一個(gè)目錄(init進(jìn)程信息存放在/proc/1 目錄下)。19.默認(rèn)情況下,不會(huì)終止進(jìn)程的信號(hào)是(D )A SIGINT B SIGKILL C SIGALRM D SIGCHLD20. fread()返回值的含義是(B )A讀取的字節(jié)數(shù)B讀取的對(duì)象數(shù)C 緩沖

7、區(qū)的首地址 D 0size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);、簡(jiǎn)答題(30分)1. 請(qǐng)描述進(jìn)程和程序的區(qū)別? (5分)進(jìn)程和程序的區(qū)別程序是靜態(tài)的,它是一些保存在 磁盤上的指令的有序集合,沒有任何執(zhí)行的概念進(jìn)程是一個(gè)動(dòng)態(tài)的概念,它是程序執(zhí)行的過程,包括創(chuàng)建、調(diào)度和消亡 進(jìn)程是一個(gè)獨(dú)立的可調(diào)度的任務(wù)進(jìn)程是一個(gè)抽象實(shí)體。當(dāng)系統(tǒng)在執(zhí)行某個(gè)程序時(shí),分配和釋放的各種資源進(jìn)程是一個(gè)程序的 一次執(zhí)行的過程進(jìn)程是程序執(zhí)行和資源管理的最小單位2. 指出靜態(tài)庫和共享庫的區(qū)別(使用方法,對(duì)程序的影響)(5分)靜態(tài)庫在程序編譯時(shí)

8、會(huì)被連接到目標(biāo)代碼中,程序運(yùn)行時(shí)將不再需要該 靜態(tài)庫,此體積較大。因此動(dòng)態(tài)庫在程序編譯時(shí)并 不會(huì)被連接 到目標(biāo)代碼中,而是在程序運(yùn)行是才被載入, 在程序運(yùn)行時(shí)還需要?jiǎng)討B(tài)庫存在,因此代碼體積較小。3. 寫出設(shè)置信號(hào)處理函數(shù)和用戶定義的信號(hào)處理函數(shù)的原型(5分)void (*sig nal( int sig num, void (*ha ndler)(i nt)(i nt);typedef void (*sigha ndler_t)(i nt);sigha ndler_t sig nal( int sig num, sigha ndler_t han dler);void driver_ha nd

9、ler(i nt sig no);void?(*handler)( int );?handler,一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)int參數(shù),返回void。T?*signal( int ?signo,?P) , ?P?=?void?(*handler)( int ) ; ?signal,一個(gè)函數(shù),該函數(shù)有2個(gè)參數(shù)(signo,?P),返回類型T的指針void?(T)?( int ),T?=?signal( int ?signo,?P)?T, 一個(gè)函數(shù),該函數(shù)有一個(gè)int參數(shù),返回void。4. 程序代碼如下,請(qǐng)按執(zhí)行順序?qū)懗鲚敵鼋Y(jié)果(10分)int mai n() pid_t pid1,pid

10、2;if(pid1=fork() = = 0)用文件 10 分別實(shí)現(xiàn)標(biāo)準(zhǔn) 10 中的(r, r+, w, w+, a, a+),文件名由argv1傳入程序.(O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, O_APPEND)分0 int ope n (const char *path name, int flags, int perms);r : open ( argv1,O_RDONLY);r+: ope n (argv1,O_RDWR);w: ope n(argv1,O_WRONLY | O_CREAT | O_TRUNC,0666);w+: o

11、pe n(argv1,O_RDWR | O_CREAT | O_TRUNC,0666);a: ope n(argv1,O_WRONLY | O_CREAT | O_APPEND,0666); a+: ope n(argv1,O_RDWR | O_CREAT | O_APPEND,0666);4.編寫程序?qū)崿F(xiàn)如下功能(10分):從argv1所指定的文件中讀取內(nèi)容,依次寫到管道/home/linu x/myfifo中從管道/home/linux/myfifo中讀取內(nèi)容,寫到 argv1所指定的文件中并保存代碼中可省略頭文件,/home/li nu x/myfifo無需創(chuàng)建int main (i n

12、t argc, const char *argv)int fd,fd_src;char buf32;int bytes;if(argc 2)prin tf(Usage %s src_filen,argv0);return -1;if(fd =open(/home/linux/myfifo,O_WRONLY) 0)perror(fail to ope n);return -1;if( fd_src = open(argv1,O_RDONLY ) 0)write(fd,buf,bytes);close(fd);close(fd_src); return 0; int main (i nt argc, const char *argv)int fd,fd_dest;char buf32;int bytes;if(argc 2)prin tf(Usage %s dest_filen,argv0);return -1;if(fd =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論