SECTION 4.3 스레드
대부분의 운영체제에서는 프로세스끼리 메모리를 공유하게 할 수 있다. 하지만 이를 위해서는 추가적인 조치가 필요하다(5장에서 설명). 스레드(thread)라는 또 다른 추상화 수단을 쓰면 프로세스끼리 좀 더 많은 부분을 공유할 수 있다.
프로그램이란 결국 순서대로 실행되는 기계어 인스트럭션의 연속열이다. 프로그램을 제대로 실행하기 위해 운영체제는 스레드라는 개념을 도입했다. 스레드란 운영체제가 실행을 제어하는 인스트럭션의 독립적인 스트림을 말한다.
앞서 프로세스는 실행 중인 프로그램과 거기에 필요한 자원을 합친 것이라고 설명했다. 프로그램을 구성 요소별로 구분했을 때 프로세스는 자원(주소 공간, 파일, 네트워크 연결 등)을 담은 용기이고, 스레드는 여기서 좀 더 동적인 부분(이 용기 안에서 실행되는 인스트럭션의 연속열)에 해당한다. 따라서 운영체제의 관점에서 보면 프로세스는 자원을 할당받는 단위이고, 스레드는 실행하는 단위가 된다.