版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第 4 章章進(jìn)程通信進(jìn)程通信本章內(nèi)容本章內(nèi)容p4.1 進(jìn)程通信的類(lèi)型進(jìn)程通信的類(lèi)型 p4.2 Linux進(jìn)程通信進(jìn)程通信 本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo)q理解進(jìn)程通信的基本類(lèi)型理解進(jìn)程通信的基本類(lèi)型q掌握直接通信和間接通信的基本方法掌握直接通信和間接通信的基本方法q掌握掌握Linux通信的方法通信的方法q并發(fā)進(jìn)程之間的交互必須滿(mǎn)足兩個(gè)基本要求:同并發(fā)進(jìn)程之間的交互必須滿(mǎn)足兩個(gè)基本要求:同步和通信。步和通信。 q根據(jù)進(jìn)程之間通信量的大小,可以將進(jìn)程的通信根據(jù)進(jìn)程之間通信量的大小,可以將進(jìn)程的通信方式分為低級(jí)通信機(jī)制和高級(jí)通信機(jī)制。方式分為低級(jí)通信機(jī)制和高級(jí)通信機(jī)制。 54.1 進(jìn)程通信的類(lèi)型進(jìn)程通信
2、的類(lèi)型 q 4.1.1 共享存儲(chǔ)器系統(tǒng)共享存儲(chǔ)器系統(tǒng) q 4.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng)q 4.1.3 管道通信管道通信 64.1.1 共享存儲(chǔ)器系統(tǒng)共享存儲(chǔ)器系統(tǒng) q 在共享存儲(chǔ)器系統(tǒng)中內(nèi)存將被開(kāi)辟一個(gè)共享存儲(chǔ)在共享存儲(chǔ)器系統(tǒng)中內(nèi)存將被開(kāi)辟一個(gè)共享存儲(chǔ)區(qū),相互通信的進(jìn)程通過(guò)該共享存儲(chǔ)區(qū)進(jìn)行通信區(qū),相互通信的進(jìn)程通過(guò)該共享存儲(chǔ)區(qū)進(jìn)行通信,這是進(jìn)程通信中最快捷和有效的方法。,這是進(jìn)程通信中最快捷和有效的方法。 進(jìn)程 A 共享存儲(chǔ)區(qū) 進(jìn)程 B 操作系統(tǒng)內(nèi)核 圖 4-1 共享存儲(chǔ)器系統(tǒng) 74.1.1 共享存儲(chǔ)器系統(tǒng)共享存儲(chǔ)器系統(tǒng) 進(jìn)程 A 共享存儲(chǔ)區(qū) 進(jìn)程 B 操作系統(tǒng)內(nèi)核 圖 4-1 共享存
3、儲(chǔ)器系統(tǒng) p該方式下的進(jìn)程通信該方式下的進(jìn)程通信需要進(jìn)行如下幾步:需要進(jìn)行如下幾步: p申請(qǐng)共享存儲(chǔ)區(qū)。申請(qǐng)共享存儲(chǔ)區(qū)。p連接共享存儲(chǔ)區(qū)到進(jìn)連接共享存儲(chǔ)區(qū)到進(jìn)程的存儲(chǔ)空間。程的存儲(chǔ)空間。p互斥訪問(wèn)共享存儲(chǔ)區(qū)?;コ庠L問(wèn)共享存儲(chǔ)區(qū)。p歸還共享存儲(chǔ)區(qū)。歸還共享存儲(chǔ)區(qū)。84.1.1 共享存儲(chǔ)器系統(tǒng)共享存儲(chǔ)器系統(tǒng) 進(jìn)程 A 共享存儲(chǔ)區(qū) 進(jìn)程 B 操作系統(tǒng)內(nèi)核 圖 4-1 共享存儲(chǔ)器系統(tǒng) 94.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) q 消息傳遞系統(tǒng)是使用最為廣泛的一種進(jìn)程間接通消息傳遞系統(tǒng)是使用最為廣泛的一種進(jìn)程間接通信的機(jī)制。在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交信的機(jī)制。在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換以格式
4、化的消息為單位。程序員直接利用系統(tǒng)換以格式化的消息為單位。程序員直接利用系統(tǒng)提供的一組通信命令(原語(yǔ))來(lái)實(shí)現(xiàn)通信。提供的一組通信命令(原語(yǔ))來(lái)實(shí)現(xiàn)通信。q 消息傳遞系統(tǒng)有以下兩種實(shí)現(xiàn)方式:直接通信方消息傳遞系統(tǒng)有以下兩種實(shí)現(xiàn)方式:直接通信方式和間接通信方式。式和間接通信方式。104.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) 1. 直接通信方式直接通信方式 q 直接通信方式是指發(fā)送進(jìn)程利用操作系統(tǒng)所提供直接通信方式是指發(fā)送進(jìn)程利用操作系統(tǒng)所提供的發(fā)送命令直接把消息發(fā)送給目標(biāo)進(jìn)程。此時(shí),的發(fā)送命令直接把消息發(fā)送給目標(biāo)進(jìn)程。此時(shí),要求發(fā)送進(jìn)程和接收進(jìn)程都以顯示的方式提供對(duì)要求發(fā)送進(jìn)程和接收進(jìn)程都以顯示的方式
5、提供對(duì)方的標(biāo)識(shí)符。方的標(biāo)識(shí)符。q 通常系統(tǒng)提供以下兩條通信命令原語(yǔ):通常系統(tǒng)提供以下兩條通信命令原語(yǔ):q send(receiver,message); /發(fā)送消息發(fā)送消息message給接收進(jìn)程給接收進(jìn)程receiverq receive(sender,message);/接受發(fā)送進(jìn)程接受發(fā)送進(jìn)程sender發(fā)來(lái)的消息發(fā)來(lái)的消息message114.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) q生產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:生產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:qvoid producer()qqwhile(1)qqqproduce an item in nextp;/生產(chǎn)一個(gè)產(chǎn)品放在生產(chǎn)一個(gè)
6、產(chǎn)品放在nextp中中qqsend(consumer,nextp);/將將nextp中的產(chǎn)品發(fā)送給消費(fèi)中的產(chǎn)品發(fā)送給消費(fèi)者者consumerqq124.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) q生產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:生產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:qvoid consumer()qqwhile(1)qqqreceive(producer,nextc);/從生產(chǎn)者從生產(chǎn)者producer中接受一個(gè)產(chǎn)品放在中接受一個(gè)產(chǎn)品放在nextc中中qqconsume the item in nextc; /消費(fèi)消費(fèi)nextc中的產(chǎn)品中的產(chǎn)品qq134.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) q 生
7、產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:生產(chǎn)者和消費(fèi)者問(wèn)題可以描述成如下形式:qvoid main()qqcobeginqproducer();qconsumer();qcoendq144.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) 2. 間接通信方式間接通信方式 q 間接通信方式是指進(jìn)程之間的通信需要通過(guò)作為間接通信方式是指進(jìn)程之間的通信需要通過(guò)作為某種共享數(shù)據(jù)結(jié)構(gòu)的實(shí)體。該實(shí)體用來(lái)暫存發(fā)送某種共享數(shù)據(jù)結(jié)構(gòu)的實(shí)體。該實(shí)體用來(lái)暫存發(fā)送進(jìn)程發(fā)送給目標(biāo)進(jìn)程的消息;接受進(jìn)程則從該實(shí)進(jìn)程發(fā)送給目標(biāo)進(jìn)程的消息;接受進(jìn)程則從該實(shí)體中取出發(fā)送進(jìn)程發(fā)送給自己的消息。通常把這體中取出發(fā)送進(jìn)程發(fā)送給自己的消息。通常把這種中間實(shí)
8、體稱(chēng)為信箱。種中間實(shí)體稱(chēng)為信箱。154.1.2 消息傳遞系統(tǒng)消息傳遞系統(tǒng) 2.間接通信方式間接通信方式 q當(dāng)兩個(gè)以上的進(jìn)程有一個(gè)共享的信箱時(shí),它們就能進(jìn)行當(dāng)兩個(gè)以上的進(jìn)程有一個(gè)共享的信箱時(shí),它們就能進(jìn)行通信。間接通信方式解除了發(fā)送進(jìn)程和接收進(jìn)程之間的通信。間接通信方式解除了發(fā)送進(jìn)程和接收進(jìn)程之間的直接聯(lián)系,在消息的使用上更加靈活。一個(gè)進(jìn)程可以分直接聯(lián)系,在消息的使用上更加靈活。一個(gè)進(jìn)程可以分別與多個(gè)進(jìn)程共享信箱,即一個(gè)進(jìn)程可以同時(shí)和多個(gè)進(jìn)別與多個(gè)進(jìn)程共享信箱,即一個(gè)進(jìn)程可以同時(shí)和多個(gè)進(jìn)程通信。程通信。 q間接通信方式中的發(fā)送原語(yǔ)和接收原語(yǔ)的形式如下:qsend(mailbox,message)
9、; /發(fā)送消息message給信箱mailboxqreceive(mailbox,message); /從信箱mailbox接收消息message164.1.3 管道通信管道通信 q 所謂所謂“管道管道”是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)進(jìn)程以實(shí)現(xiàn)它們之間通信的共享文件。進(jìn)程以實(shí)現(xiàn)它們之間通信的共享文件。174.1.3 管道通信管道通信 q 向管道提供輸入的發(fā)送進(jìn)程(即寫(xiě)進(jìn)程),以字向管道提供輸入的發(fā)送進(jìn)程(即寫(xiě)進(jìn)程),以字符流的形式把大量的數(shù)據(jù)送入管道;而接收進(jìn)程符流的形式把大量的數(shù)據(jù)送入管道;而接收進(jìn)程(即讀進(jìn)程)則從管道中接受數(shù)據(jù)。(即讀進(jìn)程)則從管道中接受數(shù)據(jù)
10、。q 讀寫(xiě)進(jìn)程要相互協(xié)調(diào)工作,必須做到以下幾點(diǎn):讀寫(xiě)進(jìn)程要相互協(xié)調(diào)工作,必須做到以下幾點(diǎn):q (1)一個(gè)進(jìn)程正在使用某個(gè)管道寫(xiě)入或讀取數(shù))一個(gè)進(jìn)程正在使用某個(gè)管道寫(xiě)入或讀取數(shù)據(jù)時(shí),另一個(gè)進(jìn)程就必須等待。據(jù)時(shí),另一個(gè)進(jìn)程就必須等待。q (2)發(fā)送者和接收者雙方必須能夠知道對(duì)方是)發(fā)送者和接收者雙方必須能夠知道對(duì)方是否存在,如果對(duì)方已經(jīng)不存在,就沒(méi)有必要再發(fā)否存在,如果對(duì)方已經(jīng)不存在,就沒(méi)有必要再發(fā)送或接收信息。送或接收信息。q (3)發(fā)送信息和接收信息之間一定要實(shí)現(xiàn)正確)發(fā)送信息和接收信息之間一定要實(shí)現(xiàn)正確的同步關(guān)系。的同步關(guān)系。184.2 Linux進(jìn)程通信進(jìn)程通信 q 4.2.1 Linux
11、進(jìn)程通信概念進(jìn)程通信概念 q 4.2.2 Linux軟中斷通信軟中斷通信 q 4.2.3 Linux管道通信管道通信q 4.2.4 Linux消息緩沖通信消息緩沖通信 q 4.2.5 Linux共享內(nèi)存通信共享內(nèi)存通信 194.2.1 Linux進(jìn)程通信概念進(jìn)程通信概念 q 根據(jù)進(jìn)程間通信信息量大小的不同,我們將進(jìn)程根據(jù)進(jìn)程間通信信息量大小的不同,我們將進(jìn)程通信劃分為兩大類(lèi)型:控制信息的通信和大批數(shù)通信劃分為兩大類(lèi)型:控制信息的通信和大批數(shù)據(jù)信息的通信,前者稱(chēng)為低級(jí)通信,后者稱(chēng)為高據(jù)信息的通信,前者稱(chēng)為低級(jí)通信,后者稱(chēng)為高級(jí)通信。級(jí)通信。 204.2.2 Linux軟中斷通信軟中斷通信 q 軟
12、中斷信號(hào)實(shí)現(xiàn)(軟中斷信號(hào)實(shí)現(xiàn)(signal implementation)是)是操作系統(tǒng)用來(lái)通知進(jìn)程有事件發(fā)生的一種機(jī)制。操作系統(tǒng)用來(lái)通知進(jìn)程有事件發(fā)生的一種機(jī)制。由于這種信號(hào)總是在進(jìn)程處于運(yùn)行狀態(tài)時(shí)才會(huì)去由于這種信號(hào)總是在進(jìn)程處于運(yùn)行狀態(tài)時(shí)才會(huì)去響應(yīng)的,故稱(chēng)之為軟中斷信號(hào)。響應(yīng)的,故稱(chēng)之為軟中斷信號(hào)。 214.2.2 Linux軟中斷通信軟中斷通信 1. 軟中斷信號(hào)預(yù)置函數(shù)軟中斷信號(hào)預(yù)置函數(shù)q 頭文件:頭文件:#include q 原型:原型:typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandle
13、r_t handler););q 功能:軟中斷預(yù)置信號(hào)。功能:軟中斷預(yù)置信號(hào)。q 返回值:如果返回值:如果signal()調(diào)用成功,返回最后一次調(diào)用成功,返回最后一次為安裝信號(hào)為安裝信號(hào)signum而調(diào)用而調(diào)用signal()時(shí)的時(shí)的handler值;失敗則返回值;失敗則返回SIG_ERR。224.2.2 Linux軟中斷通信軟中斷通信 2. 發(fā)送軟中斷信號(hào)函數(shù)發(fā)送軟中斷信號(hào)函數(shù) q 頭文件:頭文件: #include #include q 原型:原型:int kill(pid_t pid, int sig); q 功能:向指定進(jìn)程標(biāo)識(shí)符為功能:向指定進(jìn)程標(biāo)識(shí)符為pid的進(jìn)程發(fā)軟中斷的進(jìn)程發(fā)軟
14、中斷信號(hào)信號(hào)sig。q 返回值:返回值:0 成功時(shí)返回;成功時(shí)返回; -1失敗時(shí)返回。失敗時(shí)返回。234.2.3 Linux管道通信管道通信 1. 創(chuàng)建和關(guān)閉無(wú)名管道創(chuàng)建和關(guān)閉無(wú)名管道 創(chuàng)建管道創(chuàng)建管道q 頭文件:頭文件:#include q 原型:原型: int pipe(int filedes2);q 功能:創(chuàng)建一個(gè)管道名為指定名稱(chēng)的無(wú)名管道以功能:創(chuàng)建一個(gè)管道名為指定名稱(chēng)的無(wú)名管道以便于創(chuàng)建管道的進(jìn)程及其子孫進(jìn)程共享。便于創(chuàng)建管道的進(jìn)程及其子孫進(jìn)程共享。q 返回值:返回值:0 成功時(shí)返回;成功時(shí)返回;- 1 失敗時(shí)返回。失敗時(shí)返回。244.2.3 Linux管道通信管道通信 1. 創(chuàng)建和
15、關(guān)閉無(wú)名管道創(chuàng)建和關(guān)閉無(wú)名管道 關(guān)閉管道關(guān)閉管道q 頭文件:頭文件:#includeq 原型:原型: int close(int fd);q 功能:關(guān)閉文件描述符功能:關(guān)閉文件描述符q 返回值:返回值:0 如果系統(tǒng)調(diào)用成功返回;如果系統(tǒng)調(diào)用成功返回;- 1 如果系如果系統(tǒng)調(diào)用失敗返回。統(tǒng)調(diào)用失敗返回。254.2.3 Linux管道通信管道通信 2. 讀寫(xiě)管道讀寫(xiě)管道 讀管道讀管道q 頭文件:頭文件:#include q 原型:原型:ssize_t read(int fd, void *buf, size_t count);q 功能:從管道中讀數(shù)據(jù)。功能:從管道中讀數(shù)據(jù)。q 返回值:成功時(shí)則返回
16、讀取的數(shù)據(jù)。返回值:成功時(shí)則返回讀取的數(shù)據(jù)。264.2.3 Linux管道通信管道通信 2. 讀寫(xiě)管道讀寫(xiě)管道 寫(xiě)管道寫(xiě)管道q 頭文件:頭文件:#include q 原型:原型:ssize_t write(int fd, const void *buf, size_t count);q 功能:向管道中寫(xiě)數(shù)據(jù)。功能:向管道中寫(xiě)數(shù)據(jù)。q 返回值:返回值:0 成功時(shí)返回;成功時(shí)返回;-1失敗時(shí)返回。失敗時(shí)返回。274.2.4 Linux消息緩沖通信消息緩沖通信 1. 創(chuàng)建一個(gè)消息隊(duì)列或獲取已存在消息隊(duì)列的標(biāo)識(shí)創(chuàng)建一個(gè)消息隊(duì)列或獲取已存在消息隊(duì)列的標(biāo)識(shí) q 頭文件:頭文件: #include #inc
17、lude #include q 原型:原型:int msgget(key_t key, int msgflg);q 功能:創(chuàng)建標(biāo)識(shí)為功能:創(chuàng)建標(biāo)識(shí)為key值的消息隊(duì)列或者獲取已值的消息隊(duì)列或者獲取已存在的消息隊(duì)列的描述符存在的消息隊(duì)列的描述符msgid。q 返回值:正確時(shí)返回該消息隊(duì)列的描述符返回值:正確時(shí)返回該消息隊(duì)列的描述符msgid;錯(cuò)誤時(shí)返回;錯(cuò)誤時(shí)返回1。284.2.4 Linux消息緩沖通信消息緩沖通信 2. 發(fā)送一條消息到指定的消息隊(duì)列發(fā)送一條消息到指定的消息隊(duì)列 q 頭文件:頭文件:#include 、#include 和和#include q 原型:原型: int msgsn
18、d(int msqid, const void *msgp, size_t msgsz, int msgflg);q 功能:發(fā)送一個(gè)消息給指定描述符的消息隊(duì)列。功能:發(fā)送一個(gè)消息給指定描述符的消息隊(duì)列。將將msgp所指向的所指向的msgbuf中的消息復(fù)制到消息中的消息復(fù)制到消息數(shù)據(jù)結(jié)構(gòu)并掛到指定消息隊(duì)列尾,喚醒等待消息數(shù)據(jù)結(jié)構(gòu)并掛到指定消息隊(duì)列尾,喚醒等待消息的進(jìn)程。的進(jìn)程。q 返回值:成功時(shí)返回返回值:成功時(shí)返回0, 失敗時(shí)返回失敗時(shí)返回-1, 294.2.4 Linux消息緩沖通信消息緩沖通信 3. 從消息隊(duì)列接收消息從消息隊(duì)列接收消息 q 頭文件:頭文件:#include 、#inclu
19、de 和和#include 。q 原型:原型: ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg);q 功能:從指定的消息隊(duì)列接收一個(gè)消息。將消息功能:從指定的消息隊(duì)列接收一個(gè)消息。將消息復(fù)制到復(fù)制到msgp所指的所指的msgbuf中,從消息隊(duì)列中中,從消息隊(duì)列中刪除此消息,若消息未到則調(diào)用進(jìn)程阻塞插入等刪除此消息,若消息未到則調(diào)用進(jìn)程阻塞插入等待消息隊(duì)列尾。待消息隊(duì)列尾。q 返回值:成功時(shí)返回值:成功時(shí)msgrcv()返回拷貝到返回拷貝到mtext數(shù)組數(shù)組的實(shí)際字節(jié)數(shù);失敗時(shí)返回的實(shí)際字節(jié)數(shù);
20、失敗時(shí)返回-1。304.2.4 Linux消息緩沖通信消息緩沖通信 4. 對(duì)消息隊(duì)列的操作對(duì)消息隊(duì)列的操作 q 頭文件:頭文件:# include 和和# include 。q 原型:原型: int msgctl( int msgid, int cmd, struct msgid_ds *buf );q 功能:查詢(xún)一個(gè)消息隊(duì)列的狀態(tài);設(shè)置或修改它功能:查詢(xún)一個(gè)消息隊(duì)列的狀態(tài);設(shè)置或修改它的狀態(tài);撤消一個(gè)消息隊(duì)列。的狀態(tài);撤消一個(gè)消息隊(duì)列。q 返回值:成功時(shí)返回返回值:成功時(shí)返回0,失敗時(shí)返回,失敗時(shí)返回-1。314.2.5 Linux共享內(nèi)存通信共享內(nèi)存通信 1. 創(chuàng)建或獲取一個(gè)共享內(nèi)存創(chuàng)建或
21、獲取一個(gè)共享內(nèi)存 q 頭文件:頭文件: #include #include q 原型:原型:int shmget(key_t key, size_t size, int shmflg);q 功能:獲得一個(gè)內(nèi)部標(biāo)識(shí)為功能:獲得一個(gè)內(nèi)部標(biāo)識(shí)為shmid的共享存儲(chǔ)區(qū)的共享存儲(chǔ)區(qū)。q 返回值:返回值: 正確時(shí)返回共享存儲(chǔ)區(qū)的內(nèi)部標(biāo)識(shí)符正確時(shí)返回共享存儲(chǔ)區(qū)的內(nèi)部標(biāo)識(shí)符shmid。錯(cuò)誤時(shí)返回。錯(cuò)誤時(shí)返回-1。 324.2.5 Linux共享內(nèi)存通信共享內(nèi)存通信 2. 將共享內(nèi)存附接到進(jìn)程的虛擬地址空間將共享內(nèi)存附接到進(jìn)程的虛擬地址空間 q 頭文件:頭文件: #include #include q 原型:原型: void *shmat(int shmid, const void *shmaddr, int shmflg); int shmd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園工作總結(jié)感恩每一天
- 2024年設(shè)備監(jiān)理師考試題庫(kù)含答案(綜合卷)
- 演藝經(jīng)紀(jì)人的工作總結(jié)
- 服裝行業(yè)的搭配顧問(wèn)工作總結(jié)
- 建材行業(yè)行政后勤工作總結(jié)
- 2025年高考?xì)v史一輪復(fù)習(xí)之文化傳承與文化創(chuàng)新
- 花藝裝飾行業(yè)美工工作技能總結(jié)
- 2024年設(shè)備監(jiān)理師考試題庫(kù)及答案【真題匯編】
- 2024消防安全知識(shí)教育總結(jié)范文(35篇)
- 農(nóng)村蓋房傷亡合同(2篇)
- 《陸上風(fēng)力發(fā)電建設(shè)工程質(zhì)量監(jiān)督檢查大綱》
- 自來(lái)水外管網(wǎng)維修工程施工組織設(shè)計(jì)方案
- 醫(yī)學(xué)針灸推拿學(xué)考研模擬習(xí)題及參考答案
- 2024年包頭職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案1套
- 教科版小學(xué)科學(xué)四年級(jí)上冊(cè)期末檢測(cè)試卷及答案(共三套)
- 人教部編版八年級(jí)數(shù)學(xué)上冊(cè)期末考試卷及答案一
- 養(yǎng)老機(jī)構(gòu)安全管理培訓(xùn)課件
- (附答案)2024公需課《百縣千鎮(zhèn)萬(wàn)村高質(zhì)量發(fā)展工程與城鄉(xiāng)區(qū)域協(xié)調(diào)發(fā)展》試題廣東公需科
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期1月期末英語(yǔ)試題
- 有門(mén)攝影課智慧樹(shù)知到期末考試答案2024年
- 臨床試驗(yàn)觀察表(CRF)
評(píng)論
0/150
提交評(píng)論