![2023年山東大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告進(jìn)程同步實(shí)驗(yàn)_第1頁](http://file4.renrendoc.com/view/0ed99cae2143f18cbc653781800755e8/0ed99cae2143f18cbc653781800755e81.gif)
![2023年山東大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告進(jìn)程同步實(shí)驗(yàn)_第2頁](http://file4.renrendoc.com/view/0ed99cae2143f18cbc653781800755e8/0ed99cae2143f18cbc653781800755e82.gif)
![2023年山東大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告進(jìn)程同步實(shí)驗(yàn)_第3頁](http://file4.renrendoc.com/view/0ed99cae2143f18cbc653781800755e8/0ed99cae2143f18cbc653781800755e83.gif)
![2023年山東大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告進(jìn)程同步實(shí)驗(yàn)_第4頁](http://file4.renrendoc.com/view/0ed99cae2143f18cbc653781800755e8/0ed99cae2143f18cbc653781800755e84.gif)
![2023年山東大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告進(jìn)程同步實(shí)驗(yàn)_第5頁](http://file4.renrendoc.com/view/0ed99cae2143f18cbc653781800755e8/0ed99cae2143f18cbc653781800755e85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目:實(shí)驗(yàn)四、進(jìn)彳是同步實(shí)驗(yàn)學(xué)號(hào):日期20230409班級(jí):計(jì)基地12姓名:實(shí)驗(yàn)?zāi)康模杭由顚?duì)并發(fā)協(xié)作進(jìn)程同步與互斥概念的理解,觀測(cè)和體驗(yàn)并發(fā)進(jìn)程同步與互斥操作的效果,分析與研究經(jīng)典進(jìn)程同步與互斥問題的實(shí)際解決方案。了解Linux系統(tǒng)中IPC進(jìn)程同步工具的用法,練習(xí)并發(fā)協(xié)作進(jìn)程的同步與互斥操作的編程與調(diào)試技術(shù)。實(shí)驗(yàn)內(nèi)容:抽煙者問題。假設(shè)一個(gè)系統(tǒng)中有三個(gè)抽煙者進(jìn)程,每個(gè)抽煙者不斷地卷煙并抽煙。抽煙者卷起并抽掉一顆煙需要有三種材料:煙草、紙和膠水。一個(gè)抽煙者有煙草,一個(gè)有紙,另一個(gè)有膠水。系統(tǒng)中尚有兩個(gè)供應(yīng)者進(jìn)程,它們無限地供應(yīng)所有三種材料,但每次僅輪流提供三種材料中的兩種。得到缺失的兩種材料的抽煙者在卷起并抽掉一顆煙后會(huì)發(fā)信號(hào)告知供應(yīng)者,讓它繼續(xù)提供此外的兩種材料。這一過程反復(fù)進(jìn)行。請(qǐng)用以上介紹的IPC同步機(jī)制編程,實(shí)現(xiàn)該問題規(guī)定的功能。硬件環(huán)境:解決器:Intel?CoreNi3—2350MCPU@2.3OGHzX4圖形:Intel?SandybridgeMobilex86/MMX/SSE2內(nèi)存:4G操作系統(tǒng):32位磁盤:20.1GB軟件環(huán)境:ubuntul3.04實(shí)驗(yàn)環(huán)節(jié):(1)新建定義了Producer和consumer共用的IPC函數(shù)原型和變量的ipc.h文獻(xiàn)。(2)新建ipc.c文獻(xiàn),編寫producer和consumer共用的IPC的具體相應(yīng)函數(shù)。(3)新建Producer文獻(xiàn),一方面定義producer的一些行為,運(yùn)用系統(tǒng)調(diào)用,建立共享內(nèi)存區(qū)域,設(shè)定其長(zhǎng)度并獲取共享內(nèi)存的首地址。然后設(shè)定生產(chǎn)者互斥與同步的信號(hào)燈,并為他們?cè)O(shè)立相應(yīng)的初值。當(dāng)有生產(chǎn)者進(jìn)程在運(yùn)營而其他生產(chǎn)者請(qǐng)求時(shí),相應(yīng)的信號(hào)燈就會(huì)阻止他,當(dāng)共享內(nèi)存區(qū)域已滿時(shí),信號(hào)等也會(huì)提醒生產(chǎn)者不能再往共享內(nèi)存中放入內(nèi)容。(4)新建Consumer文獻(xiàn),定義consumer的一些行為,運(yùn)用系統(tǒng)調(diào)用來創(chuàng)建共享內(nèi)存區(qū)域,并設(shè)定他的長(zhǎng)度并獲取共享內(nèi)存的首地址。然后設(shè)定消費(fèi)者互斥與同步的信號(hào)燈,并為他們?cè)O(shè)立相應(yīng)的初值。當(dāng)有消費(fèi)進(jìn)程在運(yùn)營而其他消費(fèi)者請(qǐng)求時(shí),相應(yīng)的信號(hào)燈就會(huì)阻止它,當(dāng)共享內(nèi)存區(qū)域已空時(shí),信號(hào)等也會(huì)提醒生產(chǎn)者不能再從共享內(nèi)存中取出相應(yīng)的內(nèi)容。
?.⑥Ukun(0)Ukun-Lenovo-ldeaPad-Y471A:~/lab4likun@likun-Lenovo-IdeaPad-Y471A:~$cdIab4likun@likun-Lenovo-IdeaPad-Y471A:~/lab4$./consumer23319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergets3319TheconsumerTheconsumergetshastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaper分析:hastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaperhastobacco,glueandpaper多進(jìn)程的系統(tǒng)中避免不了進(jìn)程間的互相關(guān)系。進(jìn)程互斥是進(jìn)程之間發(fā)生的一種間接性作用,一般是程序不希望的。通常的情況是兩個(gè)或兩個(gè)以上的進(jìn)程需要同時(shí)訪問某個(gè)共享變量。我們一般將發(fā)生可以問共享變量的程序段稱為臨界區(qū)。兩個(gè)進(jìn)程不能同時(shí)進(jìn)入臨界區(qū),否則就會(huì)導(dǎo)致數(shù)據(jù)的不一致,產(chǎn)生與時(shí)間有關(guān)的錯(cuò)誤。解決互斥問題應(yīng)當(dāng)滿足互斥和公平兩個(gè)原則,即任意時(shí)刻只能允許一個(gè)進(jìn)程處在同一共享變量的臨界區(qū),并且不能讓任一進(jìn)程無限期地等待。進(jìn)程同步是進(jìn)程之間直接的互相作用,是合作進(jìn)程間故意識(shí)的行為,典型的例子是公共汽車上司機(jī)與售票員的合作。只有當(dāng)售票員關(guān)門之后司機(jī)才干啟動(dòng)車輛,只有司機(jī)停車之后售票員才干開車門。司機(jī)和售票員的行動(dòng)需要一定的協(xié)調(diào)。同樣地,兩個(gè)進(jìn)程之間有時(shí)也有這樣的依賴關(guān)系,因此我們也要有一定的同步機(jī)制保證它們的執(zhí)行順序。信號(hào)量機(jī)制就是其中的一種。信號(hào)燈機(jī)制即運(yùn)用Pv操作來對(duì)信號(hào)量進(jìn)行解決。PV操作由P操作原語和V操作原語組成(原語是不可中斷的過程),對(duì)信號(hào)量進(jìn)行操作,具體定義如下:P(S):①將信號(hào)量S的值減1,即S=S-1;②假如S3。,則該進(jìn)程繼續(xù)執(zhí)行;否則該進(jìn)程置為等待狀態(tài),排入等待隊(duì)列。V(S):①將信號(hào)量S的值加14US=S+1;②假如S>0,則該進(jìn)程繼續(xù)執(zhí)行;否則釋放隊(duì)列中第一個(gè)等待信號(hào)量的進(jìn)程。PV操作的意義:我們用信號(hào)量及PV操作來實(shí)現(xiàn)進(jìn)程的同步和互斥。信號(hào)量的數(shù)據(jù)結(jié)構(gòu)為一個(gè)值和一個(gè)指針,指針指向等待該信號(hào)量的下一個(gè)進(jìn)程。信號(hào)量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)它的值大于0時(shí),表達(dá)當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時(shí),其絕對(duì)值表達(dá)等待使用該資源的進(jìn)程個(gè)數(shù)。信號(hào)量的值僅能由PV操作來改變。一般來說,信號(hào)量S3。時(shí),S表達(dá)可用資源的數(shù)量。執(zhí)行一次P操作意味著請(qǐng)求分派一個(gè)單位資源,因此S的值減1;當(dāng)S<0時(shí),表達(dá)已經(jīng)沒有可用資源,請(qǐng)求者必須等待別的進(jìn)程釋放該類資源,它才干運(yùn)營下去。而執(zhí)行一個(gè)V操作意味著釋放一個(gè)單位資源,因此S的值加1;若S£0,表達(dá)有某些進(jìn)程正在等待該資源,因此要喚醒一個(gè)等待狀態(tài)的進(jìn)程,使之運(yùn)營下去。使用多于4個(gè)的生產(chǎn)者和消費(fèi)者,以各種不同的啟動(dòng)順序、不同的執(zhí)行速率檢測(cè)以上示例程序和獨(dú)立實(shí)驗(yàn)程序也能滿足同步的規(guī)定。由于使用信號(hào)量滿足進(jìn)程互斥的規(guī)定,任意時(shí)刻進(jìn)入臨界區(qū)的進(jìn)程只有一個(gè)。而進(jìn)程是通過信號(hào)量喚醒阻塞進(jìn)程,仍然可以實(shí)現(xiàn)進(jìn)程同步。調(diào)試過程中碰到的重要問題及解決過程:(1)在修改程序時(shí),最開始使用了read。、scheduaI。、Iock(),但是編譯出現(xiàn)錯(cuò)誤。解決方法:使用sleep。函數(shù)。(2)exit()缺少頭文獻(xiàn)。解決方法:加頭文獻(xiàn)#include<stdlib.h>osleep。等Iinux系統(tǒng)調(diào)用缺少頭文獻(xiàn)。解決方法:加頭文獻(xiàn)#include<unistd.h>體會(huì)和收獲:通過本次實(shí)驗(yàn),初步了解操作系統(tǒng)的進(jìn)程同步的過程。我對(duì)生產(chǎn)者-消費(fèi)者問題的解決辦法有了更全面的結(jié)識(shí),同時(shí)對(duì)調(diào)試代碼更加純熟。本次實(shí)驗(yàn)最大的體會(huì)就是,做東西要細(xì)心,在寫代碼的過程中,稍不留意就給后期調(diào)試工作帶來很多問題。運(yùn)營的消費(fèi)者應(yīng)行與相應(yīng)的生產(chǎn)者相應(yīng)起來,只有這樣運(yùn)營結(jié)果才會(huì)對(duì)的。結(jié)論分析與體會(huì):實(shí)現(xiàn)方式:Consumer:#incIude"ipc.h"intmain(intargc,char*argv口){。intrate=3;intconsumerid=atoi(argv[1]);buff_h=101;buff_number=1;cget_h=103;eget_number=1;shm_fIg=IPC_CREAT|0644;buff_ptr=(char*)set_shm(buff_h,buff_number,shm_fig);ocget_ptr=(int*)set_shm(cget_h,cget_number,shm_fIg);prod_h=201;。pmtx_h=202;cons_h=301;。cmtx_h=302;。sem_fIg=IPC_CREAT|0644;osem_vaI=buff_number;prod_sem=set_sem(prod_h,sem_vaI,sem_fIg);sem_vaI=0;ocons_sem=set_sem(cons_h,sem_vaI,sem_fIg);。sem_vaI=1;cmtx_sem=set_sem(cmtx_h,sem_vaI,sem_fig);。if(consumerid==O)。*cget_ptr=O;°whiIe(1){。if(buff_ptr[O]-'A,==consumerid){3down(cons_sem);o。down(cmtx_sem);。。sleep(rate);。oif(buff_ptr[O]='A')(ooprintf("%dTheconsumerhasglue.\nTheconsumergetstobaccoandpaper\n",getpid());0ft)o。if(buff_ptr[O]=='B'){。。printf("%dTheconsumerhaspaper.\nTheconsumergetstobaccoandgIue\n",getpid());0)if(buff_ptr[0]=='C){。o。oprintf("%dTheconsumerhastobacco.\nTheconsumergetsglueandpaper\n",getpid());0o}。*cget_ptr=(*cget_ptr+1);if(*cget_ptr%2==0)obuff_ptr[0]="D';。buff_ptr[0]='E';。。up(cmtx_sem);o3oup(prod_sem);00})breturnEXIT_SUCCESS;}Producer:#incIude"ipc.h"intmain(intargc,char*argv[]){。intrate=3;。intproducerid=atoi(argv[1]);。buff_h=101;buff_number=1;。pput_h=102;pput_number=1;shm_fIg=lPC_CREAT|0644;fbuff_ptr=(char)set_shm(buff_h,buff_number,shmpput_ptr=(int*)set_shm(pput_h,pput_number,shm_fIg);prod_h=201;pmtx_h=202;?cons_h=301;cmtx_h=302;osem_fIg=IPC_CREAT|0644;sem_vaI=buff_number;prod_sem=set_sem(prod_h,sem_vaI,sem_fIg);sem_vaI=0;conssem=setsem(consh,semvaI,semfIg);sem_vaI=1;pmtx_sem=set_sem(pmtx_h,sem_vaI,sem_fIg);oif(producerid==0){obuff_ptr[0]='D';*pput_ptr=0;。)whiIe(1){。if(buff_ptr[0]-"D'~producerid){o。down(prod_sem);?o。down(pmtx_sem);?*pput_ptr=(*pput-ptr+1)%3;。if(*pput_ptr==0){。。buff_ptr[0]='A';o6oprintf("%dTheproducergivestobaccoandpaper\n",getpid());00)。。if(*pput-ptr==1){。o。buff_ptr[0]='B';3oprintf("%dTheproducergivestobaccoandgIue\n",getpid());6O}。。if(*pput_ptr==2){o。。buff_ptr[0]='C';。oprintf("%dTheproducergivesglueandpaper\n",getpid());00}osIeep(rate);。up(pmtx_sem);。。up(cons_sem);))。returnEXIT_SUCCESS;Ipc.h:#incIude"ipc.h"intget_ipc_id(char*proc_fiIe,h_th){。FILE*pf;intm,n;ocharline[BUFSZ],colum[BUFSZ];if((pf=fopen(proc_fiIe,"r"))==NULL)(。perror("ProcfiIenotopen");exit(EXIT_FAILURE);0)fgets(line,BUFSZ,pf);。whiIe(!feof(pf))(om=n=0;fgets(Iine,BUFSZ,pf);。while(Iine[m]=='')0om++;whiIe(Iine[m]!='')。o。coIum[n++]=line[m++];。coIum[n]='\0';。if(atoi(colum)!=h)ocontinue;。n=0;whiIe(Iine[m]=='')o?m++;while(line[m]!='')°ocoIum[n++]=Iine[m++];colum[n]='\0';m=atoi(coIum);。fcIose(pf);。returnm;。)。fclose(pf);return—1;]intdown(intsem_id)(ostructsembufbuf;obuf.sem_op=-1;。buf.sem_number=0;buf.sem_fIg=SEM_UND0;。if((semop(sem_id,&buf,1))<0){?perror("downerror");ooexit(EXIT_FAILURE);。)returnEXIT_SUCCESS;1intup(intsem_id)(structsembufbuf;buf.sem_op=1;buf.sem_number=0;buf.sem_fIg=SEM_UND0;oif((semop(semid,&buf,1))<0){。perror("uperror");。exit(EXIT_FAILURE);)。returnEXITSUCCESS;1intset_sem(h_tsem_h,intsem_vaI,intsem_fIg){intsem_id;Sem_unssem_arg;。if((sem_id=get_ipc_id("/proc/sysvipc/sem",sem_h))<0)(。if((sem_id=semget(sem_h,1,sem_fIg))<0){operror("semaphorecreateerror");ooexit(EXIT_FAILURE);00)。?sem_arg.vaI-sem_vaI;。if(semctI(sem_id,0,SETVAL,sem_arg)<0){3perror("semaphoreseterror");exit(EXIT_FAILURE);。1)returnsem_id;]一char*set_shm(h_tshm_h,intshm_number,intshm_fIg){ointm,shm_id;char*shm_buf;oif((shm_id=get_ipc_id("/proc/sysvipc/shm",shm_h))<0)(一一if((shm_id=shmget(shm_h,shm_number,shm_fIg))<0)(。。perror("shareMemoryseterror");3exit(EXIT_FAILURE);00)。oif((shm_buf=(char*)shmat(shm_id,0,0))<(char*)0)(operror("getshareMemoryerror");exit(EXIT_FAILURE);。)。。for(m=0;m<shm_number;m++)。shm_buf[m]=0;0)if((shm_buf=(charshmat(shm_id,0,0))<(char*)0){。perror("getshareMemoryerror");exit(EXIT_FAILURE);0)。returnshm_buf;1intset_msq(h_tmsq_h,intmsq_fIg){intmsq_id;?if((msq_id=get_ipc_id("/proc/sysvipc/msg",msq_h))<0)(。oif((msq_id=msgget(msq_h,msq_fIg))<0){。。perror("messageQueueseterror");。。exit(EXIT_FAILURE);})。returnmsq_id;}實(shí)驗(yàn)結(jié)果:?.⑥Ukun(0)Ukun-Lenovo-ldeaPad-Y471A:~/lab4likun@likun-Lenovo-IdeaPad-Y471A:~$cdIab4likun@ltkun-Lenovo-IdeaPad-Y471A:~/lab4$./producer0
3320Theproducergivestobaccoandglue3320Theproducergivesglueandpaper3320Theproducergivestobaccoandglue3320Theproducergivestobaccoandpaper3320Theproducergivesglueandpaper3320Theproducergivestobaccoandglue3320Theproducergivestobaccoandpaper3320Theproducergivesglueandpaper3320Theproducergivestobaccoandglue3320Theproducergivestobaccoandpaper3320Theproducergivesglueandpaper3320Theproducergivestobaccoandglue3320Theproducergivestobaccoandpaper3320Theproducergivesglueandpaper3320Theproducergivestobaccoandglue3320Theproducergivestobaccoandpaper6—管Ukun(0)Ukun-Lenovo-ldeaPad-Y471A:~/lab4likunglikun-Lenovo-IdeaPad-Y471A:*/lab4$./producer13321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper3321Theproducergivesglueandpaper3321Theproducergivestobaccoandglue3321Theproducergivestobaccoandpaper1?一⑥Ukun(fl)Ukun-Lenovo-ldeaPad-Y471A:~/lab4
Itkun@ltkun-Lenovo-IdeaPad-Y471A:,lab4$./consumer?bash:./consumerQ:沒有那個(gè)文件或目錄likunglikun-Lenovo-IdeaPad-Y471A:~/Lab4$3096Theconsumerhasglue../consumer0Theconsumergets3096Theconsumertobaccoandhasglue.paperTheconsumergets3096Theconsumertobaccoandhasglue.paperTheconsumergets3096Theconsumertobaccoandhasglue.paperTheconsume
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安工作總結(jié)計(jì)劃安全設(shè)備行業(yè)保安工作的設(shè)備測(cè)試
- 企業(yè)財(cái)務(wù)戰(zhàn)略與市場(chǎng)策略的協(xié)調(diào)計(jì)劃
- 提高學(xué)生美術(shù)表達(dá)能力的策略計(jì)劃
- 消費(fèi)者關(guān)系管理的工作計(jì)劃
- 2025年中國休閑食品行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)、市場(chǎng)規(guī)模及發(fā)展趨勢(shì)研究報(bào)告
- 七年級(jí)下冊(cè)《一元一次不等式的解法》課件與練習(xí)
- 2025年真空采血管項(xiàng)目發(fā)展計(jì)劃
- 構(gòu)建穩(wěn)定異步消息傳遞框架
- 2025年印鐵油墨項(xiàng)目建議書
- 白雪公主的童話世界解讀
- 二年級(jí)下冊(cè)數(shù)學(xué)計(jì)算題400道及答案
- 第6課《飛向藍(lán)天的恐龍》兩課時(shí)學(xué)習(xí)任務(wù)單部編版四年級(jí)語文下冊(cè)
- 生產(chǎn)清場(chǎng)管理制度課件
- 小學(xué)科學(xué)質(zhì)量分析報(bào)告
- 口腔醫(yī)院客服培訓(xùn)課件
- 04G325吊車軌道聯(lián)結(jié)及車擋
- 2024年金城出版社有限公司招聘筆試參考題庫含答案解析
- 皮下注射的并發(fā)癥及預(yù)防
- 羅沙司他治療腎性貧血的療效與安全性評(píng)價(jià)演示稿件
- 混凝土攪拌站有限空間作業(yè)管理制度模版
- 苯板廠應(yīng)急預(yù)案范本
評(píng)論
0/150
提交評(píng)論