태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'스레드'에 해당되는 글 5건

  1. 2008/07/19 프로세스(process)와 스레드(thread)
  2. 2008/07/19 병렬 처리(Parallel Computing)의 필요성
스폰서 링크

1. 프로세스
프로세스는 샐행중인 프로그램을 말한다. 운영체제는 프로그램을 실행하기 위해서 이 프로세스를 생성하게 된다.
운영체제의 프로세스 관련 정보는 다음과 같다.
 - 프로세스 상태(process state) : 프로세스가 실행중인지, 준비(ready)상태인지, 이벤트를 기다리고 있는지, 중단(suspend)된 상태인지 확인이 가능하다.
 - 프로그램 카운터(program counter) : 다음에 실행될 명령어의 주소다.
 - 프로세서 레지스터 값 : 프로세스가 CPU의 사용 권한을 얻을 때 프로세스를 restore 한다..
 - 메모리 관리 정보 : 페이지 테이블, 파일 기술자(descriptor), I/O request 등의 정보를 포함한다.

2. 스레드
스레드는 프로세스 내의 실행 유닛을 말한다. 스레드는 프로세스에 비해서 빨리 생성 될 수 있고, 다른 스레드와의 통신에 오버헤드가 작기 때문에 Parallel Programming에서 스레드를 사용하는것이 더 효율적이다.

3. 프로세스와 스레드
프로세스는 하나이상의 스레드를 포함한다. 프로그램이 실행되면 주 스레드(main-thread)가 프로그램의 main 함수를 실행한다. 주 스레드는 프로그램 내의 다른 함수를 실행하는 부 스레드(sub-thread)를 생성할 수 있다.
그리고 프로세스 내의 여러 스레드는 프로그램 카운터, 프로세서 레지스터, 스택을 스레드는 별로 따로 갖는다. 반면에 스레드는 코드나 주소 공간 같은 프로세스의 자원을 다른 스레드와 공유해서 사용한다. 즉, 같은 프로세스 내의 스레드는 항상 주소 공간을 공유 한다.

Posted by cncdenny
스폰서 링크

처리하고 출력해야할 데이터들이 점점 거대해지는 요즘, 보다 성능이 좋은 컴퓨터가 요구되어 지고 있다.
출력하는 프로그램 출력의 퀄러티를 유지하면서 실행 시간을 줄이거나, 프로그램의 실행시간을 유지하면서 프로그램 결과의 퀄러티를 향상시키려면 보다 빠른 컴퓨터가 필요한 것이다.

그러나 단일 코어 프로세서의 클럭 속도를 높이는 것은 한계가 있다.
전통적으로 프로세서의 성능을 향상시키기 위해 클럭 속도를 높여왔지만, 이 방법에는 다음과 같은 문제점이 있다.
 - 클럭 속도를 높이면 전력 소모량이 늘어난다.
 - 높은 전력 소모에 의해 발열이 늘어난다.

그리고 프로세서의 실행 최적화에도 역시 한계는 존재한다.
실행 속도 향상을 위해 동시에 수행될 수 있는 명령어의 수를 증가시켜야 하지만, 부가적으로 오버헤드가 발생하며 프로세서의 회로수가 증가하므로 문제가 된다.

그래서 요즘에는 결국 멀티 코어 프로세서를 이용한 병렬 처리(Parallel Computing)로 해답을 찾고 있다.

Posted by cncdenny