操作系統(tǒng)實(shí)驗(yàn)_實(shí)驗(yàn)1分析解析_第1頁
操作系統(tǒng)實(shí)驗(yàn)_實(shí)驗(yàn)1分析解析_第2頁
操作系統(tǒng)實(shí)驗(yàn)_實(shí)驗(yàn)1分析解析_第3頁
操作系統(tǒng)實(shí)驗(yàn)_實(shí)驗(yàn)1分析解析_第4頁
操作系統(tǒng)實(shí)驗(yàn)_實(shí)驗(yàn)1分析解析_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、廣州大學(xué)學(xué)生實(shí)驗(yàn)報告開課學(xué)院及實(shí)驗(yàn)室:計(jì)算機(jī)科學(xué)與工程實(shí)驗(yàn)室 2015年11月11日實(shí)驗(yàn)課程名稱操作系統(tǒng)成績實(shí)驗(yàn)項(xiàng)目名稱進(jìn)程管理與進(jìn)程通信指導(dǎo)老師陳康民(*報告只能為文字和圖片,老師評語將添加到此處,學(xué)生請勿作答*)進(jìn)程管理(一) 進(jìn)程的創(chuàng)建實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握進(jìn)程的概念,明確進(jìn)程的含義2、認(rèn)識并了解并發(fā)執(zhí)行的實(shí)質(zhì)二、實(shí)驗(yàn)內(nèi)容1、編寫一段程序,使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進(jìn)程。當(dāng)此程序運(yùn)行時,在系統(tǒng)中有一個父進(jìn)程和兩個子進(jìn)程活動。讓每一個進(jìn)程在屏幕上顯示一個字符:父進(jìn)程顯示a,子進(jìn)程分別顯示字符b和字符c。試觀察記錄屏幕上的顯示結(jié)果,并分析原因。2、修改上述程序,每一個進(jìn)程循環(huán)顯示

2、一句話。子進(jìn)程顯示daughter 及son ,父進(jìn)程顯示 parent ,觀察結(jié)果,分析原因。三、實(shí)驗(yàn)步驟1、 編寫一段程序,使用系統(tǒng)調(diào)用fork( )創(chuàng)建兩個子進(jìn)程。代碼:#include main( )int p1,p2;while(p1=fork( )= = -1); /*創(chuàng)建子進(jìn)程p1*/if (p1= =0) putchar(b); else while(p2=fork( )= = -1); /*創(chuàng)建子進(jìn)程p2*/if(p2= =0) putchar(c); else putchar(a); 運(yùn)行結(jié)果:bca,bac, abc ,都有可能。2、修改上述程序,每一個進(jìn)程循環(huán)顯示一句話

3、。子進(jìn)程顯示daughter 及son ,父進(jìn)程顯示 parent ,觀察結(jié)果,分析原因。代碼:#include main( )int p1,p2,i;while(p1=fork( )= = -1); /*創(chuàng)建子進(jìn)程p1*/if (p1= =0) for(i=0;i10;i+)printf(daughter %dn,i);else while(p2=fork( )= = -1); /*創(chuàng)建子進(jìn)程p2*/if(p2= =0) for(i=0;i10;i+) printf(son %dn,i);else for(i=0;i10;i+) printf(parent %dn,i);結(jié)果:parents

4、ondaughter.daughter.或 parentsonparentdaughter等四、分析原因除strace 外,也可用ltrace -f -i -S ./executable-file-name查看以上程序執(zhí)行過程。1、從進(jìn)程并發(fā)執(zhí)行來看,各種情況都有可能。上面的三個進(jìn)程沒有同步措施,所以父進(jìn)程與子進(jìn)程的輸出內(nèi)容會疊加在一起。輸出次序帶有隨機(jī)性。2、由于函數(shù)printf( )在輸出字符串時不會被中斷,因此,字符串內(nèi)部字符順序輸出不變。但由于進(jìn)程并發(fā)執(zhí)行的調(diào)度順序和父子進(jìn)程搶占處理機(jī)問題,輸出字符串的順序和先后隨著執(zhí)行的不同而發(fā)生變化。這與打印單字符的結(jié)果相同。五、思考題(1) 系統(tǒng)

5、是怎樣創(chuàng)建進(jìn)程的?linux 系統(tǒng)創(chuàng)建進(jìn)程都是用 fork() 系統(tǒng)調(diào)用創(chuàng)建子進(jìn)程。Init程序以/etc/inittab為腳本文件來創(chuàng)建系統(tǒng)的新進(jìn)程的。新進(jìn)程還克以創(chuàng)建新進(jìn)程。創(chuàng)建新進(jìn)程是通過克隆老進(jìn)程或當(dāng)前進(jìn)程來創(chuàng)建的。新進(jìn)程的創(chuàng)建實(shí)用系統(tǒng)調(diào)用sys_fork()或sys_clone(),并且在內(nèi)核模式下完成。在系統(tǒng)調(diào)用結(jié)束時,系統(tǒng)從物理內(nèi)存中分配一個心的task_struct()數(shù)據(jù)結(jié)構(gòu)和進(jìn)程堆棧,同時獲得一個唯一的標(biāo)示此進(jìn)程的標(biāo)識符。通過FORK函數(shù)調(diào)用促使內(nèi)核創(chuàng)建一個新的進(jìn)程,該進(jìn)程是調(diào)用進(jìn)程的一個精確的副本。新創(chuàng)建的進(jìn)程為子進(jìn)程,調(diào)用的FORK進(jìn)程為父進(jìn)程,而且創(chuàng)建出來的是兩個副本

6、,即,兩個進(jìn)程,但他們互不干擾。(2)當(dāng)首次調(diào)用新創(chuàng)建進(jìn)程時,其入口在哪里?首次創(chuàng)建進(jìn)程時,入口在進(jìn)程1那里。(二)進(jìn)程的控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握進(jìn)程另外的創(chuàng)建方法2、熟悉進(jìn)程的睡眠、同步、撤消等進(jìn)程控制方法二、實(shí)驗(yàn)內(nèi)容 1、用fork( )創(chuàng)建一個進(jìn)程,再調(diào)用exec( )用新的程序替換該子進(jìn)程的內(nèi)容2、利用wait( )來控制進(jìn)程執(zhí)行順序三、參考程序#include#includemain( ) int pid; pid=fork( ); /*創(chuàng)建子進(jìn)程*/switch(pid) case -1: /*創(chuàng)建失敗*/ printf(fork fail!n); exit(1); case

7、0: /*子進(jìn)程*/ execl(/bin/ls,ls,-1,-color,NULL); printf(exec fail!n); exit(1); default: /*父進(jìn)程*/ wait(NULL); /*同步*/ printf(ls completed !n); exit(0); 4、 運(yùn)行結(jié)果5、 思考(1) 可執(zhí)行文件加載時進(jìn)行了哪些處理?解:可執(zhí)行文件加載時首先是創(chuàng)建一個新進(jìn)程的fork系統(tǒng)調(diào)用,然后用于實(shí)現(xiàn)進(jìn)程自我終止的exit系統(tǒng)調(diào)用;改變進(jìn)程原有代碼的exec系統(tǒng)調(diào)用;用于將調(diào)用進(jìn)程掛起并等待子進(jìn)程終止的wait系統(tǒng)調(diào)用;獲得進(jìn)程標(biāo)識符的getpid系統(tǒng)調(diào)用等處理過程。(2

8、) 什么是進(jìn)程同步?wait( )是如何實(shí)現(xiàn)進(jìn)程同步的?解:進(jìn)程同步是指對多個相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的主進(jìn)程之間有效地共享資源和相互合作,從而使程序的執(zhí)行具有可在現(xiàn)行。首先程序在調(diào)用fork()機(jī)那里了一個子進(jìn)程后,馬上調(diào)用wait(),使父進(jìn)程在子進(jìn)程調(diào)用之前一直處于睡眠狀態(tài),這樣就使子進(jìn)程先運(yùn)行,子進(jìn)程運(yùn)行exec()裝入命令后,然后調(diào)用wait(0),使子進(jìn)程和父進(jìn)程并發(fā)執(zhí)行,實(shí)現(xiàn)進(jìn)程同步。(三)進(jìn)程互斥實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、進(jìn)一步認(rèn)識并發(fā)執(zhí)行的實(shí)質(zhì)2、分析進(jìn)程競爭資源的現(xiàn)象,學(xué)習(xí)解決進(jìn)程互斥的方法 實(shí)驗(yàn)內(nèi)容1、修改實(shí)驗(yàn)(一)中的程序2,用lockf( )來給每一個進(jìn)程加鎖

9、,以實(shí)現(xiàn)進(jìn)程之間的互斥2、觀察并分析出現(xiàn)的現(xiàn)象#include #include main()int p1,p2,i; while(p1=fork( )= = -1); /*創(chuàng)建子進(jìn)程p1*/if (p1= =0)lockf(1,1,0); /*加鎖,這里第一個參數(shù)為stdout(標(biāo)準(zhǔn)輸出設(shè)備的描述符)*/for(i=0;i10;i+) printf(daughter %dn,i); lockf(1,0,0); /*解鎖*/else while(p2=fork( )= =-1); /*創(chuàng)建子進(jìn)程p2*/if (p2= =0)lockf(1,1,0); /*加鎖*/for(i=0;i10;i+)

10、printf(son %dn,i);lockf(1,0,0); /*解鎖*/else lockf(1,1,0); /*加鎖*/ for(i=0;i10;i+) printf( parent %dn,i); lockf(1,0,0); /*解鎖*/運(yùn)行結(jié)果parentsondaughter.daughter.或parentsonparentdaughter大致與未上鎖的輸出結(jié)果相同,也是隨著執(zhí)行時間不同,輸出結(jié)果的順序有所不同。四、分析原因上述程序執(zhí)行時,不同進(jìn)程之間不存在共享臨界資源(其中打印機(jī)的互斥性已由操作系統(tǒng)保證)問題,所以加鎖與不加鎖效果相同。(四)守護(hù)進(jìn)程實(shí)驗(yàn)寫一個使用守護(hù)進(jìn)程(da

11、emon)的程序,來實(shí)現(xiàn):1, 創(chuàng)建一個日志文件/var/log/Mydaemon.log 2,每分鐘都向其中寫入一個時間戳(使用time_t的格式) 注意:要root權(quán)限才能在/var/log創(chuàng)建文件。 守護(hù)神程序:#include#include#includemain()time_t t; /建立time_t格式變量 FILE *fp; /建立文件 fp=fopen(/var/log/Mydaemon.log,a);/打開文件 pid_t pid; /守護(hù)神 pid=fork(); if(pid0) printf(Daemon on duty!n); exit(0); else if(p

12、id=0) sleep(60); /等待一分鐘再往文件中寫入時間戳 printf(Daemon on duty!n); t=time(0); fprintf(fp,The current time is %sn,asctime(localtime(&t); fclose(fp);/關(guān)閉文件運(yùn)行結(jié)果進(jìn)程通信(一) 信號機(jī)制實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、了解什么是信號2、熟悉LINUX系統(tǒng)中進(jìn)程之間軟中斷通信的基本原理實(shí)驗(yàn)內(nèi)容1、編寫程序:用fork( )創(chuàng)建兩個子進(jìn)程,再用系統(tǒng)調(diào)用signal( )讓父進(jìn)程捕捉鍵盤上來的中斷信號(即按c鍵);捕捉到中斷信號后,父進(jìn)程用系統(tǒng)調(diào)用kill( )向兩個子進(jìn)程發(fā)出信號

13、,子進(jìn)程捕捉到信號后分別輸出下列信息后終止:Child process1 is killed by parent!Child process2 is killed by parent!父進(jìn)程等待兩個子進(jìn)程終止后,輸出如下的信息后終止:Parent process is killed!2、 分析利用軟中斷通信實(shí)現(xiàn)進(jìn)程同步的機(jī)理參考程序#include #include #include void waiting( ),stop( );int wait_mark;main( )int p1,p2,stdout;while(p1=fork( )= =-1); /*創(chuàng)建子進(jìn)程p1*/if (p10)

14、while(p2=fork( )= =-1); /*創(chuàng)建子進(jìn)程p2*/if(p20) wait_mark=1;signal(SIGINT,stop); /*接收到c信號,轉(zhuǎn)stop*/waiting( );kill(p1,16); /*向p1發(fā)軟中斷信號16*/kill(p2,17); /*向p2發(fā)軟中斷信號17*/wait(0); /*同步*/wait(0);printf(Parent process is killed!n);exit(0); else wait_mark=1;signal(17,stop); /*接收到軟中斷信號17,轉(zhuǎn)stop*/waiting( );lockf(std

15、out,1,0);printf(Child process 2 is killed by parent!n);lockf(stdout,0,0);exit(0);elsewait_mark=1;signal(16,stop); /*接收到軟中斷信號16,轉(zhuǎn)stop*/waiting( );lockf(stdout,1,0);printf(Child process 1 is killed by parent!n);lockf(stdout,0,0);exit(0); void waiting( ) while(wait_mark!=0);void stop( )wait_mark=0;運(yùn)行結(jié)果

16、屏幕上無反應(yīng),按下C后,顯示 Parent process is killed!分析原因上述程序中,signal( )都放在一段程序的前面部位,而不是在其他接收信號處。這是因?yàn)閟ignal( )的執(zhí)行只是為進(jìn)程指定信號值16或17的作用,以及分配相應(yīng)的與stop( )過程鏈接的指針。因而,signal( )函數(shù)必須在程序前面部分執(zhí)行。本方法通信效率低,當(dāng)通信數(shù)據(jù)量較大時一般不用此法。思考1、 該程序段前面部分用了兩個wait(0),它們起什么作用?答:父進(jìn)程等待兩個子進(jìn)程終止。2、 該程序段中每個進(jìn)程退出時都用了語句exit(0),為什么?答:該程序中每個進(jìn)程退出時都用了語句exit(0),這

17、是進(jìn)程的正常終止。3、為何預(yù)期的結(jié)果并未顯示出?答:因?yàn)橹粓?zhí)行成功兩個子進(jìn)程,但是并沒有調(diào)用兩個子進(jìn)程P1,P2。當(dāng)signal()讓父進(jìn)程捕捉從鍵盤上來的信號(按下C或者break鍵時),只有捕捉到信號后,父進(jìn)程用系統(tǒng)調(diào)用kill()向兩個子進(jìn)程發(fā)出信號。當(dāng)子進(jìn)程捕捉到信號后才能輸出信息,之后父進(jìn)程輸出信息。4、 程序該如何修改才能得到正確結(jié)果?答:#include#include#includeVoidwaiting(),stop(),alarming();Intwait_mark;Main()IntP1,P2,stdout;if(P1=fork();/*創(chuàng)建子進(jìn)程P1*/If(p2=fo

18、rk();/*創(chuàng)建子進(jìn)程P2*/Wait_mark=1;Signal(SIGINT,stop);/*接收到C信號,轉(zhuǎn)stop*/Signal(SIGALRM,alarming);/*接收SIGALRM*/Waiting();Kill(P1,16);/*向P1發(fā)軟中斷信號16*/Kill(P2,17);/*向P2發(fā)軟中斷信號17*/Wait(0);/*同步*/Wait(0);Printf(“Parentprocessiskilled!n”);Exit(0);ElseWait_mark=1;Signal(17,stop);/*接收到軟中斷信號17,轉(zhuǎn)stop*/Signal(17,stop);Si

19、gnal(SIGINT,SIG_IGN);/*忽略C信號*/While(wait_mark!=0);Lockf(stdout,1,0);Printf(“Childprocess2iskilledbyparent!n);Lockf(stdout,0,0);Exit(0);ElseWait_mark=1;Signal(16,stop);Signal(SIGINT,SIG_IGN);While(wait_mark!=0)Lockf(stdout,1,0);Printf(“Childprocess1iskilledbyparent!n”);Lockf(stdout,0,0);Exit(0);Voidw

20、aiting()Sleep(5);if(wait_mark!=0);kill(getpid(),SIGALRM);Voidalarming()Wait_mark=0;Voidstop();Wait_mark=0(二)進(jìn)程的管道通信實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式實(shí)驗(yàn)內(nèi)容編寫程序?qū)崿F(xiàn)進(jìn)程的管道通信。用系統(tǒng)調(diào)用pipe( )建立一管道,二個子進(jìn)程P1和P2分別向管道各寫一句話: Child 1 is sending a message! Child 2 is sending a message!父進(jìn)程從管道中讀出二個來自子進(jìn)程的信息并顯示(要求先接收P1

21、,后P2)。參考程序#include #include #include int pid1,pid2; main( ) int fd2;char outpipe100,inpipe100;pipe(fd); /*創(chuàng)建一個管道*/while (pid1=fork( )= =-1);if(pid1= =0) lockf(fd1,1,0); sprintf(outpipe,child 1 process is sending message!); /*把串放入數(shù)組outpipe中*/ write(fd1,outpipe,50); /*向管道寫長為50字節(jié)的串*/ sleep(5); /*自我阻塞5秒

22、*/ lockf(fd1,0,0); exit(0); else while(pid2=fork( )= =-1); if(pid2= =0) lockf(fd1,1,0); /*互斥*/ sprintf(outpipe,child 2 process is sending message!); write(fd1,outpipe,50); sleep(5); lockf(fd1,0,0); exit(0); else wait(0); /*同步*/ read(fd0,inpipe,50); /*從管道中讀長為50字節(jié)的串*/ printf(%sn,inpipe); wait(0); read

23、(fd0,inpipe,50); printf(%sn,inpipe); exit(0); 運(yùn)行結(jié)果 延遲5秒后顯示child 1 process is sending message! 再延遲5秒 child 2 process is sending message!思考題1、 程序中的sleep(5)起什么作用?答:自我阻塞5秒。這樣做的目的是令讀進(jìn)程把管道中的已有數(shù)據(jù)讀完后,暫時進(jìn)入睡眠狀態(tài)等待,直至寫進(jìn)程又將數(shù)據(jù)寫入管道后,再將讀進(jìn)程喚醒。2、 子進(jìn)程1和2為什么也能對管道進(jìn)行操作?答:因?yàn)樗麄兊淖x指針和寫指針都指向了管道的索引節(jié)點(diǎn)。(三)消息的發(fā)送與接收實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?1、了解什么是消

24、息 2、熟悉消息傳送的機(jī)理實(shí)驗(yàn)內(nèi)容消息的創(chuàng)建、發(fā)送和接收。使用系統(tǒng)調(diào)用msgget( ),msgsnd( ),msgrev( ),及msgctl( )編制一長度為k的消息發(fā)送和接收的程序。參考程序1、client.c#include #include #include #define MSGKEY 75struct msgform long mtype; char mtext1000;msg;int msgqid;void client() int i;msgqid=msgget(MSGKEY,0777); /*打開75#消息隊(duì)列*/for(i=10;i=1;i-) msg.mtype=i;p

25、rintf(“(client)sentn”);msgsnd(msgqid,&msg,1024,0); /*發(fā)送消息*/exit(0);main( ) client( );2、server.c#include #include #include #define MSGKEY 75struct msgform long mtype; char mtext1000;msg;int msgqid;void server( ) msgqid=msgget(MSGKEY,0777|IPC_CREAT); /*創(chuàng)建75#消息隊(duì)列*/do msgrcv(msgqid,&msg,1030,0,0); /*接收消

26、息*/ printf(“(server)receivedn”);while(msg.mtype!=1);msgctl(msgqid,IPC_RMID,0); /*刪除消息隊(duì)列,歸還資源*/exit(0);main( ) server( );程序說明1、為了便于操作和觀察結(jié)果,編制二個程序client.c和server.c,分別用于消息的發(fā)送與接收。2、server建立一個 Key 為75的消息隊(duì)列,等待其它進(jìn)程發(fā)來的消息。當(dāng)遇到類型為1的消息,則作為結(jié)束信號,取消該隊(duì)列,并退出server。server每接收到一個消息后顯示一句“(server)received?!?、client使用 key

27、為75的消息隊(duì)列,先后發(fā)送類型從10到1的消息,然后退出。最后一個消息,即是 server端需要的結(jié)束信號。client 每發(fā)送一條消息后顯示一句 “(client)sent”。4、注意: 二個程序分別編輯、編譯為client與server。執(zhí)行:./server&ipcs -q./client。運(yùn)行結(jié)果從理想的結(jié)果來說,應(yīng)當(dāng)是每當(dāng)client發(fā)送一個消息后,server接收該消息,client再發(fā)送下一條。也就是說“(client)sent”和 “(server)received”的字樣應(yīng)該在屏幕上交替出現(xiàn)。實(shí)際的結(jié)果大多是,先由client發(fā)送了兩條消息,然后server接收一條消息。此后

28、client 、server交替發(fā)送和接收消息。最后server一次接收兩條消息。client 和server 分別發(fā)送和接收了10條消息,與預(yù)期設(shè)想一致。開啟server開啟client,發(fā)送信息Server收到信息思考message的傳送和控制并不保證完全同步,當(dāng)一個程序不在激活狀態(tài)的時候,它完全可能繼續(xù)睡眠,造成了上面的現(xiàn)象,在多次send message 后才recieve message。這一點(diǎn)有助于理解消息傳送的實(shí)現(xiàn)機(jī)理。(四) 共享存儲區(qū)通信實(shí)驗(yàn)?zāi)康牧私夂褪煜す蚕泶鎯C(jī)制實(shí)驗(yàn)內(nèi)容編制一長度為1k的共享存儲區(qū)發(fā)送和接收的程序。參考程序#include #include #inclu

29、de #define SHMKEY 75int shmid,i; int *addr;void client( ) int i; shmid=shmget(SHMKEY,1024,0777); /*打開共享存儲區(qū)*/addr=shmat(shmid,0,0); /*獲得共享存儲區(qū)首地址*/for (i=9;i=0;i-) while (*addr!=-1); printf(client) sentn); *addr=i; exit(0);void server( )shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); /*創(chuàng)建共享存儲區(qū)*/addr=shmat(s

30、hmid,0,0); /*獲取首地址*/do *addr=-1; while (*addr=-1); printf(server) receivedn);while (*addr);shmctl(shmid,IPC_RMID,0); /*撤消共享存儲區(qū),歸還資源*/exit(0);main( ) while (i=fork( )= =-1); if (!i) server( ); system(“ipcs -m”); while (i=fork( )= =-1); if (!i) client( ); wait(0); wait(0);程序說明1、為了便于操作和觀察結(jié)果,用一個程序作為“引子“

31、,先后fork()兩個子進(jìn)程,server和client,進(jìn)行通信。2、server端建立一個key為75的共享區(qū),并將第一個字節(jié)置為-1,作為數(shù)據(jù)空的標(biāo)志。等待其他進(jìn)程發(fā)來的消息。當(dāng)該字節(jié)的值發(fā)生變化時,表示收到了信息,進(jìn)行處理。然后再次把它的值設(shè)為-1,如果遇到的值為0,則視為為結(jié)束信號,取消該隊(duì)列,并退出server。server每接收到一次數(shù)據(jù)后顯示“(server)received”。3、client端建立一個key為75的共享區(qū),當(dāng)共享取得第一個字節(jié)為-1時,server端空閑,可發(fā)送請求。client隨即填入9到0。期間等待 server 端的再次空閑。進(jìn)行完這些操作后,clie

32、nt退出。client每發(fā)送一次數(shù)據(jù)后顯示“(client)sent”。4、父進(jìn)程在server和client均退出后結(jié)束。運(yùn)行結(jié)果和預(yù)想的完全一樣。但在運(yùn)行過程中,發(fā)現(xiàn)每當(dāng)client發(fā)送一次數(shù)據(jù)后,server要等待大約0.1秒才有響應(yīng)。同樣,之后client又需要等待大約0.1秒才發(fā)送下一個數(shù)據(jù)。xxxxxx-empty:/Downloads/linux實(shí)驗(yàn)課件(操作系統(tǒng))$ ./2- 共享內(nèi)存段 -鍵 shmid 擁有者 權(quán)限 字節(jié) 連接數(shù) 狀態(tài) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 0x xxx 60

33、0 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0xb xxx 666 4096 1 0x xxx 600 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0xcbc384f8 xxx 600 64528 1 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 600 4 2 目標(biāo) 0x xxx 777 2 目標(biāo) 0x xxx 600 2 目標(biāo) 0x xxx 777 2 目標(biāo) 0x

溫馨提示

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

評論

0/150

提交評論