Nakarin Jukkrit | CS 309
Lecture 3
Posted by Nakarin Jukkrit on 21 August 2008, 09:26.

OS Structure

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

ระดับชั้นการทำงานของ OS
ถ้ามองระดับชั้นการทำงานของโปรแกรมต่างๆ ในแง่ผู้ใช้เราอาจแบ่งได้ออกเป็น 3 ระดับ

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


รูปที่ 1.1 ระดับชั้นการทำงานของโปรแกรม

รูปที่ 1.2 ระดับชั้นการทำงานของโปรแกรม

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

ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (kernel) เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการเท่านั้น เคอร์เนลประกอบด้วยส่วนย่อย ๆ พื้นฐาน 3 ส่วน คือ

•ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
•ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น •และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆ
ตัวควบคุมมอนิเตอร์ (monitor control) มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ

การทำงานของส่วนย่อยทั้ง 3 ของเคอร์เนลต้องการความเร็วในการทำงานสูงมากเพราะเป็นงานขั้นพื้นฐานและมีการทำงานบ่อยมาก ดังนั้น เคอร์เนลมักจะถูกเขียนขึ้นด้วยภาษาแอสเซมบลี้ และเป็นส่วนที่ขึ้นอยู่กับฮาร์ดแวร์ของเครื่อง (hardware dependent) ด้วย นั่นคือ ถ้าโครงสร้างทางฮาร์ดแวร์ของเครื่องมีการเปลี่ยนแปลง ส่วนของเคอร์แนลต้องถูกนำมาแก้ไขใหม่ด้วย เพื่อให้สามารถทำงานกับฮาร์ดแวร์ชิ้นใหม่ได้ นอกจากหน้าที่พื้นฐานทั้ง 3 แล้ว เคอร์เนลยังมีหน้าที่อื่นๆ อีก เช่น จัดการเรื่องการเข้าจังเหวะของโปรเซส (process synchronization) และการติดต่อระหว่างโปรเซส (process communication) รูปที่ 1.3 แสดงความสัมพันธ์ของเคอร์เนลกับฮาร์ดแวร์ของเครื่อง


รูปที่ 1.3 ความสัมพันธ์ของเคอร์เนลและฮาร์ดแวร์

      ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager) มีหน้าที่จัดการเกี่ยวกับหน่วยความจำของระบบ เช่น การทำหน่วยความจำเหมือนระบบหน้า เป็นต้น เนื่องจากการจัดการหน่วยความจำบางส่วนต้องยุ่งเกี่ยวกับโครงสร้างทางฮาร์ดแวร์ของเครื่อง ดังนั้น ในส่วนของผู้จัดการหน่วยความจำจึงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์ด้วยเช่นเดียวกัน บางครั้งการทำงานในชั้นนี้ก็อาศัยรูทีนบางอย่างของเคอร์เนลด้วย ตัวอย่างเช่น เคอร์เนลตรวจสอบพบอินเตอร์รัพต์ที่เกิดจากความผิดพลาดในการใช้งานหน่วยความจำ เคอร์เนลจะเลือกและส่งงานที่เหมาะสมกับการจัดการสัญญาณอินเตอร์รัพต์ที่เกิดขึ้นมาให้ผู้จัดการหน่วยความจำจัดการแก้ไข ในรูปที่ 1.4 แสดงตำแหน่งของผู้จัดการหน่วยความจำ


รูปที่ 1.4 ระดับชั้นที่ 2 ของระบบปฏิบัติการ

      ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ IOCS จะมีหน้าที่จัดการงานทางด้านอินพุตเอาพุตของระบบ ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์อยู่บ้าง เพราะการติดต่อกับอุปกรณ์อินพุต-เอาต์พุตต้องทราบโครงสร้างและการทำงานของอุปกรณ์นั้นๆด้วย ซึ่งส่วนนี้เป็นหน้าที่ของตัวขับอุปกรณ์ (device driver) นอกจากนี้ IOCS ยังต้องอาศัยรูทีนบางอย่างทั้งจากเคอร์เนล และผู้จัดการหน่วยความจำในการทำงานของมันอีกด้วย ตัวอย่างเช่น เคอร์เนลจัดหารูทีนที่เหมาะสมกับการเกิดอินเตอร์รัพต์จากอุปกรณ์อินพุต-เอาต์พุต ให้ IOCS ทำงานหรือ IOCS เรียกใช้รูทีนผู้จัดการหน่วยความจำให้ช่วยหาเนื้อที่ในหน่วยความจำเพื่อใช้ทำบัฟเฟอร์ของอุปกรณ์ต่างๆ รูปที่ 1.5 แสดงระดับชั้นเมื่อเพิ่มชั้นของ IOCS เข้าไป


รูปที่ 1.5 ระดับชั้นที่ 3 ของระบบปฏิบัติการ

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

ชั้นที่ 4 ผู้จัดการไฟล์ (file manager) มีหน้าที่จัดการงานต่างๆ ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลงดิสก์ การหาไฟล์ การอ่านข้องมูลของไฟล์ เป็นต้น ผู้จัดการไฟล์นี้สามารถถูกออกแบบให้ไม่ขึ้นกับฮาร์ดแวร์ (hardware independent) ผู้จัดการไฟล์จะจะติดต่อกับฮาร์ดแวร์โดยเรียกผ่านรูทีนต่างๆของ เคอร์เนล ผู้จัดการหน่วยความจำและ IOCS รูปที่ 1.6 แสดงระดับชั้นของระบบปฏิบัติการเมื่อเพิ่มระดับชั้นของ ผู้จัดการไฟล์เข้าไป

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


รูปที่ 1.6 ระดับชั้นที่ 4 ของระบบปฏิบัติการ

       ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler) เป็นระดับชั้นแรกที่มีลักษณะไม่ขึ้นอยู่กับฮาร์ดแวร์โดยสมบูรณ์ มีหน้าที่จัดคิวของโปรเซสในสถานะพร้อม (ready state) เมื่อใดที่ส่วนนี้ทำงานมันจะคัดเลือกเอาโปรซสที่เหมาะที่สุดในคิวของสถานะพร้อม เพื่อให้โปรเซสนั้นเข้าไปครอบครองซีพียูที่ว่างอยู่ โดยเรียกใช้ตัวส่งในส่วนของเคอร์เนล รูปที่ 1.7 แสดงระดับชั้นของตัวจัดคิดระยะสั้น


รูปที่ 1.7 แสดงระดับชั้นที่ 5 ของ OS

อาจกล่าวได้ว่าตัวจัดคิดระยะสั้นเป็นส่วนที่มีหน้าที่จัดสรรซีพียู ซึ่งเป็นทรัพยากรประเภทหนี่งของระบบ

ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager) เป็นระดับชั้นของส่วนที่หน้าที่จัดสรรหาทรัพยากรอื่นๆในระบบ ดังแสดงในรูปที่ 1.8 บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กัน (ดังแสดงในรูปที่1.9 ) ทั้งนี้เพราะหลังจากที่ตัวจัดคิวระยะสั้นส่งโปรเซสเข้าไปในสถานะรันแล้ว โปรเซสนั้นอาจต้องการทรัพยากรอื่นๆ ในระบบ ดังนั้นจึงต้องเรียกใช้รูทีนในชั้นผู้จัดการทรัพยากร


รูปที่ 1.8 แสดงระดับชั้นที่ 6 ของ OS

รูปที่ 1.9 การสลับชั้นของตัวจัดคิดระยะสั้นและผู้จัดการทรัพยากร

      ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler) เป็นชั้นของระบบปฏิบัติที่เริ่มมีความใกล้ชิดกับผู้ใช้และห่างไกลกับฮาร์ดแวร์ของเครื่องมากขึ้น มีหน้าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่นสร้างโปรเซสต่าง ๆ ใหม่เข้ามาในระบบและยุติโปรเซสเมื่อโปรเซสทำงานเสร็จสิ้นลง การทำงานของตัวจัดคิวระยะยาวต้องใช้รูทีนต่างๆ ในชั้นที่ 1 ถึง 6 ช่วยในการทำงาน (รูปที่ 1.10 แสดงตำแหน่งของตัวจัดคิวระยะยาว)


รูปที่ 1.10 แสดงระดับชั้นที่ 7 ของ OS

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


รูปที่ 1.11 แสดงระดับชั้นที่ 8 ของ OS

รูปที่ 1.12 ระดับชั้นต่างๆ ของโปรแกรม
comments (0) - post comment

ซ Last Page | (Page 3 of 6) | Next Page ป
About Me


Links
เจ้าหญิง

Categories

Recent Entries
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5
Lecture 6

Friends




Power By : BlogKa.com - Free Blog Hosting