ch7 process synchronization

25
Process Synchronization 1 บบบบบ 7 กกกกกกกกกกกกก กกกกกกกกกกกกก Process Synchronization

Upload: phichya-laemluang

Post on 29-Dec-2014

959 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ch7 Process Synchronization

Process Synchronization 1

บทท�� 7 การเข้�าจั งหวะระหว�างโปร

เซสProcess

Synchronization

Page 2: Ch7 Process Synchronization

Process Synchronization 2

ห วข้�อบรรยาย Process

Synchronization หลั กการพื้��นฐาน การไม่�เก!ดร�วม่แลัะส�วนว!กฤต

Page 3: Ch7 Process Synchronization

Process Synchronization 3

Process Synchronization

ในระบบคอมพิวเตอร�หลายโปรเซสที่��ม�หน�วยประมวลผลเดี�ยว โปรเซสต�าง ๆ สล บกั นที่"างานดี#วยความถี่��หลายคร %งต�อวนาที่� คล#ายกั บว�าโปรเซสต�าง ๆ ที่"างานไปพิร#อม ๆ กั น เคร'�องที่��ม�หน�วยประมวลผลโปรเซสมากักัว�าหน(�ง สามารถี่

ที่"างานไปพิร#อมกั นไดี#จรงบนหน�วยประมวลผลคนละต วกั น สภาพิเช่�นน�%เร�ยกัว�าภาวะพิร#อมกั น (concurrency)

Page 4: Ch7 Process Synchronization

Process Synchronization 4

Process Synchronization (ต�อ)

กัารใช่#งานข้#อม-ล หร'อที่ร พิยากัรหน�วยหน(�งในภาวะพิร#อมกั นน�%อาจเกัดีป.ญหา

เน'�องจากัล"าดี บกัารที่"างานข้องแต�ละโปรเซสในกัล1�มน %น

Page 5: Ch7 Process Synchronization

Process Synchronization 5

หลั กการพื้��นฐาน 1. โปรเซสท��อ!สระจัากก น

กัล1�มข้องงาน หร'อโปรเซสที่��ไม�ไดี#ร�วมกั นที่"างาน หร'อใช่#ที่ร พิยากัร

โปรเซสเหล�าน %นอาจต#องใช่# ที่ร พิยากัรบางอย�างตรงกั นในล กัษณะข้องกัารแย�งกั นใช่# แต�ใช่#พิร#อมกั นไม�ไดี# (non sharable)

ต#องม�ระบบในกัารดี-แลล"าดี บกัารใช่#งานที่ร พิยากัรต�าง ๆ

Page 6: Ch7 Process Synchronization

Process Synchronization 6

หลั กการพื้��นฐาน (ต�อ)

เช่�น กัารส�งงานพิมพิ�ออกัที่��เคร'�องพิมพิ� จะต#องที่ยอยส�งอย�างม�ล"าดี บกั�อนหล ง และรอให#เสร4จที่�ละงาน

จะสล บกั นส�งที่�ละบรรที่ ดีหร'อที่�ละหน#าไม�ไดี#

Page 7: Ch7 Process Synchronization

Process Synchronization 7

หลั กการพื้��นฐาน (ต�อ)

2 . โปรเชสท��ใช�ข้�อม่(ลัร�วม่ก น หร�อร�วม่ก นท)างาน โปรเซสเหล�าน�%ใช่#ที่ร พิยากัรบางอย�างร�วมกั น เช่�นไฟล�

หร'อบ ฟเฟอร�ข้#อม-ล กัารใช่#ที่ร พิยากัรต�าง ๆ เช่�นหน�วยความจ"า และอ1ปกัรณ�

เข้#าออกัร�วมกั นไดี#ระหว�างโปรเซส ที่"าให#เกัดีป.ญหาต�าง ๆ ตามมา

Page 8: Ch7 Process Synchronization

Process Synchronization 8

หลั กการพื้��นฐาน (ต�อ)

เช่�น หากัสองโปรเซสใช่#ต วแปรต วหน(�งในหน�วยความจ"าร�วมกั นที่ %งค-�

กัารแกั#ไข้ข้#อม-ลต วแปรน %นพิบว�าล"าดี บข้องกัารแกั#ไข้กั�อน หร'อหล งม�ความส"าค ญต�อค�าข้องข้#อม-ลต วน %นในที่#ายที่��ส1ดี

Page 9: Ch7 Process Synchronization

Process Synchronization 9

หลั กการพื้��นฐาน (ต�อ)

หร'อหากัโปรเซสหน(�งกั"าล งใช่#ที่ร พิยากัรหน(�งอย-� แล#วม�เหต1กัารณ�บางอย�างที่"าให#ต#องรอ

ผลค'อที่ร พิยากัรช่%นน %นจะถี่-กัม นย(ดีใช่#งานไป โดียไม�เกัดีประโยช่น�

ซ(�งป.ญหาน %นอาจข้ยายไปไกัลกัว�าน %นค'อ ม�โปรเซสอ'�นกั"าล งรอให#ที่ร พิยากัรน %นอย-�ดี#วย

และอาจเกัดีสภาพิกัารรอที่��วนเป6นวง กั4จะซ บซ#อนย�งข้'%น

Page 10: Ch7 Process Synchronization

Process Synchronization 10

หลั กการพื้��นฐาน (ต�อ)

ร-ปที่�� 1 กัารสล บกั นที่"างานข้องหลายโปรเซส ในเคร'�องที่��ม�หน�วยประมวลผลเดี�ยว

Page 11: Ch7 Process Synchronization

Process Synchronization 11

หลั กการพื้��นฐาน (ต�อ)

Page 12: Ch7 Process Synchronization

Process Synchronization 12

หลั กการพื้��นฐาน (ต�อ) กัารที่"างานดี#วยหน�วยประมวลผลเดี�ยวพิบว�า อาจเกัดีกัารข้ ดีจ งหวะสล บกัารที่"างานข้องสองโปรเซสน�%

ไดี#หลายร-ปแบบ แต�ล"าดี บข้องค"าส �งข้องแต�ละโปรเซสย งคงเดีม

T : โปรเซส 1 ที่"างาน R1 = counter { R1 = 10 }T+1 : โปรเซส 1 ที่"างาน R1 = R1 + 1 { RI 1= 11 }T+2 : โปรเซส 2 ที่"างาน R2 = counter { R2 = 10 }T+3 : โปรเซส 2 ที่"างาน R2 = R2 - 1 { R2 = 9 }T+4 : โปรเซส 1 ที่"างาน counter = R1 { counter = 11 }T+5 : โปรเซส 2 ที่"างาน counter = R2 { counter = 9 }

Page 13: Ch7 Process Synchronization

Process Synchronization 13

หลั กการพื้��นฐาน (ต�อ) สาเหต1ข้องป.ญหาอย-�ที่��ค"าส �งย�อย สามค"าส �งน %น ที่"างานโดียม�กัารแบ�งแยกั และม�กัารสล บกั บโปรเซสอ'�น

ซ(�งม�กัารใช่#งานข้#อม-ลร�วมกั น สถี่านกัารณ�เช่�นน�% เร�ยกัว�า Race condition เพิ'�อป7องกั นสถี่านกัารณ�เช่�นน�%ต#องย'นย นให#ไดี#ว�า ณ

เวลาหน(�ง ม�เพิ�ยงโปรเซสเดี�ยวที่��เข้#าถี่(งข้#อม-ลร�วมน %นไดี# ต#องอาศั ยกัารประสานจ งหวะ (synchronization)

Page 14: Ch7 Process Synchronization

Process Synchronization 14

หลั กการพื้��นฐาน (ต�อ) เร�ยกัค"าส�งที่��ที่"างานโดียไม�ถี่-กัข้ ดีจ งหวะว�า กัารดี"าเนนกัารแบบครบหน�วย (atomic operation) ในต วอย�างน�%ไดี#แกั�ค"าส �ง counter++ เเละ counter— เม'�อโปรเซสน %นส%นส1ดีกัารใช่#งานข้#อม-ลดี งกัล�าว ระบบจะ

อน1ญาตให#โปรเซสอ'�นที่��รออย-�ไดี#เข้#าใช่#ต�อไปที่�ละโปรเซส เร�ยกักัารเร�ยงเข้#าใช่#งานเช่�นน�%ว�า serialization

Page 15: Ch7 Process Synchronization

Process Synchronization 15

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต พิจารณากัารแย�งกั นใช่#ที่ร พิยากัรในร-ปแบบแรกั พิบว�าต#องม�กัารไม�เกัดีร�วม (Mutual

exclusion) เพิ'�อไม�ให#มากักัว�าหน(�งโปรเซสสล บกั นให#งาน

ที่ร พิยากัรหน(�ง ๆ ที่��ร �วมกั นใช่#ไม�ไดี# เร�ยกัที่ร พิยากัรน %นว�าที่ร พิยากัรวกัฤต (critical

resource) และเร�ยกัส�วนข้องค"าส �งที่��ม�กัารใช่#งานที่ร พิยากัร

น %นว�า ส�วนวกัฤต (critical section)

Page 16: Ch7 Process Synchronization

Process Synchronization 16

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

เม'�อม�กัารควบค1มแยกักัารใช่#งานกั น (Mutual exclusion)

อาจกั�อให#เกัดีป.ญหาใหม�ตามมา เช่�นภาวะตดีตาย (Deadlock) ดี งในสถี่านกัารณ�ที่��โปรเซส pl และ p2 กั"าล งใช่#

ที่ร พิยากัร R1 และ R2 ตามล"าดี บแบบให#พิร#อมกั นไม�ไดี#

Page 17: Ch7 Process Synchronization

Process Synchronization 17

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

และต�างกั4กั"าล งจะข้อใช่# R2 และ R1 ตามล"าดี บในระหว�างที่��กั"าล งย(ดีที่ร พิยากัรข้องตนอย-�น %น

จะเห4นไดี#ว�าต�างฝ่;ายต�างรอให#อ�กัฝ่;ายหน(�งปล�อยที่ร พิยากัรที่��ย(ดีอย-�ออกัมาเพิ'�อจะไดี#ที่"างานต�อ

เร�ยกัว�าเกัดีภาวะตดีตายข้(%น

Page 18: Ch7 Process Synchronization

Process Synchronization 18

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

อ�กัป.ญหาหน(�งค'อ กัารรอไม�ส%นส1ดี (Indefinite blocking) หร'อ starvation

สมมต โปรเซส pl กั"าล งใช่#ที่ร พิยากัร R อย-�แบบใช่#พิร#อมกั นไม�ไดี#

และม�โปรเซส p2 และ p3 รอจะใช่#ดี#วย เม'�อ pl ให#งานเสร4จ (ค'อส%นส1ดีงานส�วนวกัฤต) ไม� p2 กั4

p3 กั4จะไดี#ใช่#ต�อ สมม1ตว�าเป6น p2 ไดี#ใช่#ต�อ

Page 19: Ch7 Process Synchronization

Process Synchronization 19

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

และเวลาน�% pl เกัดีต#องกัารใช่#อ�กั ดี งน %นจะม� pl และ p3 รอให#อย-� เน'�องดี#วยสมมต p3 ม�ศั กัดี<ต"�าที่��ส1ดีที่"าให# pl ไดี#เข้#าใช่#ต�อหล ง p2

อ�กัคร %ง หล งจากัน %น p2 กั4อาจมาล ดีคว p3 อ�กั วนช่"%าเช่�นน�%ไปเร'�อย พิบว�า p3 จะต#องรอไปตลอดี ไม�ว�าจะไม�เกัดีภาวะตดีตายกั4ตาม ล กัษณะเช่�นน�%เร�ยกัว�า กัารรอไม�ส%นส1ดี

Page 20: Ch7 Process Synchronization

Process Synchronization 20

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

- โจัทย*ป+ญหาส�วนว!กฤต พิจารณาระบบหน(�งซ(�งม� n โปรเซส {p0, p1,…,

pn } แต�ละโปรเช่สม�โค#ดีส�วนหน(�งที่��เร�ยกัว�าส�วนวกัฤต

(Critical section) ซ(�งโปรเซสจะเปล��ยนแปลงค�าต วแปร หร'อค�าในตาราง หร'อเข้�ยนไฟล�ซ(�งใช่#ร�วมกั น เม'�อม�โปรเซสหน(�งกั"าล งที่"างานในโค#ดีบรเวณน %น โปรเซ

สอ'�นจะไม�สามารถี่เข้#าไปที่"างานในบรเวณส�วนวกัฤตไดี#

Page 21: Ch7 Process Synchronization

Process Synchronization 21

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

กัารที่"างานส�วนวกัฤตน�%ม�ล กัษณะกัารไม�เกัดีร�วมกั น (mutually exclusive) ในมตข้องเวลา โจที่ย�ป.ญหาส�วนวกัฤต ค'อให#ออกัเเบบกัารประสานงาน ระหว�างโปรเซสเพิ'�อให#ที่"างานร�วมกั น

Page 22: Ch7 Process Synchronization

Process Synchronization 22

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

โปรเซสใดีที่��ต#องกัารเข้#าไปในส�วนวกัฤต จะดี#องม�กัารข้ออน1ณาตกั�อน

โค#ดีบรเวณน�%เร�ยกัว�าส�วนเข้#าใช่# (entry section) ภายหล งโค#ดีบรเวณส�วนวกัฤตจ ะตามมาดี#วยโค#ดีส�วนที่��เร�ยกัว�า

ส�วนออกั (exit section) เพิ'�อกัารออกั และส�วนที่��เหล'อ (remainder section) หมายถี่(งโค#ดีที่��ตาม

มาหล งจากัน %น

Page 23: Ch7 Process Synchronization

Process Synchronization 23

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

ร-ปที่�� 2 ข้ %นตอนวธี�ที่ �วไปในกัารแกั#ป.ญหาส�วนวกัฤต

Page 24: Ch7 Process Synchronization

Process Synchronization 24

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

ค"าตอบข้องป.ญหาส�วนวกัฤตจะต#องตรงตามเง'�อนไข้ต�อไปน�%

1. การไม่�เก!ดร�วม่ (mutual exclusion) 2. การด)าเน!นต�อไป 3. การจั)าก ดการรอ

ในป.ญหาน�%เราอย-�ภายใต#สมมตฐานที่ �วไปว�า ค"าส �งระดี บภาษาเคร'�องแต�ละค"าส �ง (เช่�น load Store, test) ที่"างานอย�างแบ�งแยกัไม�ไดี# (atomic)

Page 25: Ch7 Process Synchronization

Process Synchronization 25

การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)

หากัม�สองค"าส �งที่"างานพิร#อมกั น จะหมายถี่(งว�าที่ %งสองค"าส �งที่"างานตามหล งกั น โดียไม�สนใจว�าใครกั�อน

ไม�พิจารณาถี่(งความแตกัต�างข้องความเร4วในกัารที่"างานข้องโปรเซสต�าง ๆ

และถี่'อว�าโปรเซสจะที่"างานในส�วนวกัฤตอย�างจ"ากั ดี ค'อไม�วนตดีล-ปไม�ร- #จบภายในน %น