OS별 shared memory Loading, unloading 은 어떻게 이루어지나요?

goofy2의 이미지


안녕하세요 Linux & Unix에서 프로그래밍을 하는 사람입니다.

이번에 테스트를 하다가 OS별로 shared library를 메모리에 올리고 지우는것이 다른 것 같다고 느껴서

전문가분께 물어보려고 합니다..

예를들어 TEST라는 프로그램이 a.so 파일을 사용한다고 가정했을 때

Linux에서는 TEST를 실행하고, 끝난 후 a.so파일을 지우면 잘 지워집니다.

그런데 HP-UX나 AIX에서는 TEST를 실행하고 끝난 후 a.so파일을 지우려면 누가 쓰고있는 중이라 못지운다는

메시지가 나오더라구요..

그래서 인터넷을 통해 검색해본 결과

AIX의 경우 root계정으로 genkld 명령어를 사용하면 지금 메모리에 올라와있는 라이브러리 리스트가 나오더군요

사용이 끝난 a.so파일도 메모리에 올라와 있음을 확인하였습니다. 따라서 라이브러리 파일이 지워지지 않는것이구요..

그렇다면 AIX와 HP는 프로세스가 끝났으면서도 Shared Library가 메모리에서 해제되지 않는것 같은데

제 말이 맞는건가요?

즉 Linux에서는 프로세스가 끝나면 사용된 Library도 메모리에서 해제되지만,

HP나 AIX에서는 프로세스가 끝나도 사용된 Library는 메모리에 그대로 남아있다... 맞는말인가요?

IsExist의 이미지

이 경우 shared memory 라는 표현은 정확하지 않는것 같구요. so, sa는 shared object 또는 shared library 라고
사용합니다.

관련 키워드로 검색해보니 대략 아래와 같은 페이지가 보이네요.

http://www.ibm.com/developerworks/aix/library/au-slib_memory/

요 페이지의 링크된 pdf 문서를 보시는게 도움이 될듯 합니다.

경험적으로 볼때 Linux는 실행중 비 실행중 상관없이 so 파일의 rm 이 가능했습니다.
aix, hp-ux 경우 실행이 끝났음에도 물고 있더군요.

aix, hp-ux 경우에는 동일한 so 파일을 엎어 쓸 필요가 있을때 문제가 됩니다.
(cp 로 복사했는데 제대로 복사가 안됨. rm 하고 cp 하면 됨)

aix 경우 6 대 버전에서 저런 문제가 없다고 합니다.

두 운영체제가 캐싱 효율 때문에 그러지 않나 생각되네요.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.