일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Java
- 운영체제
- 자료구조
- C
- MySQL
- 컴퓨터구조
- redis
- Proxy
- design pattern
- Kafka
- Data Structure
- 파이썬
- spring webflux
- 알고리즘
- 백준
- MSA
- Heap
- Galera Cluster
- mongoDB
- OS
- 네트워크
- 자바
- Spring
- JPA
- c언어
- Algorithm
- 디자인 패턴
- IT
- react
- JavaScript
Archives
- Today
- Total
시냅스
TIL : OS IPC 시스템의 사례 본문
- POSIX 공유 메모리 : 메모리 - 사상 파일을 사용하여 구현된다, 메모리 - 사상 파일은 공유 메모리 특정 영역을 연관 시킨다.
- Mach 메세지 전달
- 대부분의 통신은 메세지로 수행된다.
- Port로 메세지를 주고 받는다.
- 포트는 크기가 정해져 있고 단방향이다.
- 양방향 통신의 경우, 메세지가 한 포트로 전송되고 응답이 별도의 응답 포트로 전송된다.
- 각 포트에는 여러 송신자가 있을 수 있지만 수신자는 오직 하나.
- 포트를 사용하여 태스크, 스레드, 메모리 및 프로세서와 같은 자원을 나타낸다.
- 각 포트에는 그 포트와 상호 작용하는데 필요한 자격을 식별하는 포트 권한이 필요
- 태스크가 생성되면 Task self 포트와 Notify 포트 생성
- 커널은 Task Self 포트에 대한 수신 권한이 있어 태스크가 커널에 메세지 보낼 수 있고,
- 태스크는 이벤트 발생 알림을 작업의 Notify 로 받을 수 있다.
- 기본적으로 Mach는 송신자의 메시지가 포함된 주소 공간에 매핑한다. 따라서 송신자와 수신자 모두 동일한 메모리에 액세스 하므로 메시지 자체는 실제로 복사되지 않는다.
- windows
- 모듈화를 이용하여 기능을 향상시키고 새로운 기능을 구현하는 시간을 감소시킨 최신 설계의 예
- 다중 운영 환경 또는 서브시스템을 지원하며, 응용 프로그램은 메세지 전달 기법을 통해 이들과 통신,
- 응용 프로그램은 서브시스템 서버의 클라이언트로 간주할 수 있다.
- 메세지 전달 기법을 통해 서로 통신하는데,
- 메세지 전달 설비는 고급 로컬 프로시저 호출 설비(ALPC)라 불리며, 동일 기계상에 있는 두 프로세스 간의 통신에 사용한다.
- 두 프로세스 간에 연결을 구축하고 유지하기 위해 연결 포트와 통신 포트를 이용한다.
- 과정
-1. 서버 프로세스는 모든 프로세스가 접근할 수 있는 연결 포트 객체를 공표한다.
-2. 클라이언트가 서버시스템으로부터 서비스를 원할 경우, 서버의 연결 포트 객체에 대한 핸들을 열고 연결 요청을 보낸다.
-3. 서버는 채널을 생성하고 핸들을 클라이언트에게 반환한다.
- 파이프 : 두 프로세스가 통신할 수 있게 하는 전달자.
- 반이중 방식 : 한순간에 한 방향만 전송 가능
- 전이중 방식: 양방향 데이터 전송
- 일반 파이프 : 생산자 - 소비자 형태로 두 프로세스 간의 통신 허용, 단방향
- 생산자 : 한 종단(쓰기 종단)에 쓰고
- 소비자 : 다른 종단(읽기 종단)에서 읽는다.
- 일반 파이프는 생성한 프로세스 이외에는 접근할 수 없기 때문에 부모 프로세스가 파이프를 생성하고 fork()로 생성한 자식 프로세스와 통신하기 위해 사용
- 지명 파이프 : 양방향 통신
- 부모 - 자식 관계 필요로 하지 않고 여러 프로세스들이 사용하여 통신 가능
- 프로세스가 종료되더라도 계속 존재한다.
- 클라이언트-서버 환경에서의 통신
- 소켓 : 통신의 극점
- 네트워크 상 통신을 위해 양 프로세스마다 하나씩 필요.
- IP 주소, 포트 번호 두가지를 접합해서 구별.
- 클라이언트 - 서버 구조
- 클라이언트 요청 -> 서버 연결 수락
- well-known port
- ssh : 22
- ftp : 21
- http : 80
- 모든 연결은 유일해야 한다.
- 소켓 : 통신의 극점
- 원격 프로시저 호출 (RPC) : 원격 서비스와 관련된 가장 보편적인 형태
- 다른 컴퓨터에 있는 프로세스에서 함수를 호출할 수 있는 방식으로 함수 호출 개념을 추상화한다.
'운영체제' 카테고리의 다른 글
멀티 쓰레딩 Thread and Concurrency (0) | 2022.04.12 |
---|---|
TIL : OS Thread (0) | 2021.11.19 |
TIL : OS 프로세스 간 통신 (0) | 2021.11.14 |
TIL : OS processes (0) | 2021.11.12 |
TIL : OS Structure (0) | 2021.11.12 |
Comments