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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Introduction to C Introduction to C.
ใบความรู้ 3 ระบบคอมพิวเตอร์.
Process Synchronization
การเสนอโครงการวิทยานิพนธ์
ซอฟต์แวร์.
ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
รายละเอียดของการทำ Logbook
คำสั่ง while และ คำสั่ง do..while
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
การออกแบบการวิจัยการเขียนเค้าโครงการวิจัย
Register Allocation and Graph Coloring
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
โครงสร้างการควบคุมการทำงานของโปรแกรม Program control structures
Ordering and Liveness Analysis ลำดับและการวิเคราะห์บอกความ เป็นอยู่หรือความตาย.
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2
   ฮาร์ดแวร์ (Hardware)               ฮาร์ดแวร์เป็นองค์ประกอบสำคัญของระบบสารสนเทศ หมายถึง เครื่องคอมพิวเตอร์ อุปกรณ์รอบข้าง รวมทั้งอุปกรณ์สื่อสารสำหรับเชื่อมโยงคอมพิวเตอร์เข้าเป็นเครือข่าย.
การศึกษารายกรณี.
ชนิดของข้อมูลและตัวดำเนินการ
เรื่อง องค์ประกอบของคอมพิวเตอร์ จำทำโดย นาย เดชฤทธิ์ ร้อยพรหมมา
การประสานเวลากระบวนการ Process Synchronization
JavaScript.
การแก้ปัญหาด้วยคอมพิวเตอร์
บทที่ 5 การทำงานแบบวนซ้ำ
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
Repetitive Instruction
บทที่ 1. พื้นฐานความรู้ทั่วไป
การจำลองความคิด
Surachai Wachirahatthapong
Operating System ฉ NASA 4.
Selected Topics in IT (Java)
Critical-Section Problem
ความรู้พื้นฐานเกี่ยวกับการวิจัย
บทบาทการบริหารงานสำนักงาน 1
โครงร่างการวิจัย (Research Proposal)
การวางแผนและ การจัดทำ IT Audit
โครงสร้างการจัดเก็บข้อมูลเชิงกายภาพ
วิธีการทางคอมพิวเตอร์
การออกแบบฐานข้อมูลและการบริหารธุรกิจ
ประวัติความเป็นมาภาษาซี
โครงสร้างข้อมูลคืออะไร ?
เรื่องหลักการแก้ปัญหา
DEADLO CK นางสาวเบญจวรรณ จิตร ถวิล วันนี้เริ่มต้นเรียนบทที่ 7 หน้า 237 ในตำรา เรียนจะเกี่ยวกับ deadlocks คือ สิ่งที่รู้อยู่แล้ว คือ สิ่งที่ทำให้แอพพลิเคชั่นหรือบางครั้งถ้า.
Synchronization น.ส.จิรภัทร ทองนพคุณ รหัสนิสิต กลุ่ม 1 Operating System.
รูปแบบของปัญหา (System Model) กระบวนการหนึ่งๆ จะต้องร้องขอใช้ ทรัพยากรก่อนที่จะได้ใช้ทรัพยากรก่อน ได้ใช้ทรัพยากรนั้น และจะต้องคืน ทรัพยากรนั้นกลับสู่ระบบเมื่อใช้เสร็จ.
Operating System.
บทที่ 7 Deadlock Your company slogan.
2.1 วิธีแก้ปัญหาด้วยคอมพิวเตอร์ (Computer problem solving methods)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
A Comparison on Quick and Bubble sort on large scale data
กระบวนการวิจัย Process of Research
โปรแกรมฐานข้อมูลที่นิยมใช้
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
บทที่ 1 ระบบคอมพิวเตอร์.
หลักการเขียนโปรแกรม ( )
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
การเขียน แบบวนซ้ำ , วนลูป
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
การสอนโดยการแบ่งกลุ่มทำกิจกรรม
การทำงานของระบบคอมพิวเตอร์
Deadloc ks. วันนี้เราเริ่มต้นเรียนบทที่ 7 เริ่มในหน้า 237 ในตำรา เรียนของคุณ. บทนี้จะเกี่ยวกับ deadlocks คือ สิ่งที่คุณรู้, มันคือ สิ่งที่ทำให้ application.
การออกแบบสื่อเพื่อการศึกษา ADDIE Model
Week 5 While and Do-While loop (Control Structure 2)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ส่วนประกอบของคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

รูปที่ 2 Mutual-exclusion implementation with TestAndSet () 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)

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

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

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

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