기타

[컴퓨터구조] 프로세서와 스레드

Alexim 2022. 9. 26. 00:01

프로세서

명령어들을 처리하고 반응하기 위한 논리 회로를 말한다.크게는 소프트웨어 신호를 받아 다른 하드웨어 부분으로 신호를 보내는 제어장치와 연산을 담당하는 연산장치로 구성된다.프로세스가 존재한다면 무조건 스레드도 하나 이상 존재한다.

스레드

프로세스 내에서 실행되는 흐름 단위멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다.

멀티 프로세스

하나의 어플리케이션을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것 . 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있다. 안정성이 좋다. 자식 프로세스 중 하나에 문제가 발생해도 다른 자식 프로세스에 영향이 확산되지 않는다. 작업량이 많을 수록 오버헤드가 발생할 수 있다.

멀티 스레드

하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 것. 자원 공유가 쉽다. 스레드들은 부모 프로세스의 자원과 메모리를 공유할 수 있다. 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠르다. 자식 스레드 중 하나에 문제가 생긴 경우 전체 프로세스에 영향을 줄 수 있다. 프로그램 디버깅이 어렵다. (동시다발적으로 실행되기 때문에)

클러스터

노드 js는 기본적으로 싱글 스레드. 노드js 어플리케이션은 하나의 코어에서 실행되기 때문에 cpu가 멀티 코어인 경우에는 컴퓨터가 가진 성능을 온전히 발휘하지 못하는 일이 될 수 있어 클러스터라는 기능을 제공하고 있다. 어플리케이션 스레드 간에 워크로드를 분산할 수 있는 node.js의 여러 인스턴스를 실행할 수 있다. 클러스터 모듈을 사용하면 모든 서버 포트를 공유하는 자식 프로세스를 쉽게 만들 수 있다.

'기타' 카테고리의 다른 글

[HTTP] HTTP 인증  (0) 2022.09.26
[후기] 프밍 챌린지 1기 후기  (0) 2022.05.17