WorksheetsOS-4-Pretest
Total questions: 12
Worksheet time: 12mins
ตามสถาปัตยกรรมการประมวลผลหลายเธรด (Multithreading) เธรดทั้งหมดที่ทำงานอยู่ภายใต้โปรเซสเดียวกัน จะกระทำการแชร์ (Share) โครงสร้างหน่วยความจำในข้อใดร่วมกัน
Program Counter และ Stack Segment
Register Set และ Text Segment
Text Segment, Data Segment และ Heap Segment
Stack Segment, Data Segment และ Register Set
หากแอปพลิเคชันเว็บเบราว์เซอร์หนึ่งถูกเปิดขึ้นมาเป็น 1 โปรเซส และมีการสร้างเธรดย่อยเพื่อดาวน์โหลดไฟล์และเรนเดอร์ภาพรวมทั้งสิ้น 5 เธรด ระบบปฏิบัติการจะจัดสรรโครงสร้างพื้นที่หน่วยความจำสแต็ก (Stack) และฮีป (Heap) อย่างไร
มี 5 สแต็ก และ 5 ฮีป แยกอิสระจากกัน
มี 1 สแต็ก และ 5 ฮีป สำหรับแต่ละเธรด
มี 5 สแต็ก และ 1 ฮีป ที่ใช้ร่วมกันทั้งโปรเซส
มี 1 สแต็ก และ 1 ฮีป ที่ใช้ร่วมกันทั้งโปรเซส
สาเหตุทางสถาปัตยกรรมในข้อใดที่อธิบายว่า การสร้างเธรดใหม่ (Thread Creation) เป็นกระบวนการที่มีน้ำหนักเบา (Lightweight) เมื่อเปรียบเทียบกับการสร้างโปรเซสใหม่ (Process Creation)
เพราะเธรดไม่ต้องใช้ซีพียูในการประมวลผลคำสั่งเลย
เพราะเธรดใหม่สามารถเข้าสวมสิทธิ์ใช้พื้นที่แอดเดรสสเปซของโปรเซสแม่ได้ทันทีโดยไม่ต้องสร้างโครงสร้างใหม่ทั้งหมด
เพราะเธรดจะถูกลบออกจากหน่วยความจำทันทีที่เกิดสภาวะรอคอย (I/O Wait)
เพราะเธรดไม่มีหมายเลขประจำตัว (ID) ทำให้ระบบปฏิบัติการไม่ต้องบันทึกลงฐานข้อมูล
ในระบบปฏิบัติการที่ใช้แบบจำลองเธรดรูปแบบ "Many-to-One Model" หากเธรดผู้ใช้ตัวหนึ่งทำการเรียกใช้ System Call เพื่อรอรับข้อมูลจากแป้นพิมพ์ (Blocking System Call) จะเกิดผลลัพธ์เชิงสถาปัตยกรรมข้อใด
เธรดระดับเคอร์เนลจะถูกบล็อก ส่งผลให้เธรดผู้ใช้ทั้งหมดในโปรเซสนั้นถูกแช่แข็งและหยุดชะงักตามไปด้วย
เธรดอื่น ๆ ในโปรเซสจะสามารถทำงานต่อไปได้ตามปกติโดยไม่มีผลกระทบใด ๆ
ระบบปฏิบัติการจะสร้างเธรดระดับเคอร์เนลตัวใหม่ขึ้นมาทดแทนอัตโนมัติ
เธรดผู้ใช้ตัวนั้นจะถูกทำลายทิ้งทันทีเพื่อไม่ให้ระบบโดยรวมหยุดชะงัก
ระบบปฏิบัติการร่วมสมัย เช่น Windows, Linux และ macOS นิยมเลือกใช้แบบจำลองมัลติเธรดมาตรฐานรูปแบบใดมากที่สุด เพื่อหลีกเลี่ยงปัญหาการหยุดชะงักของทั้งโปรเซส
Many-to-One Model
One-to-One Model
Many-to-Many Model
Two-Level Model
แนวทางปฏิบัติในการแก้ปัญหาโหลดภาระ (Overhead) ให้แก่ระบบปฏิบัติการอันเนื่องมาจากการสร้างและทำลายเธรดบ่อยครั้ง คือการใช้สถาปัตยกรรมเทคนิคใด
Thread Cancellation
Thread-Local Storage (TLS)
Thread Pools
Context Switching
ตามกฎของแอมดาล (Amdahl's Law) หากโปรแกรมหนึ่งมีรหัสคำสั่งที่สามารถประมวลผลคู่ขนานได้ 80% (p = 0.80) และส่วนที่ต้องทำแบบเรียงลำดับ 20% (1-p = 0.20) เมื่อนำไปรันบนหน่วยประมวลผลแบบ 4 แกนสมอง (N = 4) อัตราเร่งความเร็วสูงสุด (Maximum Speedup) จะมีค่าเป็นกี่เท่า
1.25 เท่า
2.00 เท่า
2.50 เท่า
4.00 เท่า
กฎของแอมดาล (Amdahl's Law) สะท้อนให้เห็นสัจธรรมทางวิศวกรรมว่า ปัจจัยใดคือคอขวดที่จำกัดขีดความสามารถในการเพิ่มความเร็วของระบบ แม้ว่าจะเพิ่มจำนวนแกนซีพียูเป็นอนันต์ก็ตาม
ความเร็วสัญญาณนาฬิกาของซีพียู
สัดส่วนของรหัสคำสั่งที่ต้องประมวลผลแบบเรียงลำดับอนุกรม (Serial Portion)
ปริมาณความจุของหน่วยความจำแคชระดับที่ 1
จำนวนเธรดในระบบที่เข้าสู่สถานะรอคอย (Waiting State)
หากซอร์สโค้ดระบบมีฟังก์ชันที่ทำงานอิสระแยกจากกันได้คิดเป็นสัดส่วน 90% (p = 0.90) และส่วนอนุกรม 10% (1-p = 0.10) หากอัปเกรดเซิร์ฟเวอร์เป็นซีพียู 8 แกน (N = 8) อัตราเร่งความเร็วจะมีค่าเป็นเท่าใดตามทฤษฎี
3.25 เท่า
4.70 เท่า
8.00 เท่า
9.00 เท่า
จากใบปฏิบัติการเชิงสถิติเธรด การรันคำสั่งไปป์ไลน์ใน PowerShell ด้วยรูปแบบ "Get-Process | Sort-Object -Property CPU -Descending | Select-Object Name, Id, @{Name='ThreadCount';Expression={$_.Threads.Count}} -First 5" จะให้ผลลัพธ์ข้อมูลใดแก่ผู้ดูแลระบบ
ลบโปรเซสที่มีการใช้เธรดมากที่สุด 5 อันดับแรกออกจากหน่วยความจำ
แสดงรายชื่อ 5 โปรเซสที่กินพลังงานซีพียูสูงสุด พร้อมแสดงหมายเลขโปรเซสและจำนวนเธรดที่อยู่ภายใน
แสดงจำนวนแกนซีพียูทั้งหมดที่มีในเครื่องคอมพิวเตอร์แบบเรียงลำดับจากมากไปน้อย
บังคับให้โปรเซส 5 อันดับแรกต้องเปิดเธรดทำงานเพิ่มขึ้น
หากจากการสำรวจพบว่าโปรเซสหนึ่งมีการสร้างเธรดย่อยเป็นจำนวนมาก และเกิดสภาวะ Memory Leak (หน่วยความจำรั่วไหล) ผลกระทบทางสถาปัตยกรรมที่จะเกิดขึ้นกับเธรดทั้งหมดภายใต้โปรเซสนี้คือข้อใด
เธรดทั้งหมดจะถูกบล็อก แต่แอดเดรสสเปซของโปรเซสยังคงปลอดภัย
เธรดอื่น ๆ ในระบบปฏิบัติการจะถูกขโมยหน่วยความจำมาทดแทน
โปรเซสจะล่ม (Crash) และส่งผลให้ทุกเธรดที่อยู่ในโปรเซสนี้พังและถูกทำลายไปพร้อมกันทั้งหมด
ระบบปฏิบัติการจะสั่งรีสตาร์ทเฉพาะเธรดที่เกิดปัญหาโดยไม่กระทบเธรดข้างเคียง
ในการพัฒนาแอปพลิเคชันร่วมสมัย เหตุใดวิศวกรซอฟต์แวร์จึงถูกห้ามไม่ให้รันกระบวนการที่ใช้เวลานาน (เช่น ดาวน์โหลดไฟล์ใหญ่) บน "Main Thread (UI Thread)" อย่างเด็ดขาด
เพราะจะทำให้สีของกราฟิกบนหน้าจอเพี้ยนไปจากเดิม
เพราะจะทำให้เธรดหลักติดสภาวะ Blocked ส่งผลให้โปรแกรมค้างและไม่ตอบสนองต่อผู้ใช้งาน
เพราะ Main Thread ไม่สามารถเข้าถึงหน่วยความจำส่วน Heap ได้
เพราะระบบปฏิบัติการจะลบโปรแกรมทิ้งทันทีที่พบพฤติกรรมนี้
