No.12 ระบบแบบกระจาย (Distributed System)
ข่าวสาร
Cymera-Photo Editor, Collage ตกแต่งภาพ | Android Apps
Cymera-Photo Editor, Collage ตกแต่งภาพ | Android Apps
   แอพพลิเคชั่นCymera-Photo Editor, Collage แอพฟรีจากAndroid Appsที่จะพาคุณไปตกแต่งภาพในไลด์สไตล์ของคุณเอง โดยมีฟังก์ชั่นให้ใช้งานมากมายตั้งแต่Live Filters
เดลล์ เปิดตัว Vostro 5460 การผสมผสานสุดยอดเทคโนโลยี
เดลล์ เปิดตัว Vostro 5460 การผสมผสานสุดยอดเทคโนโลยี
   เดลล์คอร์ปอเรชั่น(ประเทศไทย) ทำการจัดงานแถลงข่าวเปิดตัว Vostro 5460 ภายใต้คอนเซปต์ "Achievement Society" เพื่อตอบโจทย์ไลฟ์สไตล์
เว็บไซต์เกี่ยวกับการเขียนโปรแกรม การออกแบบเว็บไซต์ กราฟฟิก
เว็บไซต์เกี่ยวกับการเขียนโปรแกรม การออกแบบเว็บไซต์ กราฟฟิก
   บทความฉบับนี้ ผมจะคัดเว็บไซต์ที่เกี่ยวข้องกับการเขียนโปรแกรม การทำเว็บไซต์ การเขียนโปรแกรมภาษาต่างๆมาฝาก เท่าที่จะค้นหามาได้
ASUS PRO Series โน้ตบุ๊คสำหรับองค์กร แข็งแกร่ง มีคุณภาพ
ASUS PRO Series โน้ตบุ๊คสำหรับองค์กร แข็งแกร่ง มีคุณภาพ
   ASUS Pro Series โน้ตบุ๊คสำหรับองค์กร ที่ต้องการทั้งความแข็งแกร่งของวัสดุ คุณภาพการผลิตที่ยอดเยี่ยม ประสิทธิภาพที่ไม่เป็นรองใคร
รับแปลรายงานประจำปี
รับแปลรายงานประจำปี
   รับแปลรายงานประจำปี โดยบริษัททีไอเอสผู้เชี่ยวชาญด้านการรับแปลภาษา เปิดดำเนินการมามากกว่า10ปี ซึ่งมีนักแปลที่เชี่ยวชาญในการรับแปลเอกสาร
โน๊ตบุ๊ค รุ่นต่างๆ กล้องประเภทต่างๆ

วีดีโอน่ารู้ : โปรเจคคำนวณค่าโดยสารรถไฟฟ้า AIRPORT LINK Project Java


แจกโปรเจคPHPฟรี

No.12 ระบบแบบกระจาย (Distributed System)

No.12 ระบบแบบกระจาย(Distributed System)

อัพเดทวันที่: 25 มี.ค. 2557

วีดีโอน่ารู้ : เทคโนโลยีน่ารู้ Ep6 มหันตภัยจากโซเชียล เพจปลอม เพจโจร


แนวโน้มการทำงานของคอมพิวเตอร์ในปัจจุบันนั้นจะมีการทำงานที่เป็นลักษณะของการแบ่งการประมวลผลกันระหว่างโปรเซสเซอร์หลาย ๆ โปรเซสเซอร์ที่ทำงานร่วมกัน

วิธีพื้นฐานที่ใช้สำหรับสร้างระบบคอมพิวเตอร์เพื่อให้มีการทำงานในลักษณะกระจายนี้มีอยู่ 2 วิธี
    1.วิธีแรกจะเป็นระบบที่เรียกว่า “มัลติโปรเซสเซอร์” (Multiprocessor system) หรือระบบที่ยึดเหนี่ยวกันอย่างเเหนียวแน่น (Tightly coupled system)
    2.อีกวิธีหนึ่งเรียกว่า “ระบบแบบกระจาย” (Distributed system) หรือระบบที่ยึดเหนี่ยวกันแบบหลวม (Loosely coupled system)

ลักษณะของระบบแบบกระจาย

ระบบแบบกระจาย (Distributed system) หมายถึงกลุ่มของโปรเซสเซอร์ที่มีการทำงานโดยยึดเหนี่ยวแบบหลวม (Loosely coupled)

โดยโปรเซสเซอร์แต่ละตัวจะเชื่อมต่อกันโดยใช้เครือข่ายการติดต่อสื่อสาร

การระบุถึงตำแหน่งของโปรเซสเซอร์ในระบบแบบกระจายนั้น ถ้าโปรเซสเซอร์นั้นอยู่ที่ตำแหน่งที่ไกลออกไปจากจุดที่อยู่นั้นจะเรียกว่าเป็นโปรเซสเซอร์ระยะไกล (Remote)

ส่วนโปรเซสเซอร์ที่ตั้งอยู่ตำแหน่งที่อยู่นั้นจะเรียกว่าเป็นโปรเซสเซอร์ระยะใกล้ (Local)

ของโปรเซสเซอร์ในระบบแบบกระจายนั้นจะมีขนาดต่าง ๆ กันและมีหน้าที่ต่างกันด้วย

โดยโปรเซสเซอร์แต่ละจุดนั้นอาจจะประกอบไปด้วยไมโครโปรเซสเซอร์ (Microprocessor) สถานีงาน (Workstation)  เครื่องมินิคอมพิวเตอร์ (Minicomputer) และเป็นระบบคอมพิวเตอร์ที่เป็นลักษณะใช้งานทั่ว ๆ ไป (general-purpose computer)

คำว่าโหนดสำหรับใช้ระบุถึงจุดแต่ละจุดที่ตั้งของโปรเซสเซอร์ วัตถุประสงค์ของระบบแบบกระจายนั้นก็เพื่อที่จะสร้างระบบที่ประสิทธิภาพในสภาพแวดล้อมของการใช้ทรัพยากรร่วมกัน (shared resources) ของระบบ

ระบบปฏิบัติการในระบบแบบกระจายนั้นจะมีหน้าที่ให้ความช่วยเหลือผู้ใช้ในการเรียกใช้ทรัพยากรจากโหนดต่าง ๆ ในระบบ

วัตถุประสงค์ของระบบแบบกระจาย

การแชร์ทรัพยากร (Resource sharing) ในระบบที่มีโหนดเชื่อมต่อกันหลาย ๆ โหนด ผู้ใช้ที่อยู่โหนดหนึ่งสามารถที่จะใช้ทรัพยากรจากโหนดอื่นได้  ตัวอย่างเช่น  ผู้ใช้จากโหนด A สามารถที่จะใช้เครื่องพิมพ์จากโหนด B ได้  ในขณะเดียวกัน ผู้ใช้จากโหนด B สามารถที่จะเข้าถึงไฟล์ที่โหนด A ได้  โดยทั่วไปแล้วการแชร์ทรัพยากรในระบบแบบกระจายจะเป็นการสร้างกลไกสำหรับการแชร์ไฟล์จากโหนดระยะไกล  ประมวลผลข้อมูลในฐานข้อมูลแบบกระจาย พิมพ์เอกสารจากโหนดระยะไกล  เรียกใช้ฮาร์ดแวร์จากระยะไกล และใช้คำสั่งปฏิบัติการอื่น ๆ

เพิ่มความเร็วในการประมวลผล (Computation Speedup) การประมวลผลปกตินั้นสามารถแบ่งหน่วยประมวลผลออกเป็นพาร์ติชันหลาย ๆ พาร์ติชันแล้วให้แต่ละพาร์ติชันทำการประมวลผลไปพร้อม ๆ กันได้  ซึ่งในระบบแบบกระจายสามารถที่จะใช้วิธีการกระจายการประมวลผลระหว่างโหนดแต่ละโหนด  โดยให้ทุกโหนดสามารถทำการประมวลผลงานไปพร้อม ๆ กันได้  ยิ่งไปกว่านั้นถ้าโหนดใดมีงานที่ต้องประมวลผลมากเกินไป  งานที่รอการประมวลผลอยู่นั้นสามารถที่จะย้ายไปประมวลผลที่โหนดอื่นได้

ความเชื่อถือได้ (Reliability) ในการทำงานของระบบแบบกระจายถ้าโหนดใดโหนดหนึ่งไม่สามารถทำงานได้ โหนดอื่นที่เหลือนั้นยังสามารถที่จะทำงานต่อไปได้ นั่นคือการหยุดการทำงานของโหนดใดโหนดหนึ่งจะต้องไม่มีผลกระทบกับโหนดอื่น ๆ ที่เหลือ  ซึ่งการตรวจหาโหนดที่หยุดทำงานนั้นจะเป็นหน้าที่ของระบบ  และจะต้องมีการกระทำอย่างใดอย่างหนึ่งเพื่อแก้ไขให้โหนดที่หยุดทำงานนั้นสามารถทำงานต่อไปได้

การติดต่อสื่อสาร (Communication) เมื่อหลาย ๆ โหนดเชื่อมต่อกันโดยผ่านการติดต่อสื่อสารทางเน็ตเวิร์คทำให้ผู้ใช้ที่อยู่แต่ละโหนดสามารถที่จะแลกเปลี่ยนข้อมูลข่าวสารกันได้ เช่น การส่งเมล์ การโอนย้ายไฟล์ การเรียกใช้งานจากระยะไกล ข้อดีของระบบแบบกระจายคือช่วยให้คุณสามารถส่งผ่านข้อมูลข่าวสารได้ในระยะไกล ช่วยลดข้อจำกัดของการทำงานในระยะไกล นอกจากนั้นยังมีผลต่อการทำงานในองค์กรในลักษณะของการลดขนาด (downsizing)

การเชื่อมต่อ หรือโทโปโลยี (Topology)

การเชื่อมต่อแบบทุกทิศทาง (Fully Connected Networks)  การเชื่อมต่อแบบนี้แต่ละโหนดจะเชื่อมต่อกันโดยตรงกับโหนดอื่น ๆ ในระบบซึ่งค่าใช้จ่ายของการเชื่อมต่อวิธีนี้จะสูง  เนื่องจากจะต้องใช้สายการสื่อสารเชื่อมต่อกันทุก ๆ 2 โหนด  แต่อย่างไรก็ตามการส่งข้อมูลในระบบการเชื่อมต่อแบบนี้จะเร็ว  เพราะการส่งข้อมูลระหว่างโหนด 2 โหนดจะใช้สายการสื่อสารเพียงเส้นเดียว  ยิ่งไปกว่านั้นระบบมีความเชื่อถือได้สูง นั่นคือถ้าสายการสื่อสารสายใดสายหนึ่งเสียไประบบก็ยังทำงานต่อไปได้

การเชื่อมต่อกันเป็นบางทิศทาง (Partially Connected Networks) การเชื่อมต่อแบบนี้จะมีการเชื่อมโยงกันโดยตรงของโหนดเพียงบางคู่เท่านั้น
     -การส่งข้อความจากโหนดหนึ่งไปยังอีกโหนดหนึ่งอาจจะต้องส่งผ่านโหนดอื่น ๆ ซึ่งเป็นทางผ่านด้วย  ซึ่งจะมีผลทำให้ส่งข้อมูลช้า
     -จากรูปข้อมูลที่ส่งจากโหนด A ไปยังโหนด D ข้อมูลจะต้องส่งผ่านไปยังโหนด B และโหนด C ด้วย
     -ถ้าการเชื่อมต่อจากโหนด B ไปยังโหนด C ล้มเหลว การเชื่อมต่อจะถูกแยกออกเป็น 2 ระบบย่อย
                   1.ระบบย่อยแรกจะประกอบไปด้วยโหนด A, B และ E
                   2.อีกระบบย่อยหนึ่งจะประกอบไปด้วยโหนด C และ D

การเชื่อมต่อแบบตามลำดับชั้น (Hierarchical Networks) การเชื่อมต่อแบบนี้จะมีลักษณะเหมือนกับต้นไม้ รูปแบบการเชื่อมต่อแบบนี้มักจะใช้ในเน็ตเวิร์คขององค์กร สำนักงานสาขาเชื่อมต่อกับสำนักงานใหญ่ที่อยู่พื้นที่เดียวกัน แต่ละโหนดยกเว้นโหนดที่เป็นราก (root) คือโหนดที่อยู่ลำดับสุดท้าย จะมีโหนดแม่ (parent) ไม่ซ้ำกันและโหนดแม่นั้นจะมีโหนดลูก (child) หรือไม่มีโหนดลูกก็ได้ การติดต่อกันระหว่างโหนดแม่กับโหนดลูกจะมีการติดต่อกันโดยตรง  ส่วนโหนดที่เป็นหลาน (sibling) จะติดต่อกันโดยผ่านโหนดที่เป็นแม่อีกทีหนึ่ง โดยข้อความจะส่งจากโหนดหลานไปยังโหนดหลานอื่นนั้นจะต้องส่งขึ้นไปยังโหนดที่เป็นแม่ก่อนและถึงจะส่งไปให้ยังโหนดหลานอีกทีหนึ่ง การใช้รูปแบบการติดต่อแบบนี้เหมาะกับการติดต่อสื่อสารในระยะใกล้ ๆ ไม่เหมาะกับการติดต่อสื่อสารระยะไกล ในกรณีที่โหนดแม่หยุดการทำงานจะทำให้โหนดลูกที่มีโหนดแม่ต่างกันไม่สามารถติดต่อสื่อสารกันได้

การเชื่อมต่อแบบดาว (Star Networks)  ในการเชื่อมต่อแบบนี้จะมีเพียงโหนดเดียวเท่านั้นที่เชื่อมต่อกับทุกโหนดที่อยู่ในระบบ ค่าใช้จ่ายของการสร้างการเชื่อมต่อแบบนี้จะขึ้นอยู่กับจำนวนโหนดที่ต้องการมีในระบบ การส่งผ่านข้อมูลจากโหนดหนึ่งไปยังอีกโหนดหนึ่งต้องส่งผ่านโหนดที่เป็นศูนย์กลางเสมอ ตัวอย่างเช่น ถ้าต้องการส่งข้อมูลจากโหนด A ไปยังโหนด B จะต้องส่งข้อมูลจากโหนด A ไปยังโหนดศูนย์กลางก่อน และโหนดศูนย์กลางจะทำการส่งข้อมูลต่อไปยังโหนด B ความเร็วของการส่งข้อมูลในระบบนี้อาจจะไม่แน่นอนเพราะบางครั้งโหนดศูนย์กลางมีปัญหาในการส่งข้อมูลทำให้ส่งข้อมูลได้ช้า ในรูปแบบการส่งข้อมูลแบบนี้โหนดศูนย์กลางจะต้องทำหน้าที่สลับสัญญาณการส่งข้อมูล ในกรณีที่โหนดศูนย์กลางเสียไม่สามารถทำงานได้ระบบก็จะถูกแบ่งออกเป็นย่อย ๆ เท่ากับจำนวนโหนดที่เชื่อมต่อเข้ากับโหนดศูนย์กลาง

การเชื่อมต่อแบบวงแหวน (Ring Networks)  การเชื่อมต่อของแต่ละโหนดนั้นจะต้องเชื่อมต่อกับโหนดอื่นอย่างน้อย 2 โหนด ลักษณะของวงแหวนอาจจะเป็นแบบรอบทิศทาง (unidirectional) หรืออาจจะเป็นแบบ 2 ทิศทาง (bidirectional) ก็ได้ สำหรับลักษณะการส่งที่เป็นแบบรอบทิศทางนั้น แต่ละโหนดสามารถที่จะส่งข้อมูลไปยังเฉพาะโหนดที่ติดกันได้โหนดเดียวเท่านั้น ทุก ๆ โหนดจะต้องส่งข้อมูลไปยังทิศทางเดียวกัน การส่งที่เป็นแบบ 2 ทิศทางแต่ละโหนดสามารถที่จะส่งข้อมูลไปยังโหนดข้างเคียงได้ทั้ง 2 ข้าง ค่าใช้จ่ายของการจัดตั้งระบบขึ้นอยู่กับจำนวนโหนดในระบบ แต่ค่าใช้จ่ายในการติดต่อสื่อสารจะสูงเพราะการส่งข้อมูลจากโหนดหนึ่งไปยังอีกโหนดหนึ่งนั้น ข้อมูลจะต้องเดินทางไปรอบ ๆ วงแหวนผ่านโหนดต่าง ๆ จนกระทั่งถึงโหนดปลายทาง ความล้มเหลวของโหนดใดโหนดหนึ่งในวงแหวนแบบรอบทิศทางนั้น  อาจจะทำให้เครือข่ายแบ่งออกเป็นส่วน ๆ หนทางแก้ปัญหานี้ก็คือการขยายการเชื่อมต่อของวงแหวนให้ซ้อนกันตามที่

การเชื่อมต่อแบบบัส (Bus Networks)  รูปแบบการเชื่อมต่อลักษณะแบบบัสนั้นจะใช้สายส่งข้อมูลร่วมกันเพียงสายเดียว ทุกโหนดในระบบจะมีการเชื่อมต่อกันโดยตรง ซึ่งอาจจะมีรูปแบบการเชื่อมต่อแบบเส้นตรงดัง แต่ละโหนดสามารถที่จะติดต่อสื่อสารกันได้โดยผ่านสายการส่งข้อมูลสายนี้ รูปแบบการเชื่อมต่อแบบบัสนี้จะคล้ายกับการเชื่อมต่อแบบดาวคือจะมีโหนดหนึ่งเป็นโหนดศูนย์กลาง ความล้มเหลวในการส่งข้อมูลของโหนดใดโหนดหนึ่งจะไม่มีผลกระทบกับการติดต่อสื่อสารกันระหว่างโหนดที่เหลือในระบบ

ประเภทของเน็ตเวิร์ค (Network Types)

เน็ตเวิร์คสามารถแบ่งเป็น 2 ประเภทคือ
    1.เน็ตเวิร์คเฉพาะที่ (Local area networks) 
    2.เน็ตเวิร์คบริเวณกว้าง (Wide area networks)

ข้อแตกต่างระหว่างเน็ตเวิร์คทั้งสองแบบคือลักษณะของพื้นที่ที่จัดตั้งระบบ

ในเน็ตเวิร์คแบบเฉพาะที่นั้นอุปกรณ์ต่าง ๆ จะติดตั้งบนพื้นที่บริเวณเดียวกัน เช่น ตึกเดียวกันหรือตึกที่อยู่ใกล้ ๆ กัน

ส่วนเน็ตเวิร์คบริเวณกว้างอุปกรณ์ต่าง ๆ จะติดตั้งอยู่บนพื้นที่ที่ห่างไกลกัน ตัวอย่างเน็ตเวิร์คเฉพาะที่คือ อีเธอร์เน็ต (Ethernet)

ส่วนตัวอย่างของระบบเน็ตเวิร์คบริเวณกว้างก็คือ อินเทอร์เน็ต (Internet)

อีเธอร์เน็ต (Ethernet)

ในระบบอีเธอร์เน็ตนั้นคอมพิวเตอร์ที่อยู่ในระบบจะถูกเชื่อมต่อกันด้วยสายเคเบิล โดยสายเคเบิลนี้จะมีชื่อเรียกว่า “อีเธอร์เน็ต” (Ethernet)

ในอีเธอร์เน็ตรุ่นแรก ๆ คอมพิวเตอร์แต่ละตัวจะเชื่อมติดเข้ากับสายเคเบิล

การส่งข้อมูลในระบบนี้  ขั้นแรกคอมพิวเตอร์จะรอฟังสัญญาณจากสายเคเบิลว่าขณะนี้มีคอมพิวเตอร์เครื่องอื่น ๆ กำลังส่งข้อมูลกันอยู่หรือไม่

ถ้าไม่มีการส่งข้อมูลอยู่ คอมพิวเตอร์เครื่องนั้นก็จะสามารถทำการส่งข้อมูลได้

แต่ถ้ามีการส่งข้อมูลอยู่ในขณะนั้นคอมพิวเตอร์เครื่องนั้นจะต้องรอจนกว่าการส่งข้อมูลนั้นจะเสร็จสิ้นลงถึงจะทำการส่งข้อมูลได้

ถ้าคอมพิวเตอร์ 2 เครื่องส่งเริ่มส่งข้อมูลในเวลาเดียวกัน  จะเกิดการชนกันของการส่งข้อมูลขึ้น

ระบบจะให้คอมพิวเตอร์ทั้ง 2 เครื่องนั้นหยุดทำการส่งข้อมูล และรอเป็นระยะเวลาตั้งแต่ 0 และ T ไมโครวินาที แล้วจึงเริ่มทำการส่งข้อมูลใหม่ได้

ในระบบอีเธอร์เน็ตนี้ความยาวของสายเคเบิลจะมีความยาวได้ไม่จำกัดและสามารถที่จะนำคอมพิวเตอร์มาเชื่อมต่อได้ไม่จำกัดด้วยเหมือนกัน

ถ้าพื้นที่กว้างเกินกว่าความยาวสายเคเบิลจะไปถึงก็สามารถที่จะติดตั้งอีเธอร์เน็ตซ้อนลงไปได้

อุปกรณ์ที่ชื่อว่า บริดจ์ (bridge) เป็นตัวเชื่อมต่ออีเธอร์เน็ตเข้าด้วยกัน

เพื่อหลีกเลี่ยงการชนกันของการส่งข้อมูล  อีเธอร์เน็ตสมัยใหม่จะมีอุปกรณ์ช่วยคือสวิตช์ (switch)

สวิตช์แต่ละตัวจะมีพอร์ต (port) หลายพอร์ตซึ่งพอร์ตนี้จะใช้สำหรับต่อเข้ากับคอมพิวเตอร์อีเธอร์เน็ต หรือต่อเข้ากับสวิตช์ตัวอื่น

ข้อมูลจะถูกเก็บไว้ที่สวิตช์แล้วข้อมูลนั้นจะถูกส่งไปยังพอร์ตของเครื่องคอมพิวเตอร์ปลายทาง

การที่ให้คอมพิวเตอร์แต่ละเครื่องมีพอร์ตเป็นของตัวเองนั้น การชนกันของการส่งข้อมูลก็จะไม่เกิดขึ้น

อินเทอร์เน็ต (Internet)

เครื่องคอมพิวเตอร์หลักจะเป็นคอมพิวเตอร์พีซี คอมพิวเตอร์กระเป๋าหิ้ว หรือเครื่องเมนเฟรมที่เชื่อมต่อเข้ากับอินเทอร์เน็ตก็ได้

ส่วนเราต์เตอร์จะเป็นคอมพิวเตอร์ชนิดพิเศษที่มีหน้าที่รับข้อมูลมาจากทุกทิศทุกทางและทำการส่งข้อมูลนั้นไปยังปลายทางที่ถูกต้อง

เราต์เตอร์แต่ละตัวจะมีสายที่ใช้เชื่อมต่อกับเราท์เตอร์ตัวอื่นและเครื่องคอมพิวเตอร์หลักอื่นในเครือข่าย

ในสายการสื่อสารหลักนี้จะประกอบไปด้วยเราต์เตอร์หลาย ๆ ตัว

เราเตอร์แต่ละตัวจะเชื่อมต่อกันด้วยสายการสื่อสารความเร็วสูง (High-bandwidth fiber)

การสื่อสารข้อมูลบนอินเทอร์เน็ตนั้นข้อมูลที่ส่งจะถูกส่งในรูปของชุดข้อมูล หรือแพ็กเกต (packet)

แต่ละแพ็กเกตจะมีความยาวของข้อมูลคงที่

แต่ละแพ็กเกตประกอบไปด้วยที่อยู่ปลายทาง ซึ่งที่อยู่ปลายทางนี้จะใช้เป็นตัวสำหรับระบุเส้นทางการส่งข้อมูล 

เมื่อแพ็กเกตเดินทางมาถึงเราเตอร์  เราเตอร์จะดูแอ็ดเดรสปลายทางแล้วจะทำการค้นหาในตารางที่เก็บเส้นทางเพื่อหาเส้นทางที่เหมาะสมเพื่อส่งแพ็กเกตนั้น

กระบวนการนี้จะทำซ้ำไปเรื่อย ๆ จนกว่าแพ็กเกตจะถึงเครื่องคอมพิวเตอร์ปลายทาง

เน็ตเวิร์คโปรโตคอล(Network Protocols)

กฎเกณฑ์ต่าง ๆ ของการติดต่อสื่อสารกันระหว่างเครื่องคอมพิวเตอร์ในระบบใดระบบหนึ่งนั้นเรียกว่า “โปรโตคอล” (Protocol)

ในเน็ตเวิร์คสมัยใหม่จะมีการใช้โปรโตคอลสแต็ก (Protocol stack) ที่แสดงถึงชั้นต่าง ๆ ของโปรโตคอลที่เรียงซ้อนกัน

โปรโตคอลในแต่ละชั้นจะมีหน้าที่แตกต่างกันไป

เนื่องจากระบบแบบกระจายส่วนใหญ่เกือบทั้งหมดจะมีการทำงานพื้นฐานเป็นแบบอินเทอร์เน็ต

โปรโตคอลหลักที่ใช้ในอินเทอร์เน็ตมี 2 แบบคือ   IP (Internet Protocol) และTCP

IP (Internet Protocol) จะเป็นโปรโตคอลข้อมูลที่ใช้สำหรับส่งแพ็กเกตไปในเน็ตเวิร์คจนถึงปลายทาง

ข้อมูลที่ส่งไปนั้นอาจจะถูกแยกออกเป็นข้อมูลย่อย แล้วถึงจะส่งไปในอินเทอร์เน็ต ข้อมูลย่อยทั้งหมดจะถูกส่งไปตามเส้นทางต่าง ๆ กัน

เมื่อข้อมูลย่อยทั้งหมดถึงปลายทางแล้วข้อมูลย่อยทั้งหมดจะถูกประกอบเข้ากันเป็นข้อมูลปกติ

IP ที่ใช้กันอยู่ในปัจจุบันนี้มี 2 เวอร์ชัน คือ v4 และ v6

ในแบบ v4 นั้นแพ็กเกตจะเริ่มต้นด้วยส่วนหัวข้อมูลซึ่งมีความยาว 40 ไบต์

โดยส่วนหัวข้อมูลนี้จะประกอบไปด้วยหมายเลขที่อยู่ของต้นทางมีความยาว 32 บิต และหมายเลขที่อยู่ปลายทางมีความยาว 32 บิต  ซึ่งเรียกว่า IP Address

ระบบที่ใช้ในอินเทอร์เน็ต  ปกติแล้วจะเขียนที่อยู่เป็นเลขฐานสิบแบ่งเป็น 4 ส่วน

ตัวเลขจะมีค่าอยู่ระหว่าง 0-255 และคั่นด้วยจุด เช่น 192.31.31.65

เมื่อชุดข้อมูลเดินทางถึงเราต์เตอร์  เราต์เตอร์จะดูถึงที่อยู่ปลายทางและใช้ที่อยู่ปลายทางเป็นตัวกำหนดเส้นทางในการส่งข้อมูล

เนื่องจาก IP ไม่มีการส่งข้อมูลตอบกลับ ฉะนั้น IP อย่างเดียวยังไม่สามารถทำให้การส่งข้อมูลในอินเทอร์เน็ตเชื่อถือได้

 TCP (Transmission Control Protocol) ซึ่งเป็นโปรโตคอลที่อยู่ชั้นด้านบนของ IP ในการเรียกใช้งาน TCP เริ่มแรกโปรเซสจะต้องทำการติดต่อไปยังโปรเซสระยะไกล

โดยโปรเซสจะต้องแจ้งถึง IP ของเครื่องและหมายเลขพอร์ตของเครื่องที่ใช้สำหรับการติดต่อ

เมื่อได้ทราบถึงหมายเลข IP และหมายเลขพอร์ตแล้วถึงจะเริ่มทำการส่งข้อมูลได้โดยที่ข้อมูลนั้นได้ถูกส่งไปยังปลายทางที่ถูกต้องและข้อมูลนั้นไม่หล่นหายระหว่างที่ทำการส่ง

ในการสร้างการติดต่อกับเครื่องคอมพิวเตอร์หลักในเน็ตเวิร์คนั้นจำเป็นที่จะต้องทราบหมายเลข IP ของเครื่องคอมพิวเตอร์นั้น

เนื่องจากการใช้หมายเลข IP นั้นไม่สะดวกต่อการใช้

จึงได้มีการใช้ DNS(Domain Name System) แทนซึ่งจะเป็นการระบุชื่อของเครื่องคอมพิวเตอร์ที่สัมพันธ์กับหมายเลข IP ของเครื่องคอมพิวเตอร์นั้น

ดังนั้นคุณสามารถใช้ชื่อ DNS เป็น asiaaccess.net.th แทนการใช้หมายเลข IP 203.145.0.1  โดยที่การใช้ DNS จะเป็นที่นิยมใช้กันมากเพราะจำง่ายกว่าการจำเป็นหมายเลข

มิดเดิลแวร์ที่เป็นเอกสาร (Document-Based Middleware)

ซอฟต์แวร์ประเภทนี้ที่เป็นตัวอย่างที่เห็นได้ชัดและเป็นที่รู้จักกันดีคือ เครือข่ายใยแมงมุม (World Wide Web)

ผู้ที่เขียนเว็บ (web) ขึ้นมาเป็นคนแรกคือ Tim Berners-Lee

การทำงานของเว็บนั้นไม่ยุ่งยากโดยจะถือหลักว่าเครื่องคอมพิวเตอร์สามารถที่จะมีเอกสารหลาย ๆ เอกสารในเครื่องได้ซึ่งเรียกว่า เว็บเพจ (Web page)

เว็บเพจแต่ละอันจะประกอบไปด้วยข้อความ รูปภาพ  เสียง ภาพยนตร์ ฯลฯ และมีไฮเปอร์ลิงค์ (Hyperlink) ซึ่งเป็นเสมือนตัวชี้เพื่อเชื่อมโยงไปยังเว็บเพจอื่น

เว็บเพจแต่ละเว็บเพจจะมีที่อยู่ไม่ซ้ำกัน

ที่อยู่ของเว็บเพจนั้นเรียกว่า URL (Uniform Resource Locator)

มีรูปแบบเป็น protocol://DNS-name/file-name  โปรโตคอลของเว็บเพจก็คือ http (Hypertext Transfer Protocol)

ใน DNS นั้นจะประกอบไปด้วยชื่อของเครื่องคอมพิวเตอร์หลักที่เก็บไฟล์นั้นอยู่ (DNS-name) และตามด้วยชื่อของไฟล์ที่เรียกใช้ (file-name)

การทำงานพื้นฐานของเว็บจะเป็นลักษณะของระบบไคลเอ็นเซิร์ฟเวอร์ (client-server)

โดยผู้ที่เรียกใช้เว็บจะเป็นไคลเอ็นต์และที่ตั้งของเว็บก็จะเป็นเซิร์ฟเวอร์

การทำงานของเว็บบราวเซอร์จะมีขั้นตอนดังนี้คือ
    -บราวเซอร์จะติดต่อไปยัง DNS เพื่อดูหมายเลข IP ของ www.arm.org
    -หมายเลข IP ที่ได้คือ 203.222.69.161
    -บราวเซอร์จะทำการติดต่อโดยใช้โปรโตคอล TCP ไปยังพอร์ต 80 ของหมายเลข IP 203.222.69.161
    -ทำการหาไฟล์ dl/abc.html  ในเซิร์ฟเวอร์
    -เซิร์ฟเวอร์ที่ชื่อว่า www.arm.org จะทำการส่งไฟล์ dl/abc.html มาให้
    -การติดต่อก็จะสิ้นสุดลง
    -บราวเซอร์จะทำการแสดงผลข้อมูลที่อยู่ในไฟล์ dl/abc.html
    -บราวเซอร์จะทำการดึงรูปภาพที่อยู่ในไฟล์ dl/abc.html และแสดงผล

มิดเดิลแวร์ที่เป็นไฟล์ (File System-Based Middleware)

แนวความคิดพื้นฐานแรกของการสร้างเว็บในระบบแบบกระจายนั้นจะเป็นการนำเอาเอกสารจำนวนมากมายมาเชื่อมโยงเข้าหากัน

วิธีที่สองคือจะเป็นการทำให้ระบบแบบกระจายดูเสมือนเป็นไฟล์ที่มีขนาดใหญ่มาก

ลักษณะของการสร้างระบบไฟล์ที่มีขนาดใหญ่ในระบบแบบกระจายนั้นจะหมายความว่าในระบบจะมีไฟล์เพียงไฟล์เดียวเท่านั้นและเป็นไฟล์ที่มีขนาดใหญ่มาก

ซึ่งผู้ใช้ที่อยู่ทั่วทุกมุมโลกสามารถที่จะอ่านหรือเขียนไฟล์นี้ได้ตามสิทธิที่ได้รับอนุญาต

รูปแบบการโอนย้ายไฟล์(Transfer Model)

รูปแบบการโอนย้ายไฟล์ มี 2 รูปแบบคือ เป็นวิธีที่เรียกว่าการอัพโหลด/ดาวน์โหลด (upload/download) และ วิธีการประมวลผลระยะไกล (remote access model)

การอัพโหลด/ดาวน์โหลดนั้นโปรเซสสามารถที่จะใช้ไฟล์ได้โดยที่ไคลเอ็นต์จะต้องทำการโอนย้ายไฟล์ที่ต้องการมาจากเครื่องเซิร์ฟเวอร์ที่มีไฟล์นั้นมาที่เครื่องตัวเองก่อน

หลังจากนั้นโปรเซสก็สามารถที่จะอ่านหรือเขียนไฟล์นั้นได้ที่เครื่องตัวเอง

เมื่อเสร็จสิ้น ไฟล์ดังกล่าวก็จะถูกบันทึกกลับไปที่เครื่องเซิร์ฟเวอร์เครื่องเดิมที่ได้ทำการโอนย้ายไฟล์นั้นมา

การประมวลผลระยะไกลนั้น ไฟล์จะยังคงอยู่ที่เครื่องเซิร์ฟเวอร์ เครื่องไคลเอ็นต์ที่ต้องการใช้ไฟล์นั้นก็เพียงแต่เขียนคำสั่งส่งไปยังเครื่องเซิร์ฟเวอร์

การกระทำทั้งหมดก็จะกระทำที่เครื่องเซิร์ฟเวอร์

ข้อดีของการใช้วิธีอัพโหลด/ดาวน์โหลดก็คือเป็นวิธีการที่ง่าย และเป็นการโอนย้ายไฟล์ทั้งหมดในคราวเดียวกันซึ่งจะมีความสะดวกกว่าการโอนย้ายไฟล์ทีละส่วน

ข้อเสียของวิธีนี้คือจะต้องมีการสิ้นเปลืองเนื้อที่ในการจัดเก็บไฟล์ที่โอนย้ายมาไว้ที่เครื่องของตนเอง

โครงสร้างของไดเร็กทอรี (The Directory Hierarchy)

ในระบบไฟล์แบบกระจายนั้นสนับสนุนในเรื่องที่ไดเร็กทอรีหนึ่งสามารถจัดเก็บไฟล์ได้หลายไฟล์

สิ่งที่ต้องคำนึงถึงก็คือในเรื่องของการที่ไคลเอ็นต์แต่ละเครื่องสามารถมองเห็นไดเร็กทอรีที่อยู่ในเซิร์ฟเวอร์ลักษณะเดียวกัน

การตั้งชื่อ (Naming Transparency)

ปัญหาหลักปัญหาหนึ่งของการตั้งชื่อพาธในเน็ตเวิร์คมีรูปแบบอยู่ 2 รูปแบบ รูปแบบแรกคือ Location transparency หมายถึงการตั้งชื่อพาธที่เก็บไฟล์โดยไม่สื่อให้ผู้ใช้ทราบว่าไฟล์นั้นเก็บอยู่ที่ใดในเน็ตเวิร์ค เช่น จากพาธ /server1/dir1/dir2/a  จะเป็นการบอกว่าไฟล์ a เก็บอยู่ที่ server1 แต่ไม่ได้บอกว่าเซิร์ฟเวอร์นั้นตั้งอยู่ที่ใด ซึ่ง server1 นั้นสามารถที่จะเคลื่อนย้ายไปติดตั้งที่ใดก็ได้ในเน็ตเวิร์คโดยที่ไม่ต้องเปลี่ยนชื่อพาธในการเรียกใช้ไฟล์ a แต่อย่างไรก็ตามสมมติว่าไฟล์ a นั้นค่อนข้างใหญ่และเนื้อที่ว่างบน server1 มีจำกัด สมมติว่าเนื้อที่ว่างบน server2 ยังมีอีกมาก ระบบอาจจะทำการย้ายไฟล์ a ไปไว้ยัง server2 โดยอัตโนมัติ แต่เนื่องจากในส่วนแรกของชื่อพาธนั้นจะเป็นชื่อของเซิร์ฟเวอร์ ทำให้ระบบไม่สามารถย้ายไฟล์ a ไปไว้ที่ server2 ได้โดยอัตโนมัติ ถึงแม้ว่าใน server2 นั้นจะมีไดเร็กทอรี dir1 และ dir2 ก็ตาม

ปัญหาก็คือถ้าระบบทำการย้ายไฟล์ a ไปไว้ที่ server2 โดยอัตโนมัติจะทำให้พาธเดิมคือ /server1/dir1/dir2/a  ต้องเปลี่ยนเป็นพาธ /server2/dir1/dir2/a การเรียกใช้ไฟล์ a ก็จะต้องเปลี่ยนไปด้วย ในระบบที่อนุญาตให้ไฟล์สามารถย้ายที่เก็บได้โดยไม่ต้องทำการเปลี่ยนชื่อพาธนั้นถือว่าระบบนั้นเป็นลักษณะของ Location independence

สัมพันธภาพของการใช้ไฟล์ร่วมกัน(Semantics of File Sharing)

ในการเรียกใช้งานไฟล์เดียวกันพร้อมกันของผู้ใช้หลายคน จำเป็นที่จะต้องกำหนดสัมพันธภาพของการอ่าน (read) และการเขียน (write) ไฟล์เพื่อไม่ให้เกิดปัญหาในการใช้งานไฟล์นั้น

สำหรับการใช้งานในระบบที่เป็นแบบหน่วยประมวลผลตัวเดียว (single processor)  การอ่านจะต้องกระทำหลังจากการเขียน ซึ่งค่าที่ได้จากการอ่านจะเป็นค่าที่ได้หลังจากการเขียนแล้ว

ในลักษณะคล้าย ๆ กัน เมื่อมีการ เขียน 2 ครั้งเกิดขึ้นใกล้เคียงกัน แล้วมีการอ่านค่าที่ได้จากการอ่านก็จะเป็นค่าที่ได้หลังจากมีการเขียนครั้งที่ 2 แล้ว ซึ่งรูปแบบของการกระทำแบบนี้เรียกว่า ลำดับของความต้องกัน (sequential consistency)

กรณีที่มีเครื่องเซิร์ฟเวอร์เครื่องเดียวในเน็ตเวิร์คและเครื่องไคลเอ็นต์ไม่ได้ใช้วิธีเก็บไฟล์ที่เรียกมาจากเครื่อง เซิร์ฟเวอร์ไว้ในแคช

การอ่านและการเขียนทั้งหมดนั้นจะเกิดขึ้นที่เครื่องเซิร์ฟเวอร์ ซึ่งที่เครื่องเซิร์ฟเวอร์จะมีการควบคุมดูแลการเรียกใช้ไฟล์ให้เป็นไปตามลำดับของความต้องกัน (sequential consistency)

ในทางปฏิบัติการที่มีเครื่องเซิร์ฟเวอร์เพียงเครื่องเดียวในเน็ตเวิร์คนั้นจะทำให้ประสิทธิภาพของเน็ตเวิร์คนั้นไม่ดีพอ

สามารถแก้ปัญหานี้ได้โดยการอนุญาตให้เครื่องไคลเอ็นต์ทำการก็อปปี้ไฟล์ที่ต้องการใช้บ่อย ๆ ไว้ในแคชส่วนตัวได้

กรณีที่ client1 กำลังทำการเขียนไฟล์ในแคชส่วนตัวอยู่  และในขณะนั้น client2 ก็ทำการอ่านไฟล์เดียวกันนั้นจากเซิร์ฟเวอร์

ดังนั้นไฟล์ที่ client 2 อ่านมาจากเซิร์ฟเวอร์ ก็จะเป็นไฟล์ก่อนที่ไคลเอ็นต์จะทำการเขียนลงไป

ถึงแม้ว่าแนวความคิดนี้จะเป็นแนวทางที่ง่ายแต่เป็นวิธีที่ไม่มีประสิทธิภาพ

สามารถสร้างกฎเกณฑ์ใหม่ขึ้นมาคือ โปรเซสจะเรียกใช้ไฟล์ได้ก็ต่อเมื่อไฟล์นั้นเปิดอยู่ และในขณะที่ไฟล์นั้นเปิดอยู่โปรเซสอื่นไม่สามารถเรียกใช้ไฟล์นั้นได้  ต่อเมื่อไฟล์นั้นปิดแล้วโปรเซสอื่น ๆ จึงจะสามารถที่จะเรียกใช้ไฟล์นั้นได้

 

ข้อมูลจาก powerpoint :  OS_CH11ระบบแบบกระจาย.PPT


loginก่อนดาวน์โหลด
กรุณาสมัครสมาชิกหรือlogin ก่อนดาวน์โหลดไฟล์

กดlike เพื่อติดตามข่าวสารและโปรเจค โค้ดใหม่ๆอัพเดทอยู่เสมอ

วีดีโอน่ารู้ : โปรเจคแบบแปลนบ้านแจกฟรี Project C#


Tag : ระบบแบบกระจาย Distributed System การสร้างระบบคอมพิวเตอร์ ลักษณะของระบบแบบกระจาย การเชื่อมต่อโทโปโลยี (Topology อีเธอร์เน็ต (Ethernet)



แสดงความคิดเห็น

Error Query [SELECT * FROM m_member where m_b_id='766' ]