วันอังคารที่ 15 พฤศจิกายน พ.ศ. 2559

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

โครงสร้างของระบบคอมพิวเตอร์และโครงสร้างของระบบปฏิบติการ

ระบบคอมพิวเตอร์ ( Computer  System) 

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

โครงสร้างของอุปกรณ์อินพุต/เอาต์พุต 

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

การขัดจังหวะอุปกรณ์อินพุต/เอาต์พุต (I/O Interrupts)

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


การเข้าถึงหน่วยความจำโดยตรง (DMA)

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

ลำดับขั้นของหน่วยความจำ

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


ลำดับชั้นของหน่วยความจำ

การป้องกันฮาร์ดแวร์

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

การทำงานแบบ 2 โหมด

       เพื่อป้องกันข้อผิดพลาดในระบบ ที่อาจส่งผลเสียหายต่อโปรแกรมที่ส่งเข้ามาประมวลผลรวมถึงตัวระบบปฏิบัติการเอง ดังนั้นในระบบที่รองรับการทำงานหลายงาน และมีการใช้ทรัพยากรร่วมกัน จึงมีการแบ่งการทำงานเป็นโหมด ประกอบด้วย
      1. โหมดการทำงานของผู้ใช้ (User Mode) 
      2. โหมดการทำงานของระบบ (System Mode)

การป้องกันอินพุตและเอาต์พุต

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

การป้องกันหน่วยความจำ

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

การป้องกันซีพียู

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

โครงสร้างของระบบปฏิบัติการ

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

1. ส่วนประกอบของระบบ  แบ่งออกเป็นส่วนๆด้วยกัน คือ

      1.1 การจัดการโปรเซส
หมายถึงโปรแกรมที่กำลังประมวลผลอยู่ ดังนั้นถ้าโปรแกรมใดไม่มีการประมวลผล อยู่นิ่งๆเฉยๆๆก็ถือว่าไม่มโปรเซส
      1.2 การจัดการหน่วยความจำหลัก
หน่วยความจำหลักเปรียบเสมือนกับอาร์เรย์ที่ใช้จัดเก็บข้อมูลที่แบ่งออกเป็นช่องๆโดยจะมีแอดเดรสเป็นตัวอ้างอิงตำแหน่งเหล่านั้น ดังนั้นซีพียูจึงสามารถเข้าถึงแอดเดรสในหน่วยความจำได้โดยตรงด้วยหมายเลขแอดเดรส
      1.3 การจัดการแฟ้มข้อมูล
โดยปกติแล้วข้อมูลทุกอย่างจะถูกจัดเก็บลงในสื่อข้อมูลได้หลายประเภท ไม่ว่าจะเป็นดิสก์ เทป หรือซีดี ซึ่งจัดเก็บข้อมูลเหล่านี้จะมีรูปแบบการบันทึกข้อมูลแบบเฉพาะ รวมถึงความเร็วในการอ่านข้อมูลก็จะต่างกัน
      1.4 การจัดการอุปกรณ์อินพุต/เอาต์พุต
วัตถุประสงค์สำคัญประการหนึ่งของระบบปฏิบัติการก็คือ การเก็บบซ่อนความยุ่งยากและความสลับซับซ้อนของฮาร์ดแวร์เอาไว้ ด้วยการปล่อยให้เป็นหน้าที่ของระบบปฏิบัติการทำงานแทน เช่น เมื่อผู้ใช้ต้องการใช้งานอุปกรณ์ ก็ไม่จำเป็นต้องเขียนคำสั่ง
      1.5 การจัดการหน่วยความจำสำรอง
ปัญหาของหน่วยความจำหลักก็คือมีขนาดจำกัด และข้อมูลจะสูญหายเมื่อไฟฟ้าดับ จึงจำเป็นต้องมีหน่วยเก็บข้อมูลสำรอง เพื่อใช้สำหรับบันทึกข้อมูลและสำรองข้อมูล เพื่อนำมาใช้งานในภายภาคหน้า
      1.6 เครือข่าย
ระบบคอมพิวเตอร์ในปัจจุบันมักจะติดต่อกันเป็นเครือข่าย โดยระบบการกระจายโปรเซสต่างๆ จะไม่มีการใช้หน่วยความจำร่วมกัน ดังนั้นโปรเซสเหล่านั้นจึงมีซีพียูและหน่วยความจำเป็นของตัวเอง โดยการติดต่อระหว่างโปรเซสจะผ่านสายสัญญาณบนเครือข่ายและด้วยระบบการกระจายนี้เอง จึงสามารถนำคอมพิวเตอร์ที่มีความแตกต่างกัน มารวมกันเป็นระบบเครือข่ายเดียวกันได้
      1.7 ระบบการป้องกัน
กรณ๊ระบบึ0คอมพิวเตอร์ที่ทำงานแบบหลายผู้ใช้ โดยอนุญาติให้มีโปรเซสทำงานพร้อมกันได้ ระบบปฏิบัติการจะต้องมีระบบป้องกัน โดยโปรเซวแต่ละโปรเซสจะต้องได้รับการคุ้มครองไม่ให้เกิดการก้าวก่ายซึ่งกันและกัน
      1.8 ระบบการแปลคำสั่ง
เป็นโปรแกรมที่มีส่วนสำคัญอีกตัวหนึ่งในคอมพิวเตอร์ก็คือ ตัวแปลคำสั่ง (Command Interpreter) ซึ่งเป็นตัวที่ใช้สำหรับติดต่อระหว่างผู้ใช้กับระบบปฏิบัติการ ทำหน้าที่รับคำสั่งจากผู้ใช้ เพื่อนำไปปฏิบัติการ เช่นระบบปฏิบัติการ DOS ที่สามารถใ้คำสั่ง Command Line โต้ตอบกับระบบได้

 2. งานบริการของระบบปฏิบัติการ แบ่งออกเป็นส่วนๆด้วยกัน คือ

      2.1 การระมวลผลโปรแกรม
ระบบต้องมีความสามารถในการโหลดโปรแกรมเข้าสู่หน่วยความจำหลักและนำมาประมวลผลได้ โดยโปรแกรมที่ถูกประมวลผลจะต้องมีจุดสิ้นสุดของโปรแกรมตามปกติแต่หากโปรแกรมที่ประมวลผลเกิดผิดปกตอขึ้นมา มีการประมวลผลแบบไม่มีที่สิ้นสุดก็สามารถสั่งการเพื่อทำลายโปรเซสนั้นได้
      2.2 การดำเนินงานอุปกรณ์ I/O
ในขณะที่โปรแกรมกำลังประมวลผลอยุ่ อาจต้องมีการเรียกใช้อุปกรณ์ I/O ซึ่งอาจเป็นดิสก์ไดรฟ์ หรือเครื่องพิมพ์ แต่เนื่องด้วยผู้ใช้ไม่สามารถติดต่อกับอุปกรณ์เหล่านั้นได้โดยตรงระบบปฏิบัติการจึงต้องจัดหาวิธีการเพื่อเป็นตัวกลางในการติดต่อกับอุปกรณ์ดังกล่าว
      2.3 การจัดการกับระบบแฟ้มข้อมูล
ระบบปฏิบัติการจะต้องจัดการกับระบบแฟ้มข้อมูลได้และถือเป็นสิ่งจำเป็นทีเดียวเพราะว่าการทำงานของระบบคอมพิวเตอร์กับระบบปฏิบัติการ ก็คือการทำงานร่วมกับแฟ้มข้อมูลนั่นเอง
      2.4 การติดต่อสื่อสาร
การบริการนี้เกี่ยวข้องกับติดต่อสื่อสารกันระหว่างโปรเซส โดยโปรเซสทั้งสออาจจะประมวลผลอยู่ในซีพียูตัวเดียวกัน หรืออยู่คนละเครื่องกันที่ส่งผ่านระบบเครือข่ายโดนการติดต่อสื่อสารนี้จะใช้หน่วยความจำร่วมกัน
      2.5 การตรวจจับข้อผิดพลาด
ระบบปฏิบัติการต้องมีกลไกในการตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นได้ตลอดเวลาในระบบ 
      2.6 การจัดสรรทรัพยากร
ทรัพยากรที่มีอย่างจำกัด ดังนั้นในระบบที่มีผู้ใช้งานหลายคนที่นำงานเข้ามาประมวลผลพร้อมกัน ทรัพยากรต่างๆต้องได้รับการจัดสรรให้กับงานเหล่านั้น หากมีโปรเซวใดที่ร้องขอบริการทรัพยากรเดียวกัน ระบบจัดการต้องมีวิธีที่ยุติธรรม และมีประสิทธิภาพที่สุด
      2.7 การทำบัญชีผู้ใช้
ระบบปฏิบัติการต้องมีการบันทึกการใช้งานของผู้ใช้ และการใช้งานทรัพยากรต่างๆ เพื่อจัดทำเป็นสถิติการใช้งาน เพื่อที่จะสามารถนำไปตรวจสอบ และนำไปใช้ประโยชน์ในด้านการปรับปรุง
      2.8 ระบบป้องกัน
ข้อมูลใดๆ ที่อยู่บนระบบต้องมีการจัดการป้องกันไม่ให้โดนก้าวก่ายซึ่งกันและกัน และป้องกันให้ผู้ที่ไม่มีสิทธิใช้งานเข้ามาในระบบ โดยผู้ที่สามารถเข้าได้จะตองมีรหัสผ่านที่ถูกต้องจึงสามารถใช้ระบบได้

3. การติดต่อระหว่างโปรเซสเซอร์กับระบบปฏิบัติการ

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


 อ้างอิง

หนังสือเรียนวิชา การใช้งานระบบปฏิบัติการ รหัสวิชา 2128-2002
ประเภทวิชาอุตสาหกรรม สาขาวิชาเทคนิคคอมพิวเตอร์ ลำดับที่ 116



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

 

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

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