본문 바로가기

COMPUTER SCIENCE/운영체제

스레드

스레드란 프로세스의 코드에 정의된 절차에 따라 cpu에 작업 요청을 하는 실행 단위이다.

 

스레드 관련 용어

멀티스레드

멀티스레드는 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는

프로세스 운영 기법이다.

 

멀티태스킹

운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법이다. 이렇게 여러 스레드에

시간을 잘게 나누어 주는 시스템을 시분할 시스템(time sharing system)이라고 한다.

 

멀티프로세싱

CPU를 여러 개 사용하여 여러 개의 스레드를 동시에 처리하는 작업 환경을 말한다.

 

CPU 멀티스레드

한 번에 하나씩 처리해야 하는 스레드를 파이프라인 기법을 이용하여 동시에 여러 스레드를 처리하도록 만든 병렬 처리 기법이다. 

 

멀티스레드의 장단점

장점

프로세스 내 공유가 가능한 부분을 제외하고 실행과 관련된 부분을 스레드로 나누어 관리하면 자원의 중복 사용을 피함으로써 낭비를 막을 수 있다.

채팅프로그램으로 채팅을 하면서 파일을 주고 받거나, 워드프로세서로 문서를 편집하면서 틀린 글자를 찾는 작업을 독립적인 스레드로 구현하면 작업의 효율이 높아진다.

 

장점 요약

응답성 향상

한 스레드가 입출력으로 인해 작업이 진행되지 않더라도 다른 스레드가 작업을 계속하여 사용자의 

작업 요구에 빠르게 응답할 수 있다.

자원 공유

한 프로세스 내에서 독립적인 스레드를 생성하면 프로세스가 가진 자원을 모든 스레드가 공유하게

되어 작업을 원활하게 진행할 수 있다.

효율성 향상

여러 개의 프로세스를 생성하는 것과 달리 멀티스레드는 불필요한 자원의 중복을 막음으로써 

시스템의 효율이 향상된다.

다중 CPU 지원

2개 이상의 CPU를 가진 컴퓨터에서 멀티스레드를 사용하면 다중 CPU가 멀티스레드를 동시에 처리하여 CPU 사용량이 증가하고 프로세스의 처리 시간이 단축된다.

 

단점

모든 스레드가 자원을 공유하기 때문에 하나의 스레드에 문제가 생기면 전체 프로세스에 영향을 미친다.

멀티스레드에서는 컨텍스트 스위칭이 발생하기 때문에 자주 컨텍스트 스위칭이 일어나면 그동안

CPU는 다른 작업을 할 수 없어 OVERHEAD가 발생한다.

 

'COMPUTER SCIENCE > 운영체제' 카테고리의 다른 글

프로세스 제어 블록과 문맥 교환  (1) 2023.12.23
프로세스의 상태  (1) 2023.12.23