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

Download Report

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

1
โครงสร้างของระบบปฏิบัติการ
Operating System Structure
 OS มีหน้ าที่มากมายในการควบคุมดูแลการทางานของระบบ
คอมพิวเตอร์ จึงทาให้ โครงสร้ างของ OS มีความสลับซับซ้ อน
มาก
 เพื่อความสะดวกในการออกแบบผู้ออกแบบจึงจัดแบ่ง OS
ออกเป็ นส่วนย่อย ๆ หลาย ๆ ส่วน และให้ แต่ละส่วนมีหน้ าที่
รับผิดชอบการทางานในแต่ละด้ านโดยไม่คาบเกี่ยวกันแต่
สัมพันธ์กนั
2
ระดับชั้นการทางานของ OS
ระดับชั้นการทางานของโปรแกรมต่างๆ ในแง่ผ้ ูใช้
เราอาจแบ่งได้ ออกเป็ น 3 ระดับ
โปรแกรมทั่วไปหรือผู้ใช้ เอง
ระบบปฏิบัติการ (OS)
ฮาร์ดแวร์ของเครื่องคอมพิวเตอร์
3
ระดับชั้นการทางานของ OS
ความสัมพันธ์ของระบบปฏิบตั ิการ
 คือระบบปฏิบัติการจะเป็ นตัวเชื่อมโยงระหว่างผู้ใช้ และ
ฮาร์ดแวร์ของเครื่องโดยทาหน้ าที่ติดต่อและควบคุม
การทางานของฮาร์ดแวร์ เพื่อให้ โปรแกรมหรือคาสั่ง
ของผู้ใช้ ทางานสาเร็จ ลุล่วงไปได้
4
ระดับชั้นการทางานของโปรแกรม
โปรแกรมผู้ใช้ ทวั่ ไป
OS
ฮาร์ ดแวร์
5
ระดับชั้นภายในตัวระบบปฏิบัติการ
ระดับชั้นแรกสุด เป็ นระดับชั้นทีต่ า่ ทีส่ ุดมีชื่อเรียกว่า เคอร์เนล (Kernel)
เป็ นชั้นที่มหี น้ าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบตั กิ ารเท่านั้น
เคอร์เนลประกอบด้วยส่วนย่อย ๆ พื้ นฐาน 3 ส่วน คือ
1. ตัวส่ง (dispatcher) มีหน้ าที่จัดการส่งโปรเซสเข้ าไปให้ ซีพียู
2. ตัวจัดการอินเตอร์รพั ต์ข้ นั แรก (first-level interrupt
handler) มีหน้ าที่วิเคราะห์การอินเตอร์รัพต์ท่ี เกิดขึ้น และเลือกใช้ รู
ทีนที่เหมาะสมกับอินเตอร์รัพต์น้ันๆ
3. ตัวควบคุมมอนิเตอร์ (monitor control) มีหน้ าที่
ควบคุมดูแลการเข้ าถึงมอนิเตอร์ต่าง ๆ ของระบบ
6
ระดับชั้นภายในตัวระบบปฏิบัติการ
การทางานของของเคอร์เนล
ต้ องการความเร็วในการทางานสูงมากเพราะเป็ นงานขั้น
พื้นฐานและมีการทางานบ่อยมาก
ดังนั้น เคอร์เนลมักจะถูกเขียนขึ้นด้ วยภาษาแอสเซมบลี้
และเป็ นส่วนที่ข้ นึ อยู่กบั ฮาร์ดแวร์ของเครื่อง
7
ความสัมพันธ์ ของเคอร์เนลและฮาร์ดแวร์
เคอร์ เนลยังมีหน้ าที่อื่นๆ อีก เช่น จัดการเรื่ องการเข้ าจังเหวะของ
โปรเซส (process synchronization) และการติดต่อระหว่างโปรเซส
(process communication)
8
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ชั้นที่ 2 ผูจ้ ด
ั การหน่วยความจา (memory manager)

มีหน้ าที่จัดการเกี่ยวกับหน่วยความจาของระบบ เช่น การทาหน่วยความจาเหมือน
ระบบหน้ า เป็ นต้ น
 เนื่องจากการจัดการหน่วยความจาบางส่วนต้ องยุ่งเกี่ยวกับโครงสร้ างทางฮาร์ดแวร์ของ
เครื่อง ดังนั้น ในส่วนของผู้จัดการหน่วยความจาจึงมีลักษณะขึ้นอยู่กบั ฮาร์ดแวร์
 บางครั้งการทางานในชั้นนี้กอ็ าศัย รูทน
ี บางอย่างของเคอร์เนลด้ วย ตัวอย่างเช่น เคอร์
เนลตรวจสอบพบอินเตอร์รัพต์ท่เี กิดจากความผิดพลาดในการใช้ งานหน่วยความจา
เคอร์เนลจะเลือกและส่งงานที่เหมาะสมกับการจัดการสัญญาณอินเตอร์รัพต์ทเ่ี กิดขึ้นมา
ให้ ผ้ ูจัดการหน่วยความจาจัดการแก้ ไข
9
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ชั้นที่ 2 ผูจ้ ด
ั การหน่วยความจา (memory manager)

มีหน้ าที่จัดการเกี่ยวกับหน่วยความจาของระบบ เช่น การทาหน่วยความจาเหมือน
ระบบหน้ า เป็ นต้ น
 เนื่องจากการจัดการหน่วยความจาบางส่วนต้ องยุ่งเกี่ยวกับโครงสร้ างทางฮาร์ดแวร์ของ
เครื่อง ดังนั้น ในส่วนของผู้จัดการหน่วยความจาจึงมีลักษณะขึ้นอยู่กบั ฮาร์ดแวร์
 บางครั้งการทางานในชั้นนี้กอ็ าศัย รูทน
ี บางอย่างของเคอร์เนลด้ วย ตัวอย่างเช่น เคอร์
เนลตรวจสอบพบอินเตอร์รัพต์ท่เี กิดจากความผิดพลาดในการใช้ งานหน่วยความจา
เคอร์เนลจะเลือกและส่งงานที่เหมาะสมกับการจัดการสัญญาณอินเตอร์รัพต์ทเ่ี กิดขึ้นมา
ให้ ผ้ ูจัดการหน่วยความจาจัดการแก้ ไข
10
ชั้นที่ 2 ผูจ้ ัดการหน่วยความจา (memory
manager)
11
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ชั้นที่ 2 ผูจ้ ด
ั การหน่วยความจา (memory
manager)
 มีหน้ าที่จัดการเกี่ยวกับหน่วยความจาของระบบ เช่น
การทาหน่วยความจาเหมือนระบบหน้ า เป็ นต้ น
 เนื่องจากการจัดการหน่วยความจาบางส่วนต้ องยุ่ง
เกี่ยวกับโครงสร้ างทางฮาร์ดแวร์ของเครื่อง ดังนั้น ในส่วน
ของผู้จัดการหน่วยความจาจึงมีลักษณะขึ้นอยู่กบั ฮาร์ดแวร์
ด้ วยเช่นเดียวกัน
12
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ชั้นที่ 2 ผูจ้ ด
ั การหน่วยความจา (memory
manager)
 บางครั้งการทางานในชั้นนี้กอ็ าศัย
รูทนี บางอย่างของเคอร์เนล
ด้ วย
 ตัวอย่างเช่น เคอร์เนลตรวจสอบพบอินเตอร์รัพต์ท่เี กิดจากความ
ผิดพลาดในการใช้ งานหน่วยความจา เคอร์เนลจะเลือกและส่งงาน
ที่เหมาะสมกับการจัดการสัญญาณอินเตอร์รัพต์ท่เี กิดขึ้นมาให้
ผู้จัดการหน่วยความจาจัดการแก้ ไข
13
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (inputoutput control system) หรือ IOCS
- จะมีหน้ าที่จัดการงานทางด้ านอินพุตเอาพุตของระบบ
- ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กบั ฮาร์ดแวร์อยู่บ้าง เพราะ
การติดต่อกับอุปกรณ์อนิ พุต-เอาต์พุตต้ องทราบโครงสร้ าง
และการทางานของอุปกรณ์น้นั ๆด้ วย ซึ่งส่วนนี้เป็ นหน้ าที่
ของตัวขับอุปกรณ์ (device driver)
14
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-
output control system) หรือ IOCS
 นอกจากนี้ IOCS ยังต้ องอาศัยรูทน
ี บางอย่างทั้งจากเคอร์เนล
และผู้จัดการหน่วยความจาในการทางานของมันอีกด้ วย
 ตัวอย่างเช่น เคอร์เนลจัดหา รูทน
ี ที่เหมาะสมกับการเกิด
อินเตอร์รัพต์จากอุปกรณ์อนิ พุต-เอาต์พุต ให้ IOCS ทางาน
หรือ IOCS เรียกใช้ รูทนี ผู้จัดการหน่วยความจาให้ ช่วยหาเนื้อที่
ในหน่วยความจาเพื่อใช้ ทาบัฟเฟอร์ของอุปกรณ์ต่างๆ
15
ชั้นที่ 3 ระบบ ควบคุมอิ นพุ ต-เอาต์พุต
(input-output control system) หรือ IOCS
16
ระดับชั้นภายในตัวระบบปฏิบัติการ
 ระดับชั้นที่ 1,2 และ 3 เป็ นส่วนที่มีความสาคัญและมีการถูก
เรียกใช้ งานบ่อยมาก ดังนั้นผู้สร้ างระบบปฏิบัติการส่วนใหญ่จะ
เขียนโปรแกรมในส่วนนี้ด้วยภาษาแอสเซมบลี้หรือภาษาที่
สามารถเข้ าถึงระบบการทางานของเครื่องได้ เช่น ภาษา C
 ทั้งนี้เพื่อให้ โปรแกรมทางานได้ รวดเร็วและมีประสิทธิภาพสูง
ส่งผลให้ ประสิทธิภาพการทางานของระบบดีข้ นึ
 ส่วนการทางานของชั้นต่างๆ ตั้งแต่ระดับชั้นที่ 4 ขึ้นไปจะ
เรียกใช้ รูทนี ต่างๆ ของ 3 ระดับแรก
17
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 4 ผูจ้ ดั การไฟล์ (file manager)
 มีหน้ าที่จัดการงานต่างๆ ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลง
ดิสก์ การหาไฟล์ การอ่านข้ องมูลของไฟล์ เป็ นต้ น
 ผู้จัดการไฟล์น้ สี ามารถถูกออกแบบให้ ไม่ข้ น
ึ กับฮาร์ดแวร์
(hardware independent) ผู้จัดการไฟล์จะจะติดต่อ
กับฮาร์ดแวร์โดยเรียกผ่านรูทนี ต่างๆของ เคอร์เนล ผู้จัดการ
หน่วยความจาและ IOCS
18
ชั้นที่ 4 ผูจ้ ัดการไฟล์ (file manager)
19
ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler)
20
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 5 ตัวคิวระยะสั้น (short-term
scheduler)
 เป็ นระดับชั้นแรกที่มีลักษณะไม่ข้ น
ึ อยู่กบั ฮาร์ดแวร์โดย
สมบูรณ์
 มีหน้ าที่จัดคิวของโปรเซสในสถานะพร้ อม (ready state)
เมื่อใดที่ส่วนนี้ทางานมันจะคัดเลือกเอาโปรซสที่เหมาะที่สดุ
ในคิวของสถานะพร้ อม เพื่อให้ โปรเซสนั้นเข้ าไปครอบครอง
ซีพียูท่วี ่างอยู่ โดยเรียกใช้ ตัวส่งในส่วนของเคอร์เนล
21
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 6 ผูจ้ ดั การทรัพยากร (resource manager)
เป็ นระดับชั้นของส่วนที่ทาหน้ าที่จัดสรรหาทรัพยากรอื่นๆใน
ระบบ
 บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กน
ั
 ทั้งนี้เพราะหลังจากที่ตัวจัดคิวระยะสั้นส่งโปรเซสเข้ าไปใน
สถานะรันแล้ ว โปรเซสนั้นอาจต้ องการทรัพยากรอื่นๆ ใน
ระบบ ดังนั้นจึงต้ องเรียกใช้ รูทนี ในชั้นผู้จัดการทรัพยากร
22
ชั้นที่ 6 ผูจ้ ัดการทรัพยากร (resource manager)
23
ชัน้ ที่ 6 ผู้จัดการทรั พยากร (resource manager)
การสลับชัน้ ของตัวจัดคิดระยะสัน้ และผู จ้ ดั การทรัพยากร
24
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler)
 เป็ นชั้นของระบบปฏิบต
ั ิท่เี ริ่มมีความใกล้ ชิดกับผู้ใช้ และห่างไกล
กับฮาร์ดแวร์ของเครื่องมากขึ้น
 มีหน้ าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่น
สร้ างโปรเซสต่าง ๆ ใหม่เข้ ามาในระบบและยุติโปรเซสเมื่อ
โปรเซสทางานเสร็จสิ้นลง
 การทางานของตัวจัดคิวระยะยาวต้ องใช้ รูทนี ต่างๆ ในชั้นที่ 1 ถึง
6 ช่วยในการทางาน
25
ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler)
26
ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 8 เชลล์ (shell) หรือผูแ้ ปลคาสัง่ (command
interpreter)
 เป็ นชั้นสุดท้ ายซึ่งเป็ นชั้นที่ใกล้ ชิดกับผู้ใช้ มากที่สดุ
 มีหน้ าที่ติดต่อกับผู้ใช้ โดยตรง เช่น ส่งเครื่องหมายพร้ อมต์
(prompt) แสดงออกทางจอภาพ รับคาสั่งต่างๆ ของผู้ใช้ มา
ตีความคาสั่งและเรียกรูทนี ต่างๆของชั้นล่างๆ เพื่อให้ ได้ งานตาม
คาสั่งที่ได้ รับ
27
ชั้นที่ 8 เชลล์ (shell)
หรือผูแ้ ปลคาสั่ง (command interpreter
แสดงตาแหน่งของผู้แปลคาสัง่
28
ระดับชั้นต่างๆ ของโปรแกรม
แสดงระดับทังหมดของโปรแกรม
้
29
ระดับชั้นต่างๆ ของโปรแกรม
OS
30
Application program or user
Command interpreter
Long-term scheduler
Resource scheduler
Short-term scheduler
File manager
IOCS
Memory manager
Kernel
Hardware
Hardware
Independent
Hardware
dependent