티스토리 뷰

Process와 Context Switching

프로세스와 컨텍스트 스위칭

 

[ Program & Process ]

  Program

    : 파일 시스템에 존재하는 실행 가능한 파일.

    : 실행되지 않은 정적(Static)인 상태.

    : Stack과 Heap이 존재하지 않음.

 

  Process

    : Program이 실행 중인 동적(Dynamic)인 상태.

    : 추상적인 부분이 존재.

       1) 각각의 Program이 CPU를 독점적으로 사용하는 것 처럼 보이게 하지만, 뒤에는 수많은 동작 존재. → Context Switching에 의해 제공.

       2) 각각의 Program이 Main Memory를 독점적으로 사용하는 것으로 보임. → 가상 메모리(Virtual Memory)에 의해 제공.

    : Kernel Code로 관리.

 

    · Multi-Processing

      : 여러 개의 Processor가 서로 협력적으로 일을 처리하는 것.

      : 처리 과정을 보면 각 Process마다 CPU가 붙어 동시에 처리되는 것 같지만, 사실은 병행적으로 처리.

      : Stack과 Heap이 존재.

      : Virtualizing CPU를 통해 동일 시스템에서 여러 Process를 병행적으로 처리할 수 있음.

 

    · PCB(Process Control Block)

      : 프로세스 제어 블록.

      : CPU에 의해 실행 중인 특정한 프로세스를 관리하기 위해 상태 정보를 저장해 놓는 장소.

      : 각 프로세스마다 별도의 PCB를 가진다.

      : 프로세스 생성 시 만들어지며, Main Memory에 저장된다.

      : 프로세스의 실행이 중단되면 PCB도 사라진다.

      : Linked-List 형태로 관리.

 

    · Context Switching

Context Switching
 : CPU에서 하나의 프로세스를 실행 중일 때, Scheduler가 Interrupt를 보내 더 높은 우선순위를 가진 프로세스를 실행시키려 할 때, Scheduler가 Register에 저장된 기존 프로세스의 상태 값을 Kernel 내부의 PCB에 저장하고, 새 프로세스의 상태 값을 PCB에서 가져와 교체하는 작업.

      1. 기존 프로세스를 중단하고 새 프로세스를 실행할 것을 Scheduler가 요청.

      2. 기존 프로세스의 SP 레지스터의 값과 PC 레지스터의 값을 기존 프로세스의 PCB에 저장.

            ( SP : Stack-Pointer. PC : Program Counter )

      3. 기존 프로세스를 Running에서 Ready 또는 Block으로 바꾸고 새 프로세스를 Ready에서 Running으로 변경.

            ( Ready → Running으로 바꾸는 이러한 과정을 Dispatch라 한다 )

      4. 새 프로세스의 SP값과 PC값을 새 프로세스의 PCB에서 가져와 덮어씌움.

Context Switching

 

    · Concurrent Processes

      : 시작 시간과 종료 시간으로 프로세스끼리 병행적 또는 순차적 Control Flow를 가짐을 알 수 있다.

      : 프로세스가 시작 시간과 끝 시간 사이에 있는 경우 → 병행적(Concurrent)

      : 프로세스가 시작 시간과 끝 시간 사이에 없는 경우 → 순차적(Sequential)

      : 사용자가 볼 때는 각각이 시간 순서가 없이 각각 병렬적(Parallel)으로 실행되는 것으로 보임.

Concurrent : A&B, A&C / Sequential : B & C

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함