INK study
article thumbnail

프로세스 속성과 제어 (Process description, control)

프로세스에 대해 알아보겠다. 


프로세스란?

  • 프로그램이 실행상태에 있는 것
  • 프로그램을 더블클릭 했을 때 실행되는 것
  • 사람이 프로세스를 만들 수 있음
  • 사람 말고도 프로세스가 프로세스를 만들 수 있음 ( 부모, 자식)
  • 현재 상태

프로세스는 누가 만들까?

  1. 인간이 만든다 : 인간이 프로그램 실행시 (GUI, cmd)
  2. 프로세스가 만든다 : 시스테 프로세스를 작동할 때, user process

Process의 3요소

  • Executable program
  • Data used in program
  • Execution context of th eprogram

process의 상태

<프로세스 상태도> Process States Model

  • running 상태 (프로세스 실행중)
  • not-running 상태 (프로세스 실행 중단)
    • event 발생 : (ex) 입출력을 기다리는 상태 → CPU가 주어져도 실행 불가

프로세스의 2가지 상태 (Two-State Process Model)

Not- running process

→ cpu 를 잡고 있지 않은 대기 상태의 프로세스

  • Ready state
    • ready to execute
    • Waiting for the processor to dispatch
  • Blocked state (= wait state, sleep state) 대기 상태
    • waiting for some event to occur
    • ex. 입출력 대기
  • the process that has been in the queue the longest is not always selected by the dispatcher
    • block될 수 있음

프로세스의 상태 전이 5단계 (Five-State Process Model)

  • 생성 : fork
  • 종료 : kill exit
  • 이때 block(wait, sleep)되었던 process가 다시 깨어날 때 running으로 바로가지 않고 ready로 다시 간다는 것을 잘 기

job queue란?

  • 실행되는 프로세스가 ready queue 로 들어 갔다가 스케줄러에 따라 running으로 이동 (이것을 dispatch 라고 함)
  • Terminate : (zombie)
    • 아예 사라진게 아니라 terminate 상태에 존재
    • 실행하지 않아도 되므로 메인메모리 속 데이터가 필요없음. 커널에 반납
    • 통계정보를 유지하기위한 정보만 들고있음
    • wait를 통해 terminate process 상태에서 빠져나가 진짜 종료됨

Interrupt란?

일정 시간인 time slice가 다 됐다하면 시스템에 다 됐다는 걸 알려주는게 interrupt

→ 메모리 번지 정해둔 곳으로 jump해서 실행

프로세스가 변환될때 무조건 os 거침 - cpu가 하나라고 가정 했을 떄 cpu가 user code 실행하다가 말고 os 실행하고 있음. Userprocess입장에서는 cpu가 딴짓하고 있는 것처럼 보임. 특히 timesharing시에 커널이 cpu를 잡고 있는 모습이 많이 보임. → 따라서 throughput이 안좋음

Userprogram을 상대적으로 덜 실행

? 프로세스의 정의 ? 메모리에 올라간 거만 프로세스냐 : os가 발전하면서 가상 메모리도 발전

프로세스가 메인 메모리가 아닌 가상 메모리에도 있을 수 있다. 실행이 시작된 프로그램을 프로세스라고 할 수 있음

suspended process란?

suspended 상태에 있는 프로세스 : 메인메모리에 대기 상태로 있다가 보조기억장치로 밀려난 상태

  1. blocked/suspend : 메모리에 있을 때 block되어있다가 보조기억장치로 밀려남
  2. ready/suspend: 메모리에 있을 떄 ready되어 있다가 보조기억장치로 밀려남

밀려나는 이유?

cpu가 IO장치보다 빠름. → 모든 고객(프로세스)들이 IO작업을 하고 있다면 시간이 오래걸림. → cpu효율이 떨어진다 → 기다리는 다른 고객들을 맞기 위해 IO작업하고 있던 고객들을 보조기억장치(ssd)로 이동시킴

 

'Study > Operating System' 카테고리의 다른 글

[OS] 1. 운영체제 기초  (0) 2023.04.27
profile

INK study

@ongsimi_

읽어주셔서 감사합니다!