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

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

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

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

http://www.kdcybergroup.com/homes/wp-content/uploads/2016/02/414692565.jpg
  

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

http://shushi168.com/data/out/52/36681957-cpu.gif

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

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

 เมื่อมีการเปิดเครื่อง เพื่อให้คอมพิวเตอร์เริ่มทำงาน เหตุการณ์ของการเปิดเครื่องคอมพิวเตอร์จะเรียกว่า การบูต (Boot)

 ครั้นเมื่อระบบปฏิบัติการได้โหลดเข้าสู๋หน่วยความจำหลักเป็นที่เรียบร้อยแล้ว Bootstrap Program ก็หมดหน้าที่ แล้วจะปล่อยให้ระบบปฏิบัติการเป็นตัวควบคุมดูแลระบบ ระบบปฏิบัติการก็จะรอคอยสัญญาณขัดจังหวะ หรือที่เรียกว่า การอินเตอร์รัปต์ (Interrupt)

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

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

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

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

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

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

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

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

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


http://www.krootom101.com/picture/RAM.jpg

 หน่วยความจำชนิด Non-Volatile ซึ่งประกอบด้วยบรรดาดิสก์ทั้งหลาย และรวมถึงเทป
https://sites.google.com/site/khxmphiwtexrbeuxngtn62/_/rsrc/1465994801995/hnwy-khwam-ca-memory/rom.jpg?height=240&width=320



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

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

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

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

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

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

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

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

 ครือข่าย
ระบบเครือข่ายคอมพิวเตอร์ในปัจจุบัน มักมีการเชื่อมโยงเป็นเครือข่าย โดยระบบกระจาย (Distributed System) โปรเซสต่างๆ
จะไม่มีการใช้หน่วยความจำร่วมกัน ดังนั้นโปรเซสเหล่านั้นจึงมีซีพียู และหน่วยความจำเป็นของตนเอง โดยการติดต่อระหว่างโปรเซสจะผ่านสายสัญญาณบนเครือข่าย และด้วยระบบกระจายนี้เอง จึงสามารถนำคอมพิวเตอร์ที่มีความแตกต่างกัน ไม่ว่าจะเป็นเมนเฟรมคอมพิวเตอร์ มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์มารวมเข้าด้วยกันเป็นระบบเครือข่ายเดียวกันได้ รวมถึงสามารถใช้ทรัพยากรร่วมกันได้อีกด้วย จึงทำให้
การประมวลผลมีประสิทธิภาพสูงขึ้น เร็วขึ้น และมีความน่าเชื่อถือสูงดังนั้นระบบปฏิบัติการจึงจำเป็นต้องมีเครื่องมือที่ให้คอมพิวเตอร์เหล่านั้นสามารถเชื่อมโยงสื่อสารผ่านเครือข่ายได้
https://thitipa51.files.wordpress.com/2013/01/business1.jpg

 ระบบการป้องกัน
กรณีระบบคอมพิวเตอร์ที่สามารถทำงานแบบหลายผู้ใช้ โดยอนุญาตให้มีโปรเซสแต่ละโปรเซสจะต้องได้รับการคุ้มครองไม่ให้เกิดการก้าวก่ายซึ่งกันและกัน ตัวอย่างเช่น หากโปรเซสหนึ่งกำลังประมวลผลบนพื้นที่หน่วยความจำที่ได้รับการจัดสรรให้โดยระบบปฏิบัติการแล้ว โปรเซสอื่นๆ ก็จะต้องไม่สามารถเข้าไปใช้งานบนพื้นที่หน่วยความจำส่วนนั้นได้ หรือนอกจากจะได้รับการอนุญาต
http://www.neccdc.org/wp-content/uploads/2016/09/716231763.jpg

 ระบบแปลคำสั่ง
โปรแกรมระบบที่สำคัญอีกตัวหนึ่งในคอมพิวเตอร์ก็คือ ตัวแปลคำสั่ง (Command Interpreter) ซึ่งเป็นตัวที่ใช้สำหรับติดต่อระหว่างผู้ใช้กับระบบปฏิบัติการ โดยทำหน้าที่รับคำสั่งจากผู้ใช้ เพื่อนำไปปฏิบัติการ เช่น ระบบปฏิบัติการ DOS ที่สามารถใช้คำสั่ง Command Line ต่างๆ โต้ตอบกับระบบได้ เช่น คำสั่ง DIR, DATE, TIME, FORMAT เป็นต้น
https://sites.google.com/site/csandit09/_/rsrc/1409496281979/software/OS_logos.png


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

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








อ้างอิง

หนังสือเรียนวิชา การใช้งานระบบปฏิบัติการ  รหัสวิชา 2128-2002
ประเภทวิชาอุตสาหกรรม สาขาวิชาเทคนิคคอมพิวเตอร์ 
https://www.google.co.th/search?hl=th&site=imghp&tbm
http://www.itdigitserve.com/
https://thitipa51.wordpress.com
https://foam2540.wordpress.com/2013/05/31/




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

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