년도별 글 목록: 2004

공짜 200MB 업/다운 무제한 계정 : Realog.net

Realog 로고

Gmail 의 1GB 바이트 용량 제공후 요즘은 각 포털들도 자신의 메일용량들을 늘려주고 있습니다.
하지만 어차피 메일은 메일인지라 , 자신의 데이타 저장용으로는 불편한점이 많습니다.
그래서, 최근에 잘 이용하고 있는 조금 독특한 웹하드 서비스를 하나 소개합니다.

→ 나만의 디지털 라이브러리 Realog.net

이름처럼 자신의 사진이나,동영상,음악을 저장할때 사용하는 서비스입니다.
가입시 200MB를 무료로 제공합니다. 그 이상은 유료로 구입을 해야합니다.
하지만 무료 200MB 에 대해서는 고속다운로드가 무제한 제공됩니다. 트래픽제한/기간제한이 없습니다.

그리고 가장 좋은점은, 바로 웹에서 파일에 바로 링크가 가능하다는 것입니다.
이 서비스에 가입하지 않은 사람들에게도 파일을 전송해 줄수가 있다는것이죠.

저는 제 서버가 느려서 용량이 좀 큰파일을 등록할때 이용하고 있습니다. 자신이 파일을 올리면 다음과 같이 링크를 볼수있습니다.
http://down.realog.net/WMulti?FileID=8642&SessionID=11011252079903554441&Type=E

물론 embed 태그안에서도 동작합니다.
자신의 블로그나 홈페이지 용량이 제한되어있을경우 사용하시면 딱입니다.
크기가 큰 동영상데이타 나 사진데이타,또는 음악데이타을 올려놓을때 쓰면 좋을듯합니다.

뱀다리 : 저는 저 사이트랑 아무런~ 연관없습니다. 제가 돈받는것도 아닌데 광고할 이유 없죠. 그냥 소개차.. ^^

Solaris 5.8 malloc 후 free 시 bug ?!

Solaris 5.8에서 gcc 3.4.1로 아래 소스를 돌려서 프로세스상황을 살펴보면..

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char **argv)
  4. {
  5.   char *a = NULL; char s;int j;
  6.   a = malloc(100000000); // (상태1) 100메가 메모리를 할당. 가상메모리만 할당됨
  7.   printf(“Memory Allocated. Press Enter to Continue\n”);gets(s);
  8.   for (j=0;j<100000000;j++) // (상태2) 강제로 데이터를 쓴다. 실제메모리 할당됨.
  9.     a[j]=‘1’;
  10.   printf(“Memory Writed. Press Enter to Continue\n”);gets(s);
  11.   free(a); // (상태3) 메모리할당을 해제한다.
  12.   printf(“Memory Freed. Press Enter to Exit\n”);gets(s);
  13. }

free(a) 부분에서 분명 실 메모리가 해제되어 , 반환되어야 하나 top 에서는 그대로 남아있는것 처럼 나온다.

메모리 Alloc한 상태 (상태1)
PID USERNAME LWP PRI NICE SIZE RES  STATE    TIME  CPU COMMAND
1093 guru     1 58    0 96M    648K sleep    0:00 .00% MemoryTest

메모리 Write한 상태 (상태2)
PID USERNAME LWP PRI NICE SIZE RES  STATE    TIME  CPU COMMAND
1093 guru     1 58    0 96M    96M  sleep    0:00 .00% MemoryTest

메모리 Free한 상태 (상태3)
PID USERNAME LWP PRI NICE SIZE RES  STATE    TIME  CPU COMMAND
1093 guru     1 58    0 96M    96M  sleep    0:00 .00% MemoryTest

물론 이소스를 리눅스나,윈도우에서 실행하면 모두 제대로 반환 처리 된다.
감시프로세스가 알람을 띄우기 때문에, 이를 원복하도록 하기위해 여기저기 검색을 해봤다.
Doug Lee 가 만든 dlmalloc 이란 소스를 찾아서 malloc 대신 dlmalloc을 쓰면, 제대로 해제가 된다.

메모리 dlmalloc후 Free한 상태 (상태3)
PID USERNAME LWP PRI NICE SIZE RES  STATE    TIME  CPU COMMAND
1093 guru     1 58    0 96M    648K sleep    0:00 .00% MemoryTest

음.. 솔라리스 5.8의 문제인걸까.. 아니면 gcc 3.4.1 에 들어있는 malloc 의 문제인걸까.
가만, 리눅스에 gcc 도 역시 버전은 3.4.1 이다. 그럼 솔라리스에서 이상하게 처리하는건가.. 에구.. 몰것다.
하여튼 dlmalloc 으로 문제는 해결.

남은 문제는.. 이렇게 해도 free 시 가상메모리는 해제가 안된다는것.
리눅스에서는 분명 free(a) 시에 가상메모리까지도 해제가 되는데.. 훔.