본문 바로가기
Operating System

프로세스 생애주기, 스케쥴링

by Doromi 2019. 4. 17.
728x90
반응형

Operating system

- system hardware를 관리하고, 응용 프로그램을 동작시키기 위해 hardware resource를 할당하는 역할
사용자가 프로그램을 실행할 때, 운영체제를 통해 hardware와 소통.

 

- CPU, 메모리, 보조 기억 장치, 네트워크 등의 자원들을 잘 관리하여 응용 소프트웨어들에게 
제공해주는 역할을 하는 소프트웨어


프로세스 생애주기

 

- 프로세스란?

프로그램의 인스턴스로 운영 체제에서 가장 기본적인 실행 단위이다.

각 프로세스는 메모리를 차지하고, 일정 상태 주기를 기다린다.

  1. new (처음 프로그램을 실행하기 위해 OS에게 요청하면 프로세스를 new상태로 생성)
  2. ready (실행 가능한 상태가 되면 ready 상태)
  3. running (ready상태의 프로세스는 스케쥴러에 의해 running 상태가 되어 실행)
  4. waiting (I/O 혹은 이벤트 대기에 의해 waiting 상태가 되거나 인터럽트에 의해 ready상태가 됨)
  5. terminated (실행 중이던 프로그램이 종료되면 terminated 상태가 됨. OS에 의해 자원이 회수)

 

스케쥴링(Scheduling)

 

- 현대 OS의 기본적인 기능으로 멀티프로그래밍이 있다.
싱글 코어 프로세서일 경우 동시에 여러 프로그램을 실행할 수 없기 때문에 실제로 시분할을 통해

각 시간 분할마다 다른 프로그램을 실행 하는 것으로 동시에 여러 프로그램을 실행하고 있는 것 같은 효과를 준다.

 

"프로세스가 생성되어 실행될때 필요한 자원을 해당 프로세스에 할당하는 작업"

 

장기 스케쥴러

- 새로 프로세스를 실행하는 것과 같이 덜 주기적이어도 되는 작업에 적용됨


단기 스케쥴러

- 실행 중이었던 프로세스를 멈추고 다른 프로세스를 실행하려는 것과 같이 매우 짧은 주기로 실행되는 스케쥴러

어떤 프로세스가 진행되다가 다른 프로세스가 실행되어야 할 때 문맥 전환(Context switching)이 일어난다.
일반적으로 운영체제에서 문맥교환이 자주 발생하기 때문에 가능한 효율적으로 구현해야 하며,
쓰레드(Thread)를 이용하여 문맥교환을 효율적으로 처리할 수 있습니다.

 

 


스케쥴링 방법


선점형(preemtive)

- 우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
- 어떤 프로세스가 자원을 사용하고 있을 때 우선순위가 더 높은 프로세스가 올 경우 자원을 강탈한다.
- 빠른 응답 시간을 요구하는 시스템에서 사용한다.

- 단점 : 오버헤드가 크다.

 

 

  • RR(Round Robbin)
    시분할 시스템에서 사용된다.
    FCFS와 비슷하지만 제한 시간이 지난 후 다음 프로세스에게 자원을 할당해준다.
    할당되는 시간이 클경우 FCFS와 비슷해진다.

  • SRTF(Shortest Remaining Time)
    SJF 스케줄링을 비선점에서 선점 형태로 수정한 스케줄링 알고리즘이다.
    진행중인 프로세스가 있어도 Sleep 시키고 최단 잔여시간 프로세스에 우선권 부여


  • 선점 우선순위

  • 다단계 큐 스케쥴링

  • 다단계 피드백 큐 스케쥴링

  • RM 스케쥴링

  • EDF 스케쥴링



비선점형(non-preemtive)

- 이미 할당된 자원을 다른 프로세스가 강탈 할 수 없다.

- 응답시간의 예측이 편하며, 일괄처리 방식에 적합하다.

- 단점 : 덜 중요한 작업이 자원을 할당 받으면 중요한 작업이 와도 먼저 처리 될 수 없다.

 

  • FCFS(First Come First Service, 선입선출)
    자료구조의 Queue와 같은 구조의 알고리즘이다.


  • SJF(Shortest Job First, 단기작업우선)
    준비상태 큐에 있는 프로세스들 중에 실행 시간이 가장 작은 프로세스에게 자원을 할당
    가장 적은 평균대기시간을 가짐
    실행시간이 긴 프로세스의 경우 실행시간이 짧은 프로세스에게 우선순위가 자꾸 밀려 무한 대기 상태가 발생할 수 있다.


  • HRRN(Hightest Response-Ratio Next)
    SJF의 단점을 보안하기 위해서 등장
    우선순위 계산식을 이용하여 자원할당(숫자가 높을수록 우선순위가 높음)
    우선순위 =  (대기시간 + 실행시간) / 실행시간
728x90
반응형

'Operating System' 카테고리의 다른 글

Process VS Thread  (0) 2024.04.01
운영 체제  (0) 2019.05.03
데드락  (0) 2019.04.17
동기화(Synchronization)  (0) 2019.04.17
쓰레드(Threads)  (0) 2019.04.17