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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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 rC w+D a+2 .以下哪種不是進(jìn)程的狀態(tài) (B )A 運(yùn)行態(tài)B鎖定態(tài) C睡眠態(tài) D停止態(tài)3.以讀寫方式打開一個(gè)已存在的標(biāo)準(zhǔn)I/O流時(shí)應(yīng)指定哪個(gè)mode 參數(shù)(B )A rB r+C w+D a+D大于10000的正整數(shù)4 . fork()的返回值不可能是(C )A -1B 0C 15 .常用來(lái)進(jìn)行多任務(wù)同步的機(jī)制是(B )A管道 B信號(hào)量 C信號(hào)(異步通信方式,中斷機(jī)制的模擬)D共享內(nèi)存(本身不提供同步機(jī)制,可自行添加信號(hào)量實(shí)現(xiàn)同步)信號(hào)量:解決進(jìn)程 線程之間的同步與互斥問題的一種通信機(jī)

2、制:信號(hào)量變量 和這個(gè)變量的等待隊(duì)列、兩個(gè)原子操作(PV).6 .下列哪個(gè)函數(shù)無(wú)法傳遞進(jìn)程結(jié)束時(shí)的狀態(tài)(A )AcloseB exitvoid exit( int status)7.以下哪種用法可以等待接收進(jìn)程號(hào)為A waitpid(pid, &status, 0)C _exitD returnpid的子進(jìn)程的退出狀態(tài) (A ) P59B waitpid(pid, &status, WNOHANG)C waitpid(-1, &status, 0)D waitpid(-1, &status, WNOHANG)WNOHANG:子進(jìn)程沒結(jié)束,不阻塞立即返回,返回值為 0。0:阻塞父進(jìn)程,直到子進(jìn)程

3、退出。8 . What kind of IPC has the highest efficiency? ( B)A semaphoreB sharedmemoryC fifoD message queueE signal9 .下列對(duì)無(wú)名管道描述錯(cuò)誤的是(C )A半雙工的通信模式B有固定的讀端和寫端C可以使用lseek函數(shù)D只存在于內(nèi)存中10 .下列對(duì)于有名管道描述錯(cuò)誤的是(D )A可以用于互不相關(guān)的進(jìn)程間B通過路徑名來(lái)打開有名管道C在文件系統(tǒng)中可見D管道內(nèi)容保存在磁盤上11.下列不屬于用戶進(jìn)程對(duì)信號(hào)的響應(yīng)方式的是A忽略信號(hào)B保存信號(hào)(1 終止 SIGINT Ctrl+c , SIGINTQUI

4、T Ctrl+z.。4 忽略 SIGCHILD )(B )C捕捉信號(hào)D按缺省方式處理。2 暫停 SIGSTOP 。 3 停止 SIGTSTPD SIGILL12 .不能被用戶進(jìn)程屏蔽的信號(hào)是(B )A SIGINTB SIGSTOP /SIGKILLC SIGQUIT非法指令時(shí)發(fā)出13 .下列哪個(gè)是不帶緩存的(C )A stdinB stdout C stderr D 都不是14 .下列不屬于IPC對(duì)象白是(A )A管道B共享內(nèi)存C消息隊(duì)列D信號(hào)燈IPC對(duì)象通過它的標(biāo)識(shí)符來(lái)引用和訪問,這個(gè)標(biāo)識(shí)符是一個(gè)非負(fù)整數(shù),它唯一的標(biāo)識(shí)了一 個(gè)IPC對(duì)象,這個(gè)IPC對(duì)象可以是消息隊(duì)列或信號(hào)量或共享存儲(chǔ)器中的

5、任意一種類型15 .如果鍵盤輸入為abcdef,程序如下所示,寸T印結(jié)果應(yīng)該是(A )char buffer6;fgets(buffer, 6, stdin); 遇到n或 讀取了 size 1個(gè)字符后返回.printf( %s”, buffer);A abcde B abcdef C abcdef 后出現(xiàn)亂碼 D 段錯(cuò)誤16 .用open()創(chuàng)建新文件時(shí),若該文件存在則可以返回錯(cuò)誤信息的參數(shù)是(B )A O_CREAT (創(chuàng)建新文件)B O_EXCL C O_TRUNC(刪除原有數(shù)據(jù))D O_NOCTTYint open( const char pathname, int flags, int

6、 perms)17 .下列不是用戶進(jìn)程的組成部分的是(D )A正文段B用戶數(shù)據(jù)段C系統(tǒng)數(shù)據(jù)段D elf段進(jìn)程是由 進(jìn)程控制塊、程序段、數(shù)據(jù)段 三部分組成18 .以下哪種方法無(wú)法查看進(jìn)程的信息(C )A psB查看 /proc 目錄C killD 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 SIGINTB SIGKILLC SIGALRMD SIGCHLD20 . fread()返回值的含義是(B )A讀取的字節(jié)數(shù) B讀取的對(duì)象數(shù) C緩沖區(qū)的首地址D 0size

7、_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)庫(kù)和共享庫(kù)的區(qū)別(使用方法,對(duì)程序的影響)(5分)靜態(tài)庫(kù)在程序 編譯時(shí)會(huì)被連接到目標(biāo)代碼中,

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

9、ler)( 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 main() pid_t pid1,pid2;if(pid1=fork() = = 0)子進(jìn)程處理程

10、序sleep(3);printf( infol from child process_1n ); exit(0);printf( info2 from child process_1n ); else if(pid2=fork() = = 0)子進(jìn)程 2sleep(1);printf( infol from child process_2n ); exit(0); else wait(NULL); wait(NULL); printf( info1 from parent processn ); printf( info2 from parent process ); _exit(0);inf

11、o1 from child process_2info1 from child process_1 info1 from parent process 5.列出任意四種進(jìn)程間通信的方式(5分)傳統(tǒng)的進(jìn)程間通信方式無(wú)名管道(pipe)、有名管道(fifo)和信號(hào)(signal) System V IPC 對(duì)象共享內(nèi)存(share memory)、消息隊(duì)歹U (message queue和信號(hào)燈(semaphore) BSD套接字(socket)入綜合題(30分)1 .指出創(chuàng)建守護(hù)進(jìn)程的步驟(5分)P651)創(chuàng)建子進(jìn)程,父進(jìn)程退出fork(), exit()2)在子進(jìn)程中創(chuàng)建新會(huì)話setsid()

12、3)改變當(dāng)前目錄為根目錄chdir()4)重設(shè)文件權(quán)限掩碼umask (0)5)關(guān)閉文件描述符close()2 .請(qǐng)畫出Linux中進(jìn)程的狀態(tài)切換圖(5分)3 .用文件IO分別實(shí)現(xiàn)標(biāo)準(zhǔn)IO中的(r, r+, w, w+, a, a+),文件名由argv1傳入程序. (O_RDONL Y, O_WRONL Y, O_RDWR, O_CREA T, O_TRUNC, O_APPEND)(10 分) int open (const char pathname, int flags, int perms);r: open (argv1,O_RDONL Y);r+:open (argv1,O_RDWR)

13、;w:open(argv1,O_WRONL Y | O_CREAT | O_TRUNC,0666);w+: open(argv1,O_RDWR | O_CREAT | O_TRUNC,0666);a: open(argv1,O_WRONL Y | O_CREAT | O_APPEND,0666);a+: open(argv1,O_RDWR | O_CREAT | O_APPEND,0666);4.編寫程序?qū)崿F(xiàn)如下功能(10分):reader.c 從argv1所指定的文件中讀取內(nèi)容,依次寫到管道 /home/linux/myfifo 中writer.c從管道/home/linux/my巾fo 中

14、讀取內(nèi)容,寫到 argv1所指定的文件中并保存Read.cint main(int argc, const char *argv) int fd,fd_src;char buf32;int bytes;if(argc 2) printf(Usage %s src_filen,argv0);return -1;if(fd = open(,7home/linux/myfifo,O_WRONLY ) 0) perror(fail to open);return -1;if( fd_src = open(argv1,O_RDONLY ) 0)write(fd,buf,bytes);close(fd);close(fd_src);return 0;Write.cint main(int argc, const char *argv)int fd,fd_dest;char

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論