[운영체제] 프로세스란

Woogie·2023년 2월 7일
0

1.프로세스

  1. 프로세스(process)란 실행중에 있는 프로그램을 의미한다.
    [운영체제로부터 자원을 할당 받은 작업의 단위]
  2. 스케줄링의 대상이 되는 작업(task)과 같은 의미
  3. 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고있고, 실제로는 쓰레드 단위로 스케줄링을한다.
  4. 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 불린다.

아~ 프로그램이 실행되지 않으면 프로세스라고 할수없네
메모리 할당과 그 순간에 바이너리 코드가 올라갈때 프로세스라하는군 기억 해두자

1-1 프로세스의 메모리 구조

  • Code 영역: 프로그램을 실행시키는 실행 파일 내의 명령어 == 소스코드가 올라간다고 생각하자
  • Data 영역 : 전역변수, static 변수의 할당
  • Heap 영역 : 동적할당을 위한 메모리 영역 == mallo& free, new, delete
  • Stack 영역 : 지역변수, 함수 호출 시 전달되는 인자(파라미터)를 위한 메모리 영역

1-2 프로세스 상태변화,상태전이

상태변화

  • 생성 (new) : 프로세스 생성 상태
  • 실행 (running) : 프로세스가 CPU에 할당되어 실행 중인 상태
  • 준비 (ready) : 프로세스가 CPU에 할당되기를 기다리는 상태
  • 대기 (waiting) : 보류(Block)라고도 하며, 프로세스가 입출력이라 이벤트를 기다리는 상태
  • 종료 (terminated) : 프로세스 상태

아... 상태변화는 알겠는데.. 저 검은색은 상태 전이라고 하는데... 저건뭘까..?

상태전이

  • 승인 (Admitted) : 프로세스 생성이 가능하여 승인됨.
  • 스케줄러 디스패치 (Scheduler Dispatch) : 준비 상태에 있 는 프로세스 중 하나를 선택하여 실행시키는 것
  • 인터럽트 (Interrupt) : 예외, 입출력, 이벤트 등이 발생하여 현재 실행 중인 준비 상태로 바꾸고, 해당 작업을 먼저 처리하는 것
  • 입출력 또는 이벤트 대기 (I/O or Event wait) : 실행 중인 프로세스가 입출력이나 이벤트를 처리해야하는 경우, 입출력/이벤트가 모두 끝날때까지 대기 상태로 만드는 것.
  • 입출력 또는 이벤트 완료 (I/O or Event Completion) : 입출력/이벤트가 끝난 프로세스를 준비 상태로 전환하여 스케줄러에의해 선택될 수있도록 만드는것
profile
ssafy_9th / CS

0개의 댓글