Process

citron03·2021년 10월 28일
0

운영체제

목록 보기
6/11

OS가 실행하는 다양한 프로그램이 있다.

  • batch system에서 jobs이나 time-shared systems에서 사용자 프로그램이나 tasks가 그렇다.
    🍪 batch system : 수행할 프로그램을 한꺼번에 서비스, 제출한다.
  • Process는 실행중인 program을 의미한다.
    즉, 프로그램은 disk에 저장된 실행파일, passive entity이고 프로세스는 active entity이다.
  • 실행파일이 메모리에 불러와지면 프로그램이 프로세스가 된다.
  • 프로세스 실행은 반드시 순차적인 방식으로 진행되어야 한다.
  • 하나의 프로그램은 여러개의 프로세스가 될 수 있다.

프로세스는 다양한 구성요소로 이루어져 있다.

  • program code, 다른말로 text section
  • program counter, processor registers를 포함하는 현재 활동
    🍬 program counter : 다음에 실행될 instruction의 memory 주소를 지닌다.
  • 임시 데이터를 저장하는 stack
    🍐 local variables, return addresses, function parameters가 활성화 레코드에 저장되고 이것이 stack에 저장된다. 이는 종료시 삭제된다.
  • global variables을 포함하는 data section
  • run time동안 동적 할당된 메모리를 포함하는 heap

Process State

  • new : 프로세스가 생성됨
  • running : instructions이 실행중이다.
    CPU를 할당받아 수행
  • waiting : 프로세스가 어떤 이벤트가 발생하기를 기다리는 중입니다.
    🥥 I/O를 기다리거나 공통된 부분에 여러 프로세스가 접근할 때 순서를 기다린다.
  • ready : 프로세스가 프로세서에 할당되기를 기다리고 있습니다.
    메모리 할당을 받고 CPU 할당을 기다리는 상태
  • terminated : 프로세스의 실행이 끝났습니다.

Process Control Block, PCB

  • task control block이라고도 불리우며, 각각의 프로세스와 관련된 정보를 가지고 있다.
  • 프로세스 생성시 만들어지고, 종료될 때 같이 사라진다.

    🍉 PCB가 가지는 정보들 🍉

    • Process ID (PID)
    • Process State
      위의 new, running, waiting, ready, terminated 중 하나
    • Process counter
      다음에 실행될 instruction의 위치가 저장되어 있다.
      (return address)
    • CPU registers
    • Accounting information
      사용된 CPU, 시간제한, 시작 이후로 경과된 시간
    • I/O 상태 정보
      프로세스에 할당된 I/O장치와 열린 파일들의 목록
    • 메모리 관리 정보
      프로세스에 할당된 메모리
    • CPU scheduling 정보
      우선순위, scheduling queue pointers

Threads

  • 프로세스는 하나의 단일 스레드를 가질 수 있지만, 여러 개의 스레드를 가질 수도 있다.
  • 하나의 프로세스에 여러개의 program counters를 가질 수 있다.
  • 한번에 여러 위치에서 실행할 수 있다.
  • PCB에 스레드 세부정보, 여러개의 program counters를 위한 저장공간이 있어야 한다.
profile
🙌🙌🙌🙌

0개의 댓글