ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제/OS] 프로세스/문맥교환/스케줄링
    ComputerScience/운영체제 2020. 6. 3. 10:21

    프로세스(Process)와 쓰레드(Thread)의 차이를 알아보자.

    프로세스 (Process)

    • Process : 프로세스라는 것은 하나의 작동하고 있는 프로그램, 프로세스의 상태로는 CPU의 수행상태, 프로세스 주소공간, 프로세스 관련 커널 자료구조가 있다.

      • CPU의 수행상태 : CPU의 수행 상태를 나타내는 하드웨어 문맥으로 PC(Program Counter : 다음에 실행 될 Code의 위치)와 각종 레지스터가 존재한다.

      • 프로세스 주소 공간 : 프로세스는 Code, Stack, Data값을 각각 갖고 있다.

      • 커널상의 Context : 프로그램이 수행돼 프로세스가 되면 OS는 이를 관리하기 위한 자료구조를 유지한다.

        • PCB(Process Control Block) : 프로세스 정보를 저장해놓은 블록을 의미한다.
        • Kernal stack : PCB가 저장되기 위한 공간이다.

    프로세스 상태 (Process State)

    • Running(수행)
      -프로세스가 CPU를 점유하고 있는 상태

    • Ready(준비)
      -프로세스가 CPU를 점유하기 위해 기다리고 있는 상태(메모리에 이미 올라와 있고 CPU동작을 위한 모든 조건을 만족한 상태)

    • Blocked(대기)
      -프로세스에게 CPU를 주어도 당장 명령을 실행할 수 없는 상태
      -I/O 작업중인 프로세스

    • Terminated(종료)
      -프로세스 실행이 완료되고  할당 CPU를 반납, PCB에는 남아있음
    • Suspended
      -중기스케줄러에 의해 생긴 상태, 외부의 영향으로 인해 inactive된 상태,
      -외부에서 다시 작동 시켜야 active 상태로 변경

    프로세스 문맥교환 (Process Context Switch)

    • 하나의 프로세스가 CPU를 점유하고 있을 때, 다른 프로세스에게 CPU 점유를 넘겨주는 과정

    • 교환이 발생했을 때, 실행되고 있는 Process의 정보를 PCB에 저장하고, 새로 실행할 프로세스의 PCB에 저장된 정보를 읽어들여 Context Switching가 가능하다.

    • System Call이나 Interrupt가 발생했을 때 발생한다.

      • System Call : (나중에 자세히 다루겠지만) 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스. 응용프로그램이 운영체제에게 기능을 수행해달라고 하는 수단.
      • Interrupt : 하나의 프로그램 실행이 문제가 발생해서 다른 프로그램의 실행으로 옮기는 것, 중지된 프로그램은 Suspended되고 인터럽트 되어 실행된 프로그램이 완료되면 다시 Suspended된 프로그램의 중단점부터 다시 실행된다. 자신이 자신을 Interrupt거는 경우도 있음

    프로세스 스케줄링 (Process Sheduling)

    • 메모리에 준비(Ready) 상태의 프로세스 중 하나를 선택해 CPU 자원을 할당하는 것

    • 프로세스의 상태 변화

      • 수행 → 대기
        수행 → 준비
        대기 → 준비
        수행 → 종료
    • 스케줄링이 일어나는 시점

      • 수행상태에서 대기상태로 전환될 때 (Non preemptive), 비선점형 스케줄링 :

        • 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없다.
        • FIFO : 선입선출
        • SJF(Shortest Remaining Time First Scheduling) : 소요시간이 짧은 작업순 할당
        • HRN(Highest Response-ratio Next) : 소요시간과 현재 기다린 시간을 동시에 고려하는 알고리즘
      • 수행상태에서 준비상태로 전환될 때 (preemptive) ,선점형 스케줄링 :

        • 어떤 프로세스가 CPU를 할당받아 실행중인 프로세스를 중지하고 강제로 점유할 수 있다
        • 계속된 선점으로 오버헤드가 발생할 수 있다.
        • SRT(SHortest Remaining Time) : 최단 잔여시간을 우선으로 한다.
        • RR(Round Robin) : Time Sharing System을 위해 설계된 스케줄링, 각각의 프로세스가 우선순위가 아닌 할당 시간이 있고, 시간 단위만큼 수행한 프로세스는 준비 큐의 끝으로 밀려난다.
        • MLQ(다단계 큐) : 여러개의 준비 큐가 있고 그 준비큐에 우선순위가 있음
        • 우선순위 : 우선순위를 정해두고 그 순위대로 CPU를 할당, 대기시간이 길어지면 Aging 기법을 사용
          • Aging 기법 : 우선순위가 낮아 오래 대기하는 프로세스를 우선순위를 높여 처리하게 되는 기법
      • 대기상태에서 준비상태로 전환될 때

    댓글

Designed by Tistory.