SlideShare a Scribd company logo
1 of 4
Download to read offline
프로세스간 커뮤니케이션
프로세스간 직접적으로 통신을 할 수 없기 때문에, 통신을 하기 위해서 특별한 IPC를 사용하라고 정의 해놨다.
프로세스들이 서로의 공간을 쉽게 접근할 수 있다면?
프로세스 데이터/코드가 바뀔 수 있으기 때문에 위험하다. 프로세스는 다른 프로세스의 공간을 접근할 수 없다. (제공하면 안된다)
ICP(interprocess Communication)
프로세스간에 커뮤니케이션을 하기위해, 프로세스간 통신 방법을 제공한다. (IPC: InterProcess Communcation)
프로세스간 통신이 왜 필요한 이유?
성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행 - CPU 안에 코어가 많아지면서, 각 프로세스를 각 코어에동시 실행 가능
(병렬 처리)
이 때 프로세스간 상태 확인 및 데이터 송수신이 필요
예시1
fork() 시스템콜 : 프로세스 자신을 복사해서 새로운 프로세스로 만들 수 있음
부모 프로세스(함수를 호출한), 자식 프로세스(함수를 통해 만들어진)
프로세스를 fork()해서,여러 프로세스를 동시에실행시킬 수 있음
● 여러 프로세스 동시 실행하기 예
○ 1~10,000까지 더하기
■ fork() 함수로 10개프로세스 만들어서 , 1~1000 , 1001~ 2000 … 식으로 각각 더한 값을 모두 합하면, 더 빠르게
동작 가능
단, 이 때 각 프로세스가 더한 값을 수집해야 하므로, 프로세스간 통신 필요
예시2
● 웹서버와 클라이언트 서버 간의 통신
○ 새로운 사용자 요청이 올 때마다, fork() 함수로 새로운 프로세스 만들고, 각 사용자 요청에 즉시 대응
CPU 병렬 처리가 가능하다면, 더 빠른 대응이 가능
단, 이 때 각프로세스 제어 및 상태 정보 교환을 위해 프로세스간 통신 필요
파일을 사용한 커뮤니케이션
프로세스간에커뮤니케이션을 해야한다 어떻게 해야할까?
● 프로세스간 통신 방법을 제공함
● IPC
○ 그 중의 한가지 방법 :file 사용
간단히 다른 프로세스에 전달할 내용을 파일에쓰고,
다른 프로세스가 해당 파일을 읽으면 됨
프로세스간 커뮤니케이션
● file을 사용하면, 실시간으로 직접 원하는 프로세스에 데이터 전달어려움
○ 왜? 해당 프로세스가 파일을 읽어야 하는데, 계속 실시간으로 읽고 있을 수는 없다.
○ 또한, 저장매체를 사용하는것은 메모리를 사용하는것 보다 느리다.
그래서 보다 다양한 IPC 기법이 있음
실제 프로세스: 리눅스 예
● 프로세스간 공간은 완전히 분리되어 있다.
○ 사용자 모드에서는 커널 공간 접근 불가
● 커널 공간은 공유한다.
○ 보다 구체적인 내용은 가장 메모리에서 다룸
다양한 IPC 기법
1. file 사용
2. Message Queue
3. Shared Memory
4. Pipe
5. Signal
6. Semaphore
7. Socket
2번부터는 모두 커널 공간을 사용한다.

More Related Content

Similar to 9

Reduce testing time by Multiprocessing in python
Reduce testing time by Multiprocessing in pythonReduce testing time by Multiprocessing in python
Reduce testing time by Multiprocessing in pythonSangJune Ahn
 
Nginx Architecture
Nginx ArchitectureNginx Architecture
Nginx Architecture건 손
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminarCho Daniel
 
150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은jieun kim
 
프로세스 관리
프로세스 관리프로세스 관리
프로세스 관리jeiger
 
Linux programming study
Linux programming studyLinux programming study
Linux programming studyYunseok Lee
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel ProgrammingUNIST
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)MinChul Lee
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리Seungyong Lee
 
Rankwave moment™ desc3
Rankwave moment™ desc3Rankwave moment™ desc3
Rankwave moment™ desc3Sungwha Shim
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
운영 체제 Sig
운영 체제 Sig운영 체제 Sig
운영 체제 SigYoungGun Na
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍kimkiweon
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and ProtocolWonjun Hwang
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Kris Jeong
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술정혁 권
 

Similar to 9 (20)

System+os study 3
System+os study 3System+os study 3
System+os study 3
 
Reduce testing time by Multiprocessing in python
Reduce testing time by Multiprocessing in pythonReduce testing time by Multiprocessing in python
Reduce testing time by Multiprocessing in python
 
Nginx Architecture
Nginx ArchitectureNginx Architecture
Nginx Architecture
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminar
 
Computing Paradigm
Computing ParadigmComputing Paradigm
Computing Paradigm
 
150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은150625 마이크로커널 운영체제 김지은
150625 마이크로커널 운영체제 김지은
 
프로세스 관리
프로세스 관리프로세스 관리
프로세스 관리
 
Linux programming study
Linux programming studyLinux programming study
Linux programming study
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)
 
리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리리눅스 커널 기초 태스크관리
리눅스 커널 기초 태스크관리
 
Rankwave moment™ desc3
Rankwave moment™ desc3Rankwave moment™ desc3
Rankwave moment™ desc3
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
운영 체제 Sig
운영 체제 Sig운영 체제 Sig
운영 체제 Sig
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
NiFi 시작하기
NiFi 시작하기NiFi 시작하기
NiFi 시작하기
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and Protocol
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 

More from usdrd90

컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어usdrd90
 
TCP/IP 4계층
TCP/IP 4계층TCP/IP 4계층
TCP/IP 4계층usdrd90
 
20181014
2018101420181014
20181014usdrd90
 

More from usdrd90 (6)

10
10 10
10
 
1111
11111111
1111
 
1
11
1
 
컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어컴퓨터 구조 분야의 8가지 아이디어
컴퓨터 구조 분야의 8가지 아이디어
 
TCP/IP 4계층
TCP/IP 4계층TCP/IP 4계층
TCP/IP 4계층
 
20181014
2018101420181014
20181014
 

9

  • 1. 프로세스간 커뮤니케이션 프로세스간 직접적으로 통신을 할 수 없기 때문에, 통신을 하기 위해서 특별한 IPC를 사용하라고 정의 해놨다. 프로세스들이 서로의 공간을 쉽게 접근할 수 있다면? 프로세스 데이터/코드가 바뀔 수 있으기 때문에 위험하다. 프로세스는 다른 프로세스의 공간을 접근할 수 없다. (제공하면 안된다) ICP(interprocess Communication) 프로세스간에 커뮤니케이션을 하기위해, 프로세스간 통신 방법을 제공한다. (IPC: InterProcess Communcation) 프로세스간 통신이 왜 필요한 이유? 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행 - CPU 안에 코어가 많아지면서, 각 프로세스를 각 코어에동시 실행 가능 (병렬 처리) 이 때 프로세스간 상태 확인 및 데이터 송수신이 필요
  • 2. 예시1 fork() 시스템콜 : 프로세스 자신을 복사해서 새로운 프로세스로 만들 수 있음 부모 프로세스(함수를 호출한), 자식 프로세스(함수를 통해 만들어진) 프로세스를 fork()해서,여러 프로세스를 동시에실행시킬 수 있음 ● 여러 프로세스 동시 실행하기 예 ○ 1~10,000까지 더하기 ■ fork() 함수로 10개프로세스 만들어서 , 1~1000 , 1001~ 2000 … 식으로 각각 더한 값을 모두 합하면, 더 빠르게 동작 가능 단, 이 때 각 프로세스가 더한 값을 수집해야 하므로, 프로세스간 통신 필요 예시2 ● 웹서버와 클라이언트 서버 간의 통신 ○ 새로운 사용자 요청이 올 때마다, fork() 함수로 새로운 프로세스 만들고, 각 사용자 요청에 즉시 대응 CPU 병렬 처리가 가능하다면, 더 빠른 대응이 가능 단, 이 때 각프로세스 제어 및 상태 정보 교환을 위해 프로세스간 통신 필요
  • 3. 파일을 사용한 커뮤니케이션 프로세스간에커뮤니케이션을 해야한다 어떻게 해야할까? ● 프로세스간 통신 방법을 제공함 ● IPC ○ 그 중의 한가지 방법 :file 사용 간단히 다른 프로세스에 전달할 내용을 파일에쓰고, 다른 프로세스가 해당 파일을 읽으면 됨 프로세스간 커뮤니케이션 ● file을 사용하면, 실시간으로 직접 원하는 프로세스에 데이터 전달어려움 ○ 왜? 해당 프로세스가 파일을 읽어야 하는데, 계속 실시간으로 읽고 있을 수는 없다. ○ 또한, 저장매체를 사용하는것은 메모리를 사용하는것 보다 느리다. 그래서 보다 다양한 IPC 기법이 있음
  • 4. 실제 프로세스: 리눅스 예 ● 프로세스간 공간은 완전히 분리되어 있다. ○ 사용자 모드에서는 커널 공간 접근 불가 ● 커널 공간은 공유한다. ○ 보다 구체적인 내용은 가장 메모리에서 다룸 다양한 IPC 기법 1. file 사용 2. Message Queue 3. Shared Memory 4. Pipe 5. Signal 6. Semaphore 7. Socket 2번부터는 모두 커널 공간을 사용한다.