본문 바로가기
CS/OS

프로세스와 스레드

by dvid 2022. 12. 30.

프로세스와 스레드

프로세스

  • PCB(Process Controll Block)를 사용하여 OS가 프로세스를 관리한다.

  • 특징

    • 메모리에 적재되어 실행되는 프로그램의 인스턴스
    • 운영체제로부터 시스템 자원을 할당받는 작업의 단위
    • 프로세스는 각각 독립된 메모리 영역을 할당받는다.
    • 각 프로세스는 최소 하나의 스레드를 가진다.
    • 각 프로세스는 별도의 주소공간을 가지며, 프로세스는 다른 프로세스의 공간에 접근할 수 없다.
  • 구조

    • Stack
      • 임시 데이터 저장 (함수 호출, 지역변수 등)
      • 함수를 호출할 수록 커지며 힙 메모리와 인접한 방향으로 커진다.
      • 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었다는 의미다.
    • Heap
      • 코드에서 동적으로 만들어지는 데이터 저장
    • Data
      • 전역 변수, static 변수 등
    • Code
      • 프로그램을 실행시키는 실행파일 내의 명령어들이 기계어 명령 형태로 변환되어 저장
      • readOnly

스레드

  • 프로세스에서 실행되는 여러 흐름의 단위
  • 스레드는 프로세스 안에서 Stack 메모리만 할당받고 나머지 영역(Code, Data, Heap)은 공유한다.

프로세스와 프로그램

  • 프로그램: 파일 시스템에 존재하는 실행파일
  • 프로세스: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

결론

  • 프로세스(작업)는 최소 한 개의 스레드 존재.
  • OS는 Virtual Memory를 프로세스에 할당
  • 프로세스에 속한 모든 스레드는 프로세스의 Virtual Memory로 공간이 제약된다.

참고

'CS > OS' 카테고리의 다른 글

뮤텍스, 세마포어, 모니터  (0) 2023.03.01

댓글