E D R , A S I H C RSS

Questions About Multi Process And Thread

  1. 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) λ‹€μŒ λ§ν¬λΌ μ°Έμ‘°ν•˜μ„Έμš”. DMA - λ³€ν˜•μ§„
        • κ°μ‚¬ν•©λ‹ˆλ‹€. DMAλΌλŠ” νŠΉμ„± 덕뢄에 λ…λ¦½μ μœΌλ‘œ I/OλΌ ν•  수 μžˆλŠ”κ±°κ΅°μš”. - λ°•μ„±ν˜„

  2. 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 μŠ€μΌ€μ„링보닀 μ€λ” λ³΅μž‘ν•  μˆ˜λŠ” μžˆμœΌλ‚˜ λ°˜λ“œμ‹œ 그런 것은 μ•„λ‹™λ‹ˆλ‹€. - λ³€ν˜•μ§„
        • μ²«λ²ˆμ§Έμ™€ μ„Έλ²ˆμ§Έ μ§ˆλ¬Έμ— λŒ€ν•œ 닡변은 "time slice 정책에 따라 λ‹€λ₯΄λ‹€." μΈκ±°μ—μš”?? - λ°•μ„±ν˜„
          • μ•„ν‚€ν…μ²˜, 운영체제, 개발 μ–Έμ–΄ λŸ°νƒ€μž„ λ“± ν•΄λ‹Ή ν”Œλž«νΌ ν™˜κ²½μ—μ„œμ˜ thread κ΅¬ν˜„ 방식에 따라 λ‹€λΌ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. - λ³€ν˜•μ§„

  3. λ‹€μŒμ˜ μ˜ˆκ°€ μ μ ˆν•œ μ˜ˆμΈκ°€?
    - 학ꡐ 내에 건물이 ν•˜λ‚˜ 밖에 μ—†λ‹€κ³  κ°€μ •
    • 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) λ™μ‹œμ— ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. - λ³€ν˜•μ§„

  • κ³΅λΆ€ν•˜λ‹€ ν—·κ°ˆλ €μ„œ 질문 μ˜¬λ €λ΄…λ‹ˆλ‹€; - λ°•μ„±ν˜„
  • 였였.. μ΄λ ‡κ²Œ λΉ„μœ λΌ ν•  수 μžˆλ‹€λ‹ˆ μ˜ˆμˆ μŠ€λŸ½λ„€ - μ„œμ§€ν˜œ
  • μŒμ‹μ  λΉ„μœ  재λΈμžˆλ„μš”. ν‘œμ ˆν•΄μ•Όμ§€ γ…‹γ…‹ μ €λŠ” ν”½μ‚¬λΉ λ‹ˆκΉŒ λΌλ”°λšœμ΄λ‘œ λ°”κΏ€κ±°μ˜ˆμš”. - κΉ€μˆ˜κ²½
  • 예제 μ½μœΌλ©΄μ„œ 마치 ν—€λ“œ 퍼슀트 책을 μ½λŠ”λ“ν•œ λŠλ‚Œμ„ λ°›μ•˜λ‹€..γ…‹γ…‹γ…‹ - μ†‘μ§€ν›ˆ
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:09
Processing time 0.0220 sec