Process Synchronization

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
รายละเอียดวิชา ง การงานพื้นฐาน4(คอมพิวเตอร์2)
Advertisements

3. วิธีทำให้ข้อมูลเป็นสารสนเทศมีกี่วิธีอะไรบ้าง
ความหมายของโครงงาน.
สรุปภาพรวมของหน่วยการเรียนรู้
วิชาหัวข้อเรื่องที่ทันสมัยทางวิทยาการคอมพิวเตอร์ 6 มกราคม 2555
กระบวนการ (Process).
ระบบปฏิบัติการ อ. รวินทร์ ไชยสิทธิพร.
การเสนอโครงการวิทยานิพนธ์
เทคนิคการอ่านรายงานการวิจัย
ข้อแนะนำในการนำเสนอโครงการ
1 ข้อแนะนำในการสร้าง Web โครงการ โดย ดร. วรินทร์ สุวรรณวิสูตร อาจารย์ผู้ประสานงานวิชาโครงการ.
ขั้นตอนในการทำวิจัย.
1 ข้อแนะนำในการสร้าง Web โครงการ ดร. วรินทร์ สุวรรณวิสูตร ( ไม่ยืนยันว่าครบถ้วนตามหลักวิชาการ )
ข้อแนะนำในการนำเสนอโครงการ
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2
Deadlocks oslecture07.
Thesis รุ่น 1.
หลักการทำงานคอมพิวเตอร์
การพัฒนากิจกรรม การเรียนรู้ โดยโครงงาน
การเตรียมเอกสาร สอบหัวข้อโครงงาน
การวางแผนและการดำเนินงาน
Poster Presentation โดย สำหรับ การประชุม สคร.5 รศ.นพ.สมพนธ์ ทัศนิยม
Operating System ฉ NASA 4.
หน่วยความจำเสมือน Virtual Memory.
การใช้สมอง #1 อ. รวินทร์ ไชยสิทธิพร.
โครงสร้างการทำงานของ OS
การใช้สมอง #2 อ. รวินทร์ ไชยสิทธิพร.
Critical-Section Problem
คอมพิวเตอร์ ผศ. รวินทร์ ไชยสิทธิพร zenready.blogspot.com.
ระบบปฏิบัติการ ผู้สอน ผศ. รวินทร์ ไชยสิทธิพร chandra. ac
ขั้นตอนวิธี (Algorithm)
การติดตั้งภาษาไทยและการจัดการดิสก์
Introduction to Cache Memory Systems
เอกสาร และงานวิจัยที่เกี่ยวข้อง
การกำหนดปัญหาการวิจัย (Determining of Research Problem)
คู่มือการใช้การเขียนเรียงความ โดยใช้โปรแกรม PowerPoint
โครงสร้างการจัดเก็บข้อมูลเชิงกายภาพ
Memory Management ในยุคก่อน
บทที่ 8 File Management. ประเด็นที่ต้องพิจารณา ถ้าต้องการเก็บข้อมูลจะเก็บข้อมูลไว้ที่ไหน สามารถเก็บข้อมูลตรงไปยัง media โดยไม่ต้อง จัดรูปแบบการเก็บได้หรือไม่
SYSTEM ความรู้ทั่วไปเกี่ยวกับระบบ
เรื่ององค์ประกอบคอมพิวเตอร์
มัลติมีเดีย ประกอบประมวลสาระ
สนุกกับ Activity ใน Android
DEADLO CK นางสาวเบญจวรรณ จิตร ถวิล วันนี้เริ่มต้นเรียนบทที่ 7 หน้า 237 ในตำรา เรียนจะเกี่ยวกับ deadlocks คือ สิ่งที่รู้อยู่แล้ว คือ สิ่งที่ทำให้แอพพลิเคชั่นหรือบางครั้งถ้า.
Synchronization (การประสานงาน)
Synchronization น.ส.จิรภัทร ทองนพคุณ รหัสนิสิต กลุ่ม 1 Operating System.
Operating System.
วิชาคอมพิวเตอร์ ชั้นประถมศึกษาปีที่ 1 นางพวงเพ็ญ อินทร์เอี่ยม
การเขียนรายงานการวิจัย
Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
ระบบปฏิบัติการ ( Operating System : OS )
A Comparison on Quick and Bubble sort on large scale data
การนำระบบเทคโนโลยีสารสนเทศมาสนับสนุนการทำงาน
กระบวนการวิจัย Process of Research
การจัดการฐานข้อมูล.
โปรแกรมฐานข้อมูลที่นิยมใช้
กลวิธีการสอนคณิตศาสตร์ระดับประถมศึกษา
… Cache …L1,L2.
หลักการเขียนโปรแกรม ( )
สารานุกรมการศึกษา (The Encyclopedia of Education) ให้ความหมายไว้ว่า คือ “การจัดการสืบค้นอย่างมีระบบเกี่ยวกับการศึกษาและผลผลิตที่ได้รับจากการศึกษา”
Input / Output ธนวัฒน์ แซ่เอียบ.
การเขียนบทวิทยุกระจายเสียง. ขั้นตอนการเขียนบทรายการวิทยุ ขั้นเริ่มต้นแนวคิด (Begin with idea) จะเป็น การบอกแนวทาง ขอบเขตและการวาง แผนการผลิตในอนาคต.
การวิเคราะห์และออกแบบระบบ System Analysis and Design
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.
การออกแบบ Presentation อย่างมืออาชีพ
Deadloc ks. วันนี้เราเริ่มต้นเรียนบทที่ 7 เริ่มในหน้า 237 ในตำรา เรียนของคุณ. บทนี้จะเกี่ยวกับ deadlocks คือ สิ่งที่คุณรู้, มันคือ สิ่งที่ทำให้ application.
บทที่ 5 การเขียนรายงานโครงงานคอมพิวเตอร์
Network programming Asst. Prof. Dr. Choopan Rattanapoka
2 มิ. ย 2547 โดย วชิราวุธ ธรรมวิเศษ 1 บทที่ 1 แนะนำเทคโนโลยีจาวา Introduction to Java Technology.
วิทยาศาสตร์หมายถึงอะไร
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Consumer

ทำการทดลอง