0%

프로세스와 스케쥴러의이해

프로세스(process)란?

실행중인 프로그램은 프로세스라고 함, 메모리에 올려져서 실행중인 프로그램

코드 이미지(바이너리): 실행 파일

응용 프로그램 != 프로세스

응용 프로그램은 여러 프로세스로 구성 가능

프로세스 스케쥴링

배치 처리 시스템

여러 프로그램을 순차적으로 실행시킬 수 있도록 / 어떤 프로그램은 실행이 너무 오래 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 함

시분할 시스템

다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템

멀티 태스킹

단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템 / ex)10 ~ 20ms단위로도 실행 응용 프로그램이 바뀜

멀티 프로그래밍

최대한 CPU를 많이 활용하도록 하는 시스템

응용 프로그램은 CPU 외 다양한 하드웨어 사용

멀티 프로그래밍과 Wait

멀티 프로그래밍: CPU 활용도를 극대화 하는 스케쥴링 알고리즘

Wait: 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정

프로세스 상태

  • runnig state: 현재 CPU에서 실행 상태
  • ready state: CPU에서 실행 가능 상태(실행 대기 상태)
  • block state: 특정 이벤트 발생 대기 상태

정리

  • 시분할 시스템: 다중 사용자 지원, 컴퓨터 응답시간을 최소화하는 시스템
  • 멀티 태스킹: 단일 CPU에서 여러 응용 프로그램을 동시에 실행하는 것처럼 보이게 하는 시스템
  • 멀티 프로그래밍: 최대한 CPU를 일정 시간당 많이 활용하는 시스템
  • 멀티 프로세싱: 여러 CPU에서 하나의 응용 프로그램을 병렬로 실행해서,실행속도를 높이는 기법