kakaotech-25 / cs-plant-interview

cs 의 씨앗을 심기 위한 레포지토리 🌱
2 stars 0 forks source link

[OS] IPC #6

Closed JaeJunday closed 3 months ago

JaeJunday commented 3 months ago

예상 면접 질문

1013115 commented 3 months ago
  1. IPC는 프로세스간 통신을 의미하며 운영체제에서 여러 프로세스가 서로 데이터를 주고 받거나 협력하여 작업을 수행할 수 있도록하는 매커니즘이다. 여러 사용자가 동일한 정보에 엑세스 할 수 있으며, 특정 작업을 여러개의 서브 작업으로 쪼개어 프로세스의 병렬성을 키움으로써 처리 속도를 높일 수 있다. 또한 특정한 시스템 기능을 별도의 프로세스로 구분하여 모듈화된 시스템을 구성할 수 있다.

  2. IPC 종류

    • 파이프 : 한 프로세스의 출력을 다른 프로세스의 입력으로 전달
    • 소켓 : 양방향 통신이 가능하며 네트워크 상에서 프로세스 간에 통신하는 방식이다.
    • 메세지 큐 : 구조체를 기반으로 통신한다. 메세지 타입에 따라 구조체 종류를 다르게 받을 수 있으며, 커널에서 제공
    • 공유메모리 : 공유 메모리 영역을 구축하고 공유 영역을 통해 자원이나 데이터를 주고 받는다. 커널 의존도가 낮아 속도가 빠르고 통신이 자유롭다.
    • 메모리 맵 : 공유메모리 처럼 메모리를 공유해 사용한다. 열린 파일을 메모리에 맵핑해서 통신하는 방식이다.
    • RPC : 네트워크나 다른 프로세스에서 실행되는 함수나 절차를 마치 로컬 시스템에서 호출하듯이 간편하게 호출할 수 있게 해주는 메커니즘
LEE-DA-EUN commented 3 months ago
  1. IPC란 무엇이고 왜 필요한가?

    • IPC는 프로세스간의 통신을 의미한다. 하나의 컴퓨터에서 실행 중인 여러 프로세스 간 데이터를 교환하는 방법을 의미하기도 한다.
  2. 알고있는 IPC에 대해 말해달라

    • 공유 메모리 : 프로세스가 공유메모리 할당을 커널에 요청하면 커널은 해당 프로세스에 메모리 공간을 할당하고 이후에는 어떤 프로세스라도 해당 메모리영역에 접근할 수 있다.
    • 파이프 : 통신을 위한 버퍼를 생성해서 데이터를 주고받는다.
    • 소켓 : 네트워크를 사용해서 양쪽 PC에서 각각 임의의 포트를 정하고 해당 포트 간의 대화를 통해서 데이터를 주고 받는다, 이 때 포트를 담당하는 소켓은 각각 하나의 프로세스다.
    • 메세지 큐 : 네임드 파이프와 동일한 입출력 방식을 가지지만 파이프와 달리 데이터의 흐름이 아니라 메모리 공간을 이용한다.
    • 메모리 맵 : 공유 메모리처럼 메모리를 공유해서 사용, 열림 파일을 메모리에 매핑해서 통신하는 방식이다.
    • RPC : 분산 네트워크 망에서 많이 사용하는 방식으로, 별도의 원격제어에 필요한 기술없이 다른 주소 공간에서 함수나 프로시저를 실행하게 하는 기술이다.
rimeir commented 3 months ago
  1. PC는 프로세스 간 통신으로 운영체제에서 다른 프로세스들 사이에 서로 데이터를 주고받는 상호작용을 하는 방법을 의미합니다. IPC가 필요한 이유는 정보 공유, 가속화, 모듈화, 편의성이 있습니다.
  2. IPC로는 공유메모리, 파이프, 소켓, 메세지 큐, 메모리 맵, RPC가 있습니다. 공유메모리는 프로세스가 공유메모리 할당을 커널에 요청하면 커널이 해당 프로세스에 메모리 공간을 할당하여 이후 어떤 프로세스도 해당 메모리영역에 접근할 수 있게됩니다. 파이프는 통신을 위한 버퍼를 생성하여 데이터를 주고받습니다. 파이프는 종류로는 한 쪽 방향으로만 통신이 가능한 익명파이프, 익명 파이프에서 확장되어 부모 프로세스와 무관한 다른 프로세스와 통신이 가능한 네임드 파이프 등이 있습니다. unix 도메인 소켓 또는 IPC 소켓은 동일한 호스트 운영체제에서 실행되는 데이터 통신 엔드 포인트로 네트워크를 사용해 양쪽 pc에서 임의의 포트를 정해 해당 포트간의 대화를 통해 데이터를 주고받습니다. 메세지 큐는 네임드 파이프와 입출력 방식은 동일하지만 데이터의 흐름이 아닌 메모리 공간을 이용합니다. RPC는 분산 네트워크 망에서 많이 사용하는 방식으로 별도의 원격제어에 필요한 기술 없이 다른 주소공간에서 함수나 프로시저를 실행할 수 있는 통신 기술입니다.
msung99 commented 3 months ago
  1. IPC 란 협력관계에 놓여있는 각 프로세스간에 데이터를 주고받기 위한 기법을 정의한 것이다. 프로세스는 독립적 (independent)이거나 다른 프로세스와 협력(cooperating)한다. 독립적인 프로세스는 동시에 실행 중인 다른 프로세스에 영향을 주지 않지만, 협력이 필요한 프로세스의 경우 다른 프로세스에 영향을 주거나 받을 수 있다.

IPC 가 필요한 이유는 다음과 같다.

  1. IPC 의 종류는 다음과 같다.
    • 파이프
    • 소켓
    • 메세지 큐
    • RPC