Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Today
Total
관리 메뉴

코드와이

[CS 이론] 운영체제(4) 본문

CS이론

[CS 이론] 운영체제(4)

코드와이 2021. 8. 7. 17:44

프로세스


프로세스의 문맥(context)

  • CPU 수행 상태를 나타내는 하드웨어 문맥
    • '현재 시점의 이 프로세스가 instruction을 어디까지 수행했는가' 를 알기 위해 register 에 어떤 값을 넣고 있었고 Program Counter 가 어디(프로세스의 주소공간)를 가르키고 있었는지를 알 수 있는 것
  • 프로세스의 주소공간
    • code
    • data
    • stack
  • 프로세스 관련 커널 자료 구조
    • PCB(Process Control Block)
    • Kernel stack

Time Sharing, Multitasking 프로세스들이 번갈아 가면서 실행하기 때문에 현재 프로세스의 상태를 백업해 놓아야 다음번 CPU 를 잡았을 때 잘 실행할 수 있다.

 

 


 

프로세스의 상태

출처 : https://jhnyang.tistory.com/7

Running : CPU 를 잡고 instruction 을 수행중인 상태

Ready : CPU 를 기다리는 상태(메모리 등 다른 조건을 모두 만족 : 당장 필요한 정보들이 물리적인 메모리에 올라와 있어야한다.)

Blocked(wait, sleep)

  • CPU 를 주어도 당장 instruction 을 수행할 수 없는 상태
  • Process 자신이 요청한 event 가 즉시 만족되지 않아 이를 기다리는 상태
  • 디스크에서 file 을 읽어와야 하는 경우

New : 프로세스가 생성중인 상태

Terminated : 수행(execution)이 끝난 상태

 

 


 

PCB(Process Control Block)

 

PCB

  • 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
  • 다음의 구성 요소를 가진다.
    • OS 가 관리상 사용하는 정보
      • Process state, Process ID,
      • Scheduling info, priority
    • CPU 수행 관련 하드웨어 값
      • Program counter, registers
    • 메모리 관련
      • Code, stack, data 의 위치 정보
    • 파일 관련
      • 프로세스가 열어놓은 파일에 대한 정보

 

문맥 교환(Context Switch)

  • CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
  • CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행
    • CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
    • CPU를 새롭게 얻은 프로세스의 상태를 PCB에서 읽어옴

프로세스가 CPU 를 얻었을 때 과거에 CPU를 얻었을 때 실행했던 위치를 PCB에서 찾아서 하드웨어에 복원을 시킨 다음 CPU에 넘겨준다.

 

 


 

스케줄러

Long-term scheduler(장기 스케줄러 or job scheduler)

  • 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
  • 프로세스에 memory(및 각종 자원)을 주는 문제
  • degree of Multiprogramming

Short-term scheduler(단기 스케줄러 or CPU scheduler)

  • 어떤 프로세스를 다음번에 running 시킬지 결정
  • 프로세스에 CPU를 주는 문제

Medium-term scheduler(중기 스케줄러 or Swapper)

  • 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄
  • 프로세스에게서 memory 를 뺏는 문제
  • degree of Multiprogramming

*degree of Multiprogramming : 메모리에 올라와 있는 프로세스 수를 결정

 

프로세스는 ready queue 에 대기하다가 CPU를 얻으면 실행되고 각각의 업무의 일부분(I/O 요청, time slice expired, fork a child(후에 자식을 실행), interrupt) 을 수행한 후 다시 ready queue 로 돌아가 다음 CCPU를 받을 때까지 대기한다.

 

 

 

'CS이론' 카테고리의 다른 글

CS 이론(3)  (0) 2021.06.22
CS 이론(2) 프로그래밍  (0) 2021.06.17
CS 이론(1) 소프트웨어 공학  (0) 2021.06.16