프레프로세스란말을 들었는데여

jjjjrr의 이미지

안녕하세요
fork()로 프로세스를 만들어 네트웩프로그램을 만들고있읍니다
근데
프레프로세스란말을 들었는데여
내용좀 소개부탁드립니다
프로세스만드는데 시간걸리니까
미리프로세스를 만들어
실제 접속이오면 만들어진 프로세스를 이용한다는것이라고 들었읍니다
조금더 구체적이었으면좋겠읍니다
예제같은것이 있으려나.....
즐거운하루되세요

istree의 이미지

preprocessor 흠.. 한글로 전처리자 라고 합니다.
#define, #ifdef, #ifndef 등등
다른 뜻도 있을지 모르겠지만 전 이렇게 알고 있습니다 ^^.

너의(yours) 프로그램 : 똑똑한체하는 트릭과 부적절한 주석이 넘치는 혼란 그자체.

나의(my) 프로그램 : 간결하며 효율적인 측면과 다음 개발자들을 위해서 완벽하게 주석을 단 최고로 균형잡힌 정교한 코드의 결정체

- Stan Kelly-Bootle

pynoos의 이미지

아마 프리프로세서가 아니라..

pre-forked process 인 것 같습니다.

하나의 프로세스가 socket을 bind 하고, listen 한다음

accept에 들어가기전에 fork를 합니다.

그렇게되면, 생기는 모든 process가 동시에 accept를 시도하고,

이 프로세스들중 하나만 정확히 접속하는 client를 accept하게 됩니다.

그리고, client가 socket를 끊게 되면, 다시 accept 하는 곳으로 와서

대기하도록 만듭니다. 이렇게 되면 접속하자마자 fork 라는 무거운 작업을 하지 않으므로, 비용을 절감하는 것이죠.

또 대개는 accept 전에 semaphore 등을 두어 한녀석만 accept에 참여하도록 만들기도 합니다. 확실히 한 녀석만 accept 하고 accept하자마 semaphore를 풀어 다른 녀석이 들어오게 만들지요.

이렇게 하면, 몇개의 프로세스가 놀고 있는지 semaphore 대기 count등을 통해 알수 있고, 만약 한녀석도 semaphore를 대기하고 있지 않은 경우 추가적으로 fork 할 수 있도록 만드는 방법도 있습니다.

choissi의 이미지

pynoos wrote:
또 대개는 accept 전에 semaphore 등을 두어 한녀석만 accept에 참여하도록 만들기도 합니다. 확실히 한 녀석만 accept 하고 accept하자마 semaphore를 풀어 다른 녀석이 들어오게 만들지요.

이렇게 하면, 몇개의 프로세스가 놀고 있는지 semaphore 대기 count등을 통해 알수 있고, 만약 한녀석도 semaphore를 대기하고 있지 않은 경우 추가적으로 fork 할 수 있도록 만드는 방법도 있습니다.

http://www.ezdoum.com/stories.php?story=02/08/17/3254153
이유는 좀 다르긴 하지만서두요 ^^;

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

댓글 달기

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