면접 질문 정리 - OS(운영체제) [프로세스 VS 스레드]

코난·2024년 2월 20일
0

CS 면접 정리

목록 보기
27/67

프로세스 VS 스레드

프로세스

프로세스는 운영체제로부터 자원을 할당받은 작업의 단위이다. 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태를 말한다. 운영체제로부터 메모리 공간을 할당받아 시스템 자원을 사용한다.

위의 사진처럼 프로세스는 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역을 할당받는다. 독립적 주소 공간이기에 다른 프로세스의 변수나 자료구조에는 접근할 수 없다. (접근하려면 IPC 등을 사용해야 한다.)

프로세스의 한계

기술이 발전함에 따라서 프로그램이 복잡하고 다채로워졌고 프로세스 하나만으로 프로그램을 실행하기에는 한계가 있었다. 그렇다고 동일한 프로그램을 여러개의 프로세스로 만들게 되면, 메모리를 그만큼 차지하고 중복되는 자원도 많기에 이를 해결하고자 스레드가 탄생했다.

스레드

스레드는 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위이다. 하나의 프로세스 안에서 여러가지의 작업 흐름들이 동시에 진행되기에 스레드가 여러개 있는 것이며, 이를 멀티 스레드라고 부른다. 스레드가 많을수록 성능이 높아진다.

일반적으로 하나의 프로그램은 하나 이상의 프로세스를 가지고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다.

스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름이기에 프로세스 내에서 각각 Stack 영역만 따로 할당받고 Code, Data, Heap 영역은 공유한다. 따라서 다른 스레드의 실행 결과를 바로 확인할 수 있다.

멀티 프로세스

멀티 프로세싱이란 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 한 프로세스에서 장애가 발생하더라도 다른 프로세스에는 영향을 끼치지 않는다는 장점이 있다. 하지만 여러 프로세스를 돌아가면서 작업을 처리하는 과정인 Context Switching에서의 오버헤드가 발생한다는 점이 단점이다. 독립된 영역이기에 캐쉬의 모든 데이터를 리셋하고 다시 캐쉬 정보를 불러와야 하기 때문이다.

멀티 스레드

멀티 스레딩이란 하나의 프로그램을 여러개의 스레드로 구성하고 각 스레드가 하나의 작업을 처리하도록 하는 것이다. 자원을 효율적으로 관리할 수 있으며 스레드간 Context Switching이 이루어지므로 처리 비용이 감소하고, 통신의 부담이 적다는 장점이 있다. 하지만 주의 깊은 설계가 필요하고 디버깅이 까다로우며 자원 동기화 문제가 있고, 하나의 스레드에서 문제가 발생하면 전체 프로세스가 영향을 받는다는 단점이 있다.

멀티 스레드에서의 동시성, 병렬성

동시성

동시성은 싱글 코어에서 멀티스레드를 동작시키기 위한 방식으로 멀티태스킹을 위해서 여러개의 스레드가 번갈아가면서 실행되는 성질을 말한다.

병렬성

병렬성은 멀티 코어에서 멀티스레드를 동작시키는 방식으로, 한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질을 말한다.

멀티 스레드 환경의 주의사항

여러 스레드가 공유자원에 동시에 접근하려 할 때 일어나는 문제인 경쟁상태와 둘 이상의 스레드가 서로의 작업이 끝나기만을 기다리고 있어 모두가 영원히 끝나지 않는 상황인 교착 상태가 일어나지 않도록 주의해야 한다.


참고

https://velog.io/@jungeun/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%93%9C%EC%97%90%EC%84%9C%EC%9D%98-%EB%8F%99%EC%8B%9C%EC%84%B1%EA%B3%BC-%EB%B3%91%EB%A0%AC%EC%84%B1
https://dev-coco.tistory.com/162
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4#%EB%8F%99%EC%8B%9C%EC%84%B1_concurrency

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글