版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)課程設(shè)計(jì)Linux系統(tǒng)管理實(shí)踐與進(jìn)程通信實(shí)現(xiàn)班 級(jí) 網(wǎng)絡(luò)10學(xué) 號(hào) 31006100姓 名 YHD指導(dǎo)老師詹永照二零一三年一月八號(hào)一、 設(shè)計(jì)內(nèi)容1、 Linux系統(tǒng)的熟悉與常用操作命令的掌握。2、 Linux環(huán)境下進(jìn)程通信的實(shí)現(xiàn)。(實(shí)現(xiàn)父母子女放水果吃水果的同步互斥問(wèn)題,爸爸放蘋果,女兒專等吃蘋果,媽媽放橘子,兒子專等吃橘子,盤子即為緩沖區(qū),大小為5。)二、 Linux環(huán)境介紹1、 Linux的由來(lái)與發(fā)展Linux是一種可以在PC機(jī)上執(zhí)行的類似UNIX的操作系統(tǒng),是一個(gè)完全免費(fèi)的操作系統(tǒng)。1991年,芬蘭學(xué)生LinuxTorvalds開(kāi)發(fā)了這個(gè)操作系統(tǒng)的核心部分,因?yàn)槭荓inux改良的minix系統(tǒng),故稱之為L(zhǎng)inux。2、 Linux的優(yōu)點(diǎn)(1) Linux具備UNIX系統(tǒng)的全部?jī)?yōu)點(diǎn)Linux是一套PC版的UNIX系統(tǒng),相對(duì)于Windows是一個(gè)十分穩(wěn)定的系統(tǒng),安全性好。(2) 良好的網(wǎng)絡(luò)環(huán)境Linux與UNIX一樣,是以網(wǎng)絡(luò)環(huán)境為基礎(chǔ)的操作系統(tǒng),具備完整的網(wǎng)絡(luò)功能,提供在Internet或Intranet的郵件,F(xiàn)TP,www等各種服務(wù)。(3) 免費(fèi)的資源Linux免費(fèi)的資源和公開(kāi)的源代碼方便了對(duì)操作系統(tǒng)的深入了解,給編程愛(ài)好者提供更大的發(fā)揮空間。3、 Linux的特點(diǎn)1) 全面的多任務(wù),多用戶和真正的32位操作系統(tǒng)2) 支持多種硬件,多種硬件平臺(tái)3) 對(duì)應(yīng)用程序使用的內(nèi)存進(jìn)行保護(hù)4) 按需取盤5) 共享內(nèi)存頁(yè)面6) 使用分頁(yè)技術(shù)的虛擬內(nèi)存7) 優(yōu)秀的磁盤緩沖調(diào)度功能8) 動(dòng)態(tài)鏈接共享庫(kù)9) 支持偽終端設(shè)備10) 支持多個(gè)虛擬控制臺(tái)11) 支持多種CPU12) 支持?jǐn)?shù)字協(xié)處理器387的軟件模擬13) 支持多種文件系統(tǒng)14) 支持POSIX的任務(wù)控制15) 軟件移植性好16) 與其它UNIX系統(tǒng)的兼容性17) 強(qiáng)大的網(wǎng)絡(luò)功能三、常用命令介紹1、目錄操作和DOS相似,Linux采用樹(shù)型目錄管理結(jié)構(gòu),由根目錄(/)開(kāi)始一層層將子目錄建下去,各子目錄以/隔開(kāi)。用戶login后,工作目錄的位置稱為homedirectory,由系統(tǒng)管理員設(shè)定?!畘’符號(hào)代表自己的homedirectory,例如~/myfile是指自己home目錄下myfile這個(gè)文件。Linux的通配符有三種:’*’和’?’用法與DOS相同,'-'代表區(qū)間內(nèi)的任一字符,如test[0-5]即代表test0,test1, ,test5的集合。(1)顯示目錄文件 ls執(zhí)行格式:ls[-atFlgR][name] (name可為文件或目錄名稱)例:ls顯示出當(dāng)前目錄下的文件ls-a顯示出包含隱藏文件的所有文件ls-t按照文件最后修改時(shí)間顯示文件ls-F顯示出當(dāng)前目錄下的文件及其類型ls-l顯示目錄下所有文件的許可權(quán)、擁有者、文件大小、修改時(shí)間及名稱ls-lg同上ls-R顯示出該目錄及其子目錄下的文件注:ls與其它命令搭配使用可以生出很多技巧(最簡(jiǎn)單的如〃ls-l|more"),更多用法請(qǐng)輸入囪--help查看,其它命令的更多用法請(qǐng)輸入命令名--help
查看。(2)建新目錄mkdir執(zhí)行格式:mkdirdirectory-name例:mkdirdirl (新建一名為dirl的目錄)(3)刪除目錄rmdir執(zhí)行格式: rmdir例:rmdirdirl刪除目錄dirl,但它必須是空目錄,否則無(wú)法刪除rm-rdirl刪除目錄dirl及其下所有文件及子目錄rm-rfdirl不管是否空目錄,統(tǒng)統(tǒng)刪除,而且不給出提示,使用(4)改變工作目錄位置時(shí)要小心cd執(zhí)行格式: cd[name]例:cd改變目錄位置全用戶login時(shí)的workingdirectorycddirl改變目錄位置,至dir1目錄cd~user改變目錄位置,全用戶的workingdirectory執(zhí)行格式: rmdir例:rmdirdirl刪除目錄dirl,但它必須是空目錄,否則無(wú)法刪除rm-rdirl刪除目錄dirl及其下所有文件及子目錄rm-rfdirl不管是否空目錄,統(tǒng)統(tǒng)刪除,而且不給出提示,使用(4)改變工作目錄位置時(shí)要小心cd執(zhí)行格式: cd[name]例:cd改變目錄位置全用戶login時(shí)的workingdirectorycddirl改變目錄位置,至dir1目錄cd~user改變目錄位置,全用戶的workingdirectorycd改變目錄位置,至當(dāng)前目錄的上層目錄cd/user改變目錄位置,至上一級(jí)目錄下的user目錄cd/dir-name1/dir-name2改變目錄位置,至絕對(duì)路徑(Fullpath)cd(5)顯示當(dāng)前所在目錄回到進(jìn)入當(dāng)前目錄前的上一個(gè)目錄pwd執(zhí)行格式: pwd(6)查看目錄大小du執(zhí)行格式:du[-s]directory例:dudirl顯示目錄執(zhí)行格式:du[-s]directory例:dudirl顯示目錄dirl及其子目錄容量(以kb為單位)du-sdirl顯示目錄dirl的總?cè)萘浚?)顯示環(huán)境變量echo$HOME顯示家目錄echo$HOME顯示家目錄echo$PATH顯示可執(zhí)行文件搜索路徑echo$PATH顯示可執(zhí)行文件搜索路徑env顯示所有環(huán)境變量(可能很多,最好用"env|more”,"env|grepenvPATH〃等)(8)修改環(huán)境變量,在bash下用export,如:exportPATH=$PATH:/usr/local/bin想知道export的具體用法,可以用shell的help命令:helpexport2、文件操作(1)查看文件(可以是二進(jìn)制的)內(nèi)容 cat執(zhí)行格式:catfilename或morefilename或catfilename|more例:catfile1 以連續(xù)顯示方式,查看文件file1的內(nèi)容morefile1或catfile1|more以分頁(yè)方式查看文件的內(nèi)容(2)刪除文件rm執(zhí)行格式:rmfilename例:rm file?rmf*(3)復(fù)制文件cp執(zhí)行格式:cp[-r]sourcedestination例: cpfile1file2將file1復(fù)制成file2cpfile1dir1將file1復(fù)制到目錄dir1cp/tmp/file1將file1復(fù)制到當(dāng)前目錄cp/tmp/file1file2將file1復(fù)制到當(dāng)前目錄名為file2cp-rdir1dir2(recursivecopy)復(fù)制整個(gè)目錄。(4)移動(dòng)或更改文件、目錄名稱 mv執(zhí)行格式:mvsourcedestination例: mvfile1file2將文件file1,更名為file2mvfile1dir1將文件file1,移到目錄dir1下mvdir1dir2(5)比較文件(可以是二進(jìn)制的)或目錄的內(nèi)容 diff執(zhí)行格式:diff[-r]name1name2(name1、name2同為文件或目錄)例:difffile1file2 比較file1與file2的不同處diff-rdir1dir2比較dir1與dir2的不同處(6) 文件中字符串的查找grep
執(zhí)行格式:grepstringfile執(zhí)行格式:grepstringfile例:grepabcfilel 查找并列出串a(chǎn)bc所在的整行文字文件或命令的路徑尋找執(zhí)行格式一:whereiscommand顯示命令的路徑執(zhí)行格式二:whichcommand 顯示路徑及使用者所定義的別名執(zhí)行格式三:whatiscommand顯示命令的功能摘要執(zhí)行格式四:findsearch-path-namefilename-print搜尋指定路徑下某文件的路徑執(zhí)行格式五:locatefilename根據(jù)系統(tǒng)預(yù)先生成的文件/目錄數(shù)據(jù)庫(kù)(/var/lib/slocate/slocate.db)查找匹配的文件/目錄,查找速度很快,如果有剛進(jìn)行的文件改變而系統(tǒng)未到執(zhí)行定時(shí)更新數(shù)據(jù)庫(kù)的時(shí)間,可以打入updatedb命令手動(dòng)更新。建立文件或目錄的鏈接 ln例:lnsourcetarget1建立source文件(已存在)的硬鏈接,命名為target1ln-ssourcetarget2建立source文件的符號(hào)鏈接,命名為target2以下是幾個(gè)常用命令操作的截圖:
四、設(shè)計(jì)思想當(dāng)計(jì)算機(jī)中兩個(gè)或多個(gè)進(jìn)程在執(zhí)行時(shí)需要使用公用緩沖區(qū),并且對(duì)該緩沖區(qū)采取了互斥措施。這時(shí)如果并發(fā)執(zhí)行這些進(jìn)程就會(huì)造成CPU的極大浪費(fèi),這是操作系統(tǒng)設(shè)計(jì)要求不允許的。而這種現(xiàn)象在操作系統(tǒng)和用戶進(jìn)程中大量存在。因此為了解決這一問(wèn)題,提出了同步的概念,即把異步環(huán)境下的一組并發(fā)進(jìn)程,因直接制約而互相發(fā)送消息、互相合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過(guò)程稱為進(jìn)程間的同步。在本次設(shè)計(jì)中,爸爸與媽媽、兒子與女兒的進(jìn)程操作是互斥的,但是爸爸與女兒、媽媽與兒子進(jìn)程之間的操作是同步的。因此要利用進(jìn)程同步的方法來(lái)實(shí)現(xiàn)這幾者之間的操作,當(dāng)然其中也包含著互斥進(jìn)程,因?yàn)楸P子每次只能放入或取出一個(gè)水果。程序設(shè)計(jì)中有如下四個(gè)進(jìn)程:father(),mother(),daughter。,son()。五、數(shù)據(jù)結(jié)構(gòu)1、 信號(hào)量semid_mutex作為進(jìn)程的公有信號(hào)量,其初始值為1,可以實(shí)現(xiàn)進(jìn)程間的互斥,同時(shí)可以表示當(dāng)前狀態(tài)下盤子里可以放幾個(gè)水果,實(shí)現(xiàn)進(jìn)程間的同步。2、 信號(hào)量semid_full1為進(jìn)程father()與daughter。的私有信號(hào)量,初值為0,表示當(dāng)前盤子里蘋果的數(shù)目。3、 信號(hào)量semid_full2為進(jìn)程mother()與son()的私有信號(hào)量,初值為0,表示當(dāng)前盤子里橘子的數(shù)目。六、設(shè)計(jì)流程爸爸放蘋果流程圖:媽媽放橘子流程圖:兒子吃橘子流程圖:女兒吃蘋果流程圖:七、源代碼#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<time.h>#include<sys/wait.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#include<sys/sem.h>#include<errno.h>#include<signal.h>#include<string.h>#defineSHMKEY9090/*共享存儲(chǔ)區(qū)的鍵*/#defineSEMKEY_EMPTY9091#defineSEMKEY_MUTEX9092#defineSEMKEY_FULL19093#defineSEMKEY_FULL29094/*信號(hào)量數(shù)組的鍵*//*注意:上面的鍵在系統(tǒng)中必須唯一*/#defineBUFF_LEN早*緩沖區(qū)可以存放10個(gè)產(chǎn)品*/#definePRODUCT_LEN1/*每個(gè)產(chǎn)品是一個(gè)字符串:<=32字符*/voidset_sembuf_struct(structsembuf*sem,intsemnum,intsemop,intsemflg)/*設(shè)置信號(hào)量結(jié)構(gòu)*/sem->sem_num=semnum;sem->sem_op=semop;sem->sem_flg=semflg;}intbegin(){char*addr,end;intshmid;intsemid_empty,semid_full1,semid_full2,semid_mutex;structsembufsem_tmp;/*開(kāi)辟共享存儲(chǔ)區(qū)*/if((shmid=shmget(SHMKEYBUFF_LEN*PRODUCT_LEN+3,0777|IPC_CREAT|IPC_EXCL))==-1){if(errno==EEXIST){printf("TheBufferHasExisted!\n");printf("DoYouWantToDeleteTheBuffer(Y=yes)?\n====:");scanf("%c",&end);if(end=='y'||end=='Y'){/*共享存儲(chǔ)區(qū)、信號(hào)量并不隨程序的結(jié)束而被刪除如果我們沒(méi)刪除的話,可以用ipcs命令查看,用ipcrm刪除*//*釋放緩沖區(qū)*/shmid=shmget(SHMKEYBUFF_LEN*PRODUCT_LEN+3,0777);if(shmctl(shmid,IPC_RMID,0)<0)perror("shmctl:falsed");/*同時(shí)釋放信號(hào)量*/semid_mutex=semget(SEMKEY_MUTEX,1,0777);/*獲取全局信號(hào)量id*/semid_empty=semget(SEMKEY_EMPTY1,0777);semid_full1=semget(SEMKEY_FULL1,1,0777);semid_full2=semget(SEMKEY_FULL2,1,0777);semctl(semid_mutex,0,IPC_RMID);semctl(semid_empty,0,IPC_RMID);semctl(semid_full1,0,IPC_RMID);semctl(semid_full2,0,IPC_RMID);}}elseprintf("FailToCreateBuffer!\n");return-1;}addr=(char*)shmat(shmid,0,0);/*連接緩沖區(qū)*/memset(addr,0,BUFF_LEN*PRODUCT_LEN+3); 〃初始化存儲(chǔ)區(qū)為0shmdt(addr);/*離開(kāi)緩沖區(qū)*//*創(chuàng)建3個(gè)信號(hào)量:1個(gè)用于對(duì)緩沖區(qū)互斥,2個(gè)用于生產(chǎn)者、消費(fèi)者同步*/if((semid_mutex=semget(SEMKEY_MUTEX,1,0777|IPC_CREAT|IPC_EXCL))==-1){if(errno==EEXIST)printf("TheSEMKEY_MUTEXHasExisted!\n");elseprintf("FailToCreateSEMKEY_MUTEX!\n");return-1;}if((semid_empty=semget(SEMKEY_EMPTY1,0777|IPC_CREAT|IPC_EXCL))==-1){if(errno==EEXIST)printf("TheSEMKEY_EMPTYHasExisted!\n");elseprintf("FailToCreateSEMKEY_EMPTY!\n");return-1;}if((semid_full1=semget(SEMKEY_FULL1,1,0777|IPC_CREAT|IPC_EXCL))==-1){if(errno==EEXIST)printf("TheSEM_FULL1HasExisted!\n");elseprintf("FailToCreateSEM_FULL1!\n");return-1;}if((semid_full2=semget(SEMKEY_FULL2,1,0777|IPC_CREAT|IPC_EXCL))==-1){if(errno==EEXIST)printf("TheSEM_FULL2HasExisted!\n");elseprintf("FailToCreateSEM_FULL2!\n");return-1;}/*給信號(hào)量賦初值*/set_sembuf_struct(&sem_tmp,0,BUFF_LEN,0);/*BUFF_LEN*/semop(semid_empty,&sem_tmp,1);set_sembuf_struct(&sem_tmp,0,0,0);/*0*/semop(semid_full1,&sem_tmp,1);set_sembuf_struct(&sem_tmp,0,0,0);/*0*/semop(semid_full2,&sem_tmp,1);set_sembuf_struct(&sem_tmp,0,1,0);/*1*/semop(semid_mutex,&sem_tmp,1);return0;}/*下面的P,V是對(duì)系統(tǒng)調(diào)用的簡(jiǎn)單封裝*/intP(intsemid){structsembufp_buf;p_buf.sem_num=0;p_buf.sem_op=-1;p_buf.sem_flg=0;if(semop(semid,&p_buf,1)==-1)/*semop參見(jiàn)課件ppt*/{perror("p(semid)falsed");exit(1);}elsereturn0;}intV(intsemid){structsembufv_buf;/*struct參見(jiàn)課件ppt*/v_buf.sem_num=0;v_buf.sem_op=1;v_buf.sem_flg=0;if(semop(semid,&v_buf,1)==-1){perror("v(semid)failed");exit(1);}elsereturn0;}intfather()intsemid_empty,semid_full1,semid_full2,semid_mutex;/*信號(hào)量集合id*/intrc1,rc2,rc3;semid_mutex=semget(SEMKEY_MUTEX,1,0777);/*獲取全局信號(hào)量id*/semid_empty=semget(SEMKEY_EMPTY1,0777);semid_full1=semget(SEMKEY_FULL1,1,0777);semid_full2=semget(SEMKEY_FULL2,1,0777);rc1=semctl(semid_empty,0,GETVAL);rc2=semctl(semid_mutex,0,GETVAL);if(rc1==0){return1; 〃不能放具U等待}if(rc2==0){return1;}P(semid_empty);/*對(duì)私有信號(hào)量作P操作*/P(semid_mutex);printf("thereis%dplacestoputapples\n",rc1);printf("PUTANAPLLE\n");V(semid_mutex);V(semid_full1);rc3=semctl(semid_full1,0,GETVAL);printf("daughtercanget%dapples\n",rc3);return0;}intmother(){intsemid_empty,semid_full1,semid_full2,semid_mutex;/*信號(hào)量集合id*/intrc1,rc2,rc3;semid_mutex=semget(SEMKEY_MUTEX,1,0777);/*獲取全局信號(hào)量id*/semid_empty=semget(SEMKEY_EMPTY1,0777);semid_full1=semget(SEMKEY_FULL1,1,0777);semid_full2=semget(SEMKEY_FULL2,1,0777);rc1=semctl(semid_empty,0,GETVAL);rc2=semctl(semid_mutex,0,GETVAL);if(rc1==0){return1;//不能放U等待return1;}elseif(rc2==0){return1;}P(semid_empty);/*對(duì)私有信號(hào)量作P操作*/P(semid_mutex);printf("thereis%dplacestoputoranges\n",rc1);printf("PUTANORANGE!!!\n");V(semid_mutex);V(semid_full2);rc3=semctl(semid_full2,0,GETVAL);printf("soncanget%doranges\n",rc3);return0;}intson(){intsemid_empty,semid_full1,semid_full2,semid_mutex;/*信號(hào)量集合id*/intrc1,rc2;semid_mutex=semget(SEMKEY_MUTEX,1,0777);/*獲取全局信號(hào)量id*/semid_empty=semget(SEMKEY_EMPTY1,0777);semid_full1=semget(SEMKEY_FULL1,1,0777);semid_full2=semget(SEMKEY_FULL2,1,0777);rc2=semctl(semid_full1,0,GETVAL);rc1=semctl(semid_full2,0,GETVAL);if(rc1==0){return1; 〃不能放具U等待}P(semid_full2);/*對(duì)私有信號(hào)量作P操作*/P(semid_mutex);printf("SUM:%dapplesand%doranges\n",rc2,rc1);printf("thereis%dorangestoget\n",rc1);printf("GETANORANGE!!!\n");V(semid_empty);V(semid_mutex);return0;}intdaughter(){intsemid_empty,semid_full1,semid_full2,semid_mutex;/*信號(hào)量集合id*/intrc1,rc2,rc3;semid_mutex=semget(SEMKEY_MUTEX,1,0777);/*獲取全局信號(hào)量id*/semid_empty=semget(SEMKEY_EMPTY1,0777);semid_full1=semget(SEMKEY_FULL1,1,0777);semid_full2=semget(SEMKEY_FULL2,1,0777);rc2=semctl(semid_full1,0,GETVAL);rc1=semctl(semid_full2,0,GETVAL);if(rc2==0){return1; 〃不能放具U等待}P(semid_full1);P(semid_mutex);printf("SUM:%dapplesand%doranges\n",rc2,rc1);printf("thereis%dapplestoget\n",rc2);printf("GETANAPPLE\n");V(semid_empty);V(semid_mutex);return0;}intmain(){intpid;inti=0,x;begin();pid=fork();if(fork()==0){father();}if(fork()==0){mother();}if(fork()==0){daughter();}if(fork()==0){son();return0;}八、調(diào)試與運(yùn)行首先,利用g++ks.cpp編譯一次,若有錯(cuò)誤,則根據(jù)錯(cuò)誤提示對(duì)程序進(jìn)行修改。其次,編譯通過(guò)后執(zhí)行./a.out,若原先已有共享緩沖區(qū),則刪除原先緩沖區(qū),再創(chuàng)建新的共享緩沖區(qū).,然后再次執(zhí)行./a.out,觀察系統(tǒng)進(jìn)程調(diào)度。運(yùn)行結(jié)果如下:.nyhd^yhd:*yhd^yhd:-*S./a.outTheBufferHasExisted!DoYouwantToDeleteTheBuffer(Y=yes)?p(sentd)falsed:Invalidargunentp(senid)falsed:Invalidargunentyhdgyhd:-$p{semtd}falsed:Invalidargumentp(sentd)falsed:invalidargumentp(semtd)falsed:Invalidargumentp(senld)falsed:Invalidargumentp(semid)falsed:Invalidargumentp(sentd)falsed:Invaltdargumentyhd§yhd:-5.ya.outfather:thereLs5placestoputappletfather:PUTANAPLLEfatheridaughtercanget1applesmother:thereIs4placestoputorangesmother:PUTANORANGEHImother:$ancanget1orangesyhd^yhd:-5daughter:thereIs1applestogetdaughter:GETANAPPLEson:thereis1orangestogetson:GETAMORAFIGEI!1yhd^yhd:-$./a.outfather:thereisSplacestoputapplesfathertPUTANAPLLEfather:daughtercanget1applesmother:therets4placestoputmother:PUTANORANGE111mother:soncanget1orangesyhd@yhd:~$daughterrthereis1daughteryhd^yhd:-$./a.outfather:thereisSplacestoputapplesfathertPUTANAPLLEfather:daughtercanget1applesmother:therets4placestoputmother:PUTANORANGE111mother:soncanget1orangesyhd@yhd:~$daughterrthereis1daughter:CETMAPPLEson:thereis1orangestogetson:CETANORANGEJ!Imother:theretsSplacestoputrtQther:PUTANORANGE!t1nother:sontenget1orangesson:thereis1orangestogetson:CETANORANGEJ!Imother:theretsSplacestoputmother:PUTANQRANCEl!1mot
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中地生會(huì)考試卷及答案
- 叉車考試實(shí)操試題及答案
- 護(hù)士衛(wèi)生招聘試題及答案
- 2025-2026人教版五年級(jí)期末語(yǔ)文測(cè)試
- 2025-2026七年級(jí)地理上學(xué)期測(cè)試湘教版卷
- 《東北草甸草原家畜混合放牧技術(shù)規(guī)程》征求意見(jiàn)稿
- 衛(wèi)生室藥房管理制度
- 回轉(zhuǎn)窯衛(wèi)生管理制度
- 品牌衛(wèi)生巾代理制度
- 外包工職業(yè)衛(wèi)生管理制度
- 2025年寵物疫苗行業(yè)競(jìng)爭(zhēng)格局與研發(fā)進(jìn)展報(bào)告
- 企業(yè)安全生產(chǎn)責(zé)任培訓(xùn)課件
- 綠化防寒合同范本
- 2025年中國(guó)礦產(chǎn)資源集團(tuán)所屬單位招聘筆試參考題庫(kù)附帶答案詳解(3卷)
- 煙草山東公司招聘考試真題2025
- 海爾管理會(huì)計(jì)案例分析
- 水果合同供貨合同范本
- 酒吧宿舍管理制度文本
- 數(shù)字化教學(xué)平臺(tái)的數(shù)據(jù)隱私保護(hù)策略
- TCD經(jīng)顱多普勒課件
- 2025年考研英語(yǔ)真題試卷及答案
評(píng)論
0/150
提交評(píng)論