คือระบบที่ประกอบไปด้วยเครื่องคอมพิวเตอร์หลายๆเครื่อง โดยที่ผู้ใช้ระบบคิดว่ามันเหมือนเป็นเครื่องเดียวกัน โดยระบบ DS ควรจะเชื่อมต่อกับผู้ใช้ และให้ผู้ใช้เข้าถึงระบบได้ง่าย โดยที่ระบบจะทำการกระจายไปบนระบบเครือข่าย นอกจากนั้นระบบ DS ควรจะมีคุณสมบัติ openness transparency และ scalable

Openness Scalability

decentralized algorithm

  1. ไม่มีเครื่องที่มีข้อมูลทั้งระบบ
  2. เครื่องจะตัดสินใจอยู่บนข้อมูลที่มีอยู่เท่านั้น
  3. ความเสียหายของเครื่อง ไม่ส่งผลต่อระบบ
  4. ไม่มี global clock ที่ใช้ในทั้งระบบ

scaling techniques

  • asynchronous communication
  • ย้ายการทำงานบางส่วนมาที่ client เช่น javascript check field แทนการ call ajax
  • distribution การกระจายส่วนของระบบออกไป เช่น DNS ทำการแบ่ง zone ย่อยๆลงไปเป็นชั้นๆ

Hardware Concept

multiprocessors

Homogeneous Multicomputer Systems

เครื่องในระบบเหมือนกันหมด ต่อเชื่อมกันในลักษณะ mesh หรือ hypercube

Heterogeneous Multicomputer Systems ระบบ ds ส่วนใหญ่ก็จะเป็นแบบนี้ นั่นคือเครื่องคอมในระบบแตกต่างกันทั้ง CPU และ Memory

Software Concept

Distributed Operating Systems

  • Uniprocessor OS
  • Multiprocessor OS
  • Multicomputer OS

ใข้การส่ง message ไปมาระหว่างเครื่อง โดยแต่ละโหนดจะมี Kernel ของมันอยู่สำหรับการจัดการ CPU memory และในแต่ละโหนดจะมี module ที่ทำหน้าที่รับส่ง message จาก node อื่นๆ

  • Distributed Shared Memory Systems

ใช้ virtual memory

Network Operating Systems

ไม่จำเป็นต้องมี hardware ที่เหมือนกัน แต่ทุกเครื่องจะต้องอยู่บน network ที่เชื่อมถึงกัน โดยผู้ใช้จะต้องต่อเข้าไปในเครื่องที่ต้องการใช้ service นั้นๆ ซึ่งไม่ค่อยดีเท่าไหร่นัก จึงมีอีกวิธีหนึ่งคือการแชร์ file system  ของแต่ละเครื่องไว้ที่เดียวกัน ลักษณะของ file system ก็เป็นแบบลำดับชั้น ซึ่งก็ยังไม่ดีอยู่ เพราะมี transparency ต่ำมาก แต่ด้านดีของมันคือการเพิ่มเครื่องเข้าไปในระบบนั้นทำได้ง่าย สามารถ plug-in ได้ทันที

Middleware

จะเห็นว่าระบบ OS ที่กล่าวมาทั้งหมดยังดูไม่ค่อยเหมือนเป็น DS เท่าไหร่ ซึ่ง middleware จะเข้ามาช่วยในจุดๆนี้ ทำให้มี transparency สูงขึ้น โดยจะอยู่เหนือ NOS และใต้ application อีกที

ลักษณะการทำงานจะมีหลายแบบเช่น ใช้ distributed file systems, RPC, distributed object และ distributed document ที่มี WWW เป็นตัวอย่าง

นอกจากจะมี transparency สูงแล้ว middleware ยังมี openness อีกด้วยเนื่องจากการที่ ทุกเครื่องมี middleware ตัวเดียวกัน การเขียนโปรแกรมก็ใช้ interface เดียวกัน ใครก็สามารถมาติดต่อได้

The Client-Server Model

client ส่ง message ไปหา server

ประกอบไปด้วย interface application และ database (3-tier) ซึ่งเป็นลักษณะแบบ Vertical distribution

Horizontal Distribution เป็นการกระจายข้อมูลออกไปยัง server ต่างๆ เช่นการทำงานของ web server แบบ round-robin  และแบบสุดท้ายคือ P2P distribution เป็นการกระจาย application ไปยังผู้ใช้ผ่านผู้ใช้ด้วยกันเอง