1. mainframe computer μ μ΄μ체μ μ personal computer μ μ΄μ체μ μμ μ£Όμ μ°¨μ΄μ μ 무μμΈκ°?
2. λ€μ μ©μ΄λ€μ κ°λ¨ν μ€λͺ
νμμ€.
1) DMA
2) Caching μμμ hit ratio λ?
3) Shell
4) Process
2) Caching μμμ hit ratio λ?
3) Shell
4) Process
3. μΌλ°μ μΌλ‘ λ€μ€ νλ‘κ·Έλλ° μμ€ν
μμ λ©λͺ¨λ¦¬ 보νΈλ₯Ό μν΄ μ΄λ€ H/W μ₯μΉκ° νμνλ©°, μ΄λ ν μμΌλ‘ λ©λͺ¨λ¦¬ 보νΈλ₯Ό ννλκ°?
4. system call μ΄λ 무μμ΄λ©°, μ νμνκ°?
5. νλ‘μΈμ€λ€λΌλ¦¬μ ν΅μ λ°©λ²μΌλ‘ Message Passing λ°©λ²κ³Ό Shared Memory λ°©λ²μ΄ μλ€. κ°κ°μ λ°©μμ κ°λ¨ν μ€λͺ
νκ³ , μλ‘μ μ₯λ¨μ μ κΈ°μ νμμ€.
6. short-term, medium-term, long-term Schedulingμ μ°¨μ΄μ λ° νΉμ±μ λν΄ κ°λ΅ν μ€λͺ
νμμ€.
7. μ ν μ©λ Message Passing μ μν send() λ©μλμ receive() λ©μλ€μ μμ±νμμ€. send() λ©μλλ queueμ 곡κ°μ΄ μμλκΉμ§ block νλ©°, λ°λλ‘ receive() λ©μλλ avariable messageκ° μμλκΉμ§ blockν΄μΌ νλ€.
~cpp import java.util.*; public class MessageQueueBounded extends MessageQueue { public MessageQueueBounded() { items = new Object[SIZE]; position = 0; isRoom = true; } /* * This implements a blocking send */ public void send(Object o) { // wait until there is room while (_________________) { System.out.println ("Producer Blocked"); try { Thread.sleep(500); } catch (InterruptedException e) { } } System.out.println("Producer UnBlocked"); _______________ = 0; if (____________________) { isRoom = false; System.out.println("Full"); } } /* * This implements a blocking receive */ public Object receive() { // wait until something is there while (_________________) { System.out.println("Consumer Blocked"); try { Thread.sleep(500); } catch (InterruptedException e) { } } System.out.println("Consumer UnBlocked"); Object it = _________________; isRoom = true; return it; } private Object[] items; private static final int SIZE = 3; private volatile int position; private volatile boolean isRoom;
8. SJF μ€μΌμ€λ§μμ Next CPU burstλ₯Ό ꡬνκΈ° μν΄μ μ°λ¦¬λ λ€μκ³Ό κ°μ μμμμ μ΄μ©νλ€.
μ΄λΌκ³ κ°μ ν λ λ€μ λ¬Όμμ λ΅νλΌ.
Jn+1 = aTn + (1 - a)Jn
λ§μ½, μμ μ΄κΈ°μΉ (J0 λ 10 μ΄λΌκ³ κ°μ νκ³ , μ€μ CPU burst(ti) κ° 6, 4, 6, 4, 13, 13, 13 ....μ΄λΌκ³ κ°μ ν λ λ€μ λ¬Όμμ λ΅νλΌ.
1) aλ₯Ό 0.7λ‘ νμ λμ μμΈ‘μΉλ₯Ό μΆμ νλΌ.
2) aλ₯Ό 0.5λ₯Ό μ΄κΈ°μΉλ‘ μ€μ νκ³ , μ΄ν aλ μν©μ λ°λΌ κ°λ³μ μΌλ‘ μ€μ λλ€λ©΄, μ¦,
2) aλ₯Ό 0.5λ₯Ό μ΄κΈ°μΉλ‘ μ€μ νκ³ , μ΄ν aλ μν©μ λ°λΌ κ°λ³μ μΌλ‘ μ€μ λλ€λ©΄, μ¦,
λ§μ½ ti μ Jiμμ μ°¨μ΄κ° 3.0 μ΄μμ΄λ©΄ a = 0.7 λ‘ μ€μ νκ³ ,
λ§μ½ ti μ Jiμμ μ°¨μ΄κ° 3.0 λ―Έλ§, 1.0 μ΄μμ΄λ©΄ a = 0.5λ‘ μ€μ νκ³ ,
λ§μ½ ti μ Jiμμ μ°¨μ΄κ° 1.0 λ―Έλ§μ΄λ©΄ a = 0.3 μΌλ‘ μ€μ νλ€λ©΄,
2-1) μμΈ‘μΉλ₯Ό μΆμ νμμ€.
2-2) μ΄λ μ΄λ€ ν¨κ³Όλ₯Ό μ λ°νκΈ° μν κ²μΈκ°?
2-3) a = 0.5 λ‘ κ³ μ μμΌ λμμ λμ λΉκ΅νμ¬ μ°¨μ΄μ μ μ€λͺ νμμ€.
9. λμ μΌλ‘ μ°μ μμκ° λ³νλλ preemptive priorty-scheduling algorithm μ μκ°ν΄ 보μ. ν° κ°μ κ°μ§ μ°μ μμ λ²νΈκ° λ λμ μ°μ μμλ₯Ό κ°μ§λ€κ³ κ°μ νμ. λ§μ½ νλ‘μΈμ€κ° μ΄κΈ°κ°μΌλ‘ μ°μ μμκ° 0λ₯Ό κ°κ³ , CPUλ₯Ό κΈ°λ€λ¦΄ λ(ready μν)μλ μ°μ μμ κ° aλ₯Ό κ°κ³ , running μνμλ μ°μ μμκ° b λ₯Ό κ°λλ€λ©΄,λ§μ½ ti μ Jiμμ μ°¨μ΄κ° 3.0 λ―Έλ§, 1.0 μ΄μμ΄λ©΄ a = 0.5λ‘ μ€μ νκ³ ,
λ§μ½ ti μ Jiμμ μ°¨μ΄κ° 1.0 λ―Έλ§μ΄λ©΄ a = 0.3 μΌλ‘ μ€μ νλ€λ©΄,
2-1) μμΈ‘μΉλ₯Ό μΆμ νμμ€.
2-2) μ΄λ μ΄λ€ ν¨κ³Όλ₯Ό μ λ°νκΈ° μν κ²μΈκ°?
2-3) a = 0.5 λ‘ κ³ μ μμΌ λμμ λμ λΉκ΅νμ¬ μ°¨μ΄μ μ μ€λͺ νμμ€.
1) νλΌλ©ν κ°μ΄ b > a > 0 μ κ°μ κ°λλ€λ©΄ μ΄λ λ¬΄μ¨ μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ μλ―Ένλκ°?
2) νλΌλ©ν κ°μ΄ a < b < 0 μ κ°μ κ°λλ€λ©΄ μ΄λ λ¬΄μ¨ μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ μλ―Ένλκ°? (λ§μ½ μ νν μκ³ λ¦¬μ¦ μ΄λ¦μ κΈ°μ νκΈ°κ° μ΄λ ΅λ€λ©΄ μκ³ λ¦¬μ¦μ νΉμ±μ μ€λͺ νμμ€)
2) νλΌλ©ν κ°μ΄ a < b < 0 μ κ°μ κ°λλ€λ©΄ μ΄λ λ¬΄μ¨ μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ μλ―Ένλκ°? (λ§μ½ μ νν μκ³ λ¦¬μ¦ μ΄λ¦μ κΈ°μ νκΈ°κ° μ΄λ ΅λ€λ©΄ μκ³ λ¦¬μ¦μ νΉμ±μ μ€λͺ νμμ€)