12. 프로세스가 뭐에요?
프로세스의 특징
• 프로세스는 각각 독립된 메모리 영역을 할당받는다.
• 기본적으로 프로세스는 최소 1개의 메인 스레드를 가지고 있다.
• 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다
른 프로세스의 변수나 자료구조에 접근할 수 없다.
• 프로세스의 생성은 많은 시간과 자원을 소비한다.
19. 스레드가 뭐에요?
특징
• 동일한 프로세스를 구성하는 스레드들은 할당된 메모리, 자원 등
을 공유할 수 있다.
• 하나의 프로세스는 여러 개의 스레드로 구성이 가능하다.
• 프로세스와 동일한 실행, 준비, 대기 상태를 가진다.
20. 스레드가 뭐에요?
스레드의 장점
• 스레드는 프로세스보다 생성 및 종료 시간, 스레드간 전환 시간이
짧다.
• 스레드는 프로세스의 메모리, 자원 등을 공유하므로 상호 간의 통
신이 가능하다.
• 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 향상
시킬 수 있다.
21. 스레드가 뭐에요?
프로세스와 스레드 요약
싱글 프로세스
싱글 스레드
싱글 프로세스
멀티 스레드
멀티 프로세스
싱글 스레드
멀티 프로세스
멀티 스레드
22. 멀티 프로세스는 뭐에요?
사전적 의미
[ Multi Process ]
• 하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로
세스가 하나의 작업을 처리하도록 하는 것이다.
23. 멀티 프로세스는 뭐에요?
특징
• 프로세스 간 공유하는 자원이 존재하지 않아, 동일한 자원에 동시
접근해서 발생하는 Dead lock 문제가 발생하지 않는다.
• 부모-자식 관계이지만, 각각의 독립된 메모리 영역을 가진다.
• 여러 개의 자식 프로세스 중 하나에게 문제가 발생하면 그 자식 프
로세스 이외의 다른 프로세스로 영향이 확산되지 않는다.
24. 멀티 스레드는 뭐에요?
사전적 의미
[ Multi Thread ]
• 하나의 응용프로그램을 여러 개의 스레드로 구성하고 각 스레드
로 하나의 작업을 처리하도록 하는 것이다.
25. 멀티 스레드는 뭐에요?
특징
• 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자
원을 효율적으로 관리할 수 있다.
• 스레드간 데이터를 주고받는 것이 간단해지고 시스템 자원 소모
가 줄어들게 된다.
• 스레드는 프로세스 내의 Stack 영역을 제외한
모든 메모리를 공유하기 때문에 통신의 부담이
적다.
26. 멀티 스레드는 뭐에요?
하지만
• 스레드 간의 자원은 공유가 가능하기 때문에 자원의 동시접근 발
생오류 DeadLock이 발생할 수 있다.
• 논리 구조 설계 및 디버깅이 어려워 구현난이도가 증가한다.
• 하나의 스레드에 문제가 발생하면 전체 프로세스가 영향을 받는
다.