ข้อสอบจำลอง + เทคนิคเขียนตอบ

ทำหลังจากเรียนครบทุกบท ลองเขียนคำตอบลงกระดาษก่อน (เหมือนสอบ closed book) แล้วค่อยกดดูเฉลย ข้อที่เป็นตัวเลขกดตรวจได้ทันที

เทคนิคทำข้อสอบ closed book

📝 ข้อบรรยาย 1) ขึ้นต้นด้วยนิยาม 1 ประโยค ใช้คำศัพท์อังกฤษตามชีท (เช่น mutual exclusion, safe state)
2) ตามด้วยหัวข้อย่อย/ลำดับขั้น
3) ปิดด้วยตัวอย่างหรือรูป (RAG, memory map, state diagram)
🧮 ข้อคำนวณ 1) เขียนสิ่งที่โจทย์ให้มาก่อน
2) แสดงทุกขั้น (ตาราง page replacement ครบทุกคอลัมน์, Work ทุกขั้นของ Banker's, สูตร f × size + d)
3) ขีดเส้นใต้คำตอบสุดท้าย พร้อมหน่วย (ครั้ง, %, K, tracks)
⚠️ จุดที่เสียคะแนนบ่อย • ลืมนับ fault ช่วงเฟรมว่างตอนเริ่ม
• OPT/LFU เสมอกันแล้วไม่ใช้ FIFO ตัดสิน
• LFU ลืมรีเซ็ตตัวนับเมื่อเพจถูกเอาออก
• Banker's บวก Need แทน Allocation
• paging เอา p ไปคูณ page size แทน f
• bit vector ใช้ว่าง = 1 (ชีทใช้ว่าง = 0)
⏱ แบ่งเวลาทำข้อคำนวณที่มั่นใจก่อน (page replacement, Banker's, paging) เพราะได้คะแนนแน่นอน แล้วค่อยเขียนข้อบรรยาย ถ้ามีเวลาเหลือ ให้ทวนตาราง page replacement โดยเช็คว่า OPT น้อยที่สุด

ส่วนที่ 1 · Deadlock

ยังงง? กลับไปทวน บทที่ 1: เงื่อนไข 4 ข้อ (1.2) · RAG + matrix (1.3) · Banker's (1.6)

1.จงอธิบายเงื่อนไขที่จำเป็นของการเกิด deadlock ทั้ง 4 ข้อ และอธิบายว่าทำไมเรียกว่า necessary แต่ไม่ใช่ sufficient condition (10 คะแนน)
Mutual exclusion (ทรัพยากรใช้ได้ทีละโปรเซส), Hold and wait (ถือแล้วรอเพิ่ม), No preemption (ยึดคืนไม่ได้), Circular wait (P0 รอ P1 … Pn รอ P0)
เป็น necessary เพราะถ้าขาดข้อใดข้อหนึ่งจะไม่เกิด deadlock แน่นอน แต่ไม่ใช่ sufficient เพราะแม้ครบทั้ง 4 ข้อก็อาจไม่เกิด (เช่น RAG ที่มี cycle แต่ทรัพยากรหลาย instance ในรูป 2.4.D) การป้องกันจึงทำได้โดยทำลายเงื่อนไขใดเงื่อนไขหนึ่ง
2.กำหนด R1 = 1, R2 = 2, R3 = 1, R4 = 3 instances และ E = {P1→R1, P2→R3, R1→P2, R2→P2, R2→P1, R3→P3, P3→R2} จงเขียน allocation matrix, request matrix, Available และบอกว่าเกิด deadlock หรือไม่
Allocation   R1 R2 R3 R4      Request   R1 R2 R3 R4
P1            0  1  0  0       P1        1  0  0  0
P2            1  1  0  0       P2        0  0  1  0
P3            0  0  1  0       P3        0  1  0  0
Available = (0, 0, 0, 3)
ไม่มีโปรเซสไหนได้ตามที่ขอ (P1 ต้องการ R1, P2 ต้องการ R3, P3 ต้องการ R2 ซึ่งว่าง 0 หมด) → deadlock P1, P2, P3 และมี cycle P1→R1→P2→R3→P3→R2→P1 กับ P2→R3→P3→R2→P2 (= รูป 2.4.C)
3.Banker's (ชีทหน้า 58): Allocation P1 010, P2 200, P3 302, P4 211, P5 002 · Max P1 753, P2 322, P3 902, P4 222, P5 433 · Available 332 จงหา safe sequence (ไล่ P1 → P5 แบบชีท)
Need: P1 743, P2 122, P3 600, P4 011, P5 431 → Work 332 → P2 (532) → P4 (743) → P5 (745) → P1 (755) → P3 (10,5,7) → <P2, P4, P5, P1, P3>
4.ต่อจากข้อ 3 หลังจากให้ P2 ขอ (1,0,2) ไปแล้ว (Available = 2,3,0) ถ้า P1 ขอ (0,2,0) ผลคืออะไร
Available พอ (2,3,0) แต่สมมติให้แล้ว Available = (2,1,0) ไม่มีโปรเซสไหนมี Need ≤ (2,1,0) → unsafe → ให้รอ (ชีทหน้า 61)

ส่วนที่ 2 · Memory Management

ยังงง? กลับไปทวน บทที่ 2: logical vs physical (2.2) · fit (2.7) · paging (2.9) · overlay/swapping (2.4)

5.logical address กับ physical address ต่างกันอย่างไร และ relocation register ทำหน้าที่อะไร
logical = address ที่ CPU/โปรแกรมสร้าง (มองจากโปรเซส) ส่วน physical = ตำแหน่งจริงในหน่วยความจำ relocation (base) register ใช้แปลง physical = base + logical (เช่น 14000 + 346 = 14346) และ limit register ใช้ตรวจว่า logical < limit ไม่งั้นเกิด trap
6.base register = 25000, limit = 5000 แล้ว logical address 1234 = physical เท่าไร
1234 < 5000 ✓ → 25000 + 1234 = 26234
7.hole ว่าง 100K, 500K, 200K, 300K, 600K โปรเซสเข้ามา 212K, 417K, 112K, 426K จงวางด้วย first-fit, best-fit, worst-fit และบอกข้อดีข้อเสียของแต่ละวิธี
First: 212→500, 417→600, 112→288 (เศษ), 426 รอ · Best: 212→300, 417→500, 112→200, 426→600 (ครบ) · Worst: 212→600, 417→500, 112→388 (เศษ), 426 รอ
First เร็วแต่เกิดเศษช่วงต้น · Best เหลือเศษน้อยแต่ต้องค้นทุก hole และได้เศษเล็กมาก · Worst เศษใหญ่ใช้ต่อได้แต่ hole ใหญ่หมดเร็ว
8.page size 4 byte, page table 0→5, 1→6, 2→1, 3→2 แล้ว logical address 13 = physical เท่าไร
p = 3, d = 1 → f = 2 → 2 × 4 + 1 = 9
9.overlay two-pass assembler (Pass1 70K, Pass2 80K, symbol table 30K, common routine 20K, overlay driver 10K) ต้องใช้หน่วยความจำกี่ K
30 + 20 + 10 + max(70, 80) = 140K (ถ้าไม่ใช้ overlay = 200K)
10.swapping คืออะไร เกี่ยวข้องกับ PCB อย่างไร
swap out โปรเซสออกไปเก็บที่ backing store (ดิสก์) แล้ว swap in อีกโปรเซสเข้ามาแทน (เช่น RR หมด quantum) ตอนสลับต้อง save PCB ของตัวเดิม (state, register, PC) และ load PCB ของตัวใหม่ = context switch

ส่วนที่ 3 · Virtual Memory (เน้น)

ยังงง? กลับไปทวน บทที่ 3: page fault (3.3) · page replacement + เครื่องมือฝึก (3.5) · Belady (3.7)

ข้อ 12–16 ใช้ 3 frames กับ reference string 2 3 2 1 5 2 4 5 3 2 5 2 1 4 3 5 2 4 1 3 (การบ้าน)

11.จงอธิบายขั้นตอนการจัดการ page fault (6 ขั้น)
reference → trap (bit = i) → page is on backing store → bring in missing page (free frame) → reset page table (bit = v) → restart instruction โดย OS เป็นผู้จัดการ
12.FIFO เกิด page fault กี่ครั้ง
17
13.OPT เกิด page fault กี่ครั้ง
10
14.LRU เกิด page fault กี่ครั้ง
15
15.LFU เกิด page fault กี่ครั้ง
12
16.page fault rate ของ LRU คือกี่ %
15/20 = 75%
17.Belady's anomaly คืออะไร เกิดกับอัลกอริทึมใด จงยกตัวอย่าง
เพิ่มจำนวนเฟรมแล้ว page fault กลับเพิ่มขึ้น เกิดกับ FIFO เช่น 1 2 3 4 1 2 5 1 2 3 4 5 ใช้ 3 เฟรม = 9 ครั้ง แต่ 4 เฟรม = 10 ครั้ง (LRU และ OPT ไม่เกิด เพราะเป็น stack algorithm)
18.เปรียบเทียบข้อดีข้อเสียของ FIFO, OPT และ LRU
FIFO: ง่าย overhead ต่ำ / อาจเอาเพจที่ใช้บ่อยออก และเกิด Belady · OPT: fault น้อยสุด / ใช้จริงไม่ได้เพราะต้องรู้อนาคต จึงใช้เป็นเกณฑ์ · LRU: ใกล้ OPT ไม่เกิด Belady / ต้องจดเวลาทุกครั้ง ต้องมีฮาร์ดแวร์ช่วย overhead สูง

ส่วนที่ 4 · Secondary Storage

ยังงง? กลับไปทวน บทที่ 4: free-space (4.2) · allocation methods (4.3)

19.ดิสก์ 12 บล็อก (0–11) บล็อกว่าง 2, 3, 4, 6, 8, 9, 10 จงเขียน bit vector ตามชีท
110001010001
⏭ ข้ามได้ — disk scheduling (เรื่อง hard disk ที่อาจารย์บอกว่าไม่ออก)
20.head 53, คิว 98, 183, 37, 122, 14, 124, 65, 67 ใช้ SSTF total head movement เท่าไร
53→65→67→37→14→98→122→124→183 = 12+2+30+23+84+24+2+59 = 236

ส่วนที่ 5 · File System & Protection

ยังงง? กลับไปทวน บทที่ 5: file property (5.3) · สิทธิ์ rwx (5.5) · ระบบ secure (5.6)

21.file property ที่ระบบเก็บไว้ใน directory มีอะไรบ้าง (อย่างน้อย 5 อย่าง)
file name (+ extension), file type, location (pointer ไปตำแหน่งบนดิสก์), size, current position, protection (สิทธิ์), time and date
22.สิทธิ์ 640 เขียนเป็นตัวอักษร rwx ได้อย่างไร
rw-r----- → owner อ่าน/เขียน, group อ่าน, others ไม่ได้อะไร
23.จงอธิบายนิยามของระบบที่ secure โดยใช้ state transition พร้อมวาดรูปประกอบ
มองระบบเป็น finite state machine แบ่ง state เป็น secure set กับ non-secure ระบบ secure เมื่อทุก transition (ทุก input/เหตุการณ์) จาก secure state พาไปได้แค่ secure state ถ้ามีช่องโหว่ (เช่น trojan หรือ backdoor) ที่ทำให้มี transition ไป non-secure ต้องปิด transition หรือเหตุการณ์ที่ trigger นั้น (patch)
รูป: วงกลม S0, S1, S2 ในกรอบ secured set มีลูกศร a/b วนอยู่ภายใน และมีเส้นสีแดงหนึ่งเส้นออกไปที่ non-secure (ซึ่งต้องปิด)
24.access list ต่างจาก access group อย่างไร
ถ้าจะให้ทุกคนอ่านได้ access list ต้องใส่ชื่อทุกคน ซึ่งยุ่งยาก access group จึงแบ่งผู้ใช้เป็น 3 กลุ่ม

🎲 โจทย์สุ่ม (ฝึกได้ไม่จำกัด)

แผนอ่าน

มีเวลา 1 วัน
  1. Virtual Memory ทั้งบท + ฝึกโหมด "ฝึกเอง" ให้ครบ 5 อัลกอริทึม (3 ชม.)
  2. Deadlock: เงื่อนไข, RAG, Banker's ตัวอย่างในชีท (2 ชม.)
  3. Memory: logical/physical, fit, paging (1.5 ชม.)
  4. File: property, rwx, secure FSM (1 ชม.)
  5. ข้อสอบจำลองหน้านี้ (1 ชม.)
มีเวลา 3 วัน
  1. วันที่ 1: Deadlock + Memory ทั้งบท ทำแบบฝึกในหน้าให้ครบ
  2. วันที่ 2: Virtual Memory + Storage + โจทย์สุ่ม page replacement 10 ข้อ
  3. วันที่ 3: File & Protection + ข้อสอบจำลอง + ทวน checklist ในหน้าแรก