Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình
Số trang: 65
Loại file: ppt
Dung lượng: 508.00 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 7 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình bao gồm những nội dung về khái niệm cơ bản; Critical section, các giải pháp dùng lệnh máy thông thường; các giải pháp dùng lệnh cấm ngắt hoặc lệnh máy đặc biệt; Semaphore; Semaphore và các bài toán đồng bộ; Monitor.
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình Chương3ĐồngBộQuáTrình -1.1- Nộidung Kháiniệmcơbản Criticalsection Cácgiảiphápdùnglệnhmáythôngthường ● GiảithuậtPeterson,vàgiảithuậtbakery Cácgiảiphápdùnglệnhcấmngắthoặclệnhmáyđặc biệt Semaphore Semaphorevàcácbàitoánđồngbộ Monitor 2 Bàitoánđồngbộ(1/2)• Khảosátcácprocess/threadthựcthiđồngthờivàchiasẻdữliệu(ghishared memory)tronghệthống ● uniprocessor,hoặc ● sharedmemorymultiprocessor Nếukhôngcósựkiểmsoátkhitruycậpcácdữliệuchiasẻthìchúngcóthể trỡnênkhôngnhấtquán. Đểduytrìsựnhấtquándữliệu,hệthốngcầncócơchếbảođảmsựthực thicótrậttựcủacácprocessđồngthời. 3 Bàitoánđồngbộ(2/2) Hailớpbàitoánđồngbộ: ● Hợptác Bàitoánproducerconsumer:boundedbuffer ● Cấppháttàinguyên Bàitoánloạitrừtươnghỗ:đồângbộnhiềuquátrìnhsửdụngmộttài nguyênkhôngchiasẻđồângthờiđược BàitoánDiningPhilosophers 4 Đồngthời songsong Trênuniprocessorhaytrênsharedmemorymultiprocessor,các quátrìnhchạyđồngthời Trênsharedmemorymultiprocessor,cácquátrìnhcóthểchạy songsong quátrình1 quátrình2 Sharedmemory Biếnchiasẻ Quátrinh1và2codevà privatedata 5 BàitoánProducerconsumer(1/3) VídụBoundedbuffer,thêmbiếnđếmcount #defineBUFFER_SIZE8 /*8buffers*/ typedefstruct{ ... }item; itembuffer[BUFFER_SIZE]; intin=0,out=0,count=0; 6 BàitoánProducerconsumer(2/3) QuátrìnhProducer itemnextProduced; while(1){ while(count==BUFFER_SIZE); buffer[in]=nextProduced; count++; in=(in+1)%BUFFER_SIZE; } QuátrìnhConsumer itemnextConsumed; while(1){ while(count==0); nextConsumed=buffer[out]; biếncountđượcchiasẻ count; giữaproducervàconsumer out=(out+1)%BUFFER_SIZE;} 7 BàitoánProducerconsumer(3/3) Cáclệnhtăng/giảmbiếncounttươngđươngtrongngônngữ máylà:• Producer count++: • register1=count • register1=register1+1 • count=register1• Consumer count: • register2=count • register2=register21 • count=register2• Trongđó,registerilàthanhghicủaCPU. 8 Đồngbộvàlệnhđơnnguyên • Mãmáycủacáclệnhtăngvàgiảmbiếncountcóthểthựcthixenkẽ Giảsửcountđangbằng5.Chuỗithựcthisaucóthểxảyra: 1: producer register1:=count {register1=5} producer register1:=register1+1 {register1=6} 2: consumer register2:=count {register2=5} consumer register2:=register21 {register2=4} 3: producer count:=register1{count=6} 4: consumer count:=register2{count=4} Cảhaiprocessthaotácđồngthờilênbiếnchungcount.Trịcủabiếnchungnày khôngnhấtquándướicácthaotáccủahaiprocess. Giảipháp:cáclệnh count++,countphảilàđơnnguyên(atomic),nghĩalàthựchiệnnhưmộtlệnh đơn,khôngthựcthiđanxennhau. 9 Racecondition Racecondition:nhiềuprocesstruyxuấtvàthaotácđồng thờilêndữliệuchiasẻ(nhưbiếncount);kếtquảcuối cùngcủaviệctruyxuấtđồngthờinàyphụthuộcthứtự thựcthicủacáclệnhthaotácdữliệu. Đểdữliệuchiasẻđượcnhấtquán,cầnbảođảmsaocho cácprocesslầnlượtthaotáclêndữliệuchiasẻ.Dođó,cần cócơchếđồngbộhoạtđộngcủacácprocessnày. ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình Chương3ĐồngBộQuáTrình -1.1- Nộidung Kháiniệmcơbản Criticalsection Cácgiảiphápdùnglệnhmáythôngthường ● GiảithuậtPeterson,vàgiảithuậtbakery Cácgiảiphápdùnglệnhcấmngắthoặclệnhmáyđặc biệt Semaphore Semaphorevàcácbàitoánđồngbộ Monitor 2 Bàitoánđồngbộ(1/2)• Khảosátcácprocess/threadthựcthiđồngthờivàchiasẻdữliệu(ghishared memory)tronghệthống ● uniprocessor,hoặc ● sharedmemorymultiprocessor Nếukhôngcósựkiểmsoátkhitruycậpcácdữliệuchiasẻthìchúngcóthể trỡnênkhôngnhấtquán. Đểduytrìsựnhấtquándữliệu,hệthốngcầncócơchếbảođảmsựthực thicótrậttựcủacácprocessđồngthời. 3 Bàitoánđồngbộ(2/2) Hailớpbàitoánđồngbộ: ● Hợptác Bàitoánproducerconsumer:boundedbuffer ● Cấppháttàinguyên Bàitoánloạitrừtươnghỗ:đồângbộnhiềuquátrìnhsửdụngmộttài nguyênkhôngchiasẻđồângthờiđược BàitoánDiningPhilosophers 4 Đồngthời songsong Trênuniprocessorhaytrênsharedmemorymultiprocessor,các quátrìnhchạyđồngthời Trênsharedmemorymultiprocessor,cácquátrìnhcóthểchạy songsong quátrình1 quátrình2 Sharedmemory Biếnchiasẻ Quátrinh1và2codevà privatedata 5 BàitoánProducerconsumer(1/3) VídụBoundedbuffer,thêmbiếnđếmcount #defineBUFFER_SIZE8 /*8buffers*/ typedefstruct{ ... }item; itembuffer[BUFFER_SIZE]; intin=0,out=0,count=0; 6 BàitoánProducerconsumer(2/3) QuátrìnhProducer itemnextProduced; while(1){ while(count==BUFFER_SIZE); buffer[in]=nextProduced; count++; in=(in+1)%BUFFER_SIZE; } QuátrìnhConsumer itemnextConsumed; while(1){ while(count==0); nextConsumed=buffer[out]; biếncountđượcchiasẻ count; giữaproducervàconsumer out=(out+1)%BUFFER_SIZE;} 7 BàitoánProducerconsumer(3/3) Cáclệnhtăng/giảmbiếncounttươngđươngtrongngônngữ máylà:• Producer count++: • register1=count • register1=register1+1 • count=register1• Consumer count: • register2=count • register2=register21 • count=register2• Trongđó,registerilàthanhghicủaCPU. 8 Đồngbộvàlệnhđơnnguyên • Mãmáycủacáclệnhtăngvàgiảmbiếncountcóthểthựcthixenkẽ Giảsửcountđangbằng5.Chuỗithựcthisaucóthểxảyra: 1: producer register1:=count {register1=5} producer register1:=register1+1 {register1=6} 2: consumer register2:=count {register2=5} consumer register2:=register21 {register2=4} 3: producer count:=register1{count=6} 4: consumer count:=register2{count=4} Cảhaiprocessthaotácđồngthờilênbiếnchungcount.Trịcủabiếnchungnày khôngnhấtquándướicácthaotáccủahaiprocess. Giảipháp:cáclệnh count++,countphảilàđơnnguyên(atomic),nghĩalàthựchiệnnhưmộtlệnh đơn,khôngthựcthiđanxennhau. 9 Racecondition Racecondition:nhiềuprocesstruyxuấtvàthaotácđồng thờilêndữliệuchiasẻ(nhưbiếncount);kếtquảcuối cùngcủaviệctruyxuấtđồngthờinàyphụthuộcthứtự thựcthicủacáclệnhthaotácdữliệu. Đểdữliệuchiasẻđượcnhấtquán,cầnbảođảmsaocho cácprocesslầnlượtthaotáclêndữliệuchiasẻ.Dođó,cần cócơchếđồngbộhoạtđộngcủacácprocessnày. ...
Tìm kiếm theo từ khóa liên quan:
Hệ điều hành Bài giảng Hệ điều hành Đồng bộ quá trình Giải pháp dùng lệnh máy thông thường Giải pháp dùng lệnh cấm ngắt Bài toán đồng bộ quá trìnhGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 451 0 0 -
Lecture Operating systems: Lesson 24 - Dr. Syed Mansoor Sarwar
29 trang 383 0 0 -
Lecture Operating systems: Lesson 21 - Dr. Syed Mansoor Sarwar
22 trang 330 0 0 -
173 trang 274 2 0
-
175 trang 271 0 0
-
Lecture Operating systems: Lesson 13 - Dr. Syed Mansoor Sarwar
31 trang 271 0 0 -
Giáo trình Nguyên lý các hệ điều hành: Phần 2
88 trang 270 0 0 -
Giáo trình Nguyên lý hệ điều hành (In lần thứ ba): Phần 1 - PGS.TS. Hà Quang Thụy
98 trang 247 0 0 -
Đề tài nguyên lý hệ điều hành: Nghiên cứu tìm hiểu về bộ nhớ ngoài trong hệ điều hành Linux
19 trang 244 0 0 -
Bài thảo luận nhóm: Tìm hiểu và phân tích kiến trúc, chức năng và hoạt động của hệ điều hành Android
39 trang 227 0 0