ใบงานที่8โครงสร้างของระบบปฏิบัติการ
โดย นายอนุชิต หุ่นนอนไพร รหัสนักศึกษา 603128067
โครงสร้างของระบบปฏิบัติการ
เนื่องจากหน้าที่ความรับผิดชอบของระบบปฏิบัติการในการควบคุมดูแลการทำงานของระบบเครื่องคอมพิวเตอร์มีมากมาย
จึงทำให้โครงสร้างทางโปรแกรมของระบบปฏิบัติการมีความสลับซับซ้อนมาก
เพื่อความสะดวกในการออกแบบผู้ออกแบบจึงจัดแบ่งระบบปฏิบัติการออกเป็นส่วนย่อยๆ
หลายๆ ส่วน
แต่ละส่วนมีหน้าที่รับผิดชอบการทำงานในแต่ละด้านโดยไม่คาบเกี่ยวกันแต่สัมพันธ์กัน
เพื่อให้เข้าใจถึงโครงสร้างของระบบปฏิบัติการ
เราจะแบ่งส่วนการทำงานของระบบปฏิบัติการออกเป็นชั้นๆ
ตามลำดับของการทำงานที่มีความเกี่ยวข้องกับฮาร์ดแวร์และผู้ใช้จากมากไปน้อย
ถ้ามองระดับชั้นการทำงานของโปรแกรมต่างๆ ในแง่ผู้ใช้เราอาจแบ่งได้ออกเป็น 3 ระดับ
1.1โปรแกรมทั่วไปหรือผู้ใช้เอง
1.2ระบบปฏิบัติการ (OS)
1.3ฮาร์ดแวร์ของเครื่องคอมพิวเตอร์
ทั้ง 3 ระดับมีความสัมพันธ์กันคือระบบปฏิบัติการจะเป็นตัวเชื่อมโยงระหว่างผู้ใช้และฮาร์ดแวร์ของเครื่องโดยทำหน้าที่ติดต่อและควบคุมการทำงานของฮาร์ดแวร์ เพื่อให้โปรแกรมหรือคำสั่งของผู้ใช้ทำงานสำเร็จ ลุล่วงไปได้
ในรูปที่2
เป็นอีกรูปแบบหนึ่งของการแสดงความสัมพันธ์ของโปรแกรมระบบปฏิบัติการและฮาร์ดแวร์ของเครื่องที่จะกล่าวต่อไปนี้เป็น
ระดับชั้นภายในตัวระบบปฏิบัติการเท่านั้น
ซึ่งจะใช้รแบบการแสดงความสัมพันธ์ของระดับชั้นต่างๆ
ในลักษณะเดียวกันกับรูปที่ 2
ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (kernel) เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการ เท่านั้น เคอร์เนลประกอบด้วยส่วนย่อย ๆ พื้นฐาน 3 ส่วน คือ
ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆตัวควบคุมมอนิเตอร์ (monitor control) มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ
การทำงานของส่วนย่อยทั้ง 3ของเคอร์เนลต้องการความเร็วในการทำงานสูงมากเพราะเป็นงานขั้นพื้นฐานและมีการทำงานบ่อยมาก ดังนั้น เคอร์เนลมักจะถูกเขียนขึ้นด้วยภาษาแอสเซมบลี้ และเป็นส่วนที่ขึ้นอยู่กับฮาร์ดแวร์ของเครื่อง (hardware dependent) ด้วย นั่นคือ ถ้าโครงสร้างทางฮาร์ดแวร์ของเครื่องมีการเปลี่ยนแปลง ส่วนของเคอร์แนลต้องถูกนำมาแก้ไขใหม่ด้วย เพื่อให้สามารถทำงานกับฮาร์ดแวร์ชิ้นใหม่ได้ นอกจากหน้าที่พื้นฐานทั้ง 3แล้ว เคอร์เนลยังมีหน้าที่อื่นๆ อีก เช่น จัดการเรื่องการเข้าจังเหวะของโปรเซส (process synchronization) และการติดต่อระหว่างโปรเซส (process communication) รูปที่3 แสดงความสัมพันธ์ของเคอร์เนลกับฮาร์ดแวร์ของเครื่อง
ระดับชั้นการทำงานของ OS
1.1โปรแกรมทั่วไปหรือผู้ใช้เอง
1.2ระบบปฏิบัติการ (OS)
1.3ฮาร์ดแวร์ของเครื่องคอมพิวเตอร์
ทั้ง 3 ระดับมีความสัมพันธ์กันคือระบบปฏิบัติการจะเป็นตัวเชื่อมโยงระหว่างผู้ใช้และฮาร์ดแวร์ของเครื่องโดยทำหน้าที่ติดต่อและควบคุมการทำงานของฮาร์ดแวร์ เพื่อให้โปรแกรมหรือคำสั่งของผู้ใช้ทำงานสำเร็จ ลุล่วงไปได้
รูปที่1 ระดับชั้นการทำงานของโปรแกรม
รูปที่2 ระดับชั้นการทำงานของโปรแกรม
ในรูปที่2
เป็นอีกรูปแบบหนึ่งของการแสดงความสัมพันธ์ของโปรแกรมระบบปฏิบัติการและฮาร์ดแวร์ของเครื่องที่จะกล่าวต่อไปนี้เป็น
ระดับชั้นภายในตัวระบบปฏิบัติการเท่านั้น
ซึ่งจะใช้รแบบการแสดงความสัมพันธ์ของระดับชั้นต่างๆ
ในลักษณะเดียวกันกับรูปที่ 2ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (kernel) เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการ เท่านั้น เคอร์เนลประกอบด้วยส่วนย่อย ๆ พื้นฐาน 3 ส่วน คือ
ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆตัวควบคุมมอนิเตอร์ (monitor control) มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ
การทำงานของส่วนย่อยทั้ง 3ของเคอร์เนลต้องการความเร็วในการทำงานสูงมากเพราะเป็นงานขั้นพื้นฐานและมีการทำงานบ่อยมาก ดังนั้น เคอร์เนลมักจะถูกเขียนขึ้นด้วยภาษาแอสเซมบลี้ และเป็นส่วนที่ขึ้นอยู่กับฮาร์ดแวร์ของเครื่อง (hardware dependent) ด้วย นั่นคือ ถ้าโครงสร้างทางฮาร์ดแวร์ของเครื่องมีการเปลี่ยนแปลง ส่วนของเคอร์แนลต้องถูกนำมาแก้ไขใหม่ด้วย เพื่อให้สามารถทำงานกับฮาร์ดแวร์ชิ้นใหม่ได้ นอกจากหน้าที่พื้นฐานทั้ง 3แล้ว เคอร์เนลยังมีหน้าที่อื่นๆ อีก เช่น จัดการเรื่องการเข้าจังเหวะของโปรเซส (process synchronization) และการติดต่อระหว่างโปรเซส (process communication) รูปที่3 แสดงความสัมพันธ์ของเคอร์เนลกับฮาร์ดแวร์ของเครื่อง
ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager) มีหน้าที่จัดการเกี่ยวกับหน่วยความจำของระบบ เช่น การทำหน่วยความจำเหมือนระบบหน้า เป็นต้น เนื่องจากการจัดการหน่วยความจำบางส่วนต้องยุ่งเกี่ยวกับโครงสร้างทางฮาร์ดแวร์ของเครื่อง ดังนั้น ในส่วนของผู้จัดการหน่วยความจำจึงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์ด้วยเช่นเดียวกัน บางครั้งการทำงานในชั้นนี้ก็อาศัยรูทีนบางอย่างของเคอร์เนลด้วย ตัวอย่างเช่น เคอร์เนลตรวจสอบพบอินเตอร์รัพต์ที่เกิดจากความผิดพลาดในการใช้งานหน่วยความจำ เคอร์เนลจะเลือกและส่งงานที่เหมาะสมกับการจัดการสัญญาณอินเตอร์รัพต์ที่เกิดขึ้นมาให้ผู้จัดการหน่วยความจำจัดการแก้ไข ในรูปที่ 8.4 แสดงตำแหน่งของผู้จัดการหน่วยความจำ
ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ
IOCS จะมีหน้าที่จัดการงานทางด้านอินพุตเอาพุตของระบบ
ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์อยู่บ้าง
เพราะการติดต่อกับอุปกรณ์อินพุต-เอาต์พุตต้องทราบโครงสร้างและการทำงานของอุปกรณ์นั้นๆด้วย
ซึ่งส่วนนี้เป็นหน้าที่ของตัวขับอุปกรณ์ (device driver) นอกจากนี้ IOCS
ยังต้องอาศัยรูทีนบางอย่างทั้งจากเคอร์เนล
และผู้จัดการหน่วยความจำในการทำงานของมันอีกด้วย ตัวอย่างเช่น
เคอร์เนลจัดหารูทีนที่เหมาะสมกับการเกิดอินเตอร์รัพต์จากอุปกรณ์อินพุต-เอาต์พุต
ให้ IOCS ทำงานหรือ IOCS
เรียกใช้รูทีนผู้จัดการหน่วยความจำให้ช่วยหาเนื้อที่ในหน่วยความจำเพื่อใช้ทำบัฟเฟอร์ของอุปกรณ์ต่างๆ
รูปที่ 8.5 แสดงระดับชั้นเมื่อเพิ่มชั้นของ IOCS เข้าไป
ระดับชั้นที่
1,2 และ 3 เป็นส่วนที่มีความสำคัญและมีการถูกเรียกใช้งานบ่อยมาก
ดังนั้นผู้สร้างระบบ
ปฏิบัติการส่วนใหญ่จะเขียนโปรแกรมในส่วนนี้ด้วยภาษาแอสเซมบลี้หรือภาษาที่สามารถเข้าถึงระบบการทำงานของเครื่องได้
เช่น ภาษา C เป็นต้น
ทั้งนี้เพื่อให้โปรแกรมทำงานได้รวดเร็วและมีประสิทธิภาพสูง
ส่งผลให้ประสิทธิ-ภาพการทำงานของระบบดีขึ้น ส่วนการทำงานของชั้นต่างๆ
ตั้งแต่ระดับชั้นที่ 4 ขึ้นไปจะเรียกใช้รูทีนต่างๆ ของ 3 ระดับแรก
และลดความขึ้นอยู่กับฮาร์ดแวร์ลงไปเรื่อยๆ
เพราะสามารถติดต่อกับฮาร์ดแวร์ผ่านทาง 3 ระดับแรกได้
ชั้นที่ 4 ผู้จัดการไฟล์ (file manager) มีหน้าที่จัดการงานต่างๆ
ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลงดิสก์ การหาไฟล์
การอ่านข้องมูลของไฟล์ เป็นต้น
ผู้จัดการไฟล์นี้สามารถถูกออกแบบให้ไม่ขึ้นกับฮาร์ดแวร์ (hardware
independent)
ผู้จัดการไฟล์จะจะติดต่อกับฮาร์ดแวร์โดยเรียกผ่านรูทีนต่างๆของ เคอร์เนล
ผู้จัดการหน่วยความจำและ IOCS รูปที่ 8.6
แสดงระดับชั้นของระบบปฏิบัติการเมื่อเพิ่มระดับชั้นของ ผู้จัดการไฟล์เข้าไปการทำงานของผู้จัดการไฟล์ไม่จำเป็นต้องสนใจว่าการติดต่อกับดิสก์เกิดขึ้นอย่างไร
มีขั้นตอนเช่นไร
มันทราบเพียงแค่ว่าระบบมีรูทีนที่ทำหน้าที่นี้ไว้ให้ใช้เรียบร้อยแล้วในระดับชั้นที่ต่ำกว่า
ลักษณะเช่นนี้เป็นลักษณะเด่นและดีของการแบ่งระบบปฏิบัติการ
(หรือโปรแกรมอื่นๆ ทั่วไป)ออกเป็นระดับชั้นต่างๆ
กล่าวคือในแต่ละชั้นถูกกำหนดให้มีหน้าที่หรือรูทีนในการทำงานที่แน่นอนและแต่ละชั้นก็รู้วิธีการหรือรูปแบบการเรียกใช้รูทีนในชั้นต่ำกว่า
และขณะเดียวกันก็มีข้อกำหนดของรูแแบบหรือวิธีที่ให้ชั้นที่หนือกว่าเรียกใช้รูทีนในชั้นของมันได้
ตราบใดที่หน้าที่ของรูทีนและข้อกำหนดของการเรียกใช้รูทีนระหว่างชั้นยังคงเหมือนเดิม
การเปลี่ยนแปลงวิธีการทำงานของโปรแกรมภายในชั้นหนึ่งๆ
จะไม่มีผลกระทบต่อการทำงานของชั้นอื่นๆ เลย ตัวอย่างเช่น
ในกรณีของผู้จัดการไฟล์ยังคงเก็บข้อมูลเป็นไฟล์
สมมติว่าเราเปลี่ยนอุปกรณ์เก็บข้อมูลจากดิสก์เป็นฮาร์ดดิสก์
ชั้นของผู้จัดการไฟล์ยังคงเก็บข้อมูลเป็นไฟล์ได้เช่นเดิมไม่เปลี่ยนแปลง
แต่วิธีการเก็บไฟล์ในส่วนของชั้น IOCS ต้องถูกแก้ไขให้ทำงานได้
ถูกต้องตามลักษณะโครงสร้างของฮาร์ดดิสก์
รูปที่6 ระดับชั้นที่ 4 ของระบบปฏิบัติการ
ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler) เป็นระดับชั้นแรกที่มีลักษณะไม่ขึ้นอยู่กับฮาร์ดแวร์โดยสมบูรณ์ มีหน้าที่จัดคิวของโปรเซสในสถานะพร้อม (ready state) เมื่อใดที่ส่วนนี้ทำงานมันจะคัดเลือกเอาโปรซสที่เหมาะที่สุดในคิวของสถานะพร้อม
เพื่อให้โปรเซสนั้นเข้าไปครอบครองซีพียูที่ว่างอยู่
โดยเรียกใช้ตัวส่งในส่วนของเคอร์เนล รูปที่ 8.7
แสดงระดับชั้นของตัวจัดคิดระยะสั้น
รูปที่7 แสดงระดับชั้นที่ 5 ของ OS
อาจกล่าวได้ว่าตัวจัดคิดระยะสั้นเป็นส่วนที่มีหน้าที่จัดสรรซีพียู ซึ่งเป็นทรัพยากรประเภทหนี่งของระบบ
ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager) เป็นระดับชั้นของส่วนที่หน้าที่จัดสรรหาทรัพยากรอื่นๆในระบบ
ดังแสดงในรูปที่ 8.8
บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กัน
(ดังแสดงในรูปที่8.9 )
ทั้งนี้เพราะหลังจากที่ตัวจัดคิวระยะสั้นส่งโปรเซสเข้าไปในสถานะรันแล้ว
โปรเซสนั้นอาจต้องการทรัพยากรอื่นๆ ในระบบ
ดังนั้นจึงต้องเรียกใช้รูทีนในชั้นผู้จัดการทรัพยากร
รูปที่ 9 การสลับชั้นของตัวจัดคิดระยะสั้นและผู้จัดการทรัพยากร
ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler) เป็นชั้นของระบบปฏิบัติที่เริ่มมีความใกล้ชิดกับผู้ใช้และห่างไกลกับฮาร์ดแวร์ของเครื่องมากขึ้น
มีหน้าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่นสร้างโปรเซสต่าง ๆ
ใหม่เข้ามาในระบบและยุติโปรเซสเมื่อโปรเซสทำงานเสร็จสิ้นลง
การทำงานของตัวจัดคิวระยะยาวต้องใช้รูทีนต่างๆ ในชั้นที่ 1 ถึง 6
ช่วยในการทำงาน (รูปที่ 8.10 แสดงตำแหน่งของตัวจัดคิวระยะยาว)
รูปที่10 แสดงระดับชั้นที่ 7 ของ OS
ชั้นที่ 8 เชลล์ (shell) หรือผู้แปลคำสั่ง (command interpreter) เป็นชั้นสุดท้ายซึ่งเป็นชั้นที่ใกล้ชิดกับผู้ใช้มากที่สุด
มีหน้าที่ติดต่อกับผู้ใช้โดยตรง เช่น ส่งเครื่องหมายพร้อมต์ (prompt)
แสดงออกทางจอภาพ รับคำสั่งต่างๆ
ของผู้ใช้มาตีความคำสั่งและเรียกรูทีนต่างๆของชั้นล่างๆ
เพื่อให้ได้งานตามคำสั่งที่ได้รับ รูปที่ 8.11 แสดงตำแหน่งของผู้แปลคำสั่ง
แและรูปที่ 8.12 แสดงระดับทั้งหมดของโปรแกรม
รูปที่11 แสดงระดับชั้นที่ 8 ของ OS
รูปที่12 ระดับชั้นต่างๆ ของโปรแกรม
อ้างอิง
อ้างอิง
https://6031280067.blogspot.com/2017/12/6-603128067-os-3-1.html
ความคิดเห็น
แสดงความคิดเห็น