Operating System Chapter 3

21,221 views

Published on

Computer Operating System Concept Chapter 3

Published in: Technology
1 Comment
20 Likes
Statistics
Notes
No Downloads
Views
Total views
21,221
On SlideShare
0
From Embeds
0
Number of Embeds
79
Actions
Shares
0
Downloads
0
Comments
1
Likes
20
Embeds 0
No embeds

No notes for slide
  • Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation
  • Operating System Chapter 3

    1. 1. บทที่ 3 โครงสร้างระบบปฏิบัติการ Operating-System Structures <ul><li>ส่วนประกอบของระบบ System Components </li></ul><ul><li>บริการต่างๆ ของระบบปฏิบัติการ Operating System Services </li></ul><ul><li>การเรียกระบบ System Calls </li></ul><ul><li>โปรแกรมระบบ System Programs </li></ul><ul><li>โครงสร้างระบบ System Structure </li></ul><ul><li>เครื่องจักรเสมือน Virtual Machines </li></ul><ul><li>การออกแบบระบบและการนำไปใช้ System Design and Implementation </li></ul><ul><li>พัฒนาการของระบบ System Generation </li></ul>
    2. 2. ส่วนประกอบของระบบ Common System Components <ul><li>การจัดการโปรเซส Process Management </li></ul><ul><li>การจัดการหน่วยความจำหลัก Main Memory Management </li></ul><ul><li>การจัดการไฟล์ File Management </li></ul><ul><li>การจัดการระบบอินพุทเอ้าท์พุท I/O System Management </li></ul><ul><li>การจัดการหน่วยความจำรอง Secondary Management </li></ul><ul><li>การเครือข่าย Networking </li></ul><ul><li>ระบบป้องกัน Protection System </li></ul><ul><li>ระบบการแปลคำสั่ง Command-Interpreter System </li></ul>
    3. 3. การจัดการโปรเซส Process Management <ul><li>โปรเซส หมายถึงโปรแกรมที่กำลังถูกเอ็กซ์ซีคิวท์ กล่าวคือ โปรเซสจำเป็นต้องมีทรัพยากรของระบบในการใช้งาน รวมทั้งเวลาในการใช้งานหน่วยประมวลผล หน่วยความจำ ไฟล์ และอุปกรณ์อินพุทเอ้าท์พุท เพื่อทำงานตามโปรแกรมให้สำเร็จลุล่วง </li></ul><ul><li>ระบบปฏิบัติการ จะต้องสามารถตอบสนองต่อกิจกรรมต่างๆ โดยการเชื่อมต่อกับการจัดการโปรเซส ดังต่อไปนี้ </li></ul><ul><ul><li>การสร้างโปรเซสและการลบโปรเซส </li></ul></ul><ul><ul><li>การพักการทำงานของโปรเซส และการนำโปรเซสที่ถูกพักอยู่กลับมาทำงานใหม่ </li></ul></ul><ul><ul><li>ข้อกำหนดของกลไกการทำงาน </li></ul></ul><ul><ul><ul><li>การเข้าจังหวะการทำงานของโปรเซส </li></ul></ul></ul><ul><ul><ul><li>การสื่อสารของโปรเซส </li></ul></ul></ul>
    4. 4. การจัดการหน่วยความจำหลัก Main-Memory Management <ul><li>หน่วยความจำ Memory หมายถึง อะเรย์ array ขนาดใหญ่ของคำหรือไบท์ ที่มีแอดเดรสเป็นของตนเอง </li></ul><ul><li>โดยหน่วยความจำทำให้ความสามารถในการเข้าถึงข้อมูลที่ถูกแบ่งปันจากหน่วยประมวลผลและอุปกรณ์อินพุทเอ้าท์พุท เป็นไปได้โดยรวดเร็ว </li></ul><ul><li>หน่วยความจำหลัก เป็นอุปกรณ์จัดเก็บข้อมูลแบบโวลาไทร์ หรือจะสูญเสียข้อมูลเมื่อไม่มีกระแสไฟฟ้าเลี้ยง และจะสูญเสียข้อมูลในกรณีระบบเกิดการทำงานผิดพลาดขึ้น </li></ul><ul><li>ระบบปฏิบัติการจะตอบสนองกับกิจกรรมต่างๆ ที่เชื่อมต่อกับการจัดการหน่วยความจำดังต่อไปนี้ </li></ul><ul><li>เก็บร่องรอยการติดตามการใช้งานหน่วยความจำส่วนหนึ่งส่วนใด ว่าเข้าใช้เมื่อใดและโดยใคร </li></ul><ul><li>ตัดสินใจว่าจะต้องโหลดโปรเซสใดเข้าทำงาน เมื่อพื้นที่ในหน่วยความจำว่างลง </li></ul><ul><li>อำนวยพื้นที่และการนำพื้นที่ในหน่วยความจำกลับคืน เมื่อต้องการ </li></ul>
    5. 5. การจัดการไฟล์ File Management <ul><li>ไฟล์ file หมายถึงกลุ่มของข้อมูลสารสนเทศที่สัมพันธ์กัน ที่กำหนดโดยผู้ที่สร้างไฟล์ขึ้นมา </li></ul><ul><li>โดยปกติ ไฟล์เป็นได้ทั้งโปรแกรม และข้อมูล </li></ul><ul><li>ระบบปฏิบัติการ จะตอบสนองต่อกิจกรรมต่างๆ ที่เชื่อมต่อกับการจัดการไฟล์ </li></ul><ul><ul><li>การสร้างและลบไฟล์ </li></ul></ul><ul><ul><li>การสร้างและลบไดเร็กทอรี่ </li></ul></ul><ul><ul><li>รองรับการทำงานขั้นพื้นฐานกับไฟล์และไดเร็กทอรี่ </li></ul></ul><ul><ul><li>ทำแผนที่ไฟล์บนหน่วยจัดเก็บรอง </li></ul></ul><ul><ul><li>ทำการสำรองไฟล์บนสื่อจัดเก็บแบบเสถียร ( ไม่สูญเสียข้อมูลเมื่อไม่มีกระแสไฟเลี้ยง ) </li></ul></ul>
    6. 6. การจัดการระบบอินพุทเอ้าท์พุท I/O System Management <ul><li>ระบบอินพุทเอ้าท์พุทประกอบด้วย </li></ul><ul><li>ระบบบัฟเฟอร์แคชชิ่ง buffer-caching system </li></ul><ul><li>ส่วนงานติดต่อไดรเวอร์อุปกรณ์ทั่วไป </li></ul><ul><li>ไดรเวอร์สำหรับอุปกรณ์ฮาร์ดแวร์เฉพาะอย่าง </li></ul>
    7. 7. การจัดการหน่วยจัดเก็บรอง Secondary-Storage Management <ul><li>ด้วยหน่วยความจำหลัก ( primary storage ) เป็นแบบโวลาไทร์ ( สูญเสียข้อมูลเมื่อไม่มีกระแสไฟฟ้าเลี้ยง ) และมีขนาดเล็กกว่าที่จะสามาถใช้จัดเก็บข้อมูลและโปรแกรมทั้งหมดได้ ระบบคอมพิวเตอร์จึงจำเป็นต้อง มีระบบจัดเก็บรอง secondary storage เพื่อสำรองการจัดเก็บข้อมูลของหน่วยความจำหลัก </li></ul><ul><li>ระบบคอมพิวเตอร์สมัยใหม่ส่วนใหญ่ ใช้ดิสค์เป็นสื่อที่ใช้ในการจัดเก็บข้อมูลแบบออนไลน์หลัก ทั้งการเก็บโปรแกรมและข้อมูล </li></ul><ul><li>ระบบปฏิบัติการจะตอบสนองต่อกิจกรรมต่างๆ ที่เกี่ยวกับการจัดการดิสค์ดังต่อไปนี้ </li></ul><ul><ul><li>การจัดการพื้นที่ว่าง </li></ul></ul><ul><ul><li>การกำหนดพื้นที่ในการจัดเก็บ </li></ul></ul><ul><ul><li>การกำหนดลำดับการทำงานของดิสค์ </li></ul></ul>
    8. 8. การเครือข่าย ( ระบบกระจาย ) Networking (Distributed Systems) <ul><li>ระบบกระจาย distributed system หมายถึง กลุ่มของหน่วยประมวลผลที่แบ่งปันการใช้งานหน่วยความจำและนาฬิการ่วมกัน </li></ul><ul><ul><li>โดยหน่วยประมวลผลแต่ละตัวจะมีหน่วยความจำท้องถิ่นเป็นของตนเอง </li></ul></ul><ul><li>หน่วยประมวลผลในระบบถูกเชื่อมต่อเพื่อการสื่อสารผ่านเครือข่าย </li></ul><ul><li>การสื่อสารใช้รูปแบบโปรโตคอล protocol ( ระบบวิธี ข้อตกลง มาตรฐานในการสื่อสาร ) </li></ul><ul><li>ระบบกระจายทำให้ผู้ใช้สามารถเข้าถึงทรัพยากรของระบบอื่นๆ ได้ </li></ul><ul><li>สามารถเข้าถึงทรัพยากรที่กำหนดให้สามารถแบ่งปันได้ ทำให้ </li></ul><ul><ul><li>ความเร็วในการคำนวณสูงขึ้น </li></ul></ul><ul><ul><li>เพิ่มข้อมูลให้สามารถใช้งานได้มากขึ้น </li></ul></ul><ul><ul><li>เพิ่มความน่าเชื่อถือให้แก่ระบบ </li></ul></ul>
    9. 9. ระบบป้องกัน Protection System <ul><li>การป้องกัน หมายถึง กลไกในการควบคุมการเข้าถึงทรัพยากรของผู้ใช้และของระบบ จากโปรแกรม โปรเซส หรือผู้ใช้ </li></ul><ul><li>กลไกในการป้องกันต้องมีความสามารถทำสิ่งต่างๆ ดังต่อไปนี้ </li></ul><ul><ul><li>แยกแยะการใช้งานระหว่างผู้ได้รับการตรวจสอบสิทธิ์และผู้ที่ไม่ได้รับการตรวจสอบสิทธิ์ </li></ul></ul><ul><ul><li>แยกแยะการควบคุมที่ถูกกำหนดแบบต่างๆ </li></ul></ul><ul><ul><li>กำหนดเงื่อนไขข้อบังคับ </li></ul></ul>
    10. 10. ระบบการแปลคำสั่ง Command-Interpreter System <ul><li>คำสั่งจำนวนมากที่กำหนดให้กับระบบปฏิบัติการ โดยคำสั่งการควบคุมโดยหน้าที่ต่อไปนี้ </li></ul><ul><ul><li>การจัดการและการสร้างโปรเซส Process creation and management </li></ul></ul><ul><ul><li>การจัดการ อินพุทเอ้าท์พุท I/O handling </li></ul></ul><ul><ul><li>การจัดการ หน่วยจัดเก็บรอง Secondary-storage management </li></ul></ul><ul><ul><li>การจัดการ หน่วยความจำหลัก Main-memory management </li></ul></ul><ul><ul><li>การเข้าถึงระบบไฟล์ File-system access </li></ul></ul><ul><ul><li>การป้องกัน Protection </li></ul></ul><ul><ul><li>การเครือข่าย Networking </li></ul></ul>
    11. 11. ระบบการแปลคำสั่ง Command-Interpreter System (Cont.) <ul><li>โปรแกรมที่ทำหน้าที่อ่านและแปลคำสั่งการควบคุมที่ถูกเรียกจากวิธีต่างๆ ดังนี้ </li></ul><ul><ul><li>ตัวแปลคำสั่งจากการสั่งการแบบบรรทัดคอมมานด์ไลน์ command-line interpreter </li></ul></ul><ul><ul><li>เชลล์ ในระบบยูนิกซ์ shell (in UNIX) </li></ul></ul><ul><li>มีหน้าที่ในการรับและเอ็กซ์ซีคิวท์คำสั่งถัดไป </li></ul>
    12. 12. บริการของระบบปฏิบัติการ Operating System Services <ul><li>การเอ็กซ์ซีคิวท์โปรแกรม Program execution คือความสามารถของระบบที่จะโหลดโปรแกรมเข้าไปไว้ยังหน่วยความจำและทำให้โปรแกรมนั้นทำงาน </li></ul><ul><li>ปฏิบัติการของอินพุทเอ้าท์พุท I/O operations เมื่อโปรแกรมของผู้ใช้ไม่สามารถเอ็กซ์ซีคิวท์ปฏิบัติการของอินพุทเอ้าท์พุทได้โดยตรง ระบบปฏิบัติการจะต้องสามารถแจ้งเตือนอินพุทเอ้าท์พุทได้ </li></ul><ul><li>การจัดการระบบไฟล์ที่เหมาะสม File-system manipulation ความสามารถของโปรแกรมในการอ่าน เขียน สร้าง และลบไฟล์ </li></ul><ul><li>การสื่อสาร Communications การแลกเปลี่ยนข้อมูลสารสนเทสระหว่างการเอ็กซ์ซีคิวท์ โปรเซส ทั้งที่เกิดขึ้นในคอมพิวเตตอรืเครื่องเดียวกัน หรือจากระบบที่อยู่บนเครือข่าย ที่ถูกใช้งานแบบ แบ่งปันหน่วยความจำ shared memory หรือการ ส่งผ่านข้อความ message passing </li></ul><ul><li>การตรวจจับข้อผิดพลาด Error detection เพื่อความแน่ใจว่าการคำนวณเป็นไปโดยถูกต้อง โดยการตรวจจับข้อผิดพลาด ในหน่วยประมวลผล และฮาร์ดแวร์หน่วยความจำ ในอุปกรณ์อินพุทเอ้าท์พุท หรือโปรแกรมของผู้ใช้ </li></ul>
    13. 13. หน้าที่เพิ่มเติมของระบบปฏิบัติการ Additional Operating System Functions <ul><li>หน้าที่ของระบบปฏิบัติการนอกจากจะเป็นเครื่องช่วยให้ผู้ใช้งานคอมพิวเตอร์ทำงานได้โดยสะดวกแล้ว แต่ยังช่วยให้การปฏิบัติการใดๆ ของระบบมีประสิทธิภาพด้วย </li></ul><ul><ul><li>การจัดสรรทรัพยากรต่างๆ Resource allocation ระบบปฏิบัติการช่วยบริหารจัดการทรัพยากรของระบบให้แก่ผู้ใช้งานมากกว่าหนึ่งคนหรือการจัดการบริหารการทำงานใดๆ มากกว่าหนึ่งงานในเวลาเดียวกันนั่นเอง </li></ul></ul><ul><ul><li>การทำบัญชี Accounting การเฝ้าติดตามและบันทึกการเข้าใช้งานของผู้ใช้รายต่างๆ ว่าเข้าใช้ทรัพยากรใดมากน้อย และบ่อยครั้งอย่างไร เพื่อสามารถแสดงรายงานหรือการจัดทำสถิติได้อย่างสม่ำเสมอ </li></ul></ul><ul><ul><li>การป้องกัน Protection เพื่อให้เกิดความมั่นใจ้ได้ว่า ทุกๆ การเข้าใช้งานจากผู้ใช้หรือระบบใดๆ เพื่อเข้าใช้ทรัพยากรของระบบล้วนถูกควบคุมดูแล </li></ul></ul>
    14. 14. การเรียกใช้ระบบ System Calls <ul><li>การเรียกระบบ System Calls รองรับบริการส่วนอินเตอร์เฟสหรือส่วนการติดต่อระหว่างโปรแกรมที่กำลังทำงานกับระบบปฏิบัติการ </li></ul><ul><ul><li>โดยทั่วไปสามารถใช้งานด้วยคำสั่งภาษาแอสเซมบลี </li></ul></ul><ul><ul><li>การกำหนดภาษาเพื่อทดแทนภาษาแอสเซมบลี เพื่อทำให้การเขียนโปรแกรมสำหรับระบบสามารถเรียกใช้งานการเรียกระบบได้โดยตรง อาทิเช่นภาษาซี และซีพลัสพลัส </li></ul></ul><ul><li>ระเบียบวิธีทั่วไปสามวิธีที่ถูกใช้เพื่อการส่งผ่านค่าพารามิเตอร์ ระหว่างโปรแกรมที่กำลังทำงาน และระบบปฏิบัติการ </li></ul><ul><ul><li>การผ่านค่าในรีจีสเตอร์ registers </li></ul></ul><ul><ul><li>จัดเก็บค่าพารามิเตอร์ลงในตารางในหน่วยความจำ และแอดเดรสในตารางถูกส่งผ่านค่าด้วยพารามิเตอร์ในรีจีสเตอร์ </li></ul></ul><ul><ul><li>การผลัก Push (store) หรือการจัดเก็บ ค่าพารามิเตอร์ ลงบนแสต็ก stack โดยโปรแกรม และการดันออกจากแสต็ก โดยระบบปฏิบัติการ </li></ul></ul>
    15. 15. การส่งผ่านค่าพารามิเตอร์ด้วยตาราง Passing of Parameters As A Table
    16. 16. ประเภทของการเรียกระบบแบบต่างๆ Types of System Calls <ul><li>ประเภทของการเรียกระบบแบบต่างๆ </li></ul><ul><li>การควบคุมโปรเซส Process control </li></ul><ul><li>การบริหารจัดการไฟล์ File management </li></ul><ul><li>การบริหารจัดการอุปกรณ์ Device management </li></ul><ul><li>การบริหารดูแลสารสนเทศ Information maintenance </li></ul><ul><li>การสื่อสาร Communications </li></ul>
    17. 17. การเอ็กซ์ซีคิวท์ ใน เอ็มเอสดอส MS-DOS Execution เมื่อระบบเริ่มทำงาน ระหว่างโปรแกรมทำงาน
    18. 18. การทำงานแบบหลายโปรแกรม ( Multiple Programs ) ในระบบยูนิกซ์ UNIX Running Multiple Programs
    19. 19. รูปแบบการสื่อสาร Communication Models การแบ่งสรรหน่วยความจำ Shared Memory การสื่อสารอาจใช้ทั้งรูปแบบการส่งผ่านข้อความหรือการสรรหน่วยความจำ การส่งผ่านค่าข้อความ Message Passing
    20. 20. โปรแกรมระบบ System Programs <ul><li>โปรแกรมระบบทำให้เกิดสภาพแวดล้อมที่สะดวกสบายสำหรับการพัฒนาและเอ็กซ์ซีคิวท์โปรแกรม โดยสามารถแบ่งย่อยได้ดังต่อไปนี้ </li></ul><ul><li>การจัดการไฟล์อย่างเหมาะสม File manipulation </li></ul><ul><li>สารสนเทศของสถานะ Status information </li></ul><ul><li>การปรับปรุงแก้ไขไฟล์ File modification </li></ul><ul><li>รองรับภาษาในการเขียนโปรแกรม Programming language support </li></ul><ul><li>การโหลดและการเอ็กซ์ซีคิวท์โปรแกรม Program loading and execution </li></ul><ul><li>การสื่อสาร Communications </li></ul><ul><li>โปรแกรมอรรถประโยชน์ หรือแอพพลิเคชั่นโปรแกรม Application programs </li></ul><ul><li>มุมมองของผู้ใช้ส่วนใหญ่ ที่มีต่อระบบปฏิบัติการ ถูกกำหนดโดยโปรแกรมระบบ ไม่ใช่การเรียกใช้ระบบตามความเป็นจริง </li></ul>
    21. 21. โครงสร้างของระบบเอ็มเอสดอส MS-DOS System Structure <ul><li>เอ็มเอสดอส ถูกเขียนขึ้นเพื่อให้มีหน้าที่หลากหลายโดยใช้พื้นที่น้อยหรือขนาดเล็ก </li></ul><ul><li>ไม่ได้ถูกแบ่งออกเป็นโมดูลย่อย </li></ul><ul><li>แม้ว่า เอ็มเอสดอส จะมีโครงสร้างอยู่บ้าง แต่ก็ไม่ได้แบ่งส่วนของอินเตอรืเฟสและระดับชั้นของหน้าที่ต่างๆ ในการทำงานออกจากกันอย่างชัดเจนนัก </li></ul>
    22. 22. โครงสร้างลำดับชั้นของ เอ็มเอสดอส MS-DOS Layer Structure
    23. 23. โครงสร้างของระบบยูนิกซ์ UNIX System Structure <ul><li>ยูนิกซ์ UNIX ถูกจำกัดด้วยหน้าที่ของฮาร์ดแวร์ ต้นฉบับของระบบปฏิบัติการยูนิกซ์ มีการจำกัดโครงสร้าง โดยแบ่งออกเป้นสองส่วนหลักคือ </li></ul><ul><li>โปรแกรมระบบ Systems programs </li></ul><ul><li>เคอร์แนล kernel </li></ul><ul><ul><li>ประกอบด้วยทุกสิ่งภายใต้อินเตอร์เฟสการเรียกระบบและ บนฮาร์ดแวร์การยภาพ </li></ul></ul><ul><ul><li>โดยมี ระบบไฟล์ การจัดลำดับการทำงานของหน่วยประมวลผล การจัดการหน่วยความจำ และหน้าที่อื่นๆ ของระบบปฏิบัติการ ซึ่งประกอบด้วยหน้าที่ต่างๆ มากมายในหนึ่งระดับ </li></ul></ul>
    24. 24. โครงสร้างระบบยูนิกซ์ UNIX System Structure
    25. 25. การเข้าถึงระดับชั้นต่างๆ Layered Approach <ul><li>ระบบปฏิบัติการถูกแบ่งออกเป็นระดับชั้นต่างๆ โดยแต่ละระดับชั้นสร้างขึ้นบนระดับชั้นที่ต่ำกว่า ระดับชั้นล่างสุด หรือระดับ 0 ก็คือฮาร์ดแวร์ และระดับชั้นบนสุด หรือระดับชั้นที่ N ก็คือส่วนอินเตอร์เฟส </li></ul><ul><li>ด้วยการแบ่งเป็นส่วนโมดูลต่างๆ ระดับชั้นจะถูกเลือกใช้อาทิการใช้หน้าที่ ( การปฏิบัติงาน operations ) และงานบริการของระดับชั้นที่ต่ำกว่าเท่านั้น </li></ul>
    26. 26. ระดับชั้นของระบบปฏิบัติการ An Operating System Layer
    27. 27. โครงสร้างระดับชั้นของโอเอสทู OS/2 Layer Structure
    28. 28. โครงสร้างของระบบไมโครเคอร์แนล Microkernel System Structure <ul><li>เคลื่อย้ายมากที่สุดจากเคอร์แนลไปสู่ส่วนพื้นที่การทำงานของผู้ใช้ </li></ul><ul><li>การสื่อสารระหว่างโมดูลของผู้ใช้ด้วยการส่งผ่านค่าแบบข้อความ </li></ul><ul><li>ประโยชน์ </li></ul><ul><ul><li>ง่ายต่อการขยายเพิ่มเติมไมโครเคอร์แนล </li></ul></ul><ul><ul><li>ง่ายต่อแปลงระบบปฏิบัติการไปเป็นสถาปัตยกรรมใหม่ </li></ul></ul><ul><ul><li>เพิ่มความน่าเชื่อถือให้กับระบบมากขึ้น ด้วยมีโค้ดที่ทำงานในเคอร์แนลโหมดจำนวนน้อย </li></ul></ul><ul><ul><li>ปลอดภัยสูง </li></ul></ul><ul><li>ข้อเสีย </li></ul><ul><ul><li>สูญเสียการบริหารจัดการส่วนการดำเนินการการสื่อสาร พื้นที่การใช้งานของผู้ใช้กับพื้นที่ของเคอร์แนล </li></ul></ul>
    29. 29. โครงสร้างของระบบปฏิบัติการแมคโอเอสเอ็กซ์ Mac OS X Structure
    30. 30. โครงสร้างของวินโดวส์เอ็นทีไคลเอนท์เซอร์ฟเวอร์ Windows NT Client-Server Structure
    31. 31. Modules <ul><li>ระบบปฏิบัติการสมัยใหม่ส่วนใหญ่ นำโมดูลของเคอร์แนลมาใช้ดังนี้ </li></ul><ul><li>ใช้การเข้าถึงแบบเชิงวัตถุ </li></ul><ul><li>แบ่งแยกส่วนประกอบหลักๆ ออกจากกัน </li></ul><ul><li>แต่ละส่วนสามารถสื่อสารกันผ่านอนเตอร์เฟสพื้นฐาน </li></ul><ul><li>แต่ละส่วนสามารถถูกโหลดเมื่อต้องการภายในเคอร์แนล </li></ul><ul><li>กล่าวคือมีความคล้ายคลึงกับแบบระดับชั้นแต่ยืดหยุ่นมากกว่า </li></ul>
    32. 32. แนวคิดแบบโมดูลของโซลาริส Solaris Modular Approach
    33. 33. เครื่องจักรเสมือน หรือเวอร์ช่วลแมชชีน Virtual Machines <ul><li>เครื่องจักรเสมือนใช้แนวคิดแบบระดับชั้น เพื่ออธิบายแนวคิดเชิงตรรก โดยทำให้ฮาร์ดแวร์และเคอร์แนลของระบบปฏิบัติการ ให้เป็นเสมือนหนึ่งเป็นฮาร์ดแวร์ทั้งหมด </li></ul><ul><li>เครื่องจักรเสมือนรองรับการทำงานด้วยอินเตอร์เฟสที่เสมือนเป็นฮาร์ดแวร์ </li></ul><ul><li>ระบบปฏิบัติการจะสร้างมัลติเปิลโปรเซสเสมือนขึ้น โดยแต่ละโปรเซสจะถูกเอ็กซ์ซีคิวท์ด้วยตัวประมวลผลของตนเองบนพื้นที่หน่วยความจำเสมือนของตนเองเช่นกัน </li></ul>
    34. 34. Virtual Machines (Cont.) <ul><li>ทรัพยากรของคอมพิวเตอร์เชิงกายภาพ ถูกแบ่งสรรเพื่อใช้สร้างเครื่องจักรเสมือน </li></ul><ul><li>การลำดับการทำงานให้กับหน่วยประมวลผลเพื่อให้สามารถสร้างตัวประมวลผลเสมือนขึ้นเป็นของผู้ใช้แต่ละคนเอง </li></ul><ul><li>การทำสพูลลิ่งและระบบไฟล์ สามารถรองรับการทำงานอ่านบัตรแบบเสมือนและการทำงานแบบเครื่องพิมพ์เสมือนด้วย </li></ul><ul><li>เทอร์มินอลแบบแบ่งสรรเวลาของผู้ใช้ตามปกติ สามารถใช้บริการผ่านคอนโซลโอเปอเรเตอร์ของเครื่องจักรเสมือน </li></ul>
    35. 35. ตัวแบบของระบบ System Models แบบไม่มีเวอร์ช่วลแมชชีน Non-virtual Machine แบบมีเวอร์ช่วลแมชชีน Virtual Machine
    36. 36. ประโยชน์และข้อจำกัดของเวอร์ช่วลแมชชีน Advantages/Disadvantages of Virtual Machines <ul><li>แนวคิดของเครื่องจักรเสมือนก็เพื่อป้องกันการใช้ทรัพยากรต่างๆ ของระบบโดยการแบ่งเครื่องจักรแต่ละเครื่องออกจากกัน แต่ก็ยังคงใช้ทรัพยากรจากระบบปฏิบัติการกลางร่วมกัน </li></ul><ul><li>ระบบเครื่องจักรเสมือนนับเป็นเครื่องมือที่ดีในการวิจัยและพัฒนาระบบปฏิบัติการ การพัฒนาระบบปฏิบัติการ นิยมทำบนเครื่องจักรเสมือน แทนที่จะพัมนาบนเครื่องจริง เพื่อป้องกันระบบปฏิบัติการที่ติดตั้งบนเครื่องจริงเกิดการผิดพลาดในการทำงาน </li></ul><ul><li>แนวคิดของเครื่องจักรเสมือนนั้นยากในการนำไปใช้ เมื่อเกิดการใช้งานที่เหมือนหรือซ้ำๆ กันขึ้น </li></ul>
    37. 37. เครื่องจักรเสมือนของจาวา Java Virtual Machine <ul><li>เป็นเครื่องมือในการคอมไพล์หรือแปลงโปรแกรมภาษาจาวา ที่เป็นแบบไม่ขึ้นกับแพลทฟอร์มใดๆ ไปเป็นไบท์โค้ดเพื่อสามารถถูกเอ็กซ์ซีคิวท์โดย เครื่องจักรเสมือนของจาวา หรือ JVM </li></ul><ul><li>JVM ประกอบด้วย </li></ul><ul><li>ตัวโหลดคลาส Class loader </li></ul><ul><li>ตัวตรวจสอบคลาส Class verifier </li></ul><ul><li>ตัวแปลภาษาขณะทำงาน Runtime interpreter </li></ul><ul><li>ตัวแปลภาษาแบบ JIT Just-In-Time (JIT) หรือการทำในขณะทำงานจริง ทำให้การทำงานมีประสิทธิสูงขึ้น </li></ul>
    38. 38. เวอร์ช่วลแมชชีนของจาวา The Java Virtual Machine
    39. 39. แพลทฟอร์มของจาวา The Java Platform
    40. 40. ไฟล์ดอทคลาส (.class) ของจาวา ระหว่างแพลทฟอร์มต่างๆ กัน Java .class File on Cross Platforms
    41. 41. สภาพแวดล้อมในการพัฒนาของจาวา Java Development Environment
    42. 42. เป้าหมายในการออกแบบระบบ System Design Goals <ul><li>เป้าหมายระดับผู้ใช้ User goals </li></ul><ul><ul><li>ระบบปฏิบัติการ ควรจะเอื้อให้ผู้ใช้สามารถใช้งานระบบได้โดยสะดวก ง่ายต่อการเรียนรู้ มีความน่าเชื่อถือ ปลอดภัย และรวดเร็ว </li></ul></ul><ul><li>เป้าหมายระดับระบบ System goals </li></ul><ul><ul><li>ระบบปฏิบัติการจะต้องง่ายต่อการออกแบบ ง่ายต่อการนำไปใช้งาน และง่ายต่อการบำรุงรักษา ในขณะเดียวกันต้องมีความยืดหยุ่นสูง น่าเชื่อถือ ปราศจากข้อผิดพลาด และมีประสิทธิภาพ </li></ul></ul>
    43. 43. กลไกในการทำงานและ นโยบาย Mechanisms and Policies <ul><li>กลไกการทำงาน หมายถึงการอธิบายถึงการทำสิ่งหนึ่งสิ่งใด นโยบายใช้เพื่อตัดสินใจว่าจะทำสิ่งใดให้สำเร็จ </li></ul><ul><li>ข้อแตกต่างระหว่างกลไกการทำงานกับนโยบาย เป็นสิ่งสำคัญอย่างยิ่ง โดยจะทำให้ระบบมีความยืดหยุ่นสูงหากนโยบายมีการเปลี่ยนแปลงภายหลังระบบต้องสามารถปรับเปลียนได้โดยง่าย </li></ul>
    44. 44. การนำระบบไปใช้ System Implementation <ul><li>ในอดีตระบบถูกเขียนขึ้นด้วยภาษาแอสแซมบลี แต่ระบบปฏิบัติการปัจจุบันถูกเขียนขึ้นด้วยภาษาโปรแกรมระดับสูง </li></ul><ul><li>การเขียนโค้ดโปรแกรมด้วยภาษาระดับสูง </li></ul><ul><li>สามารถเขียนได้เร็วกว่า </li></ul><ul><li>มีความกระทัดรัด และรัดกุมกว่า </li></ul><ul><li>ง่ายต่อการทำความเข้าใจและ การแก้ไข </li></ul><ul><li>ระบบปฏิบัติการที่เขียนด้วยภาษาระดับสูง มักไม่มีความสามารถในการนำไปใช้กับฮาร์ดแวร์ที่ต่างกันหรือที่ไม่ได้ใช้เฉพาะกับการเขียนนั้น </li></ul>
    45. 45. System Design Goals <ul><li>User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast </li></ul><ul><li>System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient </li></ul>
    46. 46. พัฒนาการและรุ่นต่างๆ ของระบบ System Generation (SYSGEN) <ul><li>ระบบปฏิบัติการถูกออกแบบขึ้นเพื่อการทำงานกับเครื่องระดับต่างๆ ทั้งนี้ระบบจะด้องได้รับการกำหนดค่าเฉพาะ ตามคุณสมบัติที่ต้องการใช้งานคอมพิวเตอร์นั้น </li></ul><ul><li>โปรแกรม SYSGEN ซิสเจน ทำหน้าที่ให้ข้อมูลสารสนเทศเฉพาะต่างๆ เพื่อการกำหนดค่าหรือคุณสมบัติ ของระบบฮาร์ดแวร์ </li></ul><ul><li>การบูท Booting การเริ่มทำงานของเครื่องคอมพิวเตอร์โดยการโหลดเคอร์แนล </li></ul><ul><li>โปรแกรมบูทแสตรป Bootstrap program หมายถึงโค้ดที่อยู่ใน ROM ที่สามารถจัดวางเคอร์แนล โหลดไปไว้ยังหน่วยความจำ และเรี่มทำการเอ็กซ์ซิคิวท์เคอร์แนล </li></ul>

    ×