Memory 6

[C] 포인터(Pointer)

Pointer 개요 포인터(Pointer)는 프로그래밍에서 광범위하게 사용되는 개념으로, 특히 C 언어와 같은 저수준 프로그래밍 언어에서 중요한 역할을 한다. 포인터는 메모리의 주소를 저장하고, 이를 통해 다양한 데이터에 간접적으로 접근할 수 있는 변수다. C 언어에서 포인터는 메모리 관리, 배열과 문자열 처리, 동적 메모리 할당, 데이터 구조체 구현 등 여러 분야에서 핵심적인 도구로 사용된다. 이러한 포인터의 사용은 프로그램의 유연성과 효율성을 높이는 동시에, 복잡하고 섬세한 메모리 관리를 가능하게 한다. 본문에서는 포인터가 C 언어에서 어떻게 동작하며, 왜 그렇게 널리 사용되는지에 대해 자세히 살펴보겠다. 본문 사용 이유 포인터를 사용하면 메모리를 효율적으로 사용할 수 있다. 이는 포인터를 사용하면 ..

Language/C 2024.01.22

[마이크로프로세서] 메모리 분류

메모리 분류 개요 지난 컴퓨터 구조 시간에 메모리에 관해 전반적인 공부를 했었다. 이번 시간에는 메모리 분류에 초점을 맞춰 공부해 보도록 하겠다. 본문 해당 사진은 메모리를 제조 재료, 휘발성 등으로 나눈 분류표다. 우리가 중점적으로 다뤄야 하는 것은 반도체 메모리며, 이를 휘발성과 비휘발성으로 나눠 알아보자. 휘발성 메모리(RAM) 먼저 휘발성 메모리는 크게 SRAM과 DRAM으로 나눌 수 있다. SRAM은 속도가 빠르지만 가격이 비싸다는 단점이 있고, 반대로 DRAM은 속도가 느린 대신 가격이 싸다는 장점이 있다. 따라서 이 둘의 특성에 맞게 자주 접근할 수 있는 캐시 메모리는 SRAM으로 만들고, 자주 접근하지 않지만 용량이 큰 주기억장치 메모리는 DRAM으로 만든다. 비휘발성 메모리(ROM) 롬은..

[마이크로프로세서] 개요

Micro Processor 개요 지난 컴퓨터 구조 시간에서 배웠듯이, 컴퓨터는 하드웨어와 소프트웨어로 구성되는 명령어를 처리하는 기계다. 우리가 일반적으로 사용하는 범용 컴퓨터(PC)는 그 구조 내에 다양한 부품과 기능들을 내장하고 있어, 복잡한 작업들도 손쉽게 처리할 수 있다. 그렇다면 컴퓨터의 핵심이 되는 기본 구성 요소는 무엇일까? 바로 CPU, 메모리(주 메모리, 보조 메모리), 입출력 장치다. 이러한 핵심 부품들이 통합된 장치를 컴퓨터로 정의할 수 있다. 이때, 마이크로컴퓨터라는 용어는 이러한 핵심 부품들을 포함하면서도, 마이크로프로세서를 중심으로 간소화된 구조를 가진 컴퓨터를 의미한다. 초기의 마이크로컴퓨터는 대형 컴퓨터나 미니 컴퓨터에 비해 작고, 특정한 목적에 맞춰진 작업을 수행하도록 설..

[C++] 싱글톤 패턴의 메모리 할당과 해제 with C++

할당과 해제 개요 앞서 설명한 내용들을 토대로 싱글톤 패턴으로 디자인된 클래스에서 소멸자에 메모리를 해제하는 코드를 추가하는 것은 주의해야 한다는 점을 알았다. 따라서 new 키워드로 호출된 인스턴스를 할당 해제 하는 방법들에 대해 알아보자. 본문 싱글톤으로 디자인된 클래스의 인스턴스 메모리를 해제하려면 다음과 같은 방법을 사용할 수 있다. 정적 메서드 추가 인스턴스를 불러오는 공개된 정적 멤버 함수처럼, 인스턴스의 메모리를 해제하는 정적 메서드를 추가하면 된다. 이를 테면, #include class singleton { static singleton* _instance; singleton(); ~singleton(); singleton(const singleton&) = delete; singleto..

카테고리 없음 2023.08.17

[컴퓨터구조] 캐시 메모리

메모리 계층 구조와 캐시 메모리 저장 장치 계층 구조 메모리 계층 구조(Memory Hierarchy)는 시스템 성능 최적화를 위해 다양한 유형의 메모리 저장소를 계층적으로 구성하는 방식을 의미한다. 이 계층 구조는 데이터의 속도, 용량, 비용 등의 요소를 고려하여, CPU로부터 얼마나 가까운 위치에 있는지를 기준으로 구성된다. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 장치는 느리다 속도가 빠른 저장 장치는 저장 용량이 적고, 가격이 비싸다 계층 구조의 상위에 위치하는 메모리는 하위 계층의 메모리보다 빠르지만, 용량은 적고 가격이 비싸다. 반대로 하위 계층의 메모리는 상위 계층의 메모리보다 느리지만, 용량이 크고 가격이 싸다. 컴퓨터 시스템은 이러한 계층 구조 내의 모든 메모리를 활용하여 최적의 ..

CS/컴퓨터구조 2023.06.21

[컴퓨터구조] 개요

컴퓨터 구조 개요 왜 공부해야 할까? 컴퓨터 구조는 기본적으로 컴퓨터 시스템의 디자인과 기능을 다룬다. 이는 하드웨어와 소프트웨어가 어떻게 통합되어 작동하는지, 그리고 컴퓨터가 어떻게 정보를 처리하고 저장하는지에 대한 근본적인 이해를 제공한다. 언뜻 생각해 보면 알 수 없는 컴퓨터 부품과 케이블, 복잡한 회로와 같은 이미지가 떠올라 프로그램 개발과는 큰 관련이 없어 보인다. 하지만, 컴퓨터 구조는 실력 있는 개발자가 되려면 반드시 알아야 할 기본적인 지식이다. 그 이유는 다음과 같다. 문제 해결: 컴퓨터 내부를 분석하고 문제를 해결하는 능력을 기르게 해줌 성능, 용량, 비용: 자신이 작성한 코드를 성능, 용량, 비용의 관점에서 분석할 수 있는 능력을 기르게 해 줌. 즉, 컴퓨터 구조를 이해하고 있다면 문..

CS/컴퓨터구조 2023.05.26