본문 바로가기
CS/Operating System

프로세스

by 겸 2023. 10. 27.

프로세스

실행 중인 프로그램을 의미

사용자 영역

  1. stack - 함수에 대한 파라미터, 리턴 주소, 지역 변수
  2. heap - 동적할당으로 생성한 메모리 변수
  3. data - 전역 변수 (초기화 된 변수 영역 / 초기화 되지 않은 변수 영역)
  4. code - 프로그램 코드

커널 영역

Context

CPU 현재 상태를 나타내기 위해 사용

특정 시점에서 프로세스가 코드의 어디까지 실행했는지 알기 위해 필요


프로세스의 상태

New

프로세스 생성 중인 상태

Ready

모든 준비가 되어있고, CPU만 얻으면 명령을 실행할 수 있는 상태

따라서 최소한의 메모리는 갖고 있어야함

일반적으로 Ready상태에 있는 프로세스가 CPU를 잡았다 놨다 하면서 번갈아서 작업을 함

Waiting

CPU가 있어도 바로 명령을 실행할 수 없는 상태

프로세스가 요청한 이벤트(디스크에서 파일 읽어오는 등의 IO작업)를 하고있어 기다리는 상태

Running

CPU를 잡고 명령을 수행 중인 상태

Terminated

실행이 끝난 상태


PCB (Process Control Block)

운영체제가 각 프로세스를 관리하기 위해 유지하는 정보

  1. OS 관리를 위해 사용하는 정보
  2. CPU 수행 관련 하드웨어 값
  3. 메모리 관련
  4. 파일관련

Context Switch

CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정

넘겨주면서 작업하던 내용을 PCB에 저장하고 불러오는 것을 말함


Process Scheduling Queue

운영체제가 PCB들을 링크드리스트로 연결해놓고 큐로 관리한다.

Queue의 종류

Job Queue

현재 시스템에 있는 모든 프로세스의 집합

Ready Queue

CPU 사용 권한을 기다리는 프로세스의 집합

Device Queue

I/O 디바이스 처리를 기다리는 프로세스의 집합

반응형

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

스레드  (1) 2023.10.27
프로그램의 실행  (1) 2023.10.26
운영체제  (0) 2023.10.26