2008년 4월 28일 월요일

VirtualBox에서 Ubuntu 8.04 해상도 높이기

/etc/X11/xorg.conf 파일을 열어 다음의 부분을 찾아


Section "Device"
Identifier "Configured Video Device"
EndSection

부분을 찾아 다음 처럼 수정한다.

Section "Device"
Identifier "Configured Video Device"
Driver "vboxvideo"
EndSection


수정 완료 후 VirtualBox 윈도우의 크기를 원하는 사이즈로 변경한 후
Ubuntu 상에서 log-out을 선택한다. 잠시 후 로그인 창이 나타나면서
해상도가 자동으로 변경될 것이다.

2008년 4월 14일 월요일

메모리 할당/해제 단순화 하기

코딩을 하다보면 함수내에서 동적으로 메모리를 할당하고 그 함수를
벗어나기 전에 해제 하는 것이 보통의 원칙이다. 문제는 할당해야할 변수가
많다면 코드를 실행하는 순간순간 할당 성공 유무 체크, 실패시 이전 할당을
해제하기 위한 지저분한 코드가 들어가게 마련이다. 이런 지저분함을
없애기 위해 방법으로 할당은 여러번 나누어서 하데 해제는 한번의 호출로
이전 할당을 모두 해제 하는 방식을 생각해 볼 수 있다.

할당시 포인터를 stack 기반의 구조에 넣는다.
해제시 현재 호출함수 레벨에서 stack에 들어간 pointer들을
자동으로 찾아 해제한다.

'프로그래밍 수련법'(인사이트) 이라는 책의 '성능'편에 이와 유사한 언급이
있다. 이 책에서는 스택 기반의 메모리 할당 라이브러리가 있다고 한다.
스택 기반이라 해제를 따로 호출할 필요가 없다는 것이다. 함수가 끝나면
stack은 자동으로 청소 되기 때문이다. 헌데 이 책에서는 자세한 구현에
대한 언급은 없다.
나름 방법을 생각해 보면 인라인 어셈을 사용하여 SP 레지스터를 핸들링하지
않을까 생각된다.