Process에 대한 이해

Wonjun Hwang
Wonjun HwangCEO @Kit Works Inc. à Kit Works inc.
핵심 키워드 :
프로세스
메모리
컨텍스트 스위칭
메모리 커밋
가상메모리
레지스터
멀티프로세스
멀티스레드
저번 시간에 우리는 이런걸 했습니다
기억은 잘 안나지만
기억이 나십니까?
프로그램 : 컴퓨터가 실행할 수 있도록 준비된 코드 덩어리
프로그램은 정적인 개념
그렇다면 프로그램이 동작하고 있을 땐?
PROCESS
- 재미 없음 주의 -
Kitworks Team Study
프로세스란?
디스크에 저장되어 있던 코드덩어리 프로그램이
운영체제로부터 자원을 할당받아 실행중 상태가 된 것
프로세스의 메모리 적재
Process에 대한 이해
Process에 대한 이해
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
새롭게 작업할 내용 또는 기존에
진행하던 내용을 레지스터에 적재
Process에 대한 이해
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?
Process에 대한 이해
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 에게 선택받는 프로세스
그는 누구인가?
는 다음시간에!
1 sur 49

Recommandé

실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장 par
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장Sunggon Song
5.1K vues36 diapositives
DBMS 아키텍처 par
DBMS 아키텍처DBMS 아키텍처
DBMS 아키텍처HaksunLEE6
64 vues18 diapositives
운영체제 Chapter 8 par
운영체제 Chapter 8운영체제 Chapter 8
운영체제 Chapter 8YoungGun Na
3.6K vues49 diapositives
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO par
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
1.6K vues74 diapositives
프로그래머가 알아야 하는 메모리 관리 기법 par
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
39.8K vues27 diapositives
Hadoop distributed file system rev3 par
Hadoop distributed file system rev3Hadoop distributed file system rev3
Hadoop distributed file system rev3Sung-jae Park
1K vues53 diapositives

Contenu connexe

Similaire à Process에 대한 이해

이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018 par
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
4.6K vues122 diapositives
Assembly 스터디 1 par
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
814 vues106 diapositives
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드 par
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
3.4K vues70 diapositives
System+os study 1 par
System+os study 1System+os study 1
System+os study 1Jinkyoung Kim
181 vues78 diapositives
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어 par
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어NHN FORWARD
3.8K vues67 diapositives
Nginx basic configurations par
Nginx basic configurationsNginx basic configurations
Nginx basic configurationsJohn Kim
1.4K vues19 diapositives

Similaire à Process에 대한 이해(20)

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

Plus de Wonjun Hwang

상속과 구현 par
상속과 구현상속과 구현
상속과 구현Wonjun Hwang
0 vue77 diapositives
오버라이딩 조금 더 알아보기 par
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기Wonjun Hwang
0 vue22 diapositives
컴포넌트 설계 par
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
14 vues21 diapositives
성능 테스트 par
성능 테스트성능 테스트
성능 테스트Wonjun Hwang
13 vues13 diapositives
WebRTC par
WebRTCWebRTC
WebRTCWonjun Hwang
22 vues18 diapositives
Flutter & Firebase par
Flutter & FirebaseFlutter & Firebase
Flutter & FirebaseWonjun Hwang
18 vues16 diapositives

Plus de Wonjun Hwang(20)

오버라이딩 조금 더 알아보기 par Wonjun Hwang
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기
Wonjun Hwang0 vue
프론트엔드 비동기 프로그래밍 par Wonjun Hwang
프론트엔드 비동기 프로그래밍프론트엔드 비동기 프로그래밍
프론트엔드 비동기 프로그래밍
Wonjun Hwang28 vues
트렌디 앱 - ARC & OBSIDIAN par Wonjun Hwang
트렌디 앱 - ARC & OBSIDIAN트렌디 앱 - ARC & OBSIDIAN
트렌디 앱 - ARC & OBSIDIAN
Wonjun Hwang29 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang6 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang37 vues

Process에 대한 이해