Notice
Recent Posts
«   2024/12   »
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
Tags more
Archives
관리 메뉴

🐥

Process Abstraction 본문

운영체제

Process Abstraction

•8• 2019. 1. 3. 22:51

cpu virtualizing

scheduling policy에 따라 process가 실행되는 순서가 다르다.

  • 각 process는 서로 자신이 register를 전부 점유하고 있다고 알아야 함

disk에서 memory로 올리는 역할을 OS가 한다고 볼 수 있음

Running process

  • fetch: single instruction을 special register에 복사하는 과정
  • decode: interpret instruction and generate digital signal
  • execute: 실행
  • update PC: PC를 next instruction으로 옮김

이 네 과정을 반복한다.
이 때 multiple cpu가 존재한다면 각각 한 process를 fetch해 실행할 수 있다. 그러나 single cpu라면 불가능하다. 이것이 cpu를 virtualizing하는 것이 필요한 이유이다.
한 process를 계속 실행시키지 않고 process A → process B → process C → process B → … 이런 방법으로 context switching을 한다.
context switching (문맥교환) 이란 무엇일까?

Context Switching

단순히 현재 process에서 다른 process로 cpu를 switching 하는 것. context switching은 몇몇 overhead를 가지고 있다.

  1. administrative overhead
    register, memory map을 save하고 restore해야 한다.
    memory, cache를 flushing하고 reload해야 한다.
    여러 table, list를 update 해 주어야 한다.
  2. HW support에 따른 overhead

Process State Transition

process state transition에 대한 이미지 검색결과

  • process는 process table을 통해 queue의 형태로 관리된다. 이 process table은 PCB(meta data를 저장하는 자료구조 ex, PID, file description, status 등)의 array로 이루어져 있다. 각 PCB는 process를 나타내고 process의 모든 정보를 가지고 있다.
  • block된 process는 바로 running state로 가지 않는다. ready queue의 끝으로 들어가 Running을 기다린다.
  • running에서 ready로 갈 때 time out은 process에게 할당된 time slice를 다 소모했다는 의미이다. (scheduling policy)