ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • About process
    카테고리 없음 2020. 6. 25. 04:37

    이 글은 'Windows OS process architecture'에 대하여 서술한 문서임 (이하 '해당 구조'라고 표기한다).

     

    현대의 운영체제는 process라는 개념으로 산술에 사용될 자원을 관리하며, 실행에 필요한 정보를 저장한다.

    process는 volatile RAM에 존재하는데, 이를 관리하는 설계는 다음과 같다.

        - Scheduler
        - PCB (Process Control Block)
        - PEB (Process Environment Block)

    Scheduler란 한번에 1개 이상의 프로그램을 동시에 실행해야하는 multi tasking이 요구됨에 따라서 만들어진 설계이다.
    PCB는 프로세스를 구분하기 위한 설계로써, 실행에 필요한 최소한의 정보를 가지고 있다.
    PEB는 프로세스의 환경을 구분하기 위한 설계로써, 부가적인 정보를 가지고 있다.
    Windows OS는 Scheduler를 사용하여 매우 빠르게 Context switch를 진행한다.
    이에 따라서 process는 Running상태와 Ready상태가 결정되는데, 
    Running상태는 CPU가 해당 process의 코드를 실행하고 있는 상태
    Ready상태는 CPU가 해당 process의 코드를 실행하고 있지 않은 상태, 실행이 Queue에 의해서 준비되고 있는 과정이다.
    Queue (FIFO) 란, 줄을 길게 선 사람들과 같다.
    따라서 줄을 먼저 선 사람이 먼저 줄에서 이탈하는 구조이다. 
    process의 상태는, Queue에 의해서 정해지기 때문에, 해당 자료 구조의 이해가 필요하다.


    PCB란 Scheduler가 process를 구분하기 위해서 만들어진 설계이다.
    process를 구분하고, 알맞는 코드를 순차적으로 실행하기 위한 정보를 저장한다

    PEB란
    process의 환경은 각기 다른데, 이를 구분하고 Access하기 위해서 만들어진 설계이다.

    parameter, DLL정보 등을 저장한다.

    DLL (Dynamic Link Library) 은 API를 지원하기 위해서 만들어진 개념이다.
    OS API (Operating System Application Programming Interface)는, 운영체제에 필연적으로 의존하는 process의 개념때문에 OS는 주요 자원에 접근하기 위한 API를 제공하는데, 이를 DLL이란 설계로 제공한다.

    DLL은 메모리에 단 한번만 loading 되며, 이후 loading은 mapping으로 대체된다.

    이는 자원의 효율적인 분배와, 속도에서 장점을 얻게 되는데, 이는 
    느린 저장 장치인 보조 저장 장치에 반복적으로 접근하는것보다, 단순히 주 저장 장치의 주소만 복사하여 사용하는 방법이 효율적이기 때문이다.

Designed by Tistory.