티스토리 뷰

쓰레드

하나의 프로그램 안에서 둘 이상의 프로세스(또는 둘 이상의 프로그램흐름)을 만들기 위한것

 

문맥교환

-프로세스의 상태정보를 저장하고 복원하는 과정

-결과적으로 이 과정에 소요되는 시간을 줄이는 것

 

*프로세스란? '현재 실행중인 프로그램'을 의미

예) 둘 이상의 서로 다른 프로그램을 실행한다면 프로세스가 둘 이상 생성

- 웹 브라우저 실행해 웹 서핑을 하면서 뮤직플레이어를 실행해 음악을 듣는 경우 두 개의 프로세서 실행

 

하나의 프로그램이 둘 이상의 작업을 동시에 처리하기 위해서도 둘 이상의 프로세스가 필요

예1) 서버에서 다수의 유저가 접속해 동일한 프로그램을 사용하는 경우

예2) 멀티 유저 게임의 경우, 다수의 유저가 동시에 하나의 게임을 하는 경우

- 서버 입장에서는 한 개의 프로그램을 실행 하지만 각 유저당 개개의 프로세스를 실행하여 현재 자신의 상태와 다른 유저들의 실행 상태를 각 유저들에게 전달해야 함.

 

다수의 프로세스를 처리 하기 위해서는 문맥교환(context-switching)이 필요하다.

 

프로세스의 상태

프로세스는 준비상태에서 cpu의 스케줄링 기법에 의해서 할당시간을 받게 된다 이를 dispatch라고 한다. 실행상태 - 실행상태 교환관계를 문맥교환이라고 하며 문맥교환을 할 때에 프로세스의 상태정보를 저장해야 합니다. 처리 할 프로세스가 많아지게 되면 문맥교환 횟수가 증가하면 저장해야 될 프로세스의 상태정보도 많아지게 되므로 시스템 성능은 저하 됩니다.

 

* 처리할 프로세스의 수가 많아 질수록 문맥교환(context-switching)을 하는 횟수가 증가에 따른 시스템 성능 저하를 막기 위한 방법 => "Thread(쓰레드)"

 

문맥교환은 프로세스의 상태정보를 저장하고 복원하는 과정입니다.

 

결과적으로 이 과정에 소요되는 시간을 줄이는 것이 쓰레드의 목적입니다.

(저장-복원하는 정보의 개수를 감소시키는 방법)

 

"쓰레드는 하나의 프로그램 안에서 둘 이상 프로세스(또는 둘 이상의 프로그램 흐름)을 만들기 위한 것"

 

쓰레드는 프로세스와 달리 공유하는 상태 정보값들이 있습니다.

이는 쓰레드가 문맥교환이 빠른 요인 입니다. 한마디로 상태정보를 주고 받는 문맥교환의 과정이 줄어 시스템 성능이 향상됩니다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함