공유메모리에서 dest ...

alonecrow의 이미지

공유메모리를 사용한 후에 삭제를 하면 아래와 같이 status에 dest가 붙고
프로그램을 종료할 때 까지 그대로 있습니다.
dest가 붙는 이유가 무엇이며 왜 없어지지 않고 있는지, 시스템에 미치는 영향이 무엇인지 알고 싶습니다.

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 917505     ora920    660        47         1          dest         
0x00000000 950274     ora920    660        2750       1          dest  
sunyzero의 이미지

아무도 답변을 안해주는군요... 혹시 밑보인 일이라도... ^^* 농담이고요.

일반적으로 IPC_RMID로 지우게 되면 바로 지워지는게 정상이지만, 대부분 공유메모리는 여러 프로세스가 사용하므로 nattach 수(어태치한 프로세스 갯수)가 1개 이상인 경우가 대부분입니다.

그런데 하나의 프로세스에서 지우는 명령을 날렸다고 하더라도 바로 지워지면 현재 작동하는 다른 프로세스들을 망가뜨리게 됩니다. 따라서 nattach가 0 이 될때까지 기다렸다고 지운다는 의미입니다. dest 는 destroyed 의 약자겠죠.

시스템에 아무런 문제는 없습니다. attach한 프로세스들이 다 종료되면 바로 없어집니다.

실제로 프로그램을 짤때 fork() 모델에서는 이렇게 프로그램을 짜기도 하는데(유난히 리눅스쪽만 이렇게 프로그램을 많이 짭니다) 부모가 shm을 생성하고 자식을 다 fork()한뒤에 IPC_RMID로 지워버리면 자식들이 어떤 경우에 죽게 되거나 비정상적으로 죽더라도 SHM이 정상적으로 없어지게 되죠.

PS)정확하게 확인해보진 않았지만 다른 유닉스는 RMID명령이 내려지는 즉시 shm 영역은 삭제되고, 다른 프로세스들은 SHM이 아닌 로컬영역으로 해당 영역을 복사한다고 알고 있습니다. 틀렸나? 흠... 확인은 안해봤으니 이것은 100% 믿진 마세요. 하지만 위의 dest는 사실임~~

PS2) PS에 올린 것을 아는 사람에게 물어보니 진실이라고 하더군요. 적어도 솔라리스하고 AIX에서는요...

========================================
* The truth will set you free.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.