ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스와 스레드
    CS 지식/운영체제 2020. 8. 17. 11:33
    반응형

    프로세스와 스레드

    • 프로세스

      • 사전적 의미
        • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
        • OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스
        • OS로부터 시스템 자원을 할당받는 작업의 단위
        • 동적 개념으로는 실행된 프로그램을 의미
      • 할당받는 시스템 자원
        • CPU 시간, 주소 공간, Code, Data, Stack, Heap 구조로 되어있는 독립된 메모리 영역
      • 프로세스는 각각 독립된 메모리 영역을 할당 받는다.
      • 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다.
      • 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 직접 접근 불가.
      • 다른 프로세스의 자원에 접근하려면 프로세스 간 통신(IPC)을 사용해야함
        • ex) 파이프, 파일, 소켓 등
      • 메모리 구조
        • 스택
          • 함수나 프로시저를 호출하고 리턴할 때 복귀 주소나 지역 변수와 같은 일시적 데이터를 기억
          • 프로그램 실행 중에 동적으로 메모리를 할당할 수 있는 자유로운 영역
        • 데이터 (BSS, GVAR)
          • 초기화한 데이터 구조에 따라서 읽고 쓰기가 가능한 영역
        • 텍스트
          • 프로세서가 실행할 바이너리 코드를 저장해 놓은 영역
    • 스레드

      • 사전적 의미
        • 프로세스 내에서 실행되는 여러 흐름의 단위
        • 프로세스의 특정 수행 경로
        • 프로세스가 할당받은 자원을 이용하는 실행 단위
      • 스레드는 프로세스 내에서 각각 Stack만 따로 할당받아 실행되는 독립적인 단위
      • 멀티쓰레드는 Code, Data, Heap 영역 공유 (Stack은 각각 할당받음)
      • 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들(힙 공간 등)을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다.
      • 같은 프로세스 안에 있는 여러 스레드들은 같은 힙 공간을 공유한다.
      • 각각의 스레드는 별도의 레지스터와 스택을 가지고 있지만, 힙 메모리는 서로 읽고 씀
      • 한 스레드가 프로세스 자원을 변경 ~> 다른 이웃 스레드도 그 변경 결과를 즉시 볼 수 있다.
    • 스레드 풀

      • 스레드를 매번 만들지 않고 재사용하는 것이 효율적 ( 재사용 )
      • 동작 방식
        • task queue에 task가 추가 됨
        • thread pool이 task를 가져와서 thread에 작업 할당
        • 각 thread는 작업 진행
        • 완료된 thread는 완료 상태로 존재
    • 프로세스 스케쥴링

      • 프로세스 상태
        • 생성 -> 준비 -> 실행 <-> 대기 -> 종료 단계
          • new -> ready -> running -> waiting -> terminated로 각각 표시됨
        • 프로세스를 생성해서 계속해서 실행하지 않고, 다른 프로세스를 실행하는 동안 대기했다가 다시 실행하는 순서를 반복
      • 알고리즘 선택 기준
        • 프로세서 사용률
          • 항상 실행 상태 유지 === 유휴 상태가 되지 않도록(CPU가 쉬는 시간)
            ~> 입출력 중심 작업보단 프로세서 중심 작업 실행
        • 처리율
          • 단위 시간당 완료하는 작업 수가 많도록 짧은 작업 우선 처리 or 인터럽트 없도록 작업
        • 반환시간
          • 작업이 메모리에 들어가기까지 걸린 시간, Ready Queue에 머무는 시간, 실행 시간, I/O 시간 등 작업을 완료하는데 걸리는 시간을 최소화(끝난시간 - 도착시간)
        • 대기시간
          • Ready Queue에서 기다리는 시간을 최소화(시작시간 - 도착시간)
        • 반응시간
          • 작업을 요청한 시간부터 반응을 시작하는 시간까지의 간격.
          • 대화형 시스템에서 중요함.
            • 다중 작업용 운영 체제의 경우 여러 프로그램들을 같이 수행시켜도
              사용자 입장에서는 각 프로그램에 대한 키보드 입력의 결과를
              곧바로 화면에 보여 주기 때문에 이러한 시스템을 대화형 시스템이라 함
    반응형

    'CS 지식 > 운영체제' 카테고리의 다른 글

    Deadlock & Starvation  (0) 2020.10.21
    프로세스와 스레드  (0) 2020.10.21
    멀티 스레드의 임계 구역과 뮤텍스, 세마포어  (0) 2020.08.17
    PCB와 TCB  (0) 2020.08.17
    CPU ( 중앙처리장치 )  (2) 2020.08.08

    댓글

Designed by Tistory.