C語(yǔ)言信號(hào)量同步與互斥生產(chǎn)者消費(fèi)者互斥鎖讀寫(xiě)者問(wèn)題哲學(xué)家就餐問(wèn)題_第1頁(yè)
C語(yǔ)言信號(hào)量同步與互斥生產(chǎn)者消費(fèi)者互斥鎖讀寫(xiě)者問(wèn)題哲學(xué)家就餐問(wèn)題_第2頁(yè)
C語(yǔ)言信號(hào)量同步與互斥生產(chǎn)者消費(fèi)者互斥鎖讀寫(xiě)者問(wèn)題哲學(xué)家就餐問(wèn)題_第3頁(yè)
C語(yǔ)言信號(hào)量同步與互斥生產(chǎn)者消費(fèi)者互斥鎖讀寫(xiě)者問(wèn)題哲學(xué)家就餐問(wèn)題_第4頁(yè)
C語(yǔ)言信號(hào)量同步與互斥生產(chǎn)者消費(fèi)者互斥鎖讀寫(xiě)者問(wèn)題哲學(xué)家就餐問(wèn)題_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、?操作系統(tǒng)原理?上機(jī)作業(yè)報(bào)告作業(yè):信號(hào)量機(jī)制作業(yè)編號(hào)8題目信號(hào)量機(jī)制作業(yè)【題目要求】通過(guò)多線程編程模擬進(jìn)程的同步,互斥及信號(hào)量機(jī)制的 經(jīng)典問(wèn)題.1編程解決下列圖前趨圖問(wèn)題,使得 5個(gè)線程按該圖要求運(yùn)行,要求其中P1P5代表5個(gè)代碼塊,每個(gè)代碼塊分別由1個(gè)線程運(yùn)行模擬, 每個(gè)代碼塊執(zhí)行時(shí)分別可以打印輸出該代碼塊的名稱(P1P5),每個(gè)代碼塊運(yùn)行時(shí)需要睡眠(sleep() 一定時(shí)間.(2)利用多線程編程和信號(hào)量機(jī)制模擬生產(chǎn)者消費(fèi)者問(wèn)題(多生產(chǎn)者和多消費(fèi)者).(3)利用多線程編程和信號(hào)量機(jī)制模擬哲學(xué)家就餐問(wèn)題,至少實(shí)現(xiàn)1種不會(huì)出現(xiàn)死鎖的方案.(4)利用多線程編程和信號(hào)量機(jī)制模擬讀寫(xiě)者問(wèn)題.【實(shí)驗(yàn)要求

2、】可選編程語(yǔ)言:C/C+/Java/C#/Python;一個(gè)小題實(shí)現(xiàn)在同一個(gè)程序文件中(C/C+);請(qǐng)適當(dāng)注釋?zhuān)粓?bào) 告正文(運(yùn)行屏幕截圖及源代碼)截圖.1.I號(hào):便面戰(zhàn)程'信號(hào)量1.CKU人代瑪城開(kāi)始送仃.代碼塊開(kāi)始運(yùn)行一.用3代碼撫開(kāi)帕運(yùn)仃一.P5優(yōu)嗎塊彳始運(yùn)行.P4代碼展訐蛤運(yùn)行.ilocess exited after 0.4091 sec ends irith return value L 清報(bào)任意跳婚埃 2.DE aj-aj=- 才=rh!一 目匚自 TJ -3- 目 蘆 首 E 營(yíng) 呼 二【&二 L&1J &=_ rtnFJJU niw-l=tan

3、= LfrR- TfTl-IHI HdTlin -3- U3 ft_Q 3J33 Q- 33 Q Q- - Ta owirim41旨IBSmw 2且®mm號(hào)y 5機(jī)a d.¥7攵電:'a -攵勺鼠:勺一:災(zāi) 國(guó) 災(zāi)力口士七 M力 氣朗希理游杰老.番:羽雷1歲*青笆界R審君前弱 蕾舞巍展彝城津津住除慘博像曝德法霜熱恃落償晚 Ht.乖UU或乘乘條系#乖乖案乖乖乘半粟乘乘乘乘索網(wǎng)乘 難 乘乖 乖 藜臬 乘p J ? 9 ? ? - 7,PN,q,7,p ; ;-*» - »0!12l34)56r7e0901122334455 - - L-3oil35f

4、i4T ys9 - 's'L'-7- - - s9 - - 1 w 1 2 L 2 ' - 2 ' - 7 ns皿品0?w限品nwnn品品口也nrt品品皆限品flplm nmrgn gnnnnuu品一寸股充品品n限r(nóng)gngnnn沫皆nn品拓 - 產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)聲.產(chǎn)產(chǎn)聲產(chǎn)r=4J產(chǎn)產(chǎn)產(chǎn)產(chǎn).產(chǎn)產(chǎn)產(chǎn)后聲產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn)產(chǎn).產(chǎn)產(chǎn)蘆產(chǎn)聲.產(chǎn)產(chǎn)產(chǎn)產(chǎn) W <"*?"個(gè)-1*5"4-<-個(gè)±<-<-個(gè)個(gè)<-<-個(gè)-4卞-個(gè)-1個(gè)小4-個(gè)十-個(gè)個(gè)個(gè)個(gè)個(gè) - 了了 了了了了 了了了了了/了了 r-

5、了 7 了了, 了 了了了了 f 了了 彳 了一 了了了了了 7 了 C產(chǎn)B聲產(chǎn)量產(chǎn)妻戶戶要盧,產(chǎn)漕聲產(chǎn)常聲戶費(fèi)盧盧塞聲聲要產(chǎn)產(chǎn)索戶產(chǎn)割產(chǎn)凄產(chǎn)瞽聲妻聲費(fèi)產(chǎn) 奮生生里消率重專(zhuān)生生消玉重生消生玉生浦酒生消生 -IBHm rT IX Frl3 .哲學(xué)家就餐.三種方法1只有雙手都拿到筷子,才讓其他人去拿. 1 F;原面留程我試me:專(zhuān)荷,看:有:胃售百,假設(shè):鶯,假設(shè),.芍,苦假設(shè):與鴻:假設(shè).假設(shè) 二思用被二思二思黑思一思二翅一思鼠用思二思思二思 W #.fl駐用性格也并_:山一批洱1進(jìn)5!這繼許洪.一1卅#1進(jìn)加.堪 零W豆冢蜃宴客宴蘇零番蘇或案主零零襄港董 學(xué)ini-dri"學(xué)?學(xué)學(xué)&

6、#163;£.£亍學(xué)學(xué)學(xué)學(xué)子學(xué)學(xué)±£于學(xué)學(xué)學(xué)5工£±于學(xué)lrl-y£于H- 5師品哲哲哲哲哲打畀甚哲督哲哲班拜=哲1赤募擢拜是=百近奸肺某后后r克異斜一 目含號(hào)號(hào)號(hào)三號(hào)yr=w>A信號(hào)號(hào)號(hào)三號(hào)號(hào)=>"號(hào).巨虧號(hào)號(hào)言Mcl,blrLJH號(hào)母含另 O 3 o TW 2 2 4 11 nJ o d- m* 2 2 fl 1 1 3 Jfl o J 2 o 2 1 fl 1 4 Tl- o- 3 o(2)偶數(shù)號(hào)先拿左邊筷子,再拿右邊筷子.奇數(shù)先拿右邊筷子,再拿左邊筷子.胃力:害假設(shè)假設(shè):巖4r :M番.節(jié).玄節(jié)

7、備考-吉考:養(yǎng)者:假設(shè)假設(shè)< 落:巖 用過(guò)富二m.圍二用崽 山二思 曾電 電 電 話二用3P二wws二崽二用1箕曰喜片覺(jué)購(gòu)結(jié)符皆存盒本片鼻話落續(xù)寓苗轉(zhuǎn)曾富富善 班聲中塞班帶京避事密遇索比里川SWW說(shuō)趟遇里坐霍里,£*走街第遇貨年罐條建JE維的邁附 壺¥友宸宏厚露起笈索金寶V友哀也聲哀起玄容森森立變哀友忘,友宸夜宙宸支±究京交VSE宸友軍交聶于早學(xué)£丁竽字罕T手工于字學(xué)£zn-字宇字字等T手營(yíng)早th爭(zhēng)字學(xué)宇r一干聶一,字王工丁字 富口引=*岳生也笑一:空U翁=箝幕后曰后空L妻=假設(shè)口幕=*也也哲弟=瞿口渠=*也 nfurtllrE號(hào)一%=&

8、#163;=.=之=且皆一"號(hào)£=.后蕓,"=*一詐告三之二且口巨罟毛號(hào) 立 1 41 B 0 314124 -UJ2E-111 44-w qll-二彳 mi 4 040 2 12 01«! .-llm s= - r * k-E- * BrD- F&r I h PF- 一 C3E(3)最多允許四個(gè)哲學(xué)家就餐.i:樓如耀語(yǔ)字冢3.CKC彝患者.集思考ss.進(jìn)迸雛雛進(jìn)講里維進(jìn)講維避避強(qiáng)道維沸雎討繼現(xiàn)建U徘進(jìn)東家宗宗重累冢家鬟聚家MMM患犀家事家客家學(xué)學(xué)學(xué)學(xué)學(xué)字學(xué)學(xué)芋學(xué)學(xué)學(xué)學(xué)堂,學(xué)學(xué)生-萋.學(xué)芋生學(xué)r學(xué)字抄耳案呆界年黑覆晶泰工二世起蒙一哲哲護(hù)爰哲哲研年

9、=世哲哲1 4 14 0 3- o 1 4 3 1 2- 4 -U 2 3 0 13Iwh ; C4 .讀寫(xiě)者問(wèn)題.IJ G F'更苴I、法耘*建者正行寫(xiě)東西. 寫(xiě)者正站東西, 直青:正在宿立洋 讀者3E在讀文反 讀者2正在讀文* 18010: 讀者:E在讀文件 談?wù)?正行睦文4 或者2上挖讀熨件 寫(xiě)者正右寫(xiě)主西.* . 與著工假設(shè)寫(xiě)京西 嚏雅霎甜 運(yùn)讀者左談文洋 寫(xiě)者主在寫(xiě)東西.、F追吉卜.身東西 植者:正在讀貨件 耳讀者2匚茬談文耳 讀錯(cuò)3正在讀文斗 金讀者已正佳讀工三-巳與者正在寫(xiě)本西.一 與聲正E寫(xiě)字酉代碼.1.#include <stdio.h>#include

10、<pthread.h>#include <stdlib.h>#include <semaphore.h>sem_t s1,s2,s3,s4;void run1(void);void run2(void);void run3(void);void run4(void);void run5(void);void compute(void);int main()pthread_tt1, t2, t3, t4, t5;sem_init(&s1,0,0);sem_init(&s2,0,0);sem_init(&s3,0,0);sem_init(

11、&s4,0,0);pthread_create(&t1, NULL, run1, NULL);pthread_create(&t2, NULL, run2, NULL);pthread_create(&t3, NULL, run3, NULL);pthread_create(&t4, NULL, run4, NULL);pthread_create(&t5, NULL, run5, NULL);pthread_join(t1, NULL);pthread_join(t2, NULL);pthread_join(t3, NULL);pthread_

12、join(t4, NULL);pthread_join(t5, NULL);return 0;void run1(void)sleep(2);printf("P1代碼塊開(kāi)始運(yùn)行.nn");sem_post(&s1);)void run2(void)(/ sleep(2);printf("P2代碼塊開(kāi)始運(yùn)行.nn");sem_post(&s2);)void run3(void)(/ sleep(2);sem_wait(&s1);sem_wait(&s2);printf("P3代碼塊開(kāi)始運(yùn)行.nn");se

13、m_post(&s3);sem_post(&s4);)void run4(void)(/ sleep(2);sem_wait(&s3);printf("P4代碼塊開(kāi)始運(yùn)行.nn"); )void run5(void)(/ sleep(2);sem_wait(&s4);printf("P5代碼塊開(kāi)始運(yùn)行.nn"); )2.#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <semaphore.h>

14、資源型信號(hào)量sem_t empty;sem_t full;可消費(fèi)數(shù)產(chǎn)品指針int consume_index = 0;int sn = 0;存放產(chǎn)品指針int product_index = 0;int sum = 0;互斥型信號(hào)量sem_t semaphore_mutex;int buffer10;void consumer(void)while(1)int product;sem_wait(&full);sem_wait(&semaphore_mutex);sum-;product = bufferconsume_index;consume_index = (consume

15、_index+1)%10;printf("消費(fèi)了一個(gè)產(chǎn)品:d ,剩余:dn",product,sum);sem_post(&semaphore_mutex);sem_post(&empty);sleep(2);void product(void)int product = sn+;while(1)(int product = sn+;sem_wait(&empty);sem_wait(&semaphore_mutex);bufferproduct_index = product;product_index = (product_index+1

16、)%10;sum+;printf("生產(chǎn)了一個(gè)產(chǎn)品:d,剩余數(shù)量:dn",product,sum);sem_post(&semaphore_mutex);sem_post(&full);sleep(1);int main()(sem_init(&full, 0, 0);sem_init(&empty, 0, 10);作為互斥鎖sem_init(&semaphore_mutex, 0, 1);pthread_t t1,t2;pthread_create(&t1, NULL, consumer, NULL);pthread_cre

17、ate(&t2, NULL, product, NULL);pthread_join(t1, NULL);pthread_join(t2, NULL);return 0;3.1#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <semaphore.h>筷子互斥型信號(hào)量semt chopstick5;/取筷子互斥性信號(hào)量 sem_t mutex;void P0(void) (int i = 0;while(1) (/取筷子互斥型信號(hào)量,只有當(dāng)兩個(gè)筷子都抓完以后

18、,才解鎖sem_wait(&mutex);取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);sem_post(&mutex);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i);)void P1(void)(int i = 1;while(1) (/取筷子互斥型

19、信號(hào)量 sem_wait(&mutex);取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);sem_post(&mutex);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i); )void P2(void)int i = 2;while(1)取筷子互斥型信號(hào)量

20、sem_wait(&mutex);取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5); sem_post(&mutex);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i); )void P3(void)int i = 3;while(1)取筷子互斥型信號(hào)量sem

21、_wait(&mutex);取左筷子sem_wait(&chopsticki);/sem_wait(&chopstick(i + 1) % 5);sem_post(&mutex);printf("%d號(hào)哲學(xué)家進(jìn)餐n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.'n", i);)void P4(void)(int i = 4;while(1)(/取筷子互斥型信號(hào)量 sem_

22、wait(&mutex);取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);sem_post(&mutex);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.'n", i);)int main()(int i;pthread_t p5;for(i = 0; i &

23、lt; 5; i+)(sem_init(&chopsticki, 0, 1);sem_init(&mutex,0,1);pthread_create(&p0, NULL, P0, NULL);pthread_create(&p1, NULL, P1, NULL);pthread_create(&p2, NULL, P2, NULL);pthread_create(&p3, NULL, P3, NULL);pthread_create(&p4, NULL, P4, NULL);for(i = 0; i < 5; i+)pthread_

24、join(pi, NULL);return 0;3.2#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <semaphore.h>筷子互斥型信號(hào)量sem_t chopstick5;void P0(void)int i = 0;while(1)偶數(shù)先抓右邊筷子,再抓左邊筷子 取右筷子sem_wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n&quo

25、t;, i); sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i);)void P1(void)int i = 1;while(1)奇數(shù)先抓左邊筷子,再抓右邊筷子取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki

26、);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i);)void P2(void)int i = 2;while(1)偶數(shù)先抓右邊筷子,再抓左邊筷子取右筷子sem_wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem post(&chopsticki);sem_post(&chopstick(i + 1) % 5);pri

27、ntf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i);)void P3(void)int i = 3;while(1)奇數(shù)先抓左邊筷子,再抓右邊筷子取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i); )void P

28、4(void)int i = 4;while(1)偶數(shù)先抓右邊筷子,再抓左邊筷子取右筷子sem_wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i); ) int main()(int i;pthread_t p5;for(i = 0; i &l

29、t; 5; i+)(sem_init(&chopsticki, 0,1);)pthread_create(&p0, NULL, P0, NULL);pthread_create(&p1, NULL, P1, NULL);pthread_create(&p2, NULL, P2, NULL);pthread_create(&p3, NULL, P3, NULL);pthread_create(&p4, NULL, P4, NULL);for(i = 0; i < 5; i+) (pthread_join(pi, NULL);) return

30、0;)3.3#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <semaphore.h>筷子互斥型信號(hào)量sem_t chopstick5;void P0(void)(int i = 0;while(1)(偶數(shù)先抓右邊筷子,再抓左邊筷子/sem_wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d號(hào)哲學(xué)家進(jìn)餐n", i);sleep(2);sem_post(

31、&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.'n", i);)void P1(void)(int i = 1;while(1)(/奇數(shù)先抓左邊筷子,再抓右邊筷子取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&ch

32、opstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.'n", i);)void P2(void)(int i = 2;while(1)(/偶數(shù)先抓右邊筷子,再抓左邊筷子取右筷子sem_wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d號(hào)哲學(xué)家進(jìn)餐n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d

33、號(hào)哲學(xué)家繼續(xù)思考.'n", i);)void P3(void)(int i = 3;while(1)(奇數(shù)先抓左邊筷子,再抓右邊筷子取左筷子sem_wait(&chopsticki);取右筷子sem_wait(&chopstick(i + 1) % 5);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.'n", i);)void P4

34、(void)(int i = 4;while(1)(/偶數(shù)先抓右邊筷子,再抓左邊筷子取右筷子sem wait(&chopstick(i + 1) % 5);取左筷子sem_wait(&chopsticki);printf("%d 號(hào)哲學(xué)家進(jìn)餐.n", i);sleep(2);sem_post(&chopsticki);sem_post(&chopstick(i + 1) % 5);printf("%d號(hào)哲學(xué)家繼續(xù)思考.n", i);)int main()(int i;pthread_t p5;for(i = 0; i &l

35、t; 5; i+)(sem_init(&chopsticki, 0, 1);)pthread_create(&p0, NULL, P0, NULL);pthread_create(&p1, NULL, P1, NULL);pthread_create(&p2, NULL, P2, NULL);pthread_create(&p3, NULL, P3, NULL);pthread_create(&p4, NULL, P4, NULL);for(i = 0; i < 5; i+)( pthread_join(pi, NULL);)return 0;)4.讀寫(xiě)者問(wèn)題.#include <stdio.h>#include <pthre

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論