วันอังคารที่ 20 ธันวาคม พ.ศ. 2559

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


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







ตัวควบคุมอุปกรณ์ แต่ละตัวจะมีหน้าที่ในการรับผิดชอบ

เครื่องพิมพ์ (Computer printer) เป็นอุปกรณ์ต่อพ่วงที่จะผลิตข้อความและ/หรือกราฟิกของเอกสารที่เก็บไว้ในรูปแบบอิเล็กทรอนิกส์ออกมาในสื่อทางกายภาพเช่นกระดาษหรือแผ่นใสเครื่องพิมพ์ส่วนมากเป็นอุปกรณ์ต่อพ่วงกับคอมพิวเตอร์ทั่วไป และเชื่อมต่อด้วยสายเคเบิลเครื่องพิมพ์หรือในเครื่องพิมพ์รุ่นใหม่จะเป็นสายยูเอสบีเครื่องพิมพ์บางชนิดที่เรียกกันว่าเครื่องพิมพ์เครือข่าย(Network Printer) อินเตอร์เฟซที่ใช้มักจะเป็นแลนไร้สายและ/หรืออีเทอร์เน้ต







 





ซีพียู (CPU) หรือ ไมโครโปรเซสเซอร์ (Microprocessor) นั้น ย่อมาจากคำว่า Central Processing Unit ซึ่งหมายความว่าเป็นหน่วยประมวลผลกลาง ซึ่งเปรียบเสมือนสมองของคอมพิวเตอร์ในการทำหน้าที่ตัดสินใจหรือคำนวณ จากคำสั่งที่ได้รับมา ถือเป็นหัวใจหลักในการประมวลผลของคอมพิวเตอร์ โดยพื้นฐานแล้วซีพียูทำหน้าที่ประมวลผลข้อมูลทางคณิตศาสตร์และข้อมูลเชิงตรรกะ 

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





 
การบูตเครื่องมี 2 ประเภท คือ
1. Cold Boot คือ การเปิดสวิตซ์ (ปุ่ม Power ด้านหน้า Case นั่นเอง) ซึ่งปิดอยู่ก่อนแล้วเพื่อเริ่มต้นการใช้งาน และ
2. Warm Boot คือ การ reboot โดยอาจกดปุ่มสวิตซ์ (ปุ่ม Power)  เพื่อดับไฟหรือกดปุ่ม reset (ปุ่มเล็ก ๆ ด้านหน้า Case นั่นเอง) หรือกดปุ่ม Ctrl+Alt+Del บนคีย์บอร์ด เพื่อพักการใช้งานชั่วเวลาหนึ่ง ซึ่งอาจจะเกิดจากความบกพร่องบางอย่างที่ทำให้คอมพิวเตอร์ไม่สามารถทำงานต่อไปได้ หรือที่เรียกกันว่า เครื่องแฮงค์ (Hang) นั่นเอง

 อินเทอร์รัพท์ (Interrupt) หมายถึง อะไร ทางเข้าโปรแกรมย่อยที่ BIOS หรือ DOS มีไว้บริการ เป็นการเข้าไปขัดจังหวะ เพื่อขอกระทำการบางอย่าง เช่น ขอพิมพ์ ขออ่านข้อมูลบางอย่าง เป็นต้น ผู้รู้บางท่านกล่าวว่า interrupt เหมือน call function ในภาษาคอมพิวเตอร์ คือ เข้าไปเรียกโปรแกรมบางอย่างมาทำงานจนเสร็จ แล้วย้อนกลับมาทำบรรทัดต่อไป





อินเทอร์รัพท์เป็นกระบวนการในการส่งสัญญาณบอกให้ซีพียูรับรู้แล้วหยุดงานที่ทำอยู่ และหันมาตอบสนองต่ออินเทอร์รัพที่ร้องขอ เป็นวิธีที่เหมาะสมที่สุด ในการติดต่อระหว่างอุปกรณ์และซีพียู มีลักษณะคล้ายการเรียกใช้ subroutine 





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



DMA (Direct Memory Access)


      สำหรับอุปกรณ์เก็บข้อมูลขนาดใหญ่เช่น hard disk การเอาเวลาในการทำงานของ CPU เพื่อไปใช้ในการควบคุมการและทำหน้าที่รับส่งข้อมูลระหว่าง hard disk กับ memory ตลอดเวลานั้น จึงเป็นเรื่องที่ไม่คุ้มค่าและสิ้นเปลืองเวลาในการทำงานของ CPU เพื่อไม่ให้ CPU ซึ่งแสนจะฉลาดปราดเปรื่องต้องมารับภาระงานง่าย ๆ ที่ไม่คู่ควรกับความฉลาดของ CPU เช่นนี้  ในเครื่องคอมพิวเตอร์จึงมีการออกแบบ  processor ที่มีหน้าที่ทำงานที่ไม่ซับซ้อนเฉพาะเรื่อง (special-purpose processor) เรียกว่า DMA (direct-memory-access) controller โดยการทำงานของ DMA มีกระบวนการทำงานดังรูปข้างล่าง 



 
 จากในรูปเป็นการรับถ่ายโอนข้อมูลระหว่างอุปกรณ์จัดเก็บข้อมูลและหน่วนความจำ ซึ่งมีการนำ DMA มาใช้ในการถ่ายโอนข้อมูล โดยสามารถอธิบายขั้นตอนการทำงานในรูปได้ดังต่อไปนี้
1. CPU จะนำชุดของคำสั่งที่เกี่ยวกับการอ่านและเขียนข้อมูลไป write ลงใน main memory ก่อน ซึ่งในคำสั่งดังกล่าวจะระบุตำแหน่งของ source หรือต้นทางของข้อมูลและ destination หรือปลายทางที่จะนำข้อมูลไปจัดเก็บ และจำนวน bytes ของข้อมูลทั้งหมดที่จะทำการโอนถ่ายระหว่างกัน  หลังจาก write คำสั่งเสร็จแล้ว (เหมือนผู้จัดการโยนงานให้ลูกน้องทำ) CPU ก็จะไปทำงานอื่นต่อ ปล่อยให้ DMA มารับช่วงทำงานแทน
2. DMA จะเข้ามารับช่วงงานต่อจาก CPU โดยการเข้าไปอ่านคำสั่งใน memory แล้วทำการติดต่อกับ device controller ที่ต้องการรับส่งข้อมูลด้วย จากนั้นจึงทำการโอนถ่ายข้อมูลระหว่างอุปกรณ์และหน่วยความจำ (ดูรูป) ตามตำแหน่งและจำนวนที่ระบุไว้ในคำสั่งนั้น โดยที่ CPU ไม่ต้องมาช่วยเหลือในการทำงานส่วนนี้เลย (CPU เอาเวลาไปทำงานอื่นที่สำคัญกว่า)
3. เมื่อ DMA ทำการโอนถ่ายข้อมูลระหว่างอุปกรณ์และหน่วยความจำเสร็จสิ้นแล้ว ก็จะทำการแจ้งให้ CPU ทราบ โดยการ interrupt ไปที่ CPU (ดูรูป) เพื่อรายงานว่าทำงานตามที่ได้รับมอบหมายเสร็จแล้ว เป็นอันสิ้นสุดกระบวนการทำงานของ DMA





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

จากรูปที่ 1 หน่วยความจำลำดับบนสุดเป็นหน่วยความจำที่มีความเร็วสูง และลดหลั่นลงมาเรื่อย ๆ ก็จะมีความเร็วทที่มีขนาดใหญ่ขึ้น  ในทำนองเดียวกกัน หน่วยความจำที่มีขนาดใหญ่นั้นจะมีต้นทุนหรือราคาต่ำกว่าหน่วยความจำที่มีขนาดเล็ก

 

 

 






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





หน่วยความจําแบบ non-volatile (อังกฤษ: Non-volatile memory) คือหน่วยความจำของคอมพิวเตอร์ที่สามารถเก็บรักษาข้อมูลได้อยู่โดยไม่ต้องอาศัยไฟฟ้า ตัวอย่างหน่วยความจำถาวรเช่น รอม, แฟลช ยังรวมถึงหน่วยเก็บข้อมูลด้วยแม่เหล็ก เช่น จานบันทึกแบบแข็ง (hard disks), แผ่นบันทึก (floppy disks) และแถบแม่เหล็ก (magnetic tape), หน่วยเก็บข้อมูลด้วยแสง เช่น แผ่นซีดี และหน่วยเก็บข้อมูลยุคเก่า เช่น บัตรเจาะรู 





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






โดยปกติจำนวนบิต (Bits) ที่เก็บอยู่ในตารางเพจ (Page Table) เราสามารถกำหนดบิตเพื่อใช้การตรวจสอบและกำหนดเพจในการ อ่าน-เขียน (Read-Write) หรืออ่านข้อมูลเท่านั้น (Read-Only) ซึ่งเรียกบิตพิเศษนี้ว่า “กลุ่มบิตป้องกัน (Associating Protection Bits)” ให้กับทุกๆ เฟรม ที่อยู่ในหน่วยความจำ (Main Memory) ซึ่งแบ่งบิตสถานะออกเป็น 2 บิต คือ

1. บิตใช้งานได้ (Valid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจถูกอ่านเข้าสู่หน่วยความจำทางกายภาพแล้ว และสามารถนำไปใช้งานได้ทันที
2. บิตใช้งานไม่ได้ (Invalid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจนั้นไม่มีอยู่ในหน่วยความจำทางกายภาพแล้ว (Physical Memory) และไม่สามารถนำไปใช้งานได้ อาจเกิดจากกรณีที่ระบบปฏิบัติการยังไม่ได้อ่านข้อมูลจากเพจเข้าสู่หน่วยความจำหลัก (Main Memory) หรือข้อมูลของเพจที่ต้องการอ่านนั้นถูกสลับ (Swapped) ออกจากหน่วยความจำแล้ว ซึ่งจะทำให้เกิดข้อผิดพลาดขึ้นที่เรียกว่า “การผิดหน้า (Page Fault)” จึงจำเป็นต้องโหลดเพจข้อมูลเข้าสู่หน่วยความจำก่อนแล้วจึงเปลี่ยนค่าของบิตใช้งานไม่ได้ (Invalid Bit) ให้เป็นบิตใช้งานได้ (Valid Bit) แล้วจึงทำการประมวลผลข้อมูลนั้นใหม่อีกครั้งหนึ่ง

 




 

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


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

 















 

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

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