wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

OS-4-Posttest

Total questions: 12

Worksheet time: 12mins

Name
Class
Date
1.

การออกแบบให้โปรแกรมเว็บเบราว์เซอร์ใช้ "เธรด" ในการเปิดแท็บใหม่แทนที่จะใช้ "โปรเซส" มีความเสี่ยงที่สำคัญทางสถาปัตยกรรมอย่างไร

a)

การใช้แรมจะสูงขึ้นอย่างรวดเร็วจนระบบล่ม

b)

การสลับหน้าจอระหว่างแท็บจะทำได้ช้ากว่าเดิม

c)

หากแท็บใดแท็บหนึ่งเกิดข้อผิดพลาดร้ายแรง (Fatal Error) จะส่งผลให้โปรเซสหลักแครชและเบราว์เซอร์ปิดตัวลงทุกแท็บ

d)

ไม่สามารถส่งข้อมูลข้ามแท็บได้เนื่องจากไม่มีการแชร์หน่วยความจำ

2.

องค์ประกอบทางสถาปัตยกรรมภายในใดที่เป็น "เอกสิทธิ์ส่วนตัว (Private Space)" ของเธรดแต่ละตัว และไม่ถูกนำไปแบ่งปันร่วมกับเธรดอื่นในโปรเซสเดียวกันอย่างเด็ดขาด

a)

Text Segment และ Data Segment

b)

Register Set และ Stack Segment

c)

Heap Segment และ Program Counter

d)

ไฟล์ระบบ (Files) และสัญญาณ (Signals)

3.

ปัจจัยทางเทคนิคใดที่ทำให้ต้นทุนเวลาในการสลับบริบทการทำงาน (Context Switching Overhead) ระหว่างเธรดในโปรเซสเดียวกัน มีค่าต่ำกว่าการสลับระหว่างโปรเซสอย่างมีนัยสำคัญ

a)

เพราะไม่ต้องบันทึกค่าของ Program Counter เลย

b)

เพราะระบบปฏิบัติการไม่ต้องล้างค่าในแคช (Cache Flush) และไม่ต้องปรับปรุงตารางหน่วยความจำตรรกะใหม่

c)

เพราะเธรดไม่ต้องคืนทรัพยากรซีพียูให้กับระบบปฏิบัติการเมื่อหมดโควตา

d)

เพราะเธรดระดับผู้ใช้สามารถทำงานติดต่อกับฮาร์ดแวร์ได้โดยไม่ต้องพึ่งเคอร์เนล

4.

สถาปัตยกรรมมัลติเพล็กซ์แบบ "Many-to-Many Model" นำเสนอจุดเด่นทางวิศวกรรมที่ช่วยกลบจุดด้อยของแบบจำลอง One-to-One ได้ในเรื่องใด

a)

ป้องกันไม่ให้แอปพลิเคชันสร้างเธรดผู้ใช้ได้เลยเพื่อประหยัดทรัพยากร

b)

ยอมให้โปรเซสมีเธรดเคอร์เนลเพียงตัวเดียวเสมอเพื่อลดต้นทุน

c)

ลดภาระการโหลด (Overhead) ของเคอร์เนล เพราะไม่ต้องบังคับให้สร้างเธรดเคอร์เนล 1 ตัวต่อ 1 เธรดผู้ใช้เสมอไป

d)

ย้ายภาระการจัดคิวทั้งหมดไปให้ผู้ใช้งานเป็นคนควบคุมเอง

5.

หากซอฟต์แวร์ประยุกต์ทำงานอยู่บนระบบปฏิบัติการรุ่นเก่าที่ใช้ "Many-to-One Model" และนำไปรันบนเครื่องคอมพิวเตอร์ที่มีซีพียู 4 แกน (Quad-core) ข้อจำกัดเชิงโครงสร้างที่จะเกิดขึ้นคืออะไร

a)

ระบบจะประมวลผลได้เร็วขึ้น 4 เท่าตัวทันที

b)

ไม่สามารถรันเธรดของโปรเซสนั้นแบบคู่ขนาน (Parallelism) ได้ เพราะมีเธรดระดับเคอร์เนลเพียง 1 ตัวให้ซีพียูจัดคิว

c)

เธรดระดับเคอร์เนลจะถูกสร้างเพิ่มขึ้นเองโดยอัตโนมัติอีก 3 ตัว

d)

ซีพียูอีก 3 แกนที่เหลือจะถูกปิดการทำงานไปโดยถาวร

6.

ประเด็นท้าทายในเรื่อง "Thread-Local Storage (TLS)" เกิดขึ้นเพื่อตอบสนองความจำเป็นของนักพัฒนาซอฟต์แวร์ในรูปแบบใด

a)

ต้องการบังคับให้เธรดทุกตัวแชร์ตัวแปรส่วนกลางตัวเดียวกัน

b)

ต้องการลบเธรดที่ทำงานช้าทิ้งแบบอัตโนมัติ

c)

ต้องการสร้างพื้นที่เก็บข้อมูลส่วนตัวของตัวแปรที่เธรดอื่นในโปรเซสเดียวกันไม่สามารถมองเห็นได้

d)

ต้องการจำลองฮาร์ดแวร์ฮาร์ดดิสก์ให้กลายเป็นสแต็ก

7.

ระบบซอฟต์แวร์ชุดหนึ่งมีรหัสคำสั่งที่สามารถแบ่งการทำงานแบบคู่ขนานได้ 75% (p = 0.75) หากวิศวกรนำไปรันบนคอมพิวเตอร์แบบ 3 แกนสมอง (N = 3) ตามกฎของแอมดาล อัตราเร่งความเร็วระบบจะเพิ่มขึ้นสูงสุดเท่าใด

a)

1.50 เท่า

b)

2.00 เท่า

c)

2.75 เท่า

d)

3.00 เท่า

8.

หากองค์กรธุรกิจพัฒนาแอปพลิเคชันที่มีรหัสคำสั่งส่วนอนุกรม (Serial Portion) สูงถึง 50% ต่อให้องค์กรลงทุนซื้อระบบคลัสเตอร์ซีพียูระดับ 100 แกนสมอง อัตราความเร็วสูงสุดโดยประมาณตามทฤษฎี (เมื่อ N ลู่เข้าสู่อนันต์) จะไม่สามารถเกินเพดานกี่เท่า

a)

2 เท่า

b)

50 เท่า

c)

100 เท่า

d)

ไร้ขีดจำกัด

9.

ในตัวแบบสมการคณิตศาสตร์ของแอมดาล นิพจน์ย่อย "(p / N)" เป็นตัวแทนเชิงสัญลักษณ์ของสภาวะใด

a)

ระยะเวลาที่ซีพียูต้องว่างงานรอข้อมูล I/O

b)

สัดส่วนเวลาของรหัสคำสั่งคู่ขนานที่ถูกหารแบ่งเบาภาระด้วยจำนวนแกนประมวลผล

c)

จำนวนเธรดระดับผู้ใช้ที่หารด้วยจำนวนเธรดระดับเคอร์เนล

d)

ความน่าจะเป็นที่โปรเซสทั้งหมดจะติดล็อกพร้อมกัน

10.

จากชุดคำสั่งตรวจสอบระบบ "Get-Process" หากผลลัพธ์บนหน้าจอรายงานว่าโปรเซสที่มีชื่อ "chrome" แสดงผลออกมา 10 บรรทัด แต่ละบรรทัดมีหมายเลข PID ต่างกัน และแต่ละบรรทัดมีค่า Threads.Count เท่ากับ 25 ข้อมูลนี้สรุปความเชิงสถาปัตยกรรมได้ว่าอย่างไร

a)

มีเบราว์เซอร์ 10 โปรแกรมรันอยู่ และแชร์ทรัพยากรฮีปตัวเดียวกันหมด

b)

เกิดปัญหาเธรดหยุดชะงัก (Deadlock) จำนวน 25 ตัว

c)

มี 10 โปรเซสทำงานแยกกันอิสระ โดยแต่ละโปรเซสใช้สถาปัตยกรรมมัลติเธรดบรรจุอยู่ภายใน 25 เธรด

d)

ระบบใช้ One-to-One Model ในการรันคอร์ซีพียูจำนวน 25 แกน

11.

เทคโนโลยี Coroutines ในการพัฒนาซอฟต์แวร์สมัยใหม่ มีความได้เปรียบเชิงวิศวกรรมเหนือการใช้เธรดแบบดั้งเดิมอย่างไรเมื่อต้องจัดการกับฟังก์ชันที่ต้องประวิงเวลา (Suspend)

a)

กระบวนการประวิงเวลาจะไม่เป็นการทำลายหรือบล็อก OS Thread โดยแท้จริง ทำให้เธรดอื่นยังสามารถนำ OS Thread นั้นไปใช้งานต่อได้ทันที

b)

เปลี่ยนโครงสร้างจากแบบจำลอง Many-to-Many ให้กลายเป็นแบบ One-to-One เพื่อความเร็วสูงสุด

c)

ลบข้อมูลใน Stack ของเธรดแบบดั้งเดิมทิ้งอัตโนมัติเพื่อคืนพื้นที่ให้ระบบปฏิบัติการ

d)

บังคับให้การคำนวณทั้งหมดเปลี่ยนเป็นแบบอนุกรม (Serial)

12.

หากนักพัฒนาพบว่าโปรแกรมมีการเปิดใช้และยกเลิกเธรด (Thread Cancellation) อย่างไม่เป็นระเบียบ การตั้งค่ายกเลิกเธรดแบบใดมีความปลอดภัยต่อข้อมูลในหน่วยความจำสูงสุด

a)

Asynchronous Cancellation เพราะทำลายเธรดทันที

b)

Synchronous Execution เพราะรันทุกคำสั่งซ้ำสองรอบ

c)

Deferred Cancellation เพราะประวิงเวลาให้เธรดจัดการข้อมูลค้างให้เรียบร้อยก่อนถึงจุดที่ปลอดภัยในการทำลาย

d)

Pool Cancellation เพราะเคลียร์ทุกเธรดในพูลพร้อมกัน