Computer Science/Operating System

혼자 공부하는 운영체제 - 10. 프로세스와 스레드

git-sun 2024. 8. 4. 21:25

혼자 공부 가능!

 

 

 

프로세스

종류

  • 포어그라운드 프로세스
  • 백그라운드 프로세스

PCB

문맥(context)을 담고있으며 커널에 저장되는 자료 구조

  • 문맥
    • PID
    • 레지스터 값
    • 프로세스 상태
      • 프로세스 상태 다이어그램
        • 생성(new)
        • 준비(ready)
        • 실행(running)
        • 대기(blocked)
        • 종료(terminated)
      • 프로세스 계층 구조
        • 쓰기 시 복사(copy on write)과 관련 
        • 부모 프로세스
          • fork() 시스템 호출로 자식 프로세스 생성
        • 자식 프로세스
          • exec() 시스템 호출로 프로그램 덮어쓰기
    • CPU 스케줄링 정보
    • 메모리 관리 정보
    • 사용한 파일과 입출력장치 목록
  • 문맥 교환
    • 빈번한 문맥 교환은 오버헤드 발생 원인

사용자 영역

  • 정적 할당 영역
    • 코드 영역
      • 텍스트 영역으로도 불림
      • 읽기 전용
      • 기계어가 담기는 영역
    • 데이터 영역
      • 전역변수가 담기는 영역
  • 동적 할당 영역
    • 힙 영역
      • 사용자가 직접 할당 가능한 저장 공간
      • 할당한 메모리를 회수하지 않으면 메모리 누수 발생 가능
    • 스택 영역
      • 매개변수, 전역변수가 담기는 영역

 

 

 

스레드

프로세스를 구성하는 실행 흐름 단위

스레드에 따른 프로세스 분류

  • 단일 스레드 프로세스
  • 멀티 스레드 프로세스
    • 스레드 간 프로세스 자원 공유
      • 스레드 간 협력과 통신 유리
      • 메모리의 효율적 사용
      • 스레드의 문제가 프로세스 전체로 전파 가능

멀티 프로세스

여러 개의 프로세스를 이르는 말

  • 프로세스 간 통신 ; Inter Process Communication(IPC)
    • 공유 메모리 영역을 따로 두어 프로세스 간 통신이 가능

 

 

 

 

반응형