- องค์ประกอบของระบบคอมพิวเตอร์ มี 4 ส่วนคือ
1.ฮาดแวร์ (Hardward)
2.ซอฟแวร์ (Softward)
3.บุคลากรทางคอมพิวเตอร์ (Peopleware)
4.ข้อมูล (Data)
- หน้าที่ที่ของระบบปฏิบัติการ คือ
1.การติดต่อกับผู้ใช้
2.การควบคุมดูแลอุปกรณ์
3.การจัดสรรทรัพยากร
2. system Call มีหน้าที่อย่างไร อยู่ส่วนไหนของระบบปฏิบัติการ (จงวาดโครงสร้างของระบบประกอบ)
- System Call ทำหน้าที่เป็นตัวกลางระหว่าง Application Program กับ Hardware หรือ การจัดการกับระบบต่างๆ เช่นระบบไฟล์ หรือการจัดการ Process ของ OS นั้น Application จะติดต่อ OS ได้อย่างไร วิธีที่ OS ใช้ก็คือการมี System Call ที่เปรียบเสมือน Subroutine ใน OS โปรแกรมจะเรียกใช้ฟังก์ชั่นต่างๆ ของ OS เหมือนการเรียกใช้ Subroutine ซึ่ง compiler ในภาษาโปรแกรมจะแปลงโปรแกรมย่อยนั้นให้เป็นวิธีการเรียก System Call ในระบบ multitasking ที่มีหลายงานทำงานพร้อมกัน OS จะแยก Application Program ออกจาก Hardware และตัว OS เอง ดังนั้น Application จะไม่สามารถเรียกโดยการกระโดดเข้ามาทำงานในตำแหน่งของโปรแกรมย่อยโดยตรงได้ การเรียกใช้ System Call นั้นมักจะอาศัยคำสั่งภาษาเครื่องพิเศษคือ Software Interrupt พร้อมกับส่ง parameter เข้าไปให้ OS กับประเภทการประมวลผล
- การควบคุมโปรเซส
- การจัดการกับไฟล์
- การจัดการดีไวซ์
- การบำรุงรักษาข้อมูล
- การติดต่อสื่อสาร
3. โครงสร้างของ Kernal แบบ Micro Kernal และ Monolithic Kernal
- เคอร์เนล [1] (kernel อ่านว่า เคอร์เนิล) หมายถึง ส่วนประกอบหลักของระบบปฏิบัติการ ซึ่งคอยดูแลบริหารทรัพยากรของระบบ และติดต่อกับฮาร์ดแวร์และ ซอฟต์แวร์ เนื่องจากว่าเป็นส่วนประกอบพื้นฐานของระบบปฏิบัติการ เคอร์เนล นั้นเป็นฐานล่างสุดในการติดต่อกับทรัพยากรต่างๆ เช่น หน่วยความจำ หน่วยประมวลผลกลาง และ อุปกรณ์อินพุตและเอาต์พุต 1. ประเภทรูปแบบ เคอร์เนล
1. 1. โมโนลิทริค เคอร์เนล (Monolithic kernel) โมโนลิทริค เคอร์เนลมีอยู่ใน: Linux kernel MS-DOS, Microsoft Windows 9x Series (Windows 95 Windows 98 เป็นต้น) Agnix 1. 2. ไมโครเคอร์เนล (Microkernel)
รูปภาพแสดงหลักการทำงานของไมโครเคอร์เนล
ตัวอย่างของไมโครเคอร์เนล และ ระบบปฏิบัติการที่มีพื้นบน ไมโครเคอร์เนล: - AIX - AmigaOS - Amoeba - Chorus microkernel - EROS - Haiku - K42 - LSE/OS - KeyKOS - The L4 microkernel family - Mach, used in GNU Hurd, NEXTSTEP, OPENSTEP, and Mac OS X - MERT - Minix - MorphOS - NewOS - QNX - Phoenix - RTOS - RadiOS - Spring operating system - VSTa - Symbian OS
4. จงอธิบายการทำงานของ Process State และการตัดสินใจ ของ CPU ว่าจะดึง Process ไหนมาทำงาน
- Process (สถานะของโปรเซส) การแสดงสถานะของโปรเซสที่เป็นอยู่ในปัจจุบัน เมื่อแต่ละโปรเซสกำลังทำงานอยู่นั้น จะมีการเปลี่ยนแปลงสถานะของโปรเซสในแต่ละช่วงเวลา โดยการทำงานของโปรเซสจะเกิดขึ้นบนสถานะใดสถานะหนึ่งเท่านั้น ซึ่งสถานะของโปรเซสประกอบด้วย
1. New คือ สถานะที่โปรเซสใหม่กำลังถูกสร้างขึ้น
2. Ready คือ สถานะที่โปรเซสกำลังรอคอยหรือพร้อมที่จะครอบครองหน่วยซีพียูเพื่อทำงาน
3. Running คือ สถานะที่โปรเซสได้ครอบครองซีพียู หรือโปรเซสที่กำลังทำงานตามคำสั่งของโปรแกรม
4. Waiting คือสถานะที่โปรเซสได้สิ้นสุดลง จากสถานะของโปรเซส จะทำให้ทราบว่าโปรเซสใดที่ถูกส่งไปให้ ซีพียูทำงานก่อน ดังนั้นระบบปฏิบัติการจึงต้องมีการตัดสินในการส่งโปรเซสเข้าครอบครองซีพียู
5. จงอธิบายรายละเอียดและหน้าที่ของ PCB (Process Control Block)
- PCB ( Process Control Block ) บล็อกควบคุมโปรเซส เป็นหน้าที่ของหน่วยความจำที่ระบบปฏิบัติการกำหนดไว้เพื่อเก็บข้อมูลที่สำคัญของโปรเซสไว้ เมื่อระบบปฏิบัติการมอบเวลาซีพียูให้โปรเซสอื่นครอบครองหลังจากโปรเซสนั้นได้กลับมาครอบครองเวลาซีพียูอีกครั้งหนึ่ง โปรเซสจะนำข้อมูลกลับมาใช้งานข้อมูลของ PCB ของโปรเซส
6. จงบอกความแตกต่างของ Process และ Thread
- Process คือ โปรแกรมที่กำลังเอ็กซิคิวต์อยู่ โปรเซสนี้เป็นส่วนหนึ่งของระบบแบ่งเวลาที่จำเป็นต้องใช้รีซอร์สของระบบเพื่อให้งานสำเร็จรีซอร์สที่ต้องการ
- Thread คือ ส่วนประกอบย่อยของโปรเซสนั่นเอง
7. ข้อควรพิจารณาในการออกแบบ Algorithm ที่ใช้จัดการเวลาใน CPU คือ
- 1. อรรถประโยชน์ของซีพียู (CPU Utilization)
2. ทรูพุฒ ( Throughput )
3. เวลาทั้งหมด (Turnaround Time )
4. เวลารอคอย ( Waiting Time )
5. เวลาตอบสนอง ( Response Time )
8. จงบอกหลักการและวิธีการทำงานของ Algorithm ที่ใช้ในการจัดการเวลาใน CPU ตลอดข้อดีและข้อเสีย
- วิธีการทำงานของ Algorithm แบบ FCFS คือ ลักษณะการทำงานของการจัดการซีพียู แบบมาก่อนได้ก่อนนี้ เป็นอัลกอลิทึมแบบไม่ให้สิทธิก่อน นั่นก็คือเมื่อโปรเซสใดครอบครองเวลาซีพียุแล้ว ซีพียูจะไม่มีโอกาสได้ว่างจนกว่าความต้องการใช้ซีพียูนั้นจะสิ้นสุดลงด้วยการสลับไปยังเวลา อินพุต / เอาต์พุต ซึ่งจะก่อเกิดปัญหาใหญ่ให้กับระบบคอมพิวเตอร์แบบแบ่งเวลาเพราะผู้ใช้คนอื่นๆอาจต้องรอคอยเวลาให้โปรเซสของตนเอง ซึ่งอาจเป็นโปรเซสที่สั้นๆ เสร็จลงพร้อมๆกับโปรเซสของผู้อื่นที่ใช้เวลายาวนานกว่ามากๆ
- วิธีการทำงานของ Algorithm แบบ SJF คือ เป็นวิธีที่ไม่ได้คำนึงถึงลำดับในคิวงาน ว่างานใดมาก่อน แต่จะพิจารณาถึงงานหรือโปรเซสที่ใช้เวลาการประมวลผลน้อยที่สุดก็จะได้บริการหน่วยซีพียูก่อน อย่างไรก็ตาม หากกลุ่มงานมีเวลาประมวลผลเท่ากัน ก็จะพิจารณาโปรเซสแบบมาก่อนได้ก่อนแทน วิธีการทำงานของ Algorithm แบบ วิธีตามลำดับความสำคัญ คือ เป็นวิธีที่มีการกำหนดความสำคัญของโปรเซสแต่ละโปรเซสไม่เท่ากัน ดังนั้นโปรเซสที่จะเข้าครอบครองซีพียู ต้องมีลำดับความสำคัญสูงสุดในกลุ่ม ดังนั้นโปรเซสใดที่มีลำดับความสำคัญสูงกว่าก็จะถูกส่งไปประมวลผลก่อน ถึงแม้ว่าจะมาทีหลังก็ตาม ในขณะที่โปรเซสที่มีความสำคัญต่ำกว่าถึงแม้จะมาก่อน ก็จะถูกพิจารณาทีหลังก็ตามลำดับความสำคัญต่อไป
- วิธีการทำงานของ Algorithm แบบ วิธีหมุนเวียนการทำงาน คือ การจัดตารางด้วยวิธีการหมุนเวียนการทำงานนี้ ถูกออกแบบมาให้ใช้กับระบบคอมพิวเตอร์แบบแบ่งเวลา โดยจะใช้พื้นฐานวิธีแบบมาก่อนได้ก่อน (FCFS) เป็นหลัก แต่โปรเซสจะไม่สามารถครอบครองซีพียูได้เท่ากับเวลาที่ต้องการ ดังนั้น ด้วยวิธีนี้จึงมีการกำหนดให้แต่ละโปรเซสที่เข้าใช้บริการซีพียูจะถูกจำกัดด้วยเวลาใช้งานที่เท่าๆ กัน ซึ่งช่วงเวลาสั้นๆ ที่เรียกว่า เวลาควันตัม (Quantum Time) โดยอาจมีช่วงเวลาระหว่าง 10 ถึง 100 มิลลิวินาที ครั้นเมื่อโปรเซสใดถูกประมวลผลจนครบเวลาควันตัมแล้ว ก็จะถูกนำออกไปจัดคิวต่อท้ายใหม่ (กรณียังประมวลผลไม่เสร็จ) และจะนำโปรเซสลำดับถัดไปในคิวมาประมวลผล ซึ่งเป็นไปในลักษณะหมุนเวียนกันทำงานนั้นเอง ดังนั้นโปรเซสจะไม่สามารถใช้เวลาเกินกว่าเวลาควันตัมที่กำหนด แต่สามารถใช้เวลาประมวลผลน้อยกว่าเวลาควันตัมได้
9. เงื่อนไขที่ทำให้เกิด DeadLock มีอะไรบ้าง
- วงจรอับอาจจะเกิดขึ้นก็ต่อเมื่อเงื่อนไขทั้งสามข้อต่อไปนี้เกิดขึ้น
1. เมื่อมีทรัพยากรที่ไม่สามารถถูกใช้ร่วมกับหลายๆ โปรเซสพร้อมกันได้ (Mutual exclusion condition) ถ้ามีทรัพยากรอย่างน้อย 1 ตัวในระบบที่จะยอมให้โปรเซสเพียง 1 ตัวใช้งานมันได้เท่านั้น นั่นก็คือถ้ามีโปรเซสอื่นเข้ามาร้องขอใช้งาน โปรเซสนั้นจะต้องรอจนกว่าโปรเซสดังกล่าวได้ใช้งานเสร็จและปล่อยทรัพยากรนั้นว่าง
2. เมื่อมีการถือครองและรอ (Hold and wait condition)ถ้าโปรเซสสามารถถือครองทรัพยากรที่ตัวเองได้รับ และในขณะเดียวกันก็สามารถทำการร้องขอทรัพยากรเพิ่มเติมได้
3. เมื่อการทำงานในระบบไม่มีการแทรกกลางคัน (No preemption condition) ถ้าโปรเซสกำลังใช้งานทรัพยากรอยู่และระบบไม่สามารถบังคับให้โปรเซสนั้นปลดปล่อยทรัพยากรนั้นให้เป็นอิสระได้ โดยทรัพยากรจะเป็นอิสระได้ก็จ่อเมื่อโปรเซสยกเลิกการถือครองเท่านั้น อย่างไรก็ เงื่อนไขทั้งสามอาจจะทำให้เกิด หรือ ไม่ทำให้เกิดวงจรอับก็ได้ วงจรอับจะเกิดขึ้นจริง ๆ ก็ต่อเมื่อเงื่อนไขเกิดขึ้น
4. เมื่อเกิดวงจรรอคอย () ถ้าเกิดวงจรลูกโซ่ของโปรเซส 2 ตัว หรือมากกว่า ที่ต่าง ๆ รอคอยทรัพยากรที่ถือครองโดยโปรเซสที่อยู่ในวงจรลูกโซ่นั้น
10. Virtual Memory คืออะไร มีกระบวนการทำงานอย่างไร
- Virtual Memory คือ หน่วยความจำเสมือน หน่วยความจำเสมือนจะใช้พื้นที่หน่วยความจำสำรอง เช่น ฮาร์ดดิสก์ มาเป็นส่วนหหนึ่งของหนึ่งของหน่วยความจำหลัก ด้วยการจำลองพื้นที่หน่วยความจำบนฮาร์ดดิสก์เสมือนเป็นหน่วยความจำหลักที่เชื่อมโยงกับหน่วยความจำหลักเป็นอันหนึ่งอันเดียวกัน ดังนั้น หน่วยความจำเสมือนจึงจำเป็นต้องใช้พื้นที่ส่วนหนึ่งของฮาร์ดดิสก์ไปใช้งาน
11. จงหาค่าเฉลี่ยเวลาการใช้ CPU ของโปรเซสที่กำหนดให้ต่อไปนี้ (แสดงวิธีทำและขั้นตอนอย่างละเอียด)
11.1 Algorithm แบบ FCFS