검색어 입력폼

스레드의 개념

저작시기 2007.10 |등록일 2008.02.23 한글파일한글 (hwp) | 8페이지 | 가격 1,800원

소개글

운영체제 레포트 - 스레드 조사

목차

1. 스레드(Thread)의 개념
2. 스레드의 장점 / 단점
3. 단일 스레드와 다중 스레드
4. 다중 프로세스와 다중 스레드에 대한 제어
5. 스레드 관리를 위해 가져야할 일반적인 정보
6. 스레드의 유형
- 참고문헌 -

본문내용

1. 스레드(Thread)의 개념
스레드는 프로세스의 문맥 전환 시간에 대한 부담을 줄이고, 시스템 성능을 더욱 향상시키기 위한 방법으로 출현하였다. 프로세스보다 더 작은 CPU의 실행 단위를 말하며 다중 프로그래밍을 지원하는 시스템 하에서 CPU에게 보내져 실행되는 단위를 의미한다. 프로세스는 실행 환경부분과 제어 부분의 두 부분으로 나눌 수 있는데 스레드란 프로세스의 제어 부분만을 말한다. 스레드는 실행에 필요한 최소한의 정보만 가지고 자신에 속해 있는 프로세스의 기억 장치나 파일과 같은 실행 환경을 다른 스레드와 공유하여 프로세스의 생성과 문맥교환 등의 오버헤드를 줄여서 운영체제의 성능을 개선할 수 있게 한다.
CPU 동작의 흐름을 제어하는 실행의 개념만을 분리하여 스레드라고 부르며, 스레드의 의미를 요약해보면,
① 제어의 흐름을 의미하며, 실행의 단위이다.
② 독립적인 프로그램 카운터를 가진다.
③ 한 프로세스 내부에서 스케줄이 가능한 개체이다.
프로세스가 여러개의 스레드들로 구성되어 있을 때, 하나의 프로세스를 구성하고 있는 여러 스레드들은 각기 독립적인 제어 흐름을 갖게 되지만, 프로그램 코드와 각종 주소 공간 및 시스템 자원들은 관련 스레드들 사이에 공유하게 되며, 프로그램 카운터와 각종 레지스터 및 스택 공간들은 각각의 스레드들이 별도로 갖게 된다.
프로세스는 CPU가 하나인 시스템에서는 하나의 프로세스만이 실행될 수 있으므로 실행점이 하나뿐 이지만 스래드는 CPU가 하나인 시스템에서 실행중인 프로세스 내에는 여러 개의 스래드가 존재할 수 있으므로 실행점이 여러 개이다.

2. 스레드의 장점 / 단점
스레드 개념을 도입하여 CPU 스케줄링을 하게 되면, 기존의 프로세스(중량 프로세스)에 대한 문맥 전환과 비교하여 볼 때 얻는 이점은 관련 스레드들 사이에서 문맥 전환이 일어날 때에 관련 스레드들이 공유하고 있는 자원 사항들에 대해서는 문맥 전환 작업이 필요 없게 되고, 각각의 스레드가 독자적으로 갖고 있는 사항들(레지스터, 스택 등)만 전환시키기 때문에 문맥 교환 작업에 있어서 더욱 경제적인 효과를 얻을 수 있다.
또한 어플리케이션의 성능을 향상시킬수 있고, 구현이 쉽다. 즉 작은 투자로 큰 효과를 기대할수 있다. 스레드를 쓰지 않고 프로세스나 다른 방법을 통하여 비슷하게 구현할 수 있다. 반면 대부분의 자원을 많이 소모하여 구현이 복잡해지고 범용성이 떨어지는 등의 문제점이 있다. 스레드를 사용함으로 이 문제들을 해결 할 수 있다.

참고 자료

이계영, <운영체제>, 정익사, 2005
김길창, <운영체제개념>, 홍릉과학출판사, 2003
다운로드 맨위로