본문 바로가기

컴퓨터 과학

(2)
프로그램이(프로세스가) 실행 될 때, 메모리의 구조 (data, bss 영역) 2022.06.23 - [컴퓨터 과학/OS (+약간의 컴퓨터 구조)] - 프로그램이(프로세스가) 실행 될 때, 메모리의 구조 (code, text 영역) 프로그램의 동작을 위한 명령어가 기계어로 exe 파일에 저장됨을 이전 포스팅에서 다루었다. 하지만 프로그램이 동작하기 위해서는 명령어뿐만 아니라 데이터를 저장하는 공간 (= 변수)가 필요하다는 사실을 알고 있다. 이번에는 변수 중에서도 제약 없이 접근 가능한 변수인 전역 변수에 대하여, 전역 변수를 위한 메모리 공간에 대하여 적고자 한다. 위는 유명한 프로세스의 메모리 구조 이미지를 gif로 만든 것이다. 많은 문서들에서 전역 변수가 데이터 영역에 저장된다고 하는데 왜 전역 변수를 위한 공간을 따로 둔 것일까? 일반적인 지역변수는 이후 포스팅에서 설명할..
프로그램이(프로세스가) 실행 될 때, 메모리의 구조 (code, text 영역) 컴퓨터의 성능을 수치로 나타낸다면 어떤 것을 수치화 해야할까. CPU의 코어 개수, 코어당 클럭, 캐시 메모리의 크기, RAM의 크기, GPU의 클럭, GPU의 로컬 메모리 등등 여러 가지 기준이 있을 수 있지만 컴퓨터에 큰 관심이 없는 사람들 기준으로 생각해보면 SSD의 용량(하드 용량), RAM의 크기 두 가지가 상당히 자주 쓰일 것이라 생각한다. 여러 가지 항목들 중 우선 프로그램이 실행될 때, RAM에 프로그램이 어떤 식으로 적재되고 동작 과정에서 어떻게 변하는지부터 천천히 정리하고자 한다. 코드(.cpp) 를 실행 가능한 프로그램 (.exe) 로 컴파일을 한 상황을 생각해보자. 우선 코드를 전처리한 후, 컴파일하고, 링킹을 하여 최종적으로 프로그램을 받을 수 있을 것이다. 이때 전처리를 담당하는..