ch7 process synchronization
TRANSCRIPT
Process Synchronization 1
บทท�� 7 การเข้�าจั งหวะระหว�างโปร
เซสProcess
Synchronization
Process Synchronization 2
ห วข้�อบรรยาย Process
Synchronization หลั กการพื้��นฐาน การไม่�เก!ดร�วม่แลัะส�วนว!กฤต
Process Synchronization 3
Process Synchronization
ในระบบคอมพิวเตอร�หลายโปรเซสที่��ม�หน�วยประมวลผลเดี�ยว โปรเซสต�าง ๆ สล บกั นที่"างานดี#วยความถี่��หลายคร %งต�อวนาที่� คล#ายกั บว�าโปรเซสต�าง ๆ ที่"างานไปพิร#อม ๆ กั น เคร'�องที่��ม�หน�วยประมวลผลโปรเซสมากักัว�าหน(�ง สามารถี่
ที่"างานไปพิร#อมกั นไดี#จรงบนหน�วยประมวลผลคนละต วกั น สภาพิเช่�นน�%เร�ยกัว�าภาวะพิร#อมกั น (concurrency)
Process Synchronization 4
Process Synchronization (ต�อ)
กัารใช่#งานข้#อม-ล หร'อที่ร พิยากัรหน�วยหน(�งในภาวะพิร#อมกั นน�%อาจเกัดีป.ญหา
เน'�องจากัล"าดี บกัารที่"างานข้องแต�ละโปรเซสในกัล1�มน %น
Process Synchronization 5
หลั กการพื้��นฐาน 1. โปรเซสท��อ!สระจัากก น
กัล1�มข้องงาน หร'อโปรเซสที่��ไม�ไดี#ร�วมกั นที่"างาน หร'อใช่#ที่ร พิยากัร
โปรเซสเหล�าน %นอาจต#องใช่# ที่ร พิยากัรบางอย�างตรงกั นในล กัษณะข้องกัารแย�งกั นใช่# แต�ใช่#พิร#อมกั นไม�ไดี# (non sharable)
ต#องม�ระบบในกัารดี-แลล"าดี บกัารใช่#งานที่ร พิยากัรต�าง ๆ
Process Synchronization 6
หลั กการพื้��นฐาน (ต�อ)
เช่�น กัารส�งงานพิมพิ�ออกัที่��เคร'�องพิมพิ� จะต#องที่ยอยส�งอย�างม�ล"าดี บกั�อนหล ง และรอให#เสร4จที่�ละงาน
จะสล บกั นส�งที่�ละบรรที่ ดีหร'อที่�ละหน#าไม�ไดี#
Process Synchronization 7
หลั กการพื้��นฐาน (ต�อ)
2 . โปรเชสท��ใช�ข้�อม่(ลัร�วม่ก น หร�อร�วม่ก นท)างาน โปรเซสเหล�าน�%ใช่#ที่ร พิยากัรบางอย�างร�วมกั น เช่�นไฟล�
หร'อบ ฟเฟอร�ข้#อม-ล กัารใช่#ที่ร พิยากัรต�าง ๆ เช่�นหน�วยความจ"า และอ1ปกัรณ�
เข้#าออกัร�วมกั นไดี#ระหว�างโปรเซส ที่"าให#เกัดีป.ญหาต�าง ๆ ตามมา
Process Synchronization 8
หลั กการพื้��นฐาน (ต�อ)
เช่�น หากัสองโปรเซสใช่#ต วแปรต วหน(�งในหน�วยความจ"าร�วมกั นที่ %งค-�
กัารแกั#ไข้ข้#อม-ลต วแปรน %นพิบว�าล"าดี บข้องกัารแกั#ไข้กั�อน หร'อหล งม�ความส"าค ญต�อค�าข้องข้#อม-ลต วน %นในที่#ายที่��ส1ดี
Process Synchronization 9
หลั กการพื้��นฐาน (ต�อ)
หร'อหากัโปรเซสหน(�งกั"าล งใช่#ที่ร พิยากัรหน(�งอย-� แล#วม�เหต1กัารณ�บางอย�างที่"าให#ต#องรอ
ผลค'อที่ร พิยากัรช่%นน %นจะถี่-กัม นย(ดีใช่#งานไป โดียไม�เกัดีประโยช่น�
ซ(�งป.ญหาน %นอาจข้ยายไปไกัลกัว�าน %นค'อ ม�โปรเซสอ'�นกั"าล งรอให#ที่ร พิยากัรน %นอย-�ดี#วย
และอาจเกัดีสภาพิกัารรอที่��วนเป6นวง กั4จะซ บซ#อนย�งข้'%น
Process Synchronization 10
หลั กการพื้��นฐาน (ต�อ)
ร-ปที่�� 1 กัารสล บกั นที่"างานข้องหลายโปรเซส ในเคร'�องที่��ม�หน�วยประมวลผลเดี�ยว
Process Synchronization 11
หลั กการพื้��นฐาน (ต�อ)
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 }
Process Synchronization 13
หลั กการพื้��นฐาน (ต�อ) สาเหต1ข้องป.ญหาอย-�ที่��ค"าส �งย�อย สามค"าส �งน %น ที่"างานโดียม�กัารแบ�งแยกั และม�กัารสล บกั บโปรเซสอ'�น
ซ(�งม�กัารใช่#งานข้#อม-ลร�วมกั น สถี่านกัารณ�เช่�นน�% เร�ยกัว�า Race condition เพิ'�อป7องกั นสถี่านกัารณ�เช่�นน�%ต#องย'นย นให#ไดี#ว�า ณ
เวลาหน(�ง ม�เพิ�ยงโปรเซสเดี�ยวที่��เข้#าถี่(งข้#อม-ลร�วมน %นไดี# ต#องอาศั ยกัารประสานจ งหวะ (synchronization)
Process Synchronization 14
หลั กการพื้��นฐาน (ต�อ) เร�ยกัค"าส�งที่��ที่"างานโดียไม�ถี่-กัข้ ดีจ งหวะว�า กัารดี"าเนนกัารแบบครบหน�วย (atomic operation) ในต วอย�างน�%ไดี#แกั�ค"าส �ง counter++ เเละ counter— เม'�อโปรเซสน %นส%นส1ดีกัารใช่#งานข้#อม-ลดี งกัล�าว ระบบจะ
อน1ญาตให#โปรเซสอ'�นที่��รออย-�ไดี#เข้#าใช่#ต�อไปที่�ละโปรเซส เร�ยกักัารเร�ยงเข้#าใช่#งานเช่�นน�%ว�า serialization
Process Synchronization 15
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต พิจารณากัารแย�งกั นใช่#ที่ร พิยากัรในร-ปแบบแรกั พิบว�าต#องม�กัารไม�เกัดีร�วม (Mutual
exclusion) เพิ'�อไม�ให#มากักัว�าหน(�งโปรเซสสล บกั นให#งาน
ที่ร พิยากัรหน(�ง ๆ ที่��ร �วมกั นใช่#ไม�ไดี# เร�ยกัที่ร พิยากัรน %นว�าที่ร พิยากัรวกัฤต (critical
resource) และเร�ยกัส�วนข้องค"าส �งที่��ม�กัารใช่#งานที่ร พิยากัร
น %นว�า ส�วนวกัฤต (critical section)
Process Synchronization 16
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
เม'�อม�กัารควบค1มแยกักัารใช่#งานกั น (Mutual exclusion)
อาจกั�อให#เกัดีป.ญหาใหม�ตามมา เช่�นภาวะตดีตาย (Deadlock) ดี งในสถี่านกัารณ�ที่��โปรเซส pl และ p2 กั"าล งใช่#
ที่ร พิยากัร R1 และ R2 ตามล"าดี บแบบให#พิร#อมกั นไม�ไดี#
Process Synchronization 17
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
และต�างกั4กั"าล งจะข้อใช่# R2 และ R1 ตามล"าดี บในระหว�างที่��กั"าล งย(ดีที่ร พิยากัรข้องตนอย-�น %น
จะเห4นไดี#ว�าต�างฝ่;ายต�างรอให#อ�กัฝ่;ายหน(�งปล�อยที่ร พิยากัรที่��ย(ดีอย-�ออกัมาเพิ'�อจะไดี#ที่"างานต�อ
เร�ยกัว�าเกัดีภาวะตดีตายข้(%น
Process Synchronization 18
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
อ�กัป.ญหาหน(�งค'อ กัารรอไม�ส%นส1ดี (Indefinite blocking) หร'อ starvation
สมมต โปรเซส pl กั"าล งใช่#ที่ร พิยากัร R อย-�แบบใช่#พิร#อมกั นไม�ไดี#
และม�โปรเซส p2 และ p3 รอจะใช่#ดี#วย เม'�อ pl ให#งานเสร4จ (ค'อส%นส1ดีงานส�วนวกัฤต) ไม� p2 กั4
p3 กั4จะไดี#ใช่#ต�อ สมม1ตว�าเป6น p2 ไดี#ใช่#ต�อ
Process Synchronization 19
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
และเวลาน�% pl เกัดีต#องกัารใช่#อ�กั ดี งน %นจะม� pl และ p3 รอให#อย-� เน'�องดี#วยสมมต p3 ม�ศั กัดี<ต"�าที่��ส1ดีที่"าให# pl ไดี#เข้#าใช่#ต�อหล ง p2
อ�กัคร %ง หล งจากัน %น p2 กั4อาจมาล ดีคว p3 อ�กั วนช่"%าเช่�นน�%ไปเร'�อย พิบว�า p3 จะต#องรอไปตลอดี ไม�ว�าจะไม�เกัดีภาวะตดีตายกั4ตาม ล กัษณะเช่�นน�%เร�ยกัว�า กัารรอไม�ส%นส1ดี
Process Synchronization 20
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
- โจัทย*ป+ญหาส�วนว!กฤต พิจารณาระบบหน(�งซ(�งม� n โปรเซส {p0, p1,…,
pn } แต�ละโปรเช่สม�โค#ดีส�วนหน(�งที่��เร�ยกัว�าส�วนวกัฤต
(Critical section) ซ(�งโปรเซสจะเปล��ยนแปลงค�าต วแปร หร'อค�าในตาราง หร'อเข้�ยนไฟล�ซ(�งใช่#ร�วมกั น เม'�อม�โปรเซสหน(�งกั"าล งที่"างานในโค#ดีบรเวณน %น โปรเซ
สอ'�นจะไม�สามารถี่เข้#าไปที่"างานในบรเวณส�วนวกัฤตไดี#
Process Synchronization 21
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
กัารที่"างานส�วนวกัฤตน�%ม�ล กัษณะกัารไม�เกัดีร�วมกั น (mutually exclusive) ในมตข้องเวลา โจที่ย�ป.ญหาส�วนวกัฤต ค'อให#ออกัเเบบกัารประสานงาน ระหว�างโปรเซสเพิ'�อให#ที่"างานร�วมกั น
Process Synchronization 22
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
โปรเซสใดีที่��ต#องกัารเข้#าไปในส�วนวกัฤต จะดี#องม�กัารข้ออน1ณาตกั�อน
โค#ดีบรเวณน�%เร�ยกัว�าส�วนเข้#าใช่# (entry section) ภายหล งโค#ดีบรเวณส�วนวกัฤตจ ะตามมาดี#วยโค#ดีส�วนที่��เร�ยกัว�า
ส�วนออกั (exit section) เพิ'�อกัารออกั และส�วนที่��เหล'อ (remainder section) หมายถี่(งโค#ดีที่��ตาม
มาหล งจากัน %น
Process Synchronization 23
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
ร-ปที่�� 2 ข้ %นตอนวธี�ที่ �วไปในกัารแกั#ป.ญหาส�วนวกัฤต
Process Synchronization 24
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
ค"าตอบข้องป.ญหาส�วนวกัฤตจะต#องตรงตามเง'�อนไข้ต�อไปน�%
1. การไม่�เก!ดร�วม่ (mutual exclusion) 2. การด)าเน!นต�อไป 3. การจั)าก ดการรอ
ในป.ญหาน�%เราอย-�ภายใต#สมมตฐานที่ �วไปว�า ค"าส �งระดี บภาษาเคร'�องแต�ละค"าส �ง (เช่�น load Store, test) ที่"างานอย�างแบ�งแยกัไม�ไดี# (atomic)
Process Synchronization 25
การไม่�เก!ดร�วม่แลัะส�วนว!กฤต (ต�อ)
หากัม�สองค"าส �งที่"างานพิร#อมกั น จะหมายถี่(งว�าที่ %งสองค"าส �งที่"างานตามหล งกั น โดียไม�สนใจว�าใครกั�อน
ไม�พิจารณาถี่(งความแตกัต�างข้องความเร4วในกัารที่"างานข้องโปรเซสต�าง ๆ
และถี่'อว�าโปรเซสจะที่"างานในส�วนวกัฤตอย�างจ"ากั ดี ค'อไม�วนตดีล-ปไม�ร- #จบภายในน %น