이 강좌는 널널한 개발자님의 강의를 기반으로 작성한 글입니다.
쉽게 보면 우리가 메이플이라는 게임을 통하여 막 사냥을 하고 퀘스트를 하고 할 것이다. 이때, 우리는 메이플이라는 것을 로그인 한다. 이 때 '나'라는 프로세스가 생성이 되는 것이다. 이 때, '나'라는 프로세스가 컴퓨터에서 쉘이 되는 것이다. 즉, 우리가 컴퓨터를 키고 로그인 하면 가장 먼저 작동되는 것이 shell이다.
기억공간 즉, 메모리라는 것이 용도에 따라 구분이 된다. 가장 대표적인 공간이 stack,heap이라는 공간이다. stack이라는 공간은 스레드가 사용하고 있으며, heap이라는 공간은 프로세스 전체가 사용하고 있다. 쉽게 애기하면 stack은 각자 방을 의미하고 heap은 거실처럼 공용공간을 뜻한다. 그럼 예를 들어 스레드가 4개가 동작한다고 보면 stack도 4개가 존재한다고 봐도 된다. 그럼 왜 공간을 구분했을까? 왜냐하면 동시성 문제라던데 앞에서 설명한 문제들을 해결하기 위하여 공간구분을 한 것이다.