ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스레드와 병행성
    Computer Science/Operating System 2021. 1. 10. 00:08

    질문

    4.1 개요

    • 스레드는 어떻게 구성되어 있는가?
      • 스레드 id, 프로그램 카운터, 레지스터 집합, 스택으로 구성됨
    • 단일 스레드 프로세스와 다중 스레드 프로세스의 차이?
      • 다중 스레드 프로세스는 동시에 하나 이상의 작업을 수행할 수 있음
    • 다중 스레드 프로그래밍의 장점은 무엇이 있는가?
      • 응답성 : 동시에 많은 일을 처리할 수 있기 때문에 다른 작업을 하면서도 사용자의 요청에 응답할 수 있다.
      • 자원 공유 : 프로세스는 공유 메모리와 메시지 전달 기법을 통해야만 자원을 공유할 수 있음. 반면에 스레드는 자신이 속한 프로세스의 자원들과 메모리를 공유할 수 있다.
      • 경제성 : 스레드 생성은 프로세스 생성보다 시간과 메모리를 덜 소비한다
      • 규모 적응성 : 병렬 수행이 가능하기 때문에 빠르다

    4.2 다중 코어 프로그래밍

    • 병행성과 병렬성의 차이?
      • 병행성 : 모든 작업이 진행되게 하여 둘 이상의 작업을 지원함
      • 병렬성 : 모든 작업을 동시에 수행할 수 있음

    4.3 다중 스레드 모델

    • 사용자 스레드와 커널 스레드는 어떤 연관관계들을 가지는가?
      • 다대일 모델
      • 일대일 모델
      • 다대다 모델

    4.4 스레드 라이브러리

    • 비동기 스레딩이란 ?
      • 부모가 자식 스레드를 생성한 후 부모는 자신의 실행을 재개하여 부모와 자식 스레드가 서로 독립적으로 병행하게 실행됨. 스레드가 독립적이기 때문에 스레드 사이의 데이터 공유는 거의 없음
    • 동기 스레딩이란?
      • 부모 스레드가 하나 이상의 자식 스레드를 생성하고 자식 스레드 모두가 종료할 때까지 기다렸다가 자신의 실행을 재개하는 방식

    4.5 암묵적 스레딩

    • 암묵적 스레딩이란 무엇인가요?
      • 스레딩의 생성과 관리 책임을 응용 개발자로부터 컴파일러와 실행시간 라이브러리에게 넘겨주는 것입니다.
    • 스레드풀이 무엇인가요?
      • 일정한 수의 스레드들을 미리 풀로 만들어두고 평소에는 하는 일 없이 일감을 기다리고 있습니다. 요청을 받으면 스레드 풀에 제출하고 추가 요청 대기를 재개합니다. 풀에 사용 가능한 스레드가 있으면 깨어나고 요청이 즉시 서비스됩니다. 풀에 사용 가능한 스레드가 없으면 사용 가능한 스레드가 생길 때까지 작업이 대기됩니다.
    • 스레드풀의 장점은 무엇인가요?
      • 새 스레드를 만드는 것보다 기존 스레드로 서비스 하는것이 더 빠름
      • 스레드의 개수에 제한을 둘 수 있어 많은 수의 스레드를 병렬 처리할 수 없는 시스템에 도움이 된다

    4.6 스레드와 관련된 문제

    • 스레드-로컬 저장장치란 무엇인가요?
      • 한 프로세스에 속한 스레드들은 그 프로세스의 데이터를 모두 공유합니다. 하지만 상황에 따라서는 각 스레드가 자기만 액세스할 수 있는 데이터를 가져야 할 필요도 있습니다. 그러한 데이터를 스레드-로컬 저장장치라고 합니다(Thread-Local Storage)

    요약

    • 스레드는 CPU 사용의 기본 단위를 나타내며 동일한 프로세스에 속하는 스레드는 코드 및 데이터를 포함하여 많은 프로세스 자원을 공유합니다.
    • 다중 스레드 응용 프로그램에는 응답성, 자원공유, 경제성, 확장성이라는 4가지 이점이 있습니다.
    • 여러 스레드가 진행 중인 경우 병행성이 존재하는 반면에 여러 스레드가 동시에 진행 중인 경우 병렬성이 존재합니다다.

    'Computer Science > Operating System' 카테고리의 다른 글

    메모리 관리  (0) 2021.01.14
    교착 상태  (0) 2021.01.14
    동기화 도구들  (0) 2021.01.10
    CPU 스케줄링  (0) 2021.01.10
    프로세스  (0) 2021.01.10

    댓글

Designed by Tistory.