프로세스와 스케줄링

재영·2020년 12월 27일
1
  • 이번 단원에서는 프로세스와 스레드에 대한 내용을 정리해보며 둘 간의 차이와 특징에 대해서 함께 알아보며 스케줄링의 개념도 같이 정리를 해보았다.

<프로세스>

  • 프로세스는 실행중인 프로그램이라고 불리며, 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이라고도 할 수 있다.
  • 운영체제로부터 시스템 자원을 할당받는 작업의 단위이기도 하다. 즉 동적인 개념으로는 실행된 프로그램을 의미한다.
  • 프로세스의 상태는 준비, 실행, 대기, 종료로 나눠서 볼 수 있다.

<멀티 프로세스>

  • 멀티프로세싱이란 하나의 응용 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것을 의미한다.
  • 부모 자식 관계를 갖더라도 자신만의 메모리 영역을 가지게 된다.

링커와 로더

  • 링커는 연결 편집기로 목적 프로그램들과 또 다른 실행 프로그램 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이다.
  • 로더는 로드 모듈을 주기억장치에 적재하는 시스템 소프트웨어이다.
  • 로더의 기능으로는 할당, 연결, 재배치, 적재가 있다.

<스레드>

  • 스레드는 프로세스를 여러개로 나눈 조각과 같다. 이 때문에 경량 프로세스라고도 불린다.
  • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
  • 프로세스 내에서 실행되는 여러 흐름의 단위이기도 하고, 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내에 스레드끼리 서로 공유하면서 실행되게 된다.

<멀티스레드>

  • 멀티스레딩이란 하나의 응용프로그램을 여러개의 스레드로 구성하고 각 스레드로 하여금 하나의 작업을 처리하도록 하는 것을 말한다.
  • 윈도우, 리눅스 등 많은 운영체제들이 멀티 프로세싱을 지원하고 있지만 멀티 스레딩을 기본으로 적용하고 있다.

<자바스레드>

  • 일반 스레드와 거의 차이가 없으며, JVM 같은 운영체제의 역할을 한다.
    (
    여기서 JVM이란 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다. JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것이다.)

<스케줄링>

  • CPU가 하나의 프로세스가 끝난 뒤에, 다음 프로세스 작업을 수행한다. 이 때 다음 프로세스를 선택하는데 있어서 사용하는 것이 CPU 스케줄링 알고리즘이다.
  • 스케줄링의 목적으로는 대표적으로 공정성, 처리율 증가, CPU 이용률 증가, 응답시간 및 반환시간 최소화가 있다.

프로세스 스케줄링 기법

  1. 비 선점형
    -이미 할당받은 CPU를 다른 프로세스가 강제로 점유하지 못하는 방식으로 일괄처리 시스템에서 사용된다.
  2. 선점형
    -한 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 실행중인 프로세스를 점유하여 사용할 수 있는 방식으로 대화형 시스템에서 사용된다.
    -우선순위가 높은 프로세스를 빠르게 처리할 수 있다.

1) 비선점 스케줄링

  • FIFO(선입 선출 방식)
  • SJF(단기 작업 우선 방식)- 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다.
  • HRN 기법- SJF 기법을 보완하기 위한 방법으로 대기시간과 서비스 시간을 이용한 기법이다. 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU를 할당한다.

2) 선점 스케줄링

  • SRT- 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법이다.
  • RR- 시분할 시스템을 위해 고안된 방식이다.
  • MLQ (다단계 큐)- 프로세스를 특정그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 준비한다.
profile
AI 돌리는 강아지

0개의 댓글