넘어졌으면 일어서서 다시 걷자 🐈My GitHub🐈

기록/Operating System

스레드 Thread (1) - 하드웨어와 소프트웨어

YongE 2024. 7. 8. 16:54

Computer Science 학습 시작


 

CS에 대한 지식이 완전하다고 생각되지 않아 공부를 시작했고, 해당 내용을 정리해서 올리겠다! 오늘은 스레드 Thread에 대한 내용이다.

 

다만 후에 더 상세한 내용을 담아 정리하도록 하고 오늘은 스레드의 간단한 개념에 대해서 정리하려고 한다.

 

 

스레드 Thread


 

스레드의 사전적 의미는 실행 흐름의 단위라고 한다. 다만 스레드는 CPU와 프로그래밍에서 사용되는 예가 다르다. 따라서 스레드는 하드웨어적인 의미와 소프트웨어적인 의미가 있다.

 

 

하드웨어적 스레드

CPU에서 쓰이는 스레드의 의미다. 흔히 우리들은 컴퓨터를 사려고 할 때 몇 코어 몇 스레드라는 CPU에 대한 설명을 듣게 된다. 코어가 '명령어를 실행하는 부품'이라면 스레드는 '하나의 코어가 동시에 처리하는 명령어 단위'이다.

 

예를 들어, 2코어 4스레드의 CPU가 있다고 하자. 그 CPU는 명령어를 실행하는 부품을 두 개 갖고 있으면서 각 코어는 한 번에 2개씩, 총 4개의 명령어를 동시에 처리할 수 있다.

 

따라서 하나의 코어가 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서라고 한다.

 

그런데 메모리 속 프로그램 입장에서는 2코어 4스레드 CPU가 하는 작업은 마치 코어가 4개처럼 보인다. 그리하여 하드웨어 스레드를 논리 프로세서 logical processor라고도 부른다.

 

혼자 공부하는 컴퓨터구조와 운영체제 하드웨어적 스레드 예시 사진

 

소프트웨어적 스레드

소프트웨어에서 쓰이는 스레드의 의미는 '하나의 프로그램에서 독립적으로 실행되는 단위'이다. 한 프로그램에서 여러 부분이 동시에 실행될 수 있다.

 

마이크로소프트 사의 Word를 사용한다고 가정해보자. 사용자로부터 입력받은 내용을 화면에 보여주는 기능과 입력받은 내용에 대한 맞춤법 검사를 실행하는 기능, 내용을 주기적으로 저장하는 기능이 동시에 실행돼야 한다면 메모리에 각 영역을 할당하여 해당 기능들을 동시에 실행되도록 할 수 있다.

 

혼자 공부하는 컴퓨터구조와 운영체제 소프트웨어적 스레드 예시 사진

728x90
반응형