วันพุธที่ 2 พฤศจิกายน พ.ศ. 2559

ทบที่ 2 โครงสร้างของระบบคอมพิวเตอร์เเละโครงสร้างของระบบปฏิบัติการ

ทบที่ 2 โครงสร้างของระบบคอมพิวเตอร์เเละโครงสร้างของระบบปฏิบัติการ

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


          ซีพียูและตัวควบคุมอุปกรณ์ต่างๆ ล้วนแต่ต้องใช้พื้นที่หน่วยความจำทั้งสิ้น 

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

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

     เมื่อมีการเปิดเครื่อง เพื่อให้คอมพิวเตอร์เริ่มทำงาน เหตุการณ์ของการเปิดเครื่องคอมพิวเตอร์จะเรียกว่าการบูต (Boot) 
     ครั้นเมื่อระบบปฏิบัติการได้โหลดเข้าสู่หน่วยความจำหลักเป็นที่เรียบร้อยแล้ว Bootstrap Program  ก็หมดหน้าที่ลง และจะปล่อยให้ระบบปฏิบัติการเป็นตัวควบคุมดูแลระบบแทน ระบบปฏิบัติการจะรอคอยสัญญาณขัดจังหวะ หรือที่เรียกว่า การอินเตอร์รัปต์ (Interrupt) 
    สำหรับฮาร์ดแวร์ สามารถส่งสัญญาณอินเตอร์รัปต์ผ่านทางบัสระบบ (System Bus) มายังซีพียูได้ตลอดเวลา ในขณะที่ซอฟต์แวร์จะส่งสัญญาณอินเตอร์รัปต์ผ่านทางคำสั่งเรียกระบบ (System Call) เพื่อให้เอ็กซีคิวต์คำสั่งที่ต้องการ
    เมื่อซีพียูถูกอินเตอร์รัปต์ หมายความว่าซีพียูกำลังถูกขัดจังหวะ ดังนั้น ซีพียูก็จะหยุดทำงานที่กำลังทำทันที จากนั้นก็จะเก็บค่าต่างๆ ที่อยู่ในรีจิสเตอร์ทั้งหมดลงในหน่วยความจำแบบสแต็ก (Stack) และจะตรวจสอบสัญญาณอินเตอร์รัปต์ที่เกิดขึ้นว่าคืออะไร ผ่านตารางสัญญาณขัดจังหวะ 
  อินเตอร์รัปต์เวกเตอร์ จะประกอบด้วยหมายเลขอินเตอร์รัปต์ และตำแหน่งแอดเดรสของรูทีนอินเตอร์รัปต์ ที่ทำให้ซีพียูรู้ตำแหน่งของอุปกรณ์ที่จะเข้าไปจัดการ
     คอมพิวเตอร์ที่ใช้งานทั่วไปประกอบด้วยซีพียู มีตัวควบคุมอุปกรณ์จำนวนหนึ่งที่เชื่อมโยงถึงกันผ่านบัส ตัวควบคุมแต่ละตัว รับผิดชอบอุปกรณ์เชื่อมต่ออยู่หนึ่งอุปกรณ์
    ตัวควบคุมแต่ละตัว รับผิดชอบอุปกรณ์เชื่อมต่ออยู่หนึ่งอุปกรณ์ ตัวควบคุมจะมีหน่วยความจำขนาดเล็ก เรียกว่าบัฟเฟอร์
      DMA (Direct Memory Access) เป็นวิธีการส่งข้อมูลจากอุปกรณ์ I/O ไปยังหน่วยความจำโดยตรง โดยไม่ต้องผ่านซีพียู วิธีนี้ ทำให้การส่งข้อมูลมีความรวดเร็วยิ่งขึ้น ทั้งยังไม่ต้องเปลืองเวลาซีพียูด้วย 
        ลำดับชั้นหน่วยความจำ  จะสะท้อนถึงความเร็ว ราคาหน่วยความจำชนิดต่างๆหน่วยความจำถัดลงมาจะมีความเร็วที่ต่ำลงไปเรื่อยๆ หน่วยความจำความเร็วมักสูงมักมีราคาแพง หน่วยความจำที่มีความเร็วต่ำราคาถูกและมีความจุสูง
         หน่วยความจำแบบ Volatile เช่น รีจิสเตอร์ แคช และหน่วยความจำหลัก โดยข้อมูล บันทึกอยู่ในหน่วยความจำชนิดนี้ จะสูญหายทันทีเมื่อไม่มีไฟเลี้ยงวงจร
         หน่วยความจำชนิด Non-Volatile ซึ่งประกอบด้วยบรรดาดิสก์ทั้งหลาย และรวมถึงเทป
เพื่อป้องกันข้อผิดพลาดในระบบ ที่อาจส่งผลเสียหายต่อโปรแกรมที่ส่งเข้ามาประมวลผลรวมถึงตัวระบบปฏิบัติการเอง ดังนั้นในระบบที่รองรับการทำงานหลายงาน และมีการใช้ทรัพยากรร่วมกัน จึงมีการแบ่งการทำงานเป็นโหมด ซึ่งประกอบด้วย
1.  โหมดการทำงานผู้ใช้ (User Mode)
2.  โหมดการทำงานของระบบ (System Mode/Monitor Mode)

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

    กรณีมีโปรแกรมหลายๆ โปรแกรมเข้ามาในระบบ แล้วโปรแกรมหนึ่งเกิดข้อผิดพลาดขึ้นมา ทำให้ส่งผลกระทบต่อโปรแกรมอื่นๆ

      การศึกษาโครงสร้างของระบบปฏิบัติการ จึงสามารถพิจารณาถึงส่วนสำคัญต่างๆ ดังนี้
   1.ส่วนประกอบของระบบ
 ระบบปฏิบัติการเป็นโปรแกรมที่มีความซับซ้อน ดังนั้นการแบ่งเป็นส่วนประกอบย่อย ด้วยการให้แต่ละส่วนมีหน้าที่ของตนเองที่ชัดเจน และแต่ละส่วนมีการระบุหน้าที่โดยละเอียดสำหรับการจัดการกับอินพุต/เอาต์พุต ซึ่งนับเป็นแนวทางการออกแบบที่ดีวิธีหนึ่ง ดังนั้นในระบบปฏิบัติการจึงมีการแบ่งส่วนหน้าที่การจัดการออกเป็นส่วนๆ ด้วยกัน
        1.  การจัดการโปรเซส
        2.  การจัดการหน่วยความจำหลัก
        3.  การจัดการแฟ้มข้อมูล
        4.  การจัดการอุปกรณ์อินพุต/เอาต์พุต
        5.  การจัดการหน่วยความจำสำรอง
        6.  เครือข่าย
        7.  ระบบการป้องกัน
        8.  ระบบการแปลคำสั่ง

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

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

 การจัดการอุปกรณ์อินพุต/เอาต์พุต
วัตถุประสงค์ประการหนึ่งของระบบปฏิบัติการก็คือ การเก็บซ่อนความยุ่งยากและความสลับซับซ้อนของฮาร์ดแวร์เอาไว้ ด้วยการปล่อยให้เป็นหน้าที่ของระบบปฏิบัติการทำงานแทน เช่น เมื่อผู้ใช้ต้องการใช้งานอุปกรณ์ ก็ไม่จำเป็นต้องเขียนชุดคำสั่งเพื่อจัดการกับอุปกรณ์เหล่านั้น ปล่อยให้เป็นหน้าที่ของระบบปฏิบัติการ กล่าวคือ เมื่อผู้ใช้ต้องการเรียกใช้งานอุปกรณ์เหล่านั้นอีกทอดหนึ่งโดยผ่านตัวขับอุปกรณ์ (Device Driver) ดังนั้นในการจัดการอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีหน้าที่รับผิดชอบกิจกรรมที่เกี่ยวข้องกับอุปกรณ์ I/O

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

 1.  การจัดการกับพื้นที่ว่าง
 2.  การจัดสรรพื้นที่เพื่อบันทึกข้อมูล
 3.  การจัดตารางลำดับการทำงานของดิสก์
 (Disk Scheduling)

 เครือข่าย
ระบบเครือข่ายคอมพิวเตอร์ในปัจจุบัน มักมีการเชื่อมโยงเป็นเครือข่าย โดยระบบกระจาย (Distributed System) โปรเซสต่างๆ
จะไม่มีการใช้หน่วยความจำร่วมกัน ดังนั้นโปรเซสเหล่านั้นจึงมีซีพียู และหน่วยความจำเป็นของตนเอง โดยการติดต่อระหว่างโปรเซสจะผ่านสายสัญญาณบนเครือข่าย และด้วยระบบกระจายนี้เอง จึงสามารถนำคอมพิวเตอร์ที่มีความแตกต่างกัน ไม่ว่าจะเป็นเมนเฟรมคอมพิวเตอร์ มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์มารวมเข้าด้วยกันเป็นระบบเครือข่ายเดียวกันได้ รวมถึงสามารถใช้ทรัพยากรร่วมกันได้อีกด้วย จึงทำให้
การประมวลผลมีประสิทธิภาพสูงขึ้น เร็วขึ้น และมีความน่าเชื่อถือสูงดังนั้นระบบปฏิบัติการจึงจำเป็นต้องมีเครื่องมือที่ให้คอมพิวเตอร์เหล่านั้นสามารถเชื่อมโยงสื่อสารผ่านเครือข่ายได้
ระบบการป้องกัน
กรณีระบบคอมพิวเตอร์ที่สามารถทำงานแบบหลายผู้ใช้ โดยอนุญาตให้มีโปรเซสแต่ละโปรเซสจะต้องได้รับการคุ้มครองไม่ให้เกิดการก้าวก่ายซึ่งกันและกัน ตัวอย่างเช่น หากโปรเซสหนึ่งกำลังประมวลผลบนพื้นที่หน่วยความจำที่ได้รับการจัดสรรให้โดยระบบปฏิบัติการแล้ว โปรเซสอื่นๆ ก็จะต้องไม่สามารถเข้าไปใช้งานบนพื้นที่หน่วยความจำส่วนนั้นได้ หรือนอกจากจะได้รับการอนุญาต
ระบบแปลคำสั่ง
โปรแกรมระบบที่สำคัญอีกตัวหนึ่งในคอมพิวเตอร์ก็คือ ตัวแปลคำสั่ง (Command Interpreter) ซึ่งเป็นตัวที่ใช้สำหรับติดต่อระหว่างผู้ใช้กับระบบปฏิบัติการ โดยทำหน้าที่รับคำสั่งจากผู้ใช้ เพื่อนำไปปฏิบัติการ เช่น ระบบปฏิบัติการ DOS ที่สามารถใช้คำสั่ง Command Line ต่างๆ โต้ตอบกับระบบได้ เช่น คำสั่ง DIR, DATE, TIME, FORMAT เป็นต้น

       2.งานบริการของระบบปฏิบัติการ
ระบบปฏิบัติการจัดเตรียมสภาพแวดล้อมเพื่อบริการให้กับโปรแกรมที่เข้ามาประมวลผลอย่างไรก็ตาม การบริการในระบบปฏิบัติการต่างๆอาจมีความแตกต่างกันออกไป แต่ก็มีการบริการพื้นฐานที่เหมือนกัน โดยมีจุดประสงค์คือ ต้องการสร้างความสะดวกให้แก่ผู้ใช้

       3.การติดต่อระหว่างโปรเซสกับระบบปฏิบัติการ
การติดต่อระหว่างโปรเซสเซอร์กับระบบปฏิบัติการในที่นี้ก็คือ System Calls นั่นเอง โดยปกติทั่วไปแล้วใช้ชุดคำสั่งภาษาแอสแซมบลี้ในการติดต่อ แต่อย่างไรก็ตาม ในบางระบบอาจอนุญาตให้ผู้ใช้สามารถเขียนโปรแกรมภาษาระดับสูงเพื่อเพื่อเรียกใช้ System Calls ได้โดยตรง เช่น ภาษา C เป็นต้น สำหรับการใช้งาน System Call จะประกอบด้วยกลุ่มด้วยต่างๆ ดังนี้
     
       1.  การควบคุมโปรเซส
 เป็นกลุ่มที่ควบคุมโปรเซสทั้งหมด โดยขณะที่โปรแกรมกำลังจะประมวลผลอยู่ เราอาจต้องการให้โปรเซสนั้นหยุดการทำงาน โหลดข้อมูลเพิ่มเติม ประมวลผลโปรเซสนั้นอีกครั้ง จบโปรเซส สร้างโปรเซสขึ้นมาใหม่ หรือสั่งให้รอ เป็นต้น
     
       2.  การจัดการกับแฟ้มข้อมูล
 เป็นกลุ่มที่ใช้จัดการกับแฟ้มข้อมูลทั้งหมด ไม่ว่าจะเป็นการสร้างแฟ้มข้อมูล ลบแฟ้มข้อมูล การเปิดและเปิดแฟ้มข้อมูล รวมถึงการอ่านและบันทึกแฟ้มข้อมูล

        3.  การจัดกับอุปกรณ์
 เป็นกลุ่มที่ใช้จัดการกับอุปกรณ์ในระบบ โดยระบบอาจมีการร้องขอใช้อุปกรณ์เพิ่มเติม เช่น ร้องขอบริการเพื่อใช้งานเทป ครั้นเมื่อใช้งานเสร็จ ก็จะปลดอุปกรณ์นั้นคือระบบเพื่อให้ผู้อื่นเรียกใช้งานต่อไปได้

        4.  การบำรุงรักษาข้อมูล
 เป็นกลุ่มที่ตอบสนองงานหลักของตัวระบบปฏิบัติการ เช่น ในระบบส่วนใหญ่จะมีการโอนถ่ายข้อมูลระหว่างผู้ใช้กับระบบปฏิบัติการ นอกจากนี้ในบางระบบอาจต้องการแสดงวันที่ เวลา แสดงข้อมูลในระบบเช่น จำนวนผู้ใช้งาน เวอร์ชันของระบบปฏิบัติการเนื้อที่ว่างบนหน่วยความจำ เนื้อที่ว่างในอุปกรณ์สำรองข้อมูล เป็นต้น

        5.  การติดต่อสื่อสาร
 การสื่อสารระหว่างโปรเซสอาจเกิดขึ้นได้จากโปรเซสที่มีการติดต่อระหว่างกันภายใน


เเหล่งอ้างอิง

-หนังสือวิชาการใช้งานปะบบปฎิบัติการ
-http://www.itdigitserve.com
-https://thitipa51.wordpress.com