80 likes | 210 Views
Chapter 6. นางสาวกนกอร ศิ ริอำนาจ 50036153 กลุ่ม 2. the textbook Highlights of chapter 6. 1) The producer/consumer problem
E N D
Chapter 6 นางสาวกนกอร ศิริอำนาจ 50036153 กลุ่ม 2
the textbook Highlights of chapter 6 • 1) The producer/consumer problem นี่คือปัญหาที่มีชื่อเสียงและเป็นรูปแบบสิ่งที่โรงงานพอใจ บางชิ้นส่วนของอุปกรณ์ก็เป็นที่พอใจของโรงงานผลิตและโรงงานก็ใช้ชิ้นส่วนนั้น คุณสามารถกล่าวว่าโรงงานผลิตชิ้นส่วนอื่นๆ และโรงงานที่เราทำในการเป็นผู้บริโภคชิ้นส่วนเหล่านี้
the textbook Highlights of chapter 6 2) Lost updates ถ้าคุณเข้ารหัสผู้ผลิตตรง ๆและpsuedo code ผู้บริโภค แต่ละสิ่งที่พวกมันทำงาน เมื่อมีการทำงานคนเดียว คุณสามารถเรียกใช้เป็นอันแรกและทำงานต่อไป แต่ถ้าคุณ interleave โค้ด มันจะหยุดทำงาน
the textbook Highlights of chapter 6 3) เพื่อเรียนรู้วิธีแก้ไขปัญหานี้ เราต้องเรียนรู้เกี่ยวกับแนวคิด ‘crticial section’ Crticial section คือ พื้นที่ที่มีบางส่วนมีการเข้าถึงทรัพยากรเพื่อการปรับปรุงแก้ไข เช่น ตัวแปร Globalบางตัวเป็น incremented หรือ decremented ผู้ผลิต/ผู้บริโภค เช่น ที่ตัวแปรถูกใช้ร่วมกันคือเป็นเคาน์เตอร์
the textbook Highlights of chapter 6 4) แต่ละ Procesมีส่วนของรหัสที่เรียกว่า ‘critical section’ โปรเซสอาจมีการเปลี่ยนแปลงตัวแปรการปรับปรุงตารางการเขียนไฟล์เป็นต้น คุณลักษณะสำคัญของระบบคือเมื่อกระบวนการหนึ่งคือ exectuingใน ‘critical section’ และไม่มีกระบวนการอื่นๆ ที่จะได้รับอนุญาตให้ดำเนินงานในส่วน ‘critical section’ กล่าวคือ ไม่มีกระบวนการสองกระบวนการที่จะรันใน‘critical section’ ในเวลาเดียวกัน
the textbook Highlights of chapter 6 การแก้ปัญหาในส่วน ‘critical section’ ต้องมีความต้องการ 3 อย่างต่อไปนี้ : 1)mutual exclusion คือ การแยกการดำเนินการเมื่อเกิดการดำเนินการร่วม หากโปรเซส P1 กำลังทำการเอ็กซ์ซีคิวในส่วนงานวิกฤต โปรเซสอื่นก็จะไม่สามารถทำการเอ็กซ์ซีคิวในส่วนงานวิกฤตได้
the textbook Highlights of chapter 6 2) progress คือ หากไม่มีโปรเซสใดกำลังเอ็กซ์ซีคิวในส่วนงานวิกฤตและมีโปรเซสอื่นใดอยู่ในส่วนงานวิกฤต โปรเซสที่ถูกเลือกให้ทำการเอ็กซ์ซีคิวเป็นโปรเซสถัดไปก็จะไม่สามารถถูกเลื่อนออกไปได้ 3)bounded waiting คือ ขอบเขตการรอคอย ขอบเขตการรอคอยขึ้นอยู่กับจำนวนเวลาที่โปรเซสใดๆ ได้รับสิทธิในการเข้าสู่ส่วนงานวิกฤต หลังจากโปรเซสนั้นได้ทำการร้องขอเพื่อเข้าสู่ส่วนงานวิกฤต และก่อนที่การร้องขอนั้นจะได้รับอนุญาต 3.1 สมมติให้โปรเซสนั้นทำการเอ็กซ์ซีคิวที่ความเร็วไม่เป็นศูนย์ 3.2 ไม่มีทางเลือกอื่นที่สัมพันธ์กับโปรเซสที่ N
the textbook Highlights of chapter 6 • วิธีที่ 1 – Peterson's solution ซอร์ฟแวร์เพียงแต่ไม่สามารถทำงานบนระบบปฏิบัติการสมัยใหม่ได้ แต่มันดีสำหรับ 2 processes/threads • วิธีที่ 2 - Test and Set (hardware [mainframes]) • วิธีที่ 3 - Swap (hardware [PCs]) วิธีที่ 2 และ 3 สามารถทำงานได้ดีเยี่ยม แต่ต้องทำงานแบบใช้ภาษา assembler language หรือmachine code ซึ่งมันก็ไม่สะดวกสบายและอาจจะทำไม่ได้ในทุกอย่าง ( คิดในเรื่องเกี่ยวกับการใช้งานในพวกperl, python, tcl, and other scripting languages) สิ่งเราที่ทำได้ก็คือการรอคอยการทำงานของมัน....