운영체제

[운영체제] Process

mygomii 2022. 2. 10. 07:16
반응형
  • 작업(job)/프로그램
    • 실행 할 프로그램 + 데이터
    • 컴퓨터 시스템에 실행 요청 전의 상태
  • 프로세스
    • 실행을 위해 시스템에 등록된 작업
    • 시스템 성능 향상을 위해 커널에 의해 관리 됨

 

프로세스 정의

  • 실행중인 프로그램
    • 커널에 등록되고 커널의 관리 하에 있는 작업
    • 각종 자원들을 요청하고 할당 받을 수 있는 개체
    • 프로세스 관리 블록을 할당 받은 개체
    • 능동적인 개체 - 실행 중에 각종 자원을 요구, 할당, 반납하여 진행
  • PCB
    • 커널 공간 내에 존재
    • 각 프로세스에 대한 정보를 관리

프로세스 종류

  • 시스템 프로세스
  • 사용자 프로세스
  • 독립 프로세스
  • 협력 프로세스

자원(Resource) 개념 

  • 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체
  • 자원의 분류
    • H/W 리소스 - processor, memory, disk, monitor, keyboard
    • S/W 리소스 - Message, signal, files, installed SW

Process Control Block (PCB)

  • OS가 프로세스 관리에 필요한 정보 저장
  • 프로세스 생성 시, 생성 됨
  • PCB 가 관리하는 정보
    • PID - 프로세스 고유 식별 정보
    • 스케줄링 정보 - 프로세스 우선순위 등과 같은 스케줄링 관련 정보들
    • 프로세스 상태 - 자원 할당, 요청 정보 등
    • 메모리 관리 정보
    • 입출력 상태 정보 - 할당 받은 입출력 장치, 파일 등에 대한 정보 등
    • 문맥 저장 영역(Context save area) - 프로세스의 레지스터 상태를 저장하는 공간 등
    • 계정 정보 - 자원 사용 시간 등을 관리

프로세스 상태

 

  • 프로세스 - 자원 간의 상호작용에 의해 결정
  • 프로세스 상태 및 특성
  • Created State
    • 작업을 커널에 등록
    • PCB 할당 및 프로세스 생성
    • 커널 - 가용 메모리 공간 체크 및 프로세스 상태 전이
  • Ready State
    • 프로세서 외에 다른 모든 자원을 할당 받은 상태
      • 프로세서 할당 대기 상태
      • 즉시 실행 가능 상태
    • Dispatch
      • Ready state → Running State
  • Running State
    • 프로세서와 필요한 자원을 모두 할당받은 상태
    • Preemption
      • Running state → ready state
      • 프로세서 스케줄링
    • Block/sleep
      • Running state → asleep state
      • I/O 등 자원 할당 요청
  • Blocked/ Asleep State
    • 프로세서 외에 다른 자원을 기다리는 상태
      • 자원 할당은 System Call에 의해 이루어짐
    • Wake-up
      • Asleep state → ready state
  • Suspended State
    • 메모리를 할당 받지 못한(빼앗긴) 상태
      • Memory image를 swap device에 보관
    • Swap-out(Suspended), Swap-in(Resume)
  • Terminated/Zombie State
    • 프로세스 수행이 끝난 상태
    • 모든 자원 반납 후 커널 내에 일부 PCB정보만 남아 있는 상태 - 이후 프로세스 관리를 위해 정보 수집

인터럽트(interrupt)

 

  • 예상치 못한, 외부에서 발생한 이벤트
  • 인터럽트의 종류
    • I/O interrupt
    • Clock interrupt
    • Console interrupt
    • Program check interrupt
    • Machine check interrupt
    • Inter-profess interrupt
    • System call interrupt

Context Swithching (문맥교환)

 

  • Context
    • 프로세스와 관련된 정보들의 집합
  • Context saving
    • 현재 프로세스의 Register context를 저장하는 작업
  • Context restoring
    • Register context를 프로세스륿 복구하는 작업
  • Context switching (saving + restoring)
    • 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구 하는 일 - 커널의 개입으로 이루어짐

Context Switch Overhead

  • Context switching 에 소요되는 비용
    • OS 마다 다름
    • OS의 성능에 큰 영향을 줌
  • 불필요한 Context switching을 줄이는 것이 중요
    • Ex) 스레드 사용 등

 

참고 사이트

https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

https://brunch.co.kr/@babosamo/100

https://www.youtube.com/watch?v=jZuTw2tRT7w&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5

 

 

 

반응형