본 포스팅은 이화여자대학교 공개강의를 참조하여 제작하였습니다.
Responsiveness
Ex) 웹툰 감상
웹툰 페이지를 서버에 요청 👉🏻 삽화 로딩까지 스레드 blocked 👉🏻 스레드 미존재시 삽화 렌더링까지 빈 화면 👉🏻 스레드 존재시 삽화 스레드 blocked 동안 HTML 파일 렌더링 가능(리모컨, 목차, 메뉴 등)
Resource Sharing
같은 프로세스 내에서 code/data를 공유하기 때문에 메모리 효율 증가
Fast Context Switch
프로세스보다 스레드 간 context switch가 더욱 빠름, 이는 overhead를 줄여줌
Utilization of MP processors
??? 각기 다른 프로세스에서 병렬성이 있는건 스레드 뿐만 아니라 프로세스도 마찬가지 아닌가??
fork(): 자식 프로세스 생성
exec(): 덮어쓰기
Copy-on-Write
자식 프로세스가 종료될 때까지 부모 프로세스를 blocked
- 자식이 할당 자원을 넘어섬
- 자식에게 더 이상 태스크가 필요하지 않음.
- 부모가 종료됨
IPC: Interprocess Communication
엄밀히 말하면 스레드는 프로세스가 아니기 때문에 프로세스 간 협력은 아니지만 어쨌든 CPU를 할당받는 특성에 기인하여 하나의 프로세스로 간주함