불순분자 OS - 프로세스 ( Process )

불순분자들·2022년 7월 20일
0

OS

목록 보기
2/12

OS의 기본인 프로세스에 대해서 알아보려고 한다.
프로세스는 일반적으로 프로세서에 의해 처리되는 사용자 프로그램으로 즉, 실행중인 프로그램을 의미한다.

프로그램과 프로세스의 차이

프로그램은 일반적으로 하드 디스크 등에 저장되어 있는 실행코드를 뜻하고, 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리 상에 실행되는 작업 단위를 지칭한다.

프로세스의 상태


커널 내에는 준비, 대기, 실행 등의 자료구조가 있으며, 커널은 이것들을 이용하여 프로세스의 상태를 관리한다.

  • 제출( Submit ) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
  • 접수( Hold ) : 제출된 작업이 스풀 공간인 디스크 할당 위치에 저장된 상태
  • 준비( Ready ) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
  • 실행( Run ) : 준비상태에 있는 프로세스가 프로세서를 할당받아 실행되는 상태, 수행이 완료되기전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 프로세스는 준비 상태로 전이
  • 대기( Wait ), 블록( Block ) : 프로세스에 입출력처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될때까지 대기하고 있는 상태이다.
  • 종료( Terminated Exit ) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태이다.

프로세스의 상태 전이

프로세스 상태 전이란 쉽게 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것이라고 생각하면 이해가 조금 더 잘 되지 않을까 싶다.

  • 디스패치 ( dispatch ) : 준비 리스트의 맨 앞에 있던 프로세스가 CPU를 점유하게 되는 것, 준비 -> 실행으로 다음과 같이 표시한다.
dispatch (processname) : ready -> running
  • 보류 ( block ) : 실행 상태의 프로세스가 허가된 시간을 다 쓰기 전에 입출력 동작을 필요로 한다면, 프로세스는 CPU를 스스로 반납하고 보류 상태로 넘어가고 다음과 같이 표시한다.
block (processname) : running -> blocked
  • 깨움 ( wakeup ) : 입출력 작업 종료 등 기다리던 사건이 일어났을 때, 보류 -> 준비로 넘어가는 과정을 뜻하며 다음과 같이 표시한다.
wakeup (processname) : blocked -> ready
  • 시간제한 ( timeout ) : 운영체제에서 프로세스가 프로세서를 계속 독점해서 사용하지 못하게 하기 위해 clock interrupt를 두어서 프로세스가 일정 시간동안만 점유할 수 있게 한다.
timeout (processname) : running -> ready
profile
장래희망 : 침대 위 녹아든 치즈

0개의 댓글

관련 채용 정보