[OS] Process (1)

정민경·2023년 4월 20일
0

Operating_System

목록 보기
1/8
post-thumbnail

- Objection

  1. Process 란?
  2. Process states

- Process 란?

  • process의 정의
    • 프로그램의 실행
    • instructions sequence의 실행
  • 누가 process를 생성하는가
    • 사람 : GUI or CLI 를 통해 OS 에게 요청
    • process : 부모 process 가 자식 process 생성
  • process 생성 이유 ( 3가지 모두 방법은 다르지만 OS 가 생성 )
    • 부팅 시 OS 가 생성
    • 이미 있는 precess 가 생성
    • 사람의 명령으로 OS 가 생성
  • process의 종료 이유 ( termination )
    • 정상종료

      1) normal completion : 마지막 instruction 까지 실행 완료
      2) parent request : 부모가 자식 제거해달라고 요청

    • 비정상종료

      1) protection error : 규칙위반이 발생했을 때 종료
      ( ex) read-only file에 적으려 했을 때 )
      2) error 발생 시
      ( ex) division by zero )

  • process 의 3가지 components
    • 실행 프로그램 ( code , text )
    • 프로그램에서 사용하는 data
    • 프로그램의 execution context

- Process states

  • two-state process model
  • two-state model 에서의 state
    • Running : 프로세스가 실행되고 있는 상태
    • Not-Running : 프로세스가 실행되고 있지 않은 상태
  • five-state process model
  • five-state model 에서의 state

    1) new : process list 에 저장되어있는 상태
    2) ready : 실행 가능 상태 ( 실행이 되고 있지는 않음 )
    3) running : 실행 중 상태
    4) blocked ( = wait, sleep ) : 어떠한 event를 기다리고 있는 상태
    -> 이 상태에서는 dispatch 가 되지 않음.
    5) terminated ( Zombie ) : release 된 상태
    -> 아직 프로세스는 남아있음. ( 완전 사라진 것이 아님. )
    -> system call 중 wait 와 같은 call 이 불려야 완전히 종료

  • five-state model 에서의 상태변환

    1) enter : system call 을 통해 process 생성
    2) admit : os 에게 받아드려짐.
    3) dispatch : os 에 의해 cpu를 할당받음
    4) timeout : 주어진 시간 종료
    5) event wait : 어떠한 event를 기다림 ( I/O input... )
    6) event occurs : 어떠한 event 발생
    7) release : 자원을 놓음. ( terminated 상태로 이동 )

  • blocked state 는 queue 로 저장
    • single queue : 하나의 queue 만 사용해 block process 관리
    • multiple queue : block이 된 원인에 따라 queue 를 나눠 관리
      -> 원인 : I/O wait, sleep, file read ...
  • blocked state를 저장하는 queue 에는 PCB 가 저장.
  • two-suspend state model
  • suspended processes
    • main memory 의 ready 상태로 있다가 보조기억장치로 밀려나간 process
    • 왜 밀려나갈까?
      -> 현재 있는 process들이 모두 blocked 상태라면 비효율적
      -> blocked process 들을 다른 곳으로 옮긴 후 다른 process 처리
    • two new state : 각각 main memory 에 있을 때의 상태로 이동

      1) Blocked / Suspend ( suspended block )
      2) Ready / Suspend ( suspended ready )

  • process suspention 되는 이유

    1) main memory 공간을 확보하기 위해
    2) 일정기간에만 실행되는 경우 실행될 때만 main memory 로 들어옴
    -> 소프트웨어 업데이트같은 경우
    3) user, parent 요청에 바로 반응하기 위해서
    4) 다른 OS 이유들에 의해

0개의 댓글