인프런 커뮤니티 질문&답변
Application Program 설계 시 multi-process vs. multi-thread
해결된 질문
작성
·
439
0
안녕하세요, 늘 좋은 강의 감사드립니다.
강의 중 Process=Program 이라고 생각하면 된다고 하셨는데,
하나의 Application Program을 설계 할 때 동시에 수행되어야 하는 task에 대해 multi-process로 동작하도록 할 것 인가 multi-thread로 동작하도록 할 것 인가는 설계자의 선택의 문제인가요?
Process=Program 개념으로 생각하면 설계자 입장에서 하나의 Application Program 내에 여러개의 Process를 만드는 것은 불가능 한 것인가? 이렇게 생각이 들기도 하는데 궁금해서 여쭤봅니다.
퀴즈
CPU 아키텍처에서 캐시 메모리를 사용하는 주된 이유는 무엇일까요?
저장 공간을 늘리기 위해
CPU와 주기억장치(RAM) 간의 속도 차이를 줄이기 위해
그래픽 처리 속도를 높이기 위해
프로세스 간 통신을 원활하게 하기 위해
답변 1
1
네, 그렇습니다. 특히 GUI가 있는 경우와 없는 경우도 생각해야 합니다. 한 프로그램을 여러 프로세스로 구성하는 경우는 생각보다 많습니다. 다만 한 프로그램에 대해 같은 프로세스가 여럿 존재하는 경우는 경험하지 못했습니다. 가령 Word나 PPT처럼 문서 편집 도구라면 한 프로그램에 대해 여러 프로세스가 존재하더라도 그 각각이 개별 문서 데이터를 로드하고 있는 독립적인 프로세스로 구성됩니다. 그러가 문서 하나를 위해 PPT 프로세스가 2개 이상 실행되어야 할 이유는 없다고 보는 것이 좋겠습니다.
다만 웹 브라우저의 경우 내부 구성요소(기능)들이 개별 프로세스로 로딩되기도 합니다. 예를 들어 어떤 페이지 하나에 접속했을 때 눈에 보이는 브라우저는 1개뿐이라 해도 내부적으로는 2~3개가 실행 중일 수 있습니다.
결론은...불가능이라기 보다 개발자의 선택이 맞겠습니다. 어떤 구조가 더 적절한 것인지 판단하고 그에 맞는 구조를 택하면 되겠습니다. 감사합니다.





