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

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

Process Synchronization อ. รวินทร์ ไชยสิทธิพร. เราจะเรียนอะไรกันบ้าง การทำงานของโปรเซสมากกว่า 1 ตัว การกีดกันกันเอง (Mutual Exclusion) เขตวิกฤต (Critical.

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


งานนำเสนอเรื่อง: "Process Synchronization อ. รวินทร์ ไชยสิทธิพร. เราจะเรียนอะไรกันบ้าง การทำงานของโปรเซสมากกว่า 1 ตัว การกีดกันกันเอง (Mutual Exclusion) เขตวิกฤต (Critical."— ใบสำเนางานนำเสนอ:

1 Process Synchronization อ. รวินทร์ ไชยสิทธิพร

2 เราจะเรียนอะไรกันบ้าง การทำงานของโปรเซสมากกว่า 1 ตัว การกีดกันกันเอง (Mutual Exclusion) เขตวิกฤต (Critical Section) Producer-Consumer problem Semaphore Dining Philosophers Problem

3 ทบทวน ก่อนที่จะเรียนในเรื่องใหม่ ให้น. ศ. ลอง ทบทวน เรื่องเก่าก่อน ได้แก่เรื่องของ โปรเซส ให้ น. ศ. ตอบคำถามต่อไปนี้ 1. PCB คืออะไร 2. โปรเซสมีความสำคัญอย่างไร 3. โปรเซสต้องการทรัพยากรอะไรบ้าง 4. Context Switch คืออะไร 5. Thread มีข้อดีอย่างไร

4 จากเดิม โปรเซสเดียวใช้ CPU ง่าย DOS CPU Process

5 แต่หากมีหลายโปรเซสล่ะ ใช้ PCB – เกิด Context Switch ปัญหาอย่างอื่น – Deadlock, Loss of Data Integrity, etc. CPU Process

6 ปัญหาของ Loss of Data Integrity ปัญหาจะไม่เกิด หากอยู่ส่วนใครส่วนมัน แต่จะเกิดเมื่อมีการใช้ทรัพยากรร่วมกัน เช่น ตัว แปร, ไฟล์, ฐานข้อมูล, Address Space เป็น ต้น หน้าที่ของ OS คือ “ จัดการ ” ให้เกิดความ ถูกต้องและรวดเร็ว ให้นศ. แบ่งกลุ่มๆละ 5 คน เพื่อลองคิดว่าปัญหาเหล่านี้เกิดได้อย่างไร

7 ปัญหา Producer-Consumer ปัญหานี้เป็นปัญหาที่พบได้บ่อยในระบบ คอมพิวเตอร์ เช่น การฟังเพลงจาก WinAmp, การอ่าน ข้อมูลของ Web Browser หลักการก็คือ จะมี Buffer ที่ใช้ในการเก็บ ข้อมูล และจะมี Process อยู่ 2 ตัว ได้แก่ Producer และ Consumer ตัวหนึ่งนำ ข้อมูลมาวางไว้ใน Buffer อีกตัวหนึ่งอ่าน ข้อมูลไปจาก Buffer Data Buffer ProducerConsumer

8 ปัญหาเกิดขึ้นได้อย่างไร ? ให้เวลา น. ศ. ประมาณ 5 นาที ลองคิดถึง ปัญหาที่จะเกิดขึ้นของการทำงานแบบ Producer-Consumer แล้วนำเสนอต่อ อาจารย์ ….. ปัญหา การทำงานที่ไม่ประสานกัน หาก Producer ทำงานเร็ว / ช้าเกินไป หาก Consumer ทำงานเร็ว / ช้าเกินไป หาก Buffer เล็กเกินไป หาก Buffer ใหญ่เกินไป

9 วิธีแก้ปัญหา ให้เวลา น. ศ. ประมาณ 5 นาที ลองคิดถึง แนวทางการแก้ปัญหาของการทำงานแบบ Producer-Consumer แล้วนำเสนอต่อ อาจารย์..... แนวทางการแก้ปัญหา สร้างการทำงานที่ประสานกัน (Synchronize) มีตัวคอยเตือนหากว่าเกิดการทำงานที่ไม่ ประสานกัน Producer ทำงานเร็วไปแล้ว Consumer ทำงานช้าไปแล้ว

10 โค๊ดโปรแกรม กำหนดให้ Buffer เป็น อาเรย์ ที่มีขนาด n+1 Producer จะนำข้อมูลไปวางที่ตำแหน่ง in Consumer ก็จะอ่านข้อมูลจากตำแหน่ง out 01n2 in out

11 ทำอย่างไรจึงจะเห็นภาพ ? LAB ให้ นศ. ทำการทดลอง โดยเข้าไปที่เว็บ ไซท์ของอาจารย์ และเข้าไปที่ลิงก์ O.S.2 แล้วเข้าส่วนของ LAB. ทำตามการทดลอง LAB os2-1 …… ให้เวลา 20 นาที ส่งผลการทดลอง เป็นการบ้าน

12 LAB os2-1 วัตถุประสงค์ 1. เพื่อให้ นศ. เข้าใจการทำงานของอาเรย์ 2. สามารถประยุกต์ใช้อาเรย์กับปัญหาของ ระบบ OS ได้ ทฤษฏี อาเรย์คือ “ กล่องใส่ข้อมูล ที่มีตัวเลขบอก ตำแหน่ง ” ตัวเลขนี้เรียกว่า “ ดัชนี ” (index) 01n2

13 ทดลองเขียนโดยภาษา C ( มีต่อ )

14 ต่อ แล้วการทำงานของโปรเซสล่ะ ? ต้องสร้าง Process ของ Producer และ Consumer

15 ข้อจำกัดของการทดลอง การสร้างโปรเซสขึ้นมา 2 โปรเซส แล้วให้ ใช้ อาเรย์ร่วมกันนั้นเป็นสิ่งที่ยาก เพราะแต่ ละโปรเซสจะมีขอบเขตการใช้ หน่วยความจำของตนเอง หากทดลองกับ Database หรือ ไฟล์ ก็ อาจจะยากเกินไป ลองดูเทคโนโลยีอื่นๆ Thread หาก 2 Threads ใช้อาเรย์ร่วมกันล่ะ Java รองรับการทำงานแบบ Thread

16 ทบทวนเรื่อง Thread Thread คือ โปรเซสขนาดเล็ก (Light weight process) Thread จะใช้ Memory ใน Address Space ขอบเขตเดียวกัน Thread สามารถสลับกันทำงานได้ (Multi- threading) CPU Process Thread

17 ตัวอย่างโค๊ด Java เรื่อง Thread

18 ตามทฤษฎี ว่าอย่างไร ส่วนของ Producer

19 Consumer

20 ทำการทดลอง


ดาวน์โหลด ppt Process Synchronization อ. รวินทร์ ไชยสิทธิพร. เราจะเรียนอะไรกันบ้าง การทำงานของโปรเซสมากกว่า 1 ตัว การกีดกันกันเอง (Mutual Exclusion) เขตวิกฤต (Critical.

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


Ads by Google