반응형

프로세스(Process)

프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다. 프로세스 관리는 운영체제의 중요한 부분으로 자리잡혀 있다.

- 컴퓨터 내에서 실행중인 프로그램, 

- 할당받은 자신만의 자원을 가지고 CPU가 기계어 명령들을 실행함에 따라 끊임없이 변화하는 동적인 존재.

- 코드(Code), 데이터(Data), 힙(Heap), 스택(Stack)


스레드(Thread)

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.

- 실제적으로 명령어가 CPU를 사용하여 실행되어지는 객체의 단위.

- 스레드는 같은 프로세스에 있는 자원과 상태를 공유.

- 코드, 데이터, 힙의 영역을 프로세스와 공유하면서 오직 프로그램 카운터, 레지스터, 스택을 스레드별로 갖게 된다.


프로세스와 스레드의 비교

멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다. 하지만 멀티프로세스에서 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있는 것과 달리 멀티스레드는 프로세스 내의 메모리를 공유해 사용할 수 있다. 또한 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠르다.

멀티스레드의 다른 장점은 CPU가 여러 개일 경우에 각각의 CPU가 스레드 하나씩을 담당하는 방법으로 속도를 높일 수 있다는 것이다. 이러한 시스템에서는 여러 스레드가 실제 시간상으로 동시에 수행될 수 있기 때문이다.

멀티스레드의 단점에는 각각의 스레드 중 어떤 것이 먼저 실행될지 그 순서를 알 수 없다는 것이 있다.

 


출처:

http://kjw1801.tistory.com/81

http://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4

http://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C#.ED.94.84.EB.A1.9C.EC.84.B8.EC.8A.A4.EC.99.80_.EC.8A.A4.EB.A0.88.EB.93.9C.EC.9D.98_.EB.B9.84.EA.B5.90

반응형

+ Recent posts