Blog

[CS]41 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.

Author
Summary
Category
Study
Tags
CS
PinOnMain
Favorite
Memory
Memory Date
2023/11/05
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
4 more properties
프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.
먼저 프로세스와 스레드에 대해 본격적으로 설명하기 전에 프로그램에 대해서 설명드리면 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말합니다.
프로세스 : 운영체제로부터 자원을 할당 받은 작업의 단위라고 정리 할 수 있습니다. 간단히 설명하면 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적(動的)인 상태라고 하며 이 상태의 프로그램을 프로세스라고 합니다.
스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위. 프로그램이 복잡해지고 프로세스 하나만을 사용해서 실행하기는 벅차게 되면서 프로세스와는 다른 더 작은 실행 단위 개념이 필요하게 되었고, 이 개념이 바로 스레드입니다.
운영체제는 프로세스마다 각각 독립된 메모리 영역을, Code/Data/Stack/Heap의 형식으로 독립적으로 할당해 주게 됩니다. 이말은 곧 프로그램마다 별도의 프로세스이며 메모리 영역 또한 서로 영향을 주지 않습니다.
하지만 스레드는 Stack부분만 별도로 할당받으며 Code/Data/Heap 부분을 공유(같은것을 바라봄)합니다. 이 특징에서 가장 큰 차이점은 만약 한 프로세스를 실행하다가 오류가 발생해서 프로세스가 강제로 종료된 아무런 영향을 주지 않는 반면, 스레드는 어떤 스레드 하나에서 오류가 발생한다면 같은 프로세스 내의 다른 스레드 모두가 강제로 종료됩니다.