- Single CPU Systemμμ νλ‘μΈμ A κ° Run μ€μΌ λ, I/O μμ
μ ν΄μΌ λΌμ λ€λ₯Έ νλ‘μΈμ Bλ‘ μ€μμΉμ νλ μν©μ΄λ€.
- μ€μμΉμ νλ€λ©΄, νλ‘μΈμ Aμ Time Sliceλ₯Ό μ‘°κΈ λ¨κ²¨λκ³ μ€μμΉμ νλ κ²μΈκ°? μ¦ I/O μμ
μ κ³μ ν μ μλλ‘ CPUκ° μ‘°κΈμ© I/O μμ
μ μ§ννλ©΄μ νλ‘μΈμ Bλ₯Ό μ€ννλ κ²μΈκ°?
- λ§μ½ κ·Έκ²μ΄ μλλΌλ©΄, I/O μμ
μ CPUκ° λ΄λΉνμ§ μλ κ²μΈκ°? CPU λ΄λΆ ALUμ I/O μμ
νλ‘κ° λ°λ‘ μλ Independent μν©μ΄κΈ° λλ¬Έμ κ·Έλ° κ²μΈκ°?
- μ€μμΉμ νλ€λ©΄, νλ‘μΈμ Aμ Time Sliceλ₯Ό μ‘°κΈ λ¨κ²¨λκ³ μ€μμΉμ νλ κ²μΈκ°? μ¦ I/O μμ
μ κ³μ ν μ μλλ‘ CPUκ° μ‘°κΈμ© I/O μμ
μ μ§ννλ©΄μ νλ‘μΈμ Bλ₯Ό μ€ννλ κ²μΈκ°?
- Single CPU & Single-processor & Multi-thread νκ²½μ΄λ€.
- CPUκ° ν λΉν Time Sliceλ₯Ό νλμ Processorλ΄λΆμ μλ κ°κ°μ Threadκ° μͺΌκ°μ μ¬μ© νλ κ²μΈκ°?
- κ·Έλ λ€λ©΄ κ°λ
μ μΌλ‘ Single CPUμμ Processor Switchingκ³Ό κ°μ κ²μΈκ°?
- κ·ΈλΌ μ¬λ¬ κ°μ Threadκ° μ‘΄μ¬νλ μν©μΌ λ, νλμ Threadκ° One Time Sliceλ₯Ό μ λΆ μ¬μ©νλ κ²½μ°κ° μλκ°??
- A) processorλΌκ³ μ°μ κ²μ΄ μλ§λ processλ₯Ό μλ―Ένλ κ² κ°κ΅°μ? scheduling κΈ°λ²μ΄λ, time slice μ μ±
, preemption μ¬λΆ λ±μ μν€ν
μ²μ μ΄μ체μ 컀λ ꡬν λ± μμ€ν
μ λ°λΌ μλ‘ λ€λ₯΄κ² μ΅μ νλμ΄ μ€κ³ν©λλ€. thread λ±μ κ°λ
λ μ΄μ체μ μ κ°λ° μΈμ΄ λ°νμ λ± νλ«νΌμ λ°λΌ λ€λ₯Ό μ μμ΅λλ€. μΌλ°μ μΌλ‘ processμ context switchingμ PCB λ± λ³΅μ‘ν contextμ μ νμ λ€λ£¨λ―λ‘ λ¨μν thread μ€μΌμ€λ§λ³΄λ€ μ’λ 볡μ‘ν μλ μμΌλ λ°λμ κ·Έλ° κ²μ μλλλ€. - λ³νμ§
- A) processorλΌκ³ μ°μ κ²μ΄ μλ§λ processλ₯Ό μλ―Ένλ κ² κ°κ΅°μ? scheduling κΈ°λ²μ΄λ, time slice μ μ±
, preemption μ¬λΆ λ±μ μν€ν
μ²μ μ΄μ체μ 컀λ ꡬν λ± μμ€ν
μ λ°λΌ μλ‘ λ€λ₯΄κ² μ΅μ νλμ΄ μ€κ³ν©λλ€. thread λ±μ κ°λ
λ μ΄μ체μ μ κ°λ° μΈμ΄ λ°νμ λ± νλ«νΌμ λ°λΌ λ€λ₯Ό μ μμ΅λλ€. μΌλ°μ μΌλ‘ processμ context switchingμ PCB λ± λ³΅μ‘ν contextμ μ νμ λ€λ£¨λ―λ‘ λ¨μν thread μ€μΌμ€λ§λ³΄λ€ μ’λ 볡μ‘ν μλ μμΌλ λ°λμ κ·Έλ° κ²μ μλλλ€. - λ³νμ§
- CPUκ° ν λΉν Time Sliceλ₯Ό νλμ Processorλ΄λΆμ μλ κ°κ°μ Threadκ° μͺΌκ°μ μ¬μ© νλ κ²μΈκ°?
- λ€μμ μκ° μ μ ν μμΈκ°?
- νκ΅ λ΄μ κ±΄λ¬Όμ΄ νλ λ°μ μλ€κ³ κ°μ
- Single Processor & Single Thread
- κ·Έ 건물μ νμ₯μ€μ΄ νλ μλ€. κ·Έλ¦¬κ³ ν λͺ λ€μ΄κ°λ©΄ λλ λͺ» λ€μ΄κ°λ€.
- Single Processor & Multi Thread
- μμ νμ₯μ€μ΄ νλ μλ€. κ·Έλ°λ° μ¬λ¬ λͺ λμμ λ€μ΄κ° μ μλ€.
- Multi Processor & Single Thread
- νμ₯μ€μ΄ μ¬λ¬ κ° μλ€. κ° νμ₯μ€μλ ν λͺ λ§ λ€μ΄κ° μ μλ€.
- Multi Processor & Multi Thread
- νμ₯μ€μ΄ μ¬λ¬ κ° μλ€. κ° νμ₯μ€μλ μ¬λ¬ λͺ μ΄ λμμ λ€μ΄κ° μ μλ€.
- β¦ μ΄ λΉμ μ CPU Schedulerλ μΆκ°νλ€λ©΄ μ΄λ€ λΉμ λ₯Ό λ€ μ μμκΉ?
- Single CPU νκ²½μ΄λΌλ©΄
- Observerκ° κ±΄λ¬Ό μμμ νλμ λ³κΈ° μ ν??
- Multi CPU νκ²½μ΄λΌλ©΄
- Observerκ° κ±΄λ¬Ό μμμ μ¬λ¬ κ°μ λ³κΈ° μ ν??
- A) processorλΌκ³ μ°μ κ²μ΄ process, cpuκ° processorλ₯Ό μλ―Ένμ κ² κ°κ΅°μ. processλ μ€νλκ³ μλ νλμ νλ‘κ·Έλ¨ μΈμ€ν΄μ€μ΄λ©°, threadλ a flow of controlμ
λλ€. μ¦, νλμ νλ‘κ·Έλ¨ μμ λ
Όλ¦¬μ μΌλ‘ μ¬λ¬ κ°μ μ μ΄ νλ¦μ΄ μ‘΄μ¬νλλ(*-thread)μ, νλμ μ»΄ν¨ν°μ λ
Όλ¦¬μ μΌλ‘ μ¬λ¬ κ°μ νλ‘κ·Έλ¨ μΈμ€ν΄μ€κ° μ€νλκ³ μλλ(*-process)λ‘ μκ°νλκ² κ°μ₯ μ’μ΅λλ€. multi-processor(multi-core)λ λ§ κ·Έλλ‘ λμμ 물리μ μΌλ‘ μ¬λ¬ κ°μ νλ¦μ μ²λ¦¬ν λ
립μ μΈ μ²λ¦¬κΈ°κ° λ³λ ¬λ‘ μ‘΄μ¬νλλμ
λλ€. μμ μ μλ μλ μ μ νμ§ λͺ»ν κ² κ°μ΅λλ€. - λ³νμ§
- "물리μ μΌλ‘ μ¬λ¬κ°μ 'νλ¦'μ μ²λ¦¬νλ€."λ λ§μμ 'κ°κ°μ CPUλ€μ΄ νλμ νλ‘μΈμ€ λ΄λΆμ μ¬λ¬ κ°μ μ°λ λλ€ μ€ κ°λ³μ μΌλ‘ μ°λ λλ₯Ό μ νν΄ μ²λ¦¬νλ€'λ λ§μμ΄μ κ°μ? - λ°μ±ν
- μ΄λ λ°μ μμμ (machine)μ
λλ€. λ λͺ
μ μ리μ¬(processor)κ° μλλ°, μ£Όλ¬Έμ΄ λ°λ €μ 5κ°μ μ리(process)λ₯Ό λμμ νκ³ μμ΅λλ€. κ·Έ μ€ μ΄λ€ ν μ리λ μμ€λ₯Ό λμ΄λ©΄μ(thread) λμμ μλ
λ λ€μ§κ³ (thread), μ¬λ£λ€μ μ€λΈμ κ΅½λλ°(thread) μ리λ₯Ό λΉ λ₯΄κ² μμ±νκΈ° μν΄ μ΄ λͺ¨λ κ²μ λμμ ν©λλ€. ν λͺ
μ μ리μ¬λ νΉμ μμ μ λ¨ ν κ°μ§ νμ(instruction)λ§ ν μ μμΌλ―λ‘, μλ
μ λ€μ§λ€κ° (context switching) μμ€κ° μ λλλ‘ μ μ΄μ£ΌκΈ°λ νκ³ (context switching) λ€μ μλ
μ λ€μ§λ€κ° (context switching) κ°μ΄ νλ λ€λ₯Έ μ리λ₯Ό νμΈνλ€κ°, μ€λΈμ νμ΄λ¨Έκ° μΈλ¦¬λ©΄(interrupt) ꡬμμ§ μ¬λ£λ₯Ό κΊΌλ΄μ΄ μ리ν©λλ€. λ¬Όλ‘ λ λͺ
μ μ리μ¬λ κ°μ μμ μ κ°μκ° λ¬Όλ¦¬μ μΌλ‘ μλ‘ λ€λ₯Έ νμλ₯Ό ν μ μμΌλ©°, νλμ μ리λ₯Ό λ μ리μ¬κ° λλ μ(parallel program) λμμ ν μλ μμ΅λλ€. - λ³νμ§
- μ΄λ λ°μ μμμ (machine)μ
λλ€. λ λͺ
μ μ리μ¬(processor)κ° μλλ°, μ£Όλ¬Έμ΄ λ°λ €μ 5κ°μ μ리(process)λ₯Ό λμμ νκ³ μμ΅λλ€. κ·Έ μ€ μ΄λ€ ν μ리λ μμ€λ₯Ό λμ΄λ©΄μ(thread) λμμ μλ
λ λ€μ§κ³ (thread), μ¬λ£λ€μ μ€λΈμ κ΅½λλ°(thread) μ리λ₯Ό λΉ λ₯΄κ² μμ±νκΈ° μν΄ μ΄ λͺ¨λ κ²μ λμμ ν©λλ€. ν λͺ
μ μ리μ¬λ νΉμ μμ μ λ¨ ν κ°μ§ νμ(instruction)λ§ ν μ μμΌλ―λ‘, μλ
μ λ€μ§λ€κ° (context switching) μμ€κ° μ λλλ‘ μ μ΄μ£ΌκΈ°λ νκ³ (context switching) λ€μ μλ
μ λ€μ§λ€κ° (context switching) κ°μ΄ νλ λ€λ₯Έ μ리λ₯Ό νμΈνλ€κ°, μ€λΈμ νμ΄λ¨Έκ° μΈλ¦¬λ©΄(interrupt) ꡬμμ§ μ¬λ£λ₯Ό κΊΌλ΄μ΄ μ리ν©λλ€. λ¬Όλ‘ λ λͺ
μ μ리μ¬λ κ°μ μμ μ κ°μκ° λ¬Όλ¦¬μ μΌλ‘ μλ‘ λ€λ₯Έ νμλ₯Ό ν μ μμΌλ©°, νλμ μ리λ₯Ό λ μ리μ¬κ° λλ μ(parallel program) λμμ ν μλ μμ΅λλ€. - λ³νμ§
- "물리μ μΌλ‘ μ¬λ¬κ°μ 'νλ¦'μ μ²λ¦¬νλ€."λ λ§μμ 'κ°κ°μ CPUλ€μ΄ νλμ νλ‘μΈμ€ λ΄λΆμ μ¬λ¬ κ°μ μ°λ λλ€ μ€ κ°λ³μ μΌλ‘ μ°λ λλ₯Ό μ νν΄ μ²λ¦¬νλ€'λ λ§μμ΄μ κ°μ? - λ°μ±ν
- A) processorλΌκ³ μ°μ κ²μ΄ process, cpuκ° processorλ₯Ό μλ―Ένμ κ² κ°κ΅°μ. processλ μ€νλκ³ μλ νλμ νλ‘κ·Έλ¨ μΈμ€ν΄μ€μ΄λ©°, threadλ a flow of controlμ
λλ€. μ¦, νλμ νλ‘κ·Έλ¨ μμ λ
Όλ¦¬μ μΌλ‘ μ¬λ¬ κ°μ μ μ΄ νλ¦μ΄ μ‘΄μ¬νλλ(*-thread)μ, νλμ μ»΄ν¨ν°μ λ
Όλ¦¬μ μΌλ‘ μ¬λ¬ κ°μ νλ‘κ·Έλ¨ μΈμ€ν΄μ€κ° μ€νλκ³ μλλ(*-process)λ‘ μκ°νλκ² κ°μ₯ μ’μ΅λλ€. multi-processor(multi-core)λ λ§ κ·Έλλ‘ λμμ 물리μ μΌλ‘ μ¬λ¬ κ°μ νλ¦μ μ²λ¦¬ν λ
립μ μΈ μ²λ¦¬κΈ°κ° λ³λ ¬λ‘ μ‘΄μ¬νλλμ
λλ€. μμ μ μλ μλ μ μ νμ§ λͺ»ν κ² κ°μ΅λλ€. - λ³νμ§
- Single CPU νκ²½μ΄λΌλ©΄
- Single Processor & Single Thread
- 곡λΆνλ€ ν·κ°λ €μ μ§λ¬Έ μ¬λ €λ΄
λλ€; - λ°μ±ν
- μ€μ€.. μ΄λ κ² λΉμ λ₯Ό ν μ μλ€λ μμ μ€λ½λ€ - μμ§ν
- μμμ λΉμ μ¬λ―Έμλ€μ. νμ ν΄μΌμ§ γ
γ
μ λ ν½μ¬λΉ λκΉ λΌλ°λμ΄λ‘ λ°κΏκ±°μμ. - κΉμκ²½
- μμ μ½μΌλ©΄μ λ§μΉ ν€λ νΌμ€νΈ μ±
μ μ½λλ―ν λλμ λ°μλ€..γ
γ
γ
- μ‘μ§ν