process 개념

About_work·2022년 12월 12일
0

process, thread

목록 보기
10/23

process

  • 운영체제로부터 시스템 자원을 할당 받는 자원의 단위

  • 시스템 자원의 예

    • CPU 시간
    • 파일
    • 입출력 장치
    • 주소 공간
    • 독립된 메모리 영역
  • 프로세스가 OS로부터 할당받는 대표적 메모리 공간 4가지

    • 데이터 영역
      - global 변수와 static 변수, 배열, 구조체, 문자열 상수가 저장되는 영역
      - 프로그램 시작과 함께 할당
    • stack 영역
      - 함수의 호출과 함께 할당된다.
      - 컴파일 타임에 크기가 결정된다.
      - 임시 메모리
      - 함수의 호출과 관계되는 local 변수나 parameter가 저장되는 영역
      - Last in First Out
      - 데이터 access가 빠른편이다.
    • heap 영역
      - 런타임 시에 크기가 결정됨
      - 사용자가 직접 관리할 수 있고, 관리해야 하는 영역
      - 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨.
      - First-in-First-OUt
      - 장점
      1. 메모리 크기에 제한이 없음
      - 단점
      1. 데이터 엑세스가 상대적으로 느린 편
      2. 메모리를 관리해야 함
      3. 힙 경합으로 인한 속도 저하 발생
  • python 에서는?

    • 파이썬에서의 heap 사용
      - 파이썬은 동적 할당의 기능이 없습니다.
      • 사용자가 직접 메모리 할당 범위를 조정하지 않습니다.
      • Python Memory Manager은 자동으로 메모리를 관리해주는 언어이기 때문입니다.
        1. Heap 영역의 메모리 할당 범위와 내부 버퍼를 조정해줍니다.
      • 링크텍스트
      • 출처: 위 링크텍스트
  • 부모 자식 프로세스

    • 부모가 자식 프로세스를 생성하면, 두 프로세스가 가능한 실행 방식
      - 병행되어 같이 실행
      • 자식 프로세스들이 전부 종료될 때까지 대기(wait)
    • 주소 공간 가능한 방식 2가지
      - 완전히 같은 복사본 (fork)
      • 다른 새 프로그램이 탑재 (exec)
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글