CS

운영체제 공룡책 강의 정리 - 섹션 2 Chapter 2. Process(1)

사과만쥬 2024. 7. 3. 22:28

프로세스의 이해

프로세스란

  • 운영체제의 작업 단위
    • 운영체제가 해야 될 기본적인 일: 프로세스 관리
  • 작업을 수행하기 위해서는 특정 리소스(CPU 타임, 메모리, 파일, I/O 디바이스) 등이 필요하다.
  • 싱글 스레드(한번에 한가지 일)에서 실행된다

프로세스의 메모리 레이아웃

  • 텍스트 섹션과 데이터 섹션은 정적 할당 영역(크기 고정됨), 힙 섹션과 스택 영역은 동적 할당 영역.
  • 텍스트 섹션
    • executable code
    • 기계어로 이루어진 명령어가 저장된다.
    • 읽기 전용 공간
  • 데이터 섹션
    • 잠깐 썼다가 없앨 데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간
    • 전역 변수
  • 힙 섹션
    • malloc(C언어), new(자바) 같은 것들이 쭉 쌓이는 영역
    • 프로그래머가 직접 할당할 수 있는 저장 공간
    • 메모리 공간을 반환한다
      • 더 이상 해당 메모리 공간을 사용하지 않겠다고 운영체제에게 말해주는 것과 같다.
      • 반환하지 않으면 메모리 누수가 발생함.
  • 스택 섹션
    • 함수 호출을 했을 때 함수의 파라미터들, 반환할 주소나 지역 변수가 쌓이는 영역

어떤 프로그램이 시작하는 영역이 0번지고, 이 프로그램의 최대 메모리 영역이 max라고 한다.

프로세스 제어 블록(PCB)

  • 정의
    • 프로세스와 관련된 정보를 저장하는 자료 구조
    • 해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장됨.
  • 특징
    • 커널 영역에 생성됨
    • 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기된다
      • 새로운 프로세스가 생성되었다 = 운영체제가 PCB를 생성했다
      • 프로세스가 종료되었다 = 운영체제가 해당 PCB를 폐기했다
  • 담기는 정보들
    • PID(Process ID)
      • 특정 프로세스를 식별하기 위해 부여하는 고유한 번호(학교의 학번, 회사의 사번과 같은 존재)
    • 레지스터 값
    • 프로세스 상태
    • CPU 스케쥴링 정보
    • 메모리 관리 정보
    • 사용한 파일과 입출력장치 목록

Context Switching

  • Context
    • 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
  • Context Switching
    • 기존 프로세스의 문맥을 PCB에 백업하고, 새로운 프로세스를 실행하기 위해 문맥을 PCB로부터 복구하여 새로운 프로세스를 실행하는 과정.