우선 오늘 목표치는 채웠고 이따가 조금 더 볼생각입니다 재밌어서요 ㅎㅎ
질문은
지금 stack 보는중인데 이 stack에 procedure를 allocation 하잖아요? 궁금점은 실제적으로 어떻게 allocation 하냐는 점입니다.
물론, 메모리에 있는 아주 작은 circuit에 bit으로 저장하는건 알겠는데, 제가 궁금한것은 내가 어셈블리어로 타이핑한 정보가 대체 어떤 절차로 메모리에 저장되는지 하드웨어적인 측면에서 너무 궁금합니다.
아직 230페이지 남짓의 설명은 stack의 길쭉한 네모 그림으로 추상적이게 설명되어서 실체적인 메커니즘이 궁금해요.
(영단어 섞어 사용해서 죄송합니다. 원래 한국말에 영어를 알파벳으로 섞어쓰는 걸 싫어하는데 프로그래밍은 용어가 원래 영어다보니 어쩔수없네요)
- dc official App
malloc()
제가 질문을 잘못했나보네요 malloc 함수도 알고 있어요 제 궁금증은 키보드에 입력된 타이핑(c언어 등)이 컴파일러와 어셈블러를 거쳐 바이너리 digit으로 변환되잖아요? 그 뒤에 이 digit들이 어떻게 메모리에 위치되냐는 겁니다. - dc App
운영체제가 메모리에 올려줌
또 추상적인 답변이네요, 제 궁금증은 운영체제가 어떤 방식으로 메모리에 올려주느냐 하는 하드웨어와 소프트웨어가 섞인 질문입니다. - dc App
일단 너가 잘못알고있는건, 스택에는 실행가능한 코드조각이 올라가지 않는다는점이야
코드조각은 .text 영역에 올라가. 그리고 그게 어떻게 메모리에 올라가느냐. 하면 페이징을 알아야돼. 프로세스가 실행되면 코드조각이 올라가있지 않은상태로 실행돼. 그러면 해당 코드조각 페이지에갔을때 데이터가 없다고 페이지폴트가 띄워짐. 그러면 그 페이지폴트가 지정되어있던 디스크위치에서 코드조각들을 읽어서 해당 위치에 가져다놓음
그리고 해당 위치를 명확하게 식별하기 위해서는, 파일시스템에서 미리 열어놔야해. 이 한가지만 알기 위해서 엄청나게 많은 운영체제 정보가 필요하구나
답변 감사합니다 결국 운영체제를 알아야 해결가능한 의문이였네요. 정진하겠습니다. - dc App - dc App