반응형

발단

왜 프로세스와 스레드를 배우는지는 알겠다. 한정된 리소스를 효율적으로 관리하고, 최상의 아웃풋을 내기 위해서이다.

그런데 ENIAC 시절부터 프로세스와 쓰레드가 있었을까?

그건 아닐 것이다. 그러면 어떠한 이슈때문에 프로세스 쓰레드가 탄생하게 됐을까?

 

전개

사실 처음 공부한 자료에서는 이에 대해 잘 안나와있었는데, 공룡책을 참고하다보니 이에 대해 나와있었다.

 

프로세스 탄생 배경

 초기의 컴퓨터 시스템은 한번에 하나의 프로그램만을 실행하도록 허용했다. 따라서 프로그램이 시스템을 완전히 제어하고, 모든 자원에 접근해도 됐다. 그런데 메모리에 다수의 프로그램이 적재되어 병행실행되는 것이 허용되면서 다양한 프로그램을 보다 견고하게 제어하고 구획화할 필요가 생기면서 프로세스라는 개념이 탄생하게 되었다.
-운영체제 Abraham Silberschatz (공룡책) 10판, 117pg

 

 

쓰레드 탄생 배경

하나의 응용프로그램이 여러개의 비슷한 작업을 수행할 필요가 있는 상황들이 존재한다. 이때 각각의 프로세스를 생성하고 컨텍스트 스위칭을 한다면, 많은 오버헤드를 감수해야한다.

따라서 스택만 따로 할당받고, 코드,데이터, 힙영역은 공유하는 쓰레드가 탄생하게 되었다.

반응형

+ Recent posts