반응형
운영체제에서 스레드는 Light Weight Process로, 기존의 Process인 Heavy Weight Process는 프로그램 3개를 실행했을 때, PCB 또한 3개가 생성됐습니다. 따라서, 이름 그대로 무겁게 돌아갔었는데, 스레드를 활용하면 하나의 Task로 프로그램 여러개를 돌릴 수 있습니다.
이러한 특성때문에 기존의 Heavy Weight Process는 앞선 포스트에서 서술했던 Memory Protection Error를 방지하기 위해 순차적 실행이 필수였습니다.
하지만, 스레드를 사용하면, 하나의 Task를 여러 프로그램이 공유하기 때문에, 동시에 실행이 가능합니다. 즉, 병렬처리가 가능해 집니다. 하지만, Protection이 제공되지 않습니다. (병렬처리 설계 시 Memory Protection이 제공 되지 않는 만큼 문제가 발생하지 않도록 잘 고려해서 설계)
다음포스트에서 다룰 프로세스 동기화의 임계 구역문제에서 위처럼 하나의 자원을 공유할 때에 생기는 문제와 해결방법에 대해 포스팅하겠습니다.
반응형
'Computer Science > 운영체제' 카테고리의 다른 글
Semaphore (세마포) (1) | 2024.01.22 |
---|---|
Critical Section (임계구역) (0) | 2024.01.19 |
CPU Scheduling Algorithm (0) | 2024.01.18 |
Context Switch (문맥교환) (0) | 2024.01.18 |
Protection (보호) (0) | 2024.01.17 |