งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Synchronization ( การประสานงาน ). จุดเด่นของบทนี้ 1. การผลิต / ปัญหาผู้บริโภค 2. บริการปรับปรุง 3. หากต้องการทราบวิธีแก้ไขปัญหานี้ เราต้องเรียนรู้เกี่ยวกับแนวคิดส่วน.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Synchronization ( การประสานงาน ). จุดเด่นของบทนี้ 1. การผลิต / ปัญหาผู้บริโภค 2. บริการปรับปรุง 3. หากต้องการทราบวิธีแก้ไขปัญหานี้ เราต้องเรียนรู้เกี่ยวกับแนวคิดส่วน."— ใบสำเนางานนำเสนอ:

1 Synchronization ( การประสานงาน )

2 จุดเด่นของบทนี้ 1. การผลิต / ปัญหาผู้บริโภค 2. บริการปรับปรุง 3. หากต้องการทราบวิธีแก้ไขปัญหานี้ เราต้องเรียนรู้เกี่ยวกับแนวคิดส่วน 'critical section' 4. กระบวนการแต่ละคนมีส่วนของรหัส เรียกว่า critical section ใน กระบวนการที่อาจจะเปลี่ยนตัวแปร ร่วมกัน

3 การแก้ปัญหาส่วนวิกฤติ (The Critical-Section Problem) การเขียนแสดงรูปแบบขั้นตอนวิธีสำหรับ แก้ปัญหาส่วนวิกฤติจะมีการกำหนด เฉพาะตัวแปรที่ใช้เพื่อการประสานอย่างได้ จังหวะกันเท่านั้น และบอกถึงโปรเซสเฉพาะ บางโปรเซส Pi ซึ่งส่วนเริ่มต้นและส่วนจบ ของการทำงานในส่วนวิกฤติจะล้อมอยู่ใน กรอบรูปสี่เหลี่ยมเพื่อเน้นถึงความสำคัญ ของส่วนนี้

4 คำตอบสำหรับการแก้ปัญหาส่วน วิกฤติต้อวงเป็นไปตามเงื่อนไขทั้ง สามข้อต่อไปนี้ การกีดกัน (Mutual exclusion) ความก้าวหน้า (Progress) การรออย่างมีขอบเขต (Bounded waiting)

5 ปัญหา critical-section สามารถแก้ปัญหาได้ ง่ายๆในสภาพแวดล้อมของหน่วยประมวลผล กลางหนึ่ง ถ้าเราสามารถป้องกัน การขัดจังหวะ ที่เกิดขึ้นในขณะที่มีการแชร์ตัวแปรที่อยู่ขณะ แก้ไข ในลักษณะนี้เราสามารถมั่นใจได้ว่าลำดับ ปัจจุบันของคำแนะนำจะได้รับอนุญาตให้ ดำเนินการในลำดับโดยการจอง ไม่มีคำแนะนำ อื่นๆที่จะรัน ดังนั้นไม่มีการเปลี่ยนแปลงที่คาด ไม่ถึงที่ส่งผลไปถึงตัวแปรที่ใช้งานร่วมกัน นี่คือ วิธีการใช้โดย nonpreemptive kernels

6 Synchronization ( การประสานข้อมูลฮาร์ดแวร์ ) คุณลักษณะของฮาร์ดแวร์สามารถทำ ให้การเขียนโปรแกรมใดๆ โดยสามารถ ทำให้ง่ายขึ้นและปรับปรุงประสิทธิภาพ ของระบบ ในส่วนนี้เราแสดงบาง คำแนะนำฮาร์ดแวร์ในปัจจุบันง่ายๆที่มี อยู่ในหลายๆระบบและแสดงวิธีการที่ สามารถนำมาใช้อย่างมีประสิทธิภาพ ในการแก้ปัญหา critical-section

7 วิธีการปัญหานี้ไม่เหมาะสมในสิ่งแวดล้อมของ หลายๆหน่วยประมวลผลกลาง การหยุดการ ขัดจังหวะในหลายๆหน่วยประมวลผลกลางอาจ ต้องใช้เวลามาก ดังเช่น boolean TestAndSet (Boolean *target) { boolean rv = *target ; *target = TRUE ; Return rv ; } รูปที่ 1 The definition of the TestAnSet () instruction

8 do { while (TestAndSetLock (&lock)) ; // do nothing // critical section Lock = FALSE ; // remainder section } while (TRUE) ; รูปที่ 2 Mutual-exclusion implementation with TestAndSet () ข้อความที่ผ่านไปยังโปรเซสเซอร์ทั้งหมด การผ่าน ข้อความนี้เกิดล่าช้าเมื่อเข้าไปสู่แต่ละ critical- section และประสิทธิภาพของระบบลดลง นอกจากนี้ควรพิจารณาผลในระบบ clock หาก clock ที่เก็บไว้มีการอัปเดทแล้วโดยการขัดจังหวะ (interrupt)

9 คำสั่ง TestAndSet () สามารถกำหนดไว้ตามที่ แสดงในรูปที่ 1 ลักษณะที่สำคัญคือจะรันคำสั่งนี้ atomically ดังนั้นหากคำสั่ง TestAndSet () สอง คำสั่งที่รันในขณะเดียวกัน ( แต่ทำบน CPU ที่ แตกต่างกัน ) คำสั่งนี้จะถูก รันตามลำดับในบาง ลำดับแบบสุ่ม หากเครื่องสนับสนุนคำสั่ง TestAndSet () แล้วเราสามารถทำการเอาออก ร่วมกันโดยมีการแจ้งการล็อคตัวแปร Boolean ใน การเริ่มต้นจะเป็นเท็จ โครงสร้างของกระบวนการ Pi จะแสดงในรูปที่ 2

10 คำสั่ง Swap() จะตรงกันข้ามกับคำสั่ง TestAndSet () คำสั่ง Swap() จะทำงานใน เนื้อหาของคำสองคำ กำหนดไว้ตามที่แสดงในรูป ที่ 3 เช่นเดียวกับคำสั่ง TestAndSet () จะรัน atomically หากเครื่องสนับสนุนคำสั่ง Swap() แล้วการเอาออกทั้งสองฝ่ายโดยมีเงื่อนไขดังนี้ การล็อคตัวแปร global Boolean จะถูกประกาศ และทำให้เป็นเท็จในเริ่มต้น นอกจากนี้แต่ละ กระบวนการมีคีย์ของตัวแปร local Boolean โครงสร้างของกระบวนการ Pi จะปรากฏในรูปที่ 4

11 Void Swap (boolean *a, boolean *b) { boolean temp = *a; *a = *b; *b = temp; } รูปที่ 3 The definition of the Swap () instruction do { key = TRUE ; while (key = = TRUE ) Swap (&lock, &key), // critical section Lock = FALSE; // remainder section } while (TRUE) ; รูปที่ 4 Mutual-exclusion implementation with the Swap () instruction

12 จัดทำโดย นางสาววีราภรณ์ หามนตรี รหัส กลุ่ม 1


ดาวน์โหลด ppt Synchronization ( การประสานงาน ). จุดเด่นของบทนี้ 1. การผลิต / ปัญหาผู้บริโภค 2. บริการปรับปรุง 3. หากต้องการทราบวิธีแก้ไขปัญหานี้ เราต้องเรียนรู้เกี่ยวกับแนวคิดส่วน.

งานนำเสนอที่คล้ายกัน


Ads by Google