1) 컴퓨터의 연산을 구성하는 요소들
간단하게 얘기하자면 컴퓨터는 위와 같이 작동하게 된다.
1) CPU : 연산 장치로써 연산을 수행한다
2) RAM(주기억 장치) : 연산을 하는데 필요한 데이터들을 기억한다. 단, 전원이 꺼지면 데이터가 손실된다
3) SSD(보조 기억 장치) : RAM을 보조하는 반영구적인 기억장치이다
위의 관계에서 볼 수 있듯이 필수적인 내용들을 SSD에 저장하고,
그 내용들을 필요로 할 때, RAM에서 불러와서 사용하게 된다
2) RAM의 구조
RAM에서 데이터가 사용하는 공간은 간단하게 4개의 영역으로 분리가 가능하다.
1) 코드(텍스트) 영역 : 소스 코드가 저장되는 영역
2) 데이터 영역 : 전역 변수나 정적 변수가 저장되는 영역
3) 힙 영역 : 동적할당되는 요소들이 저장되는 영역
4) 스택 영역 : 지역변수나 함수의 매개변수들이 저장되는 영역
간단하게 위의 4가지 영역들로 구분할 수 있다. 물론 더 자세히 얘기하는 것이 맞지만, 단순하게 표현하고자 한다.
3) 작성한 코드가 실행가능한 프로그램으로 변환되는 과정
1) 전처리 단계 : 모든 코드를 건드리지 않고 해시 기호로 시작되는 지시어만 다루는 단계이다
부산물로 위의 Test.i와 같은 .i파일이 생성된다
(C++의 경우 #이 수식된 코드를 건드리게 됨)
2) 컴파일 단계 : 인간이 이해할 수 있는 언어로 작성된 코드를 컴퓨터가 이해 가능한 Binary Code로 변환한다
부산물로 위의 Test.obj와 같은 .obj파일이 생성된다
3) 링크 단계 : 모든 파일을 하나로 묶어 실행가능한 파일을 내보낸다
부산물로 위의 Test.exe와 같은 .exe파일이 생성된다
그리고 위의 컴파일 단계 + 링크 단계를 빌드 단계라 일컫는다
'컴퓨터 구조' 카테고리의 다른 글
싱글톤 패턴 (1) | 2024.11.12 |
---|---|
멀티쓰레드란? (0) | 2024.07.27 |
객체지향의 프로그래밍의 3요소 - 다형성 (0) | 2024.03.30 |
객체지향의 프로그래밍의 3요소 - 은닉성 (0) | 2024.03.30 |
객체지향 프로그래밍의 3요소 - 상속성 (0) | 2024.03.29 |