• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

멀티프로세싱(ipc) / 멀티스레드 질문입니다!

22.09.29 14:33 작성 조회수 168

0

안녕하세요! 하루에 질문을 두개나 올리네요ㅠㅠ

 

  1. 멀티 프로세싱을 위해서는 두 개 이상의 프로세스가 자연스럽게 자원의 공유가 필요한 것이고 그렇기 때문에 IPC가 필요하게 되는 건가요?

  2. 프로세스가 다른 프로세스의 데이터가 필요하다고 직접적으로 접근하면, 접근한 프로세스에 손상을 끼칠 수도 잇기때문에 약간 간접적으로 데이터를 주고받는 방식이 바로 ipc다 정도로 생각해도 될까요?

  3. file을 통한 ipc는.. 음.. 그냥 파일이 디스크에 잇으니까 프로세스들이 이걸 보고 확인해서 데이터를 공유한다.. 정도로 생각하면 될까요?

 

  1. 스레드를 들으면서 좀 찾아봤습니당. 스레드를 사용하는 이유가 (멀티 프로세스에 비해)리소스를 가능한 덜쓰면서 여러개의 흐름? 작업? 을 구현하는 것이 맞나요?? 다시말하면, 멀티스레드 라는 게 스레드가 발전한 것이 아니라 그냥 스레드를 사용하는 이유자체가 멀티스레드를 사용하기 위함이 맞을까요?

 

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요. ㅎㅎ 질문은 언제나 환영이야! 입니다.. 하하

  1. 멀티 프로세싱을 위해서는 두 개 이상의 프로세스가 자연스럽게 자원의 공유가 필요한 것이고 그렇기 때문에 IPC가 필요하게 되는 건가요?

>> 자연스레 공유가 혹시 뭘뜻하시는 건가요? 프로세스가 자원을 공유하는 그 방법 중 하나를 IPC라고 합니다.

  1. 프로세스가 다른 프로세스의 데이터가 필요하다고 직접적으로 접근하면, 접근한 프로세스에 손상을 끼칠 수도 잇기때문에 약간 간접적으로 데이터를 주고받는 방식이 바로 ipc다 정도로 생각해도 될까요?

>> 아니요.

  1. file을 통한 ipc는.. 음.. 그냥 파일이 디스크에 잇으니까 프로세스들이 이걸 보고 확인해서 데이터를 공유한다.. 정도로 생각하면 될까요?

 >> 예를 들어 a.js와 b.js라는 파일이 있다고 해볼게요. 2개의 파일을 기반으로 2개의 프로세스가 만들어졌어요. 이 프로세스들이 정보를 주고받으려면 어떻게 해야 하죠? 여러가지 방법이 있지만 파일이 하나의 방법입니다. 하나의 파일 c.json이라는 파일을 통해서 해당 파일에 있는 데이터를 "공유"할 수 있는 것이죠. 그걸 생각하면 됩니다.

image

  1. 스레드를 들으면서 좀 찾아봤습니당. 스레드를 사용하는 이유가 (멀티 프로세스에 비해)리소스를 가능한 덜쓰면서 여러개의 흐름? 작업? 을 구현하는 것이 맞나요?? 다시말하면, 멀티스레드 라는 게 스레드가 발전한 것이 아니라 그냥 스레드를 사용하는 이유자체가 멀티스레드를 사용하기 위함이 맞을까요?

>> 멀티스레드는 스레드를 여러개를 쓰는거에요. 발전된 형태는 아닙니다. 싱글스레드를 쓰는 경우가 더 좋은 경우가 있고 멀티스레드를 쓰는 경우가 더 좋은 경우가 있습니다.

 

감사합니다.