SlideShare a Scribd company logo
1 of 49
Download to read offline
핵심 키워드 :
프로세스
메모리
컨텍스트 스위칭
메모리 커밋
가상메모리
레지스터
멀티프로세스
멀티스레드
저번 시간에 우리는 이런걸 했습니다
기억은 잘 안나지만
기억이 나십니까?
프로그램 : 컴퓨터가 실행할 수 있도록 준비된 코드 덩어리
프로그램은 정적인 개념
그렇다면 프로그램이 동작하고 있을 땐?
PROCESS
- 재미 없음 주의 -
Kitworks Team Study
프로세스란?
디스크에 저장되어 있던 코드덩어리 프로그램이
운영체제로부터 자원을 할당받아 실행중 상태가 된 것
프로세스의 메모리 적재
Code / Text
Data
Stack
Heap
Code / Text
Data
Stack
Heap
Code / Text
Data
Stack
Heap
실행을 위한 함수/코드가 기계어로 저장
프로그래머가 직접, 또는 가비지 컬렉터가 제어
동적 할당 데이터를 위한 영역
함수에 사용되는 지역변수 등이 저장
호출한 함수가 소멸되면 반환되는 영역
실행에 사용되는 전역변수/각종 데이터 저장
프로세스에 필요한 데이터를
메모리에 적재하는 것
MEMORY COMMIT
VIRT? RES? SHR?
VIRT : Virtual Memory
RES : Resident Memory
SHR : Share Memory
RES VIRT
TOTAL MEMORY COMMIT
KERNAL 은 COMMIT 한다고 해서
실제 메모리 주소값을 바로 할당하지 않는다
먼저 가상의 메모리 주소를 할당한 뒤
필요한 만큼만 실제 메모리 주소와 연결
PAGE TABLE
OVER-COMMIT
프로세스가 요청하는 메모리 커밋의 양은
대체적으로 Peak Memory Usage를 기준으로 정해짐
대부분의 경우 프로세스는 커밋한 양의 일부만을 사용
커널은 실제 메모리의 총량보다 많은 양의 메모리 커밋을 받는데
이를 가리키는 말이 Over Commit.
Kind of Over Booking…
운영체제 메모리
Process :
크롬
운영체제 메모리
Process :
크롬
Process :
엑셀
운영체제 메모리
Process :
크롬
Process :
엑셀
Process :
비주얼 스튜디오 코드
운영체제 메모리
Process :
크롬
Process :
엑셀
Process :
비주얼 스튜디오 코드
Process :
디아블로4
운영체제 메모리
프로세스의 CPU 할당
프로세스의 CPU 할당
617 Processes, 2527 threads
그리고 CPU 코어는 달랑 10개
프로세스의 CPU 할당
Multi Tasking?
사실은 엄청빠른
싱글 태스킹!
사실은 엄청빠른
싱글 태스킹!
운영체제(커널)
Process :
크롬
Process :
엑셀
CPU의 프로세스간 작업 전환
Context Switching
Process :
크롬
Process :
엑셀
Process :
비주얼 스튜디오 코드
Process :
디아블로4
운영체제 메모리
PROCESS CONTROL BLOCK
PROCESS : CHROME
PID : 345883
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
READY?
PROCESS : EXCEL
PID : 345892
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
OR NOT?
CPU
Register
적재
저장
Register :
CPU가 작업할 때 사용
하는 내부 저장소로 접
근속도가 아주 빠르다
PROCESS CONTROL BLOCK
PROCESS : CHROME
PID : 345883
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
PROCESS : EXCEL
PID : 345892
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
RUNNING
-> READY OR WAITING
CPU
Register
작업을 변경하기 위하여
작업중이었던 내용을 PCB에 저장
PROCESS CONTROL BLOCK
PROCESS : CHROME
PID : 345883
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
PROCESS : EXCEL
PID : 345892
PROGRAM COUNTER
REGISTERS
MEMORY LIMITS
LIST OF OPEN FILE
…
CPU
Register
READY -> RUNNING
새롭게 작업할 내용 또는 기존에
진행하던 내용을 레지스터에 적재
CONTEXT SWITCHING은…
아무리 메모리나 캐시의 접근속도가 빠르다 하더라도 결국
INPUT/OUTPUT 과정이므로 OVERHEAD 를 발생
CONTEXT SWITCHING은…
CPU Scheduling 에 의해 할당된 시간이 만료되었을때…
프로세스의 작업이 끝났을 때…
실행중인 프로세스가 I/O Request를 했을때…
자식 프로세스를 fork 할 때…
프로세서에 다음 작업을 할당
RUNING
READY
TERMINATED
NEW
WAITING
DISPATCHER
INTERRUPT
I/O OR EVENT
WAIT
I/O OR EVENT
COMPLETE
Multi Process?
Multi Thread?
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Multi Process : 한개의 프로그램이 여러 프로세스를 생성
Code / Text
Data
Stack
Heap
Code
/ Text
Data
Heap
Stack
Stack Stack
State State State
Multi Thread
한개의 프로세스 안에서 작업을 분리하
여 컨텍스트스위칭을 하는 방법
쓰레드는 독립적인 메모리 블록을 할당
받지는 않음
CPU Scheduling
Dispatcher 에게 선택받는 프로세스
그는 누구인가?
CPU Scheduling
Dispatcher 에게 선택받는 프로세스
그는 누구인가?
는 다음시간에!

More Related Content

Similar to Process에 대한 이해

백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어NHN FORWARD
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurationsJohn Kim
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재PgDay.Seoul
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part Isprdd
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중ymtech
 
Process (프로세스의 개념, 특징, 정의)
Process (프로세스의 개념, 특징, 정의)Process (프로세스의 개념, 특징, 정의)
Process (프로세스의 개념, 특징, 정의)ssuserd5354e
 
운영 체제 Sig
운영 체제 Sig운영 체제 Sig
운영 체제 SigYoungGun Na
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스Seunghwa Song
 
프로세스
프로세스프로세스
프로세스xxbdxx
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트SANG WON PARK
 
운영체제 Chapter1
운영체제 Chapter1운영체제 Chapter1
운영체제 Chapter1YoungGun Na
 
(120128) #fitalk sql server anti-forensics
(120128) #fitalk   sql server anti-forensics(120128) #fitalk   sql server anti-forensics
(120128) #fitalk sql server anti-forensicsINSIGHT FORENSIC
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)Ubuntu Korea Community
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 

Similar to Process에 대한 이해 (20)

백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
 
Linux Performan tuning Part I
Linux Performan tuning Part ILinux Performan tuning Part I
Linux Performan tuning Part I
 
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
20170908 tech day-9th-재미없는 java runtime process 디버그-김성중
 
Process (프로세스의 개념, 특징, 정의)
Process (프로세스의 개념, 특징, 정의)Process (프로세스의 개념, 특징, 정의)
Process (프로세스의 개념, 특징, 정의)
 
운영 체제 Sig
운영 체제 Sig운영 체제 Sig
운영 체제 Sig
 
System+os study 3
System+os study 3System+os study 3
System+os study 3
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
 
프로세스
프로세스프로세스
프로세스
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트
 
운영체제 Chapter1
운영체제 Chapter1운영체제 Chapter1
운영체제 Chapter1
 
(120128) #fitalk sql server anti-forensics
(120128) #fitalk   sql server anti-forensics(120128) #fitalk   sql server anti-forensics
(120128) #fitalk sql server anti-forensics
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 

More from Wonjun Hwang

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)Wonjun Hwang
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)Wonjun Hwang
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Wonjun Hwang
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)Wonjun Hwang
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Wonjun Hwang
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyWonjun Hwang
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyWonjun Hwang
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사Wonjun Hwang
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Wonjun Hwang
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음Wonjun Hwang
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드Wonjun Hwang
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링Wonjun Hwang
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업Wonjun Hwang
 

More from Wonjun Hwang (20)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링
 
Passkey
PasskeyPasskey
Passkey
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업
 

Process에 대한 이해