목록CS (18)
Written by coh at home

아.. 뭔가 헷갈려서 정리하려고 적는 포스팅이다. OS의 thread부분 강의를 듣다보면 하나의 프로세스에 멀티스레드가 존재할 수 있고 이 스레드들은 자원, 즉, 같은 메모리 공간을 공유한다는 것과 함께 각각의 프로세스마다 메모리 공간이 할당된다는 말이 나온다. 음? 프로세스 메모리? 주기억장치 8GB가 있으면 뭐 kernal영역을 제외하고 이걸 다 활용하는 것이 아니라 stack 부분 조금, data 부분 조금, heap 부분 조금씩 이렇게 할당해준다는 뜻인가? 뭐야 이게. 근데 또 자료를 찾다보니 그러면 내가 예전에 컴구 배울 때 본 MIPS memory map와 c언어 배울 때 본 memory structure는 무슨 차이가 있는 걸까. 하는 의문도 들었다. 나와 같은 고민을 한 친구가 있을 거라 ..
개요 process의 context switching의 overhead를 줄이기 위해 thread란 개념이 사용됩니다. process의 정의 중 하나는 resource를 할당받고 이를 제어하는 것입니다. 이 때 제어를 담당하는 것이 thread입니다. thread는 실이란 의미이며 앞으로 실처럼 표현하게 됩니다. thread는 제어를 위한 제어정보(SP, PC, thread ID), local data를 저장할 stack 으로 구성된다고 볼 수 있습니다. 하나의 process에는 여러 개의 thread가 존재할 수 있습니다. 이 때 같은 process의 thread들은 동일한 프로세스의 메모리 공간을 구성하게 됩니다. 즉, 자원(heap, data, code)를 공유하며 제어를 하게 됩니다. 스레드는 L..