시냅스

TIL : OS IPC 시스템의 사례 본문

운영체제

TIL : OS IPC 시스템의 사례

ted k 2021. 11. 16. 23:40
  • 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