10장 프로세스와 스레드

2023. 3. 26. 22:48

10-1) 프로세스 개요

  • 프로세스는 실행중인 프로그램을 의미한다.
    • 포그라운드 프로세스 : 사용자가 볼 수 있는 공간에서 실행되는 프로세스
    • 백그라운드 프로세스 : 사용자가 보지 못하는 뒤편에서 실행되는 프로세스
      • 사용자와 상호작용하지 않고 자신의 일만 수행하는 백그라운드 프로세스를 데몬(daemon)이라 부른다.
      • 윈도우 운영체제에서는 서비스(service)라고 부름
  • 프로세스 제어 블록 (PCB : Process Control Block)
    • 프로세스와 관련된 정보를 저장하는 자료 구조
    • PCB는 커널 영역에 생성됨
    • PCB 내부 정보
      • PID(Procee ID) : 프로세스 고유 번호
      • 레지스터 값 : 이전까지 사용했던 레지스터의 중간값들을 모두 복원
      • 프로세스 상태
      • CPU 스케쥴링 정보
      • 메모리 관리 정보
      • 사용한 파일과 입출력장치 목록
  • 문맥 교환 (Context Switch)
    • 기존 프로세스 문맥을 PCB에 백업하고, 새로운 프로세스를 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것
  • 프로세스의 메모리 영역
    • 코드 영역 (= 텍스트 영역)
      • 기계어로 이루어진 명령어 저장
      • 읽기 전용 공간
    • 데이터 영역
      • 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간
      • ex) 전역변수
      • 코드영역과 데이터영역은 크기가 고정되어있음
    • 힙 영역
      • 사용자가 직접 할당할 수 있는 저장 공간
    • 스택 영역
      • 데이터를 일시적으로 저장하는 공간
      • ex) 매개 변수, 지역 변수

10-2) 프로세스 상태와 계층 구조

  • 프로세스 상태
    • 생성 상태 (new)
      • 이제 막 메모리에 적재되어 PCB를 할당 받은 상태
    • 준비 상태 (ready)
      • CPU 할당을 기다리는 상태
    • 실행 상태 (running)
      • CPU를 할당받아 실행 중인 상태
    • 대기 상태 (blocked)
      • 실행 도중 입출력장치의 작업을 기다리는 상태
    • 종료 상태 (terminated)
      • 프로세스가 종료된 상태
      • 종료 시 운영체제는 PCB와 프로세스가 사용한 메모리를 정리한다.
  • 프로세스 계층 구조
    • 컴퓨터가 부팅될 때 실행되는 최초의 프로세스가 자식 프로세스들을 생성하고 생성된 자식 프로세스들이 새로운 프로세스들을 낳는 형식으로 여러 프로세스가 동시에 실행됨

10-3) 스레드

  • 스레드는 실행의 단위
  • 하나의 프로세스는 여러개의 스레드를 가질 수 있음

  • 프로세스와 스레드
    • 과거에 프로세스는 한번에 하나의 일만 처리 가능 했음 (단일 스레드 프로세스)
    • 스레드 개념이 도입되면서 하나의 프로세스가 한번에 여러 일을 동시에 처리할 수 있게됨(멀티 스레드 프로세스)
    • 스레드는 '프로세스를 구성하는 실행단위'
    • 여러 프로세스를 동시에 실행하는 것이 멀티 프로세스, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드

' > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글

12장 프로세스 동기화  (0) 2023.03.29
11장 CPU 스케줄링  (0) 2023.03.29
9장 운영체제 시작하기  (0) 2023.03.26
8장 입출력장치  (0) 2023.03.23
7장 보조기억장치  (0) 2023.03.23

+ Recent posts