attach 한 세마포어를 detach 하는 법?

ssehoony의 이미지

semget 을 통해 세마포어 ID 를 얻었습니다.
프로세스에서 이제 한동안 사용할 필여가 없어서
semget 으로 얻은걸 잠시 프로세스에서 분리 할려고 하는데요
어떻게 해야하는거죠?
세마포어 뿐만 아니라 공유메모리도 궁금하네요.
semctl 로 IPC_RMID 하는 건 삭제이지 detach 는 아닌 것 같던데...

shamlock의 이미지

학교다닐때 공부한거 밖에 없어서... 100%자신감으로 말씀드리는 것은 아니지만.. ^^

세마포어가 생성될때
커널에 의해서 시스템 영역의 세마포어 객체(구조체)가 생성되고
각 사용자 프로세스는 semget()으로 시스템영역의 세마포어객체를 식별할 수 있는 ID를 부여받고..............

세마포어 값을 올렸다 내렸다 합니다.
도저히 detach라는 용어를 붙일만한 구석이 없는거 같은데요
세마포어를 사용안하려면 안하면 그만입니다.

참고로....
attach/detach는 공유메모리에서 사용하는 개념인거 같은데.
공유메모리를 프로세스 영역에 붙였다 떼었다 하는 것입니다.

세마포어는 프로세스 영역에 붙였다 떼었다 할게 없는것 같은데요

@.@

ssehoony의 이미지

세마포어도 연결이 됩니다.

처음 semget 으로 세마포어 id 를 얻어 올 때 UNDO 기능을 활성화하면 커널이 해당 프로세스를 감시하고 있다가 unlock 를 하지 않고 종료하면 자동으로 unlock 을 해주는 기능이죠. (이 반대의 경우도 있겠죠)
만약 lock 상태에서 프로세스가 kill 로 죽거나 세크먼트폴트로 죽게 됐을 때 커널이 알아서 unlock 을 해주는 건데요.
그렇기 때문에 undo 를 하기 위한 기존 상태등의 정보를 커널이 프로세스가 죽기전까지 계속 갖고 있습니다.

근데 이게 솔라리스의 경우 동일한 키의 세마포어에 대해 30개 프로세스가 undo 등록을 할 수 있는게 기본 값이더군요.
시스템 컨피그 파일을 수정해서 그 갯수를 늘리는 방향 보다, 그 프로세스를 감시하지 않도록 하고 다시 필요할때 감시를 부탁하는 방법을 사용할려고 합니다.

ssehoony의 이미지

하하하 attach/detach 는 제가 개인적으로 붙인거라 다른 분들이 이해를 못 하셔서 답변이 없었나 보군요.
여기에 대한 용어를 몰라서 공유메모리와 비슷한 느낌의 용어를 사용했던건데 다른 분들이 공감을 못 하셨나 보군요. :oops:

원래 용어는 모르겠고, 제가 의미하는바는 UNDO 에 대한 감시를 의미하는 것있었습니다.

댓글 달기

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