Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 3 การประสานเวลาของโพรเซส, เลขที่ 25 หมู่ 800 6221659434…
บทที่ 3 การประสานเวลาของโพรเซส
3.1 การประสานเวลาของโพรเซส
ให้สามารถประมวลผลได้พร้อมกัน
มีการทำงานร่วมกัน (Cooperating)
ช่วยเพิ่มความเร็วในการทำงานของระบบสูงขึ้น
มีความสะดวกในการทำงาน
3.5 การประมวลผลพร้อมกันโดยวิธีการทางซอฟต์แวร์
5.1 อัลกอริทึมของเดกเกอร์
สามารถทำงานพร้อมกัน
การไม่เกิดร่วม
5.2 อัลกอริทึมปีเตอร์สันโซลูชั่น (Peterson’s Solution)
ซับซ้อนในการออกแบบซอฟต์แวร์
3.3 สภาวะการแย่งชิง
ผลลัพธ์อาจจะเกิดการผิดพลาดขึ้นได้
สภาวะเงื่อนไขการแย่งชิง (Race condition)
อาศัยกลไกบางอย่างในการประสาน
รับประกันความถูกต้องได้
3.8 การติดตายและอดตาย
3.9 ปัญหาพื้นฐานของการประสานเวลา
9.1 ปัญหาที่พักข้อมูลขนาดจำกัด (Bounded-Buffer Problem)
ปัญหาผู้ผลิต-ผู้บริโภค
ต้อง Sleep จนกว่าบัฟเฟอร์จะมีที่ว่าง
9.2 ปัญหาผู้อ่านและผู้เขียน (The Readers/Writers Problem)
ต้องการอ่านข้อมูล
Readers
อ่านข้อมูลเพียงอย่างเดียว
Writer
การเขียนข้อมูล
มีข้อมูลเพิ่มเติม (Wakeup เมื่อมีข้อมูลเข้ามาสู่บัฟเฟอร์)
9.3 ปัญหาอาหารเย็นของนักปราชญ์(The Dining Philosophers Problem)
ที่มีอยู่อย่างจำกัดร่วมกันระหว่างหลายโพรเซส
ทำงานแบบขนานได้มากมาย
ไม่ได้ป้องกันสภาวะการรออย่างไม่รู้จบ
3.7 โครงสร้างพื้นฐานสำหรับการซินโครไนซ
7.1 เซมาฟอร์(Semaphore)
ซับซ้อนมากขึ้น
ไม่ต้องการเวลารอคอย
แบบภาวะครบหน่วย
7.2 การใช้งานเซมาฟอร์
7.3 การสร้างเซมาฟอร์(Semaphore Implementation)
ปัญหาการกีดกัน
“การวนเวียนรอคอย”
เสียเวลาอยู่ในสภาวะของ Waiting
ประสิทธิภาพลดลง
7.4 เซมาฟอร์แบบทวิภาค (Binary Semaphore)
แบบนับ (Counting semaphore)
สร้างได้ง่ายกว่าเซมาฟอร์แบบนับ
รูปแบบทวิภาคได้
3.2 ปัญหาภาวะพร้อมกัน
บนซีพียูเดียว
ท างานบนซีพียูหลายตัว
ทรัพยากรที่ไม่สามารถใช้ร่วมกันได้
3.4 การแก้ปัญหาส่วนวิกฤต
4.1 การกีดกัน (Mutual exclusion)
4.2 ความก้าวหน้า (Progress)
ต้องไม่เลื่อนออกไปอย่างไม่มีกำหนด
4.3 การรออย่างมีขอบเขต (Bounded waiting)
การรอแบบไม่ว่าง (Preemptive kernels)
วนเวียนตรวจสอบเงื่อนไขนั้นอยู่ตลอด
คำสั่งทำซ้ำ + ทดสอบเงื่อนไขอยู่เรื่อย ๆ
การขัด (Non-preemptive kernels)
เวลาในการรอ
การออกแบบข้อตกลงหรือโปรโตคอล (Protocol)
3.6 ฮาร์ดแวร์ประสานเวลา
6.1 การปิดกั้น (Lock)
ทำางานพร้อมกันได้
การไม่เกิดร่วม
6.2 การปิดทางขัดจังหวะ (Disable Interrupt)
ระงับการใช้ Interrupts
ไม่เป็นที่นิยม
มีคุณสมบัติการไม่เกิดร่วม
6.3 คำสั่งทดสอบและเซต (Test and Set Instruction)
วิธีการปิดกั้น
การปิดทางขัดจังหวะ
สามารถมีโพรเซสจำนวนมากทำงานร่วมกัน
6.4 Swap Instruction
การใช้กลุ่มคำสั่ง TestAndSet( )
3.10 สรุป
วิธีการแก้ปัญหาเขตวิกฤต
ซับซ้อนมากขึ้น
เซมาฟอร์
ตัวแปรชนิด
จำนวนเต็ม
ช่วยลดความซับซ้อน
ประสานงาน (Synchronization Problem)
เวลาให้ตรงกันได้
ปัญหาการ Bounded-Buffer
ปัญหาการ Readers – Writers
Dining-Philosophers
เลขที่ 25 หมู่ 800
6221659434 นางสาวขนิษฐา ศรีพิน