ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제 개념] 프로세스 process
    운영체제 Operating System/기초 핵심 개념 2020. 4. 6. 10:55

    2.  프로세스 관리

     

    2.1 프로세스

    · 프로그램 vs 프로세스 (program vs process)

     - process, task, job …

     - program in execution: text + data + stack, pc, sp, registers, …

     - 무덤 속 프로그램, 살아 움직이는 프로세스

     - HD에 있는 여러 프로그램들 중 Memory로 적재되면 process라고 함.

     - 수행중인 프로그램을 프로세스라고 함.

     

    · 프로세스 상태

     - new, ready, running, waiting, terminated 

     - 프로세스 상태 천이도 (process state transition diagram)

     

     

    · PCB: Process Control Block

     - Task Control Block (TCB) / PCB와 같은 용어

     - 프로세스에 대한 모든 정보, 프로세스마다 1개씩 생긴다.

     - process state (running, ready, waiting, …), PC, registers,

       MMU info (base, limit), CPU time, process id, list of open files, …

     - 사람과 비유하자면, '내 정보(Process)"를 "정부(OS)"가 가지고 있다. 

       'proces id(pid)' - 사람의 주민번호를 생각하면 더 쉽다.

     - OS안에 프로세스 관리(process mgmt)를 하는 곳에 PCB가 있다. PCB는 프로세스마다 1개씩 생긴다. 

        PCB(#1)처럼 #1은 pid이라고 생각할 수 있다. 

     

    · 프로세스 대기열 (queue) : os에는 많은 queue가 있다.

    1. Job Queue

     - Job scheduler  : 어떤 job을 memory로 올릴까 결정.

     - Long-term scheduler :  memory에 빈공간이 생겨야 일어난다. 그래서 자주 일어나지 않기 때문에 주기가 길다.

    2. Ready Queue

     - CPU scheduler : memory에 있는 process 중 어떤 것을 선택해 실행(서비스)을 할 것인지 결정.

     - Short-term scheduler : switching이 빨리 일어나기 때문에 주기가 짧다.

    3. Device Queue

     - Device scheduler : 어떤 process를 먼저 device를 사용하게 해줄것인지 결정.

     

    · Multiprogramming

     - Degree of multiprogramming  : main memory에 몇개의 process가 올라왔는지

     - i/o-bound vs CPU-bound process 

       i/o-bound : cpu가 주로 i/o관련 일을 함. ex. 한글, 문서 편집

      cpu-bound : cpu가 주로 cpu관련 일을 함. ex. super computing, 일기예보 등 계산이 많은 일

     

     

    · Medium-term scheduler

      - Swapping : 사용하고 있지않은 process중 어떤 것을 밀어낼지. 

        -> long term보다는 자주, short term보다는 자주 일어남

      - HD 일부에 backing store (swap device)가 있어, swap out 당한

        process는 잠시 보관하고, 다른 process가 swap in 이 된다.

     

     

     

     

    · 용어 

     - Context switching (문맥전환)  : process를 switching 함

    - Scheduler   : 어떤 놈을 선택할지 결정함

    - Dispatcher   : scheduler가 선택한 놈을 실행하도록 바꿔줌 ( pc값, register값 등)

    - Context switching overhead  : switching 할때마다 생기는 부담

    댓글

Designed by Tistory.