코딩공부/운영체제

Chapter10. 프로세스와 스레드

표자 2024. 10. 24. 15:45
728x90
반응형

Chapter10. 프로세스와 스레드

학습목표

  • 프로세스 제어 블록이란 무엇인지 이해합니다
  • 문맥 교환의 정의와 과정을 학습합니다
  • 프로세스는 메모리에 어떻게 배치되는지 학습합니다
  • 프로세스 상태와 프로세스 계층 구조를 학습합니다
  • 스레드의 개념을 이해하고, 멀티프로세스와 멀티스레드의 차이를 이해합니다

프로세스 제어 블록

  • 운영체제는 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 할당함.
  • 이를 위해 운영체제는 프로세스 제어블록(PCB)를 이용
  • 프로세스 제어 블록**(PCB)**은 프로세스와 관련된 정보를 저장하는 자료 구조
  • 마치 상품에 달린 태그와 같음
  • PCB는 커널 영역에서 생성됨
  • 새로운 프로세스를 생성했다 → 운영체제가 PCB를 생성했다

문맥 교환

  • 운영체제는 빠르게 프로세스의 실행순서를 관리함
  • 프로세스 A에서 B로 바꿀때 A의 실행정보를 백업해야함
  • 이러한 중간 정보, 즉 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보를 **‘문맥’**이라 함
  • 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 것을 **‘문맥 교환’**이라고 함
  • 문맥 교환은 여러 프로세스가 끊임없이 빠르게 번갈아 실행되는 원리임

프로세스의 메모리 영역

  • 프로세스가 생성되면 커널 영역에 PCB가 생성됨
  • 사용자 영역에는 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됨
  • 정적 할당 영역 (크기가 고정된 영역)
    • 코드 영역: 텍스트 영역이라 불림. 실행할 수 있는 코드, 즉 기계어로 이루어진 명령어가 저장 됨
      • CPU가 실행할 명령어가 담겨 있기 때문에, 읽기 전용 공간
    • 데이터 영역: 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간
      • 대표적으로 전역 변수(프로그램이 실행되는 동안 유지되며, 프로그램 전체에서 접근 가능한 변수)
  • 동적 할당 영역
    • 힙 영역
      • 프로그램을 만드는 사용자, 즉 프로그래머가 직접 할당할 수 있는 저장 공간
      • 메모리 공간을 할당 했다면 언젠간 반납해야 함
      • 반납하지 않는다면 메모리 누수 발생
    • 스택 영역
      • 데이터를 일시적으로 저장하는 공간
        • 매개변수, 지역변수

프로세스 상태

  • 프로세스는 생성, 준비, 실행, 대기, 종료 상태를 거치며 실행됩니다

스레드

  • 스레드란 프로세스를 구성하는 실행의 흐름 단위

[비교] 멀티프로세스와 멀티스레드

https://pyoja.tistory.com/303

728x90
반응형