본문 바로가기
Lecture/OS

스레드

by YUNZEE 2023. 10. 17.
728x90

스레드의 개념

스레드의 정의

예를 들어 설명하자면 안심 스테이크를 만들기 위해 준비하는 과정을 프로세스 생성 과정으로 , 레시피의 정해진 절차에 따라 요리하는 것을 스레드로 볼 수 있다. 프로세스는 요리 작업 전체와 같고, 스레드는 요리를 완성하기 위해 수행하는 각각의 조리에 해당하는 것이다.

 

프로세스와 스레드의 차이

개개의 프로세스와 스레드는 서로서로 미치는 영향이 다르다. 프로세스끼리는 약하게 연결되어 있는 반면 스레드끼리는 강하게 연결되어 있다. 

 

멀티태스크

워드프로세스와 프린트 스풀러는 서로 독립적으로 작동하다가 필요할 때 출력할 데이터를 주고받는다. 서로 독립적이라는 것은  워드프로세서가 비정상적으로 종료되어도 프린터 스풀러는 정상적으로 작동한다는 의미이다. 이렇게 서로 독립적인 프로세스는 데이터를 주고받을 때 프로세스 간 통신(IPC: Inter Process Communication)을 이용한다.

 

멀티스레드

멀티스레드 워드프로세스 프로세스 내의 편집, 문서 입출력, 맞춤법 검사, 그림판 같은 스래드들이 동시에 작업을 하는 멀티스레드를 나타낸다.

 

스레도 관련 용어

멀티스레드: 프로세스 내 작업을 여러 개의 스레드로 분할함으로써 작업의 부담을 줄이는 프로세스 운영 기법이다.

멀티태스킹: 여러 스레드에 시간을 잘게 나누어 주는 시스템을 시분할 시스템 time-sharing system이라고 한다.

멀티 프로세싱: CPU를 여러 개 사용하여 여러 개의 스레드를 동시에 처리는 작업 환경을 말한다.

CPU 멀티스레드: 한 번에 하나씩 처리해야 하는 스레드를 잘게 쪼개어 동시에 처리하는 명령어 병렬 처리 기법이다.

 

멀티스레드의 장단점

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

비디어 플레이어의 입출력과 재생을 멀티스레드로 구현하면 스레드가 독립적으로 작동하기 때문에 입출력 스레드가 대기 상태에 있더라도 재생 스레드는 실행 상태에 있게 된다. 따라서 멀티스레드의 경우 입출력과 상관없이 재생이 가능하다.

 

- 응답성 향상: 한 스레드가 입출력으로 인해 작업이 진행되지 않더라도 다른 스레드가 작업을 계속하여 사용자의 작업 요구에 빨리 응당할 수 있다.

- 자원 공유: 한 프로세스 내에서 독립적인 스레드를 생성하면 프로세스가 가진 자원을 모든 스레드가 공유하게 되어 작업을 원활하게 진행할 수 있다.

- 효율성 향상: 여러 개의 프로세스를 생성할 필요가 없어 불필요한 자원의 중복을 막음으로써 시스템의 효율이 향상된다.

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

728x90

'Lecture > OS' 카테고리의 다른 글

스케줄링 알고리즘  (2) 2023.10.19
스케줄링의 개요  (0) 2023.10.18
프로세스의 연산  (2) 2023.10.17
프로세스 제어 블록과 문맥 교환  (0) 2023.10.16
멀티 프로세싱  (4) 2023.10.16