본문으로 바로가기

프로세스와 스레드

category 개발지식 2022. 5. 26. 21:03
반응형

프로그램 ?

 - 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않는 정적인 상태

   어떤 작업을 위해 실행할 수 있는 파일

 

프로세스 ?

 - 프로그램이 메모리에 올라와 운영체제로부터 CPU를 할당받고 프로그램이 실행되고 있는 상태

   일을 처리하는 일련의 과정

 - 운영체제로부터 시스템 자원을 할당받는 작업의 단위

 - 메모리에서 올라와 실행되고 있는 프로그램 

 - 컴퓨터에서 연속적으로 실행되고 있는 프로그램

 - 각 프로세스는 별도의 주소 공간에서 실행되고 프로세스끼리는 자원을 공유하지 않음

 - 하나의 프로세스가 다른 프로세스의 자원에 접근 시 프로세스 간 통신이 필요 (소켓, 공유메모리)

  

프로세스가 할당받는 시스템 자원

 - Code, Data, Stack, Heap 구조로 되어있는 독립된 메모리 영역

 - 주소 공간

 - CPU 시간

 

스레드 ?

  - 프로세스 내에서 실행되는 흐름의 단위로, 프로세스 하나에 자원을 공유하면서 

     일련의 과정을 여러 개 동시에 실행시킬 수 있는 것

   - 하나의 프로세스 내의 주소  공간이나 자원을 공유

   - 하나의 프로세스가 생성되면 하나의 스레드가 생성됨

   - 하나의 프로세스는 여러개의 스레드를 가질 수 있음

   - 스레드는 프로세스 내에서 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유

 

멀티 프로세스와 멀티 스레드 차이

  멀티 프로세스 ?

  - 하나의 응용  프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것

  - 여러 개의 자식 프로세스 중 하나의 문제가 발생해도 다른 자식 프로세스에 영향이 확산되지 않음

  - 각 프로세스들이 독릭접으로 동작(자원이 서로 다르게 할당) 하기 떄문에 안정적

  - 멀티 스레드 보다 많은 메모리 공간과 CPU 시간을 차지

  - 작업량이 많을 수록 오버헤드가 발생하고 Context Switching으로 인한 성능 저하 우려

  - 프로세스 간의 통신을 하기 위해서는 IPC 를 통해야 함

 

멀티 스레드 ?

  - 하나의 응용 프로그램을 여러 개의 스레드로 구성하여 각 스레드가 하나의 작업을 처리

  - 시스템의 자원과 처리 비용감소(실행속도 상승)

  -  Context Switching 이 빠름(스레드는 Stack 영역만 처리)

  - 스레드 간의 자원(Code, Data, Heap) 을 공유하고 있기에 통신의 부담이 적고 응답 시간이 빠름

  - 스레드가 개별로 유기적으로 움직이고 있기 때문에 프로그램 테스트가 어려움

  - 스레드 간의 데이터 공유 시 동기화 문제 발생

  - 하나의 스레드의 오류로 전체 프로세스 문제 발생

  - 너무 많은 스레드의 사용은 오버헤드 발생

 

Context Switching ?

 - 현재 진행하고 있는 Task(Process, Thread)의 상태를 저장하고 다음 진행할 Task의 상태 값을 읽어 적용하는 과정

 

IPC(Inter-Process Communition) ?

  - 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로

 

참고 블로그 https://cocoon1787.tistory.com/688 

 

[OS] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드)

신입 개발자 기술 면접을 볼 때 항상 나오는 단골 질문 사항입니다. 프로세스와 스레드의 차이를 알고 프로그램이 작동하는 방식에 대해서 잘 이해하고 있는지 묻기 위한 질문이며, 그만큼 중요

cocoon1787.tistory.com

 

반응형

'개발지식' 카테고리의 다른 글

WebServer, WAS 의 차이  (0) 2022.06.09
동기와 비동기 방식 / 블로킹과 논블로킹  (0) 2022.05.30
TCP 와 UDP의 차이  (0) 2022.05.25
GET 방식과 POST 방식  (0) 2022.05.24
HTTP HTTPS 의 차이  (0) 2022.05.24