동시성
동시성이란, 동시에 처리하게끔 보이는 것으로 서로 다른 작업들이 서로 영향을 주면서 동시에 실행되는 것처럼 보이게 하는 것입니다. 사용 코어수는 싱글로, 동작 방식은 싱글 코어에서 멀티스레드를 동작시키는 방식입니다.
위의 그림에서 왼쪽에 해당하는 내용이지요.
다른 작업으로 바꾸어 실행될 때, 내부적으로 Context Switch가 실행됩니다.
여기서 Context Switch란?
하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스로 전환되는 것을 의미합니다. CPU에서 작업중인 프로세스를 Waiting상태로 돌리고, 다른 프로세스를 Running 상태로 만들어 수행합니다. (실행 중지할 프로세스 정보를 메인메모리에 저장하고, 메인메모리로부터 프로세스2 PCB정보를 로드하여 다음 작업을 실행하는 과정을 거칩니다.)
싱글 코어 환경에서 단일 프로세스 내에 멀티 스레드를 동작하여 구현합니다.
Core란?
CPU안에서 물리적으로 존재하는 코어 유닛 개수로, 반도체가 n개 있음을 뜻합니다. 코어는 연산을 처리하고, 명령을 실행하는 역할을 수행하며 코어의 수가 많을수록 cpu의 처리 속도와 성능이 향상됩니다. 일반적으로 1코어 1스레드 환경이었지만, 기술의 발달로 현재는 1코어 2스레드 작업환경이라고 합니다. 이를 하이퍼 스레딩이라고 부릅니다. 이 또한 실제로는 두개의 스레드 간에 작은 시간 간격으로 전환되어 실행되어서 동시성 개념에 가깝다고 합니다.
병렬성
병렬성은 실제로 여러 작업을 실제로 동시에 처리하는 것으로, 멀티 코어에서 멀티 스레드를 동작시키는 방식입니다. 작업을 동시에 처리하여 성능을 향상시키는데 사용됩니다.
컴퓨터에서 멀티코어 cpu를 사용한다면, 다수의 작업이 병렬로 실행됩니다.
위의 그림에서 오른쪽에 해당합니다.
728x90
반응형
'CS > Operating Systems' 카테고리의 다른 글
Context Switching (0) | 2023.09.10 |
---|---|
프로세스와 스레드의 차이 (0) | 2023.09.03 |
교착 상태 (0) | 2021.09.26 |
프로세스 주소공간 (0) | 2021.08.18 |
프로세스와 스레드 (0) | 2021.08.13 |