메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

C/C++ 프로젝트에 사용할 메모리 관리자 직접 구현하기 (한글)

Arpan Sen, Lead Engineer, Synapti Computer Aided Design Pvt Ltd
Arpan은 EDA(Electronic Design Automation) 업계에 몸 담은 소프트웨어 개발자다. 솔라리스, 썬OS, HP-UX, 아이릭스 등과 같은 다양한 유닉스 기종은 물론 리눅스, 마이크로소프트 윈도우까지 다양한 플랫폼을 사용해 왔다. 그의 주된 관심사는 소프트웨어 성능 최적화 기법, 그래프 이론, 병렬 컴퓨팅이다. 기사를 집필하는 이유는 창의적인 욕구를 충족하기 위해서다. Sen은 소프트웨어 시스템 분야에서 대학원 학위를 받았다.
Rahul Kardam, 선임 소프트웨어 개발자, Synapti Computer Aided Design Pvt Ltd
Rahul Kardam은 하드웨어 설계를 위한 시뮬레이터와 같은 복잡한 C++ 기반 전자 설계 자동화 도구가 전문 분야인 선임 소프트웨어 개발자다. Kardam은 윈도우와 유닉스 플랫폼 양쪽에서 프로그래밍 경험이 있다. Kardam은 오픈 소스 소프트웨어를 손수 수선해서 자신이 만들고 있는 설계 자동화 도구를 위해 튼튼하고 확장 가능한 코드를 위한 프레임워크로 사용하는 작업을 즐긴다.

요약:  프로그래밍에서 성능 최적화는 중대한 사안입니다. 동작은 올바르지만 메모리나 시간, 가장 나쁘게 둘 다를 너무 많이 잡아 먹는 C/C++ 프로그램이 생각보다 흔합니다. C/C++는 코드에서 메모리를 할당하고 해제하는 방식을 개발자가 완전히 통제할 수 있다는 측면에서 프로그램 성능을 향상시킬 무한한 가능성을 제시합니다. 이 튜토리얼에서는 특정 환경을 위한 메모리 관리자를 직접 구현해 보면서 메모리 관리를 둘러싼 미신을 깨겠습니다.

원문 게재일:  2008 년 4 월 15 일
난이도:  중급

페이지뷰: 16656 회
의견: 

시작하기 전에

먼저 튜토리얼 목표와 활용 방법을 살펴보자.

튜토리얼 개요

이 튜토리얼은 어느 응용 프로그램에서나 적용하기 쉽도록 메모리 관리자를 만드는 기본 방법을 소개한다. 메모리 관리자가 필요한 이유를 설명하며, 목적에 맞춰 특화된 메모리 관리자를 설계하는 방안 몇 가지도 제시한다.


목표

이 튜토리얼에서는 1) 메모리 관리자를 설계하기 전에 고려할 사항, 2) 메모리 관리자를 구현하는 데 사용하는 기술, 3) 마지막으로 메모리 관리자를 실제로 구현하는 방법을 소개한다. 또한 메모리 관리자 설계 방안 몇 가지를 소개하고, 각 설계안에 따른 장단점도 살펴본다.


필요한 사전 지식

이 튜토리얼은 초중급 리눅스(Linux ®) /유닉스(UNIX ®) 개발자를 대상으로 한다. 유닉스 명령행 셸과 친숙해야 하며 C/C++ 언어에 어느 정도 경험이 있어야 튜토리얼을 따라갈 수 있다. 이 외에도 (메모리 할당, 할당 해제, 내용 변경을 다루는 루틴인) malloc , calloc , free , memcpy , memset 등 메모리 관련 함수가 내부적으로 동작하는 방식을 이해하면 더 좋다.


시스템 요구사항

이 튜토리얼에서 구현하는 예제를 실행하려면 g++ 컴파일러 툴체인이 설치된 리눅스나 유닉스 시스템이 필요하다. 램은 클수록 좋은데 대략 256MB 정도면 충분하다.

114 | 다음

의견



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=AIX와 UNIX, 리눅스
ArticleID=300982
TutorialTitle=C/C++ 프로젝트에 사용할 메모리 관리자 직접 구현하기 (한글)
publish-date=04152008
author1-email=arpan@syncad.com
author1-email-cc=
author2-email=rahul@syncad.com
author2-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.