در سیستم‌عامل‌های با قابلیت چندوظیفگی، یک دیمِن (به انگلیسی: Daemon) یک برنامه است که به جای اینکه تحت کنترل مستقیم یک کاربر تعاملی باشد، در پس‌زمینه اجرا می‌شود. به‌طور سنتی نام دیمن‌ها با حرف d خاتمه می‌یابد. به عنوان مثال، syslogd دیمنی است که قابلیت ثبت رخداد در سیستم‌عامل‌های شبه یونیکس را پیاده‌سازی می‌کند و برنامه‌های کاربردی به کمک این دیمن اطلاعاتی را در فایل‌های ثبت رخداد خود می‌نویسند. یا همچنین اوپن‌اس‌اس‌اچ دیمنی است که در پس‌زمینه سیستم منتظر اتصالات ورودی اس‌اس‌اچ می‌ماند و آن‌ها را اجابت می‌کند. در سیستم‌عامل‌های یونیکس و شبه یونیکس، فرایند والد یک دیمن، معمولاً، اما نه همیشه، فرایندی به نام اینیت است. یک دیمن معمولاً به این صورت ایجاد می‌شود که یک فرایند، فرایند فرزندی را منشعب کرده و سپس بلافاصله خارج می‌شود تا باعث شود اینیت فرایند فرزند تولید شده را مال خود کند. به علاوه، دیمن یا سیستم‌عامل باید کارهای دیگری را هم انجام دهد، مثلاً باید دیمن مورد نظر از کنترل هر ترمینالی خارج شود و به هیچ ترمینالی وابسته نباشد. چرا که دیمن قرار است در پس‌زمینه به اجرا درآید و قرار نیست با کاربر به صورت تعاملی ارتباط برقرار کند. به منظور انجام دادن راحت‌تر این کارها، بیشتر سیستم‌عامل‌های یونیکس توابع و رویه‌هایی مانند daemon(3) را پیاده‌سازی کرده‌اند که عملیات فوق را خیلی آسانتر می‌کنند. در اکثر سیستم‌ها، دیمن‌ها اغلب در هنگام بوت شدن سیستم آغاز به کار می‌کنند و خدماتی نظیر پاسخگویی به درخواست‌های شبکه، فعالیت‌های سخت‌افزاری و … را ارائه می‌دهند.[۱]

منابع ویرایش

  1. "The Origin of the word Daemon".