เว็บบล๊อกผลงาน (Web Blog) นักศึกษาระดับปริญญาโท คณะวิทยาศาสตร์และเทคโนโลยี สาขาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์

วันศุกร์ที่ 19 มีนาคม พ.ศ. 2553

การออกแบบโครงสร้างของ Master-Slave

*** รูปที่ 1 การออกแบบโครงสร้าง master-slave ***




  • master กำหนดให้เป็นเครื่อง server ที่รับ connection มาจาก slave ซึ่งเป็นเครื่อง client
  • master กับ slave ติดต่อผ่าน network ใช้ tcp protocol
  • master เป็น process หลัก 1 process
  • master มี register thread ไว้รอรับ connection จาก slave ได้ตลอดเวลา
  • ถ้าในโปรแกรมยาก B, register threads เปิด port 5555 (ชื่อ port 5555 ครับ อิอิ) ไว้รอรับ slave ตลอดเวลา, master สามารถไปทำคำสั่งอื่นได้
  • ถ้าในโปรแกรมง่าย A, register threads จะเปิดเฉพาะตอนเริ่มโปรแกรม หลังจากครบ 4 ก็จะบล๊อก
  • เมื่อมี slave เข้ามาขอ register, register threads จะสร้าง threads ย่อยเพื่อใช้สื่อสารกับ slave คนนั้นเช่น thread สื่อสาร 1 เอาไว้ติดต่อกับ slave 1, thread สื่อสาร 2 เอาไว้ติดต่อกับ slave 2
  • ภายในโปรแกรม master เวลาที่ master จะสั่งงาน thread สื่อสารย่อย ต่างๆ จะใช้วิธีเรียก function โดยตรง เพราะ process และ threads ถือว่าอยู่ในโปรแกรมเดียวกันสามารถเรียก function ตรงๆ ได้เลย
สังเกตุ โปรแกรม รูปแบบ (วิธี) ที่ 1 ใช้ message queue ในการติดต่อสื่อสารระหว่าง process แตกต่าจากโปรแกรม รูปแบบ (วิธี) ที่ 2 ที่ใช้



*** รูปที่ 2 การออกแบบ master อธิบายด้านโปรแกรมมิ่ง ***


  • master เป็น process หลัก ประกอบไปด้วย main, master, register threads และ slave threads
  • main function ทำหน้าที่สร้าง master, master จะถูกสร้างขึ้น จนถึงขั้นตอน listen() และ accept() จะมีการแยก threads ไปทำต่างหาก เพื่อให้โปรแกรมสามารถ listen() ได้ตลอดเวลา
  • ถ้ามี slave เขามา register ที่ listen() ไว้ ก็จะมีการสร้าง threads สื่อสารสำหรับ slave นั้น
  • ที่ main function ถ้า user สั่งงาน มันจะไปสั่งงานต่อที่ master ซึ่งก็มีฟังก์ชั่นต่างๆ ตามที่โจทย์กำหนด list(), runcode(), ... แล้ว master ก็จะไปสั่งงานต่อที่ slave threads ทุกๆ ตัว
  • จากนั้น slave thread ก็จะส่งคำสั่งผ่าน tcp network ไปหา slave แล้ว slave ก็จะตอบผลกลับมา

ยังเหลือการออกแบบ slave.... to be continue ครับ

ไม่มีความคิดเห็น:

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

คลังบทความของบล็อก

favourites