단의 개발 블로그

프로세스 본문

CS/OS

프로세스

danso 2024. 4. 23. 23:25

프로세스란

 프로세스란 프로그램이 실행된 것을 의미한다. 프로세스가 실행되기 위해서는 아래 4가지 자원이 필요하다.

  • CPU time
  • Memory
  • Files
  • I/O devices

 

프로세스의 레이아웃

  • Text section - 실행 코드가 위치한다.
  • Data section - 전역 변수가 위치한다.
  • Heap section - 동적 메모리가 위치한다. (자바 new 객체 생성 시 heap에 할당)
  • Stack section - 프로그램 내 함수가 위치한다.

 

프로세스의 생명주기

  • New - 프로세스가 생성된 상태
  • Running - 프로세스가 실행된 상태
  • Waiting - 다른 프로세스가 CPU를 점유해서 현재 프로세스가 기다리는 상태
  • Ready -  Waiting 상태 에서 실행을 대기하는 상태
  • Terminated - 프로세스가 종료된 상태

PCB 

프로세스가 가져야 하는 모든 정보가 저장된 블록이다. 아래와 같은 정보를 가지고 프로세스를 실행한다.

  • Process State - 프로세스의 상태
  • Program counter - 프로세스가 실행해야 하는 메모리 위치
  • CPU registers - cpu 안에 있는 레지스터
  • CPU-scheduling information - cpu를 주고 받기 위한 정보
  • Memory-management information - 메모리 정보
  • Accounting information - 어떤 유저인지 
  • I/O status information - i/o 상태 관련 정보

싱글 스레드 실행

멀티 스레드

라이트 스레드

멀티 프로세싱, 멀티 스레드

 

큐잉 다이어그램

컨텍스트 스위치

 

'CS > OS' 카테고리의 다른 글

운영체제  (0) 2024.04.23