정리노트/필요한것

[운영체제 CS] 3장 프로세스

컵라면만두세트 2021. 7. 22. 22:15

프로세스의 개념

  • 프로그램 : 명령어의 집합 저장 위주
  • 주기억장치(준비) -> CPU(실행), 비동기적 행위 -> 동기화 필요
  • 프로세스란? 실행 중인 프로그램(동적)
  • 디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태. 해당 프로세스가 사용하고 있는 메모리 영역
  • 프로세스는 반드시 한개의 PCB와 연결된다.
    1. 실행 중인 프로그램
    2. 비동기적 행위
    3. 실행 중인 프로시저
    4. 실행 중인 프로시저의 제어 추적
    5. 운영체제에 들어 있는 PCB와 연결
    6. 프로세서에 할당하여 실행 할 수 있는 개체 디스패치가 가능한 상태

프로세스 종류

  • 시스템(커널) 프로세스
    1. 모든 시스템 메모리와 프로세서의 명령에 액세스 할 수 있음
    2. 프로세스 실행 순서 제어를
  • 사용자 프로세스
    1. 사용자 코드를 수행 프로세스
  • 병행 수행 방법에 따른 분류
    1. 독립 프로세스 : 다른 프로세서 영향 X, 영향 받지도 X 수행 하는 병행 프로세스
    2. 협력 프로세스 : 독립과 반대

프로세스의 상태 (Process State)

  • 생, 준, 실, 대, 완
  • 생성 : pcb 생성, 메모리 공간 확보
  • 준비 : 메모리 + 자원 할당
  • 실행 : cpu time-slice
  • 대기 : 프로세서 어떤 이벤트가 일어나기를 기다리는 상태
  • 완료 : pcb 삭제 + 자원 해제

상태 변환 1. 준비 -> 실행 (디스패칭) : 준비 상태의 프로세스는 디스패처에 의해 프로세서가 부여, 실행상태가 된다. 2. 실행 -> 준비 (time run out) : 어떤 프로세스가 프로세서를 계속 독점 방지. 지정된 시간동안만 독점 가능 3. 실행 -> 대기 (block) : 지정된 시간 이전에 입출력이 들어오면 스스로에게 양도된다. 4. 대기 -> 준비 (wake up) : 입출력 작업이 끝났으면, 대기는 준비로

Process Control Block(PCB)

  • 프로세스 제어 블럭
  • 운영체제에 특정 프로세스에 대한 중요 정보 제공
  • 프로세스 생성할 떄 만들어지며, 주기억장치에 유지, 운영체제 내에서 한프로세스의 존재 정의
  • 인터럽트 처리, 자원할당, 스케줄링 등 수행 모든 모듈에 의해 판독

프로세스 생성 시 필요한 세부 작업

  • 새로운 프로세스에 프로세스 식별자 할당
  • 프로세스의 모든 구성 요소 포함, 주소 공간과 프로세스 제어 블록 공간 할당
  • 프로세스 제어 블록 초기화. 프로세스 상태, 가운터 초기화 자원 요청, 우선순위 등을 포함
  • 해당 준비큐에 삽입

문맥 교환 (Context Switch)

  • 상태정보 저장
  • 이전 상태 레지스터 내용 보관, 다른 프로세스 레지스터를 적재
  • 준비->실행, 실행->준비, 실행->대기 상태로 변화할때 발생
  • 과부하가 발생
  • 자주 발생 하기 때문에 효율적으로 구현되어야한다. 이를 위해 스레드를 사용