CS

[자료구조] Tread와 Process의 차이 (쓰레싱)

juhwan 2023. 10. 1. 02:36

프로세스와 스레드는 운영체제에서 프로그램을 실행하기 위한 구조다

1. 프로세스

운영 체제에서 독립적으로 실행되는 프로그램의 인스턴스
작업들이 동시에 일어나야 하고 서로 정보를 주고받아야 할 때 스레딩을 사용합니다.
예시로는 웹 브라우저나 워드 카카오톡 등 하나의 프로세스라고 하며
여러 작업을 동시에 처리할 경우 유용합니다. (예시: 화면 출력, 버튼 클릭, 알림)

2. 스레드

프로세스 내에서 실행되는 하나의 실행 흐름이다.
작업들이 서로 영향을 미치지 않고 따로 실행되어야 할 때 멀티프로세싱이 유용합니다.
예시로는 웹 브라우저 안에 여러개의 탭을 열면 각 탭 하나를 스레드라 부르며

3. 쓰싱

주로 메모리 부족으로 인한 과도한 페이지 교체 작업 때문에 발생한다
가상 메모리를 사용하면 디스크 일부를 RAM처럼 사용할 수 있다.
가상 메모리의 디스크 일부와 RAM의 교환 작업을 페이징 혹은 스와핑이라고 한다.

만약 여러 프로세스가 동시에 실행되어 너무 많은 메모리를 요구하는 경우, 운영체제는 계속해서 페이징, 스와핑 작업을 수행해야 하는데 이렇게 되면 실제 CPU에서 의미 있는 작업 처리하는 것보다 페이지를 디스크와 메모리 사이에 오고 가는데 대부분의 시간을 소비하게 되어 성능저하가 일어나게 된다. 이 현상을 쓰래싱이라 부른다