@Hadev
하댑의 개발 기록
@Hadev
전체 방문자
오늘
어제
  • All categories (65)
    • 📒 Tech Note (56)
      • Flutter (0)
      • Unity C# (1)
      • 웹 프로그래밍 (12)
      • CS 기본기 뚝딱 (3)
      • 알고리즘 & 자료구조 (10)
      • DB (6)
      • Cloud (10)
      • DevOps (14)
    • 🔖 Story (9)
      • 💻 개발 언저리 공부 (4)
      • ⛵️ 취미 & 팁 (5)
      • 💸 재테크 (0)

인기 글

티스토리

hELLO · Designed By 정상우.
@Hadev
🚀 Hadev Tech Blog
ABOUT
TAG
GUESTBOOK
[운영체제] 프로세스란?
📒 Tech Note/CS 기본기 뚝딱

[운영체제] 프로세스란?

2022. 8. 25. 23:01

프로세스(Process)란?

프로세스는 실행중인 프로그램을 뜻합니다. 여기서 프로그램은 명령어들의 모음을 포함하는 디스크에 저장된 파일을 의미합니다. 
프로그램이 실행되면, 프로그램의 명령어들과 데이터가 메모리에 쌓이고 이를 프로세스라고 정의합니다. 

프로세스의 메모리 구조 

출처: https://mlleo.github.io/cs/OS_day5/

  • 각 프로세스는 고유의 메모리 주소를 가지고 있다.
  • Code 영역 (Text 영역):  프로그램을 실행시키는 명령어들이 위치하는 공간
  • Data 영역: 전역변수, static 변수들이 위치하는 공간
  • Heap 영역: 동적할당을 위한 메모리 공간
  • Stack 영역: 지역변수, 파라미터(함수에 전달되는 인자), 주소값 등이 위치하는 공간 

 

프로세스 상태 (Process State)

Diagram of process state

프로세스가 실행되면 프로세스의 상태가 변화한다. 

  • New(생성): 프로세스가  생성된 상태
  • Ready(준비): 프로세스가 CPU로부터 메모리 할당을 받기 위해 기다리는 상태. 프로세스 스케줄러에 의해 할당 받으면 Running 상태가 되는데 이를 dispatch라고 함
  • Running(실행): CPU가 프로세스 지시를 따라 실행하는 상태
  • Waiting(대기): 프로세스가 이벤트 발생을 기다리기 위해 실행할 수 없는 상태
  • Terminated(종료): 프로세스가 실행을 끝마친 상태 

 

프로세스 컨트롤 블록 (PCB)

Process Control Block (PCB)

각 프로세스에는 그림과 같이 프로세스 관련 정보들을 담은 프로세스 컨트롤 블록(PCB)이 존재한다. 

  • Process State: 프로세스의 상태 (new, running, wait 등)
  • Process ID: 프로세스 고유 ID와 부모 ID
  • CPU registers and Program Counter: CPU에 프로세스를 등록할 때마다 저장되거나 복원하는 정보 
  • CPU Scheduling information: 스케쥴링 큐의 포인터와 우선순위 정보 
  • Memory-Management information: 메모리 정보 
  • Accounting information: 유저와 CPU 사용 속도, 한계 등
  • I/O Status information: 장치 할당, 열려있는 파일 테이블 등 
저작자표시 비영리 변경금지 (새창열림)

'📒 Tech Note > CS 기본기 뚝딱' 카테고리의 다른 글

[운영체제] IPC(Inter-Process Communication, 프로세스 간 통신)란?  (0) 2022.08.25
[운영체제] 동기와 비동기, 블로킹과 논블로킹  (0) 2022.08.25
    '📒 Tech Note/CS 기본기 뚝딱' 카테고리의 다른 글
    • [운영체제] IPC(Inter-Process Communication, 프로세스 간 통신)란?
    • [운영체제] 동기와 비동기, 블로킹과 논블로킹
    @Hadev
    @Hadev

    티스토리툴바