E D R , A S I H C RSS

QuestionsAboutMultiProcessAndThread (rev. 1.2)

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

  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 스케줄링보다 좀더 복잡할 수는 있으나 반드시 그런 것은 아닙니다.

  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)는 말 그대로 동시에 물리적으로 여러 개의 흐름을 처리할 독립적인 처리기가 병렬로 존재하느냐입니다.


  • 공부하다 헷갈려서 질문 올려봅니다; - 박성현
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:09
Processing time 0.0265 sec