دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۰
  • اسفند

جلسه ۰۸-۰۲ : مدیریت Process ها در یونیکس

  • دسته‌بندی‌ها :
جلسه ۰۸-۰۲ : مدیریت Process ها در یونیکس
    • جزئیات
    • نوع محتواآموزشی

      دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. مدیریت Process ها در یونیکس (UNIX) را در بخش قبل آغاز نمودیم. در این بخش نیز این مبحث را ادامه می دهیم.

      مدیریت Process ها در یونیکس (UNIX)

      مدیریت Process ها در یونیکس (UNIX) را با پروسس Stopping آغاز می کنیم.

      پروسس Stopping

      پایان دادن (Ending) به یک پروسس می تواند به چندین روش مختلف انجام شود. اغلب ، از یک فرمان مبتنی بر کنسول ، ارسال CTRL + C keystroke (کاراکتر قطع پیش فرض) دستور خارج می شود. این کار زمانی انجام می شود که پروسس در حالت foreground اجرا شود.

      اگر یک پروسس در background در حال اجرا است ، باید شناسه کار خود را با استفاده از دستور ps دریافت کنید. پس از آن ، می توانید از دستور kill برای از بین بردن پروسس به شرح زیر استفاده کنید.

      مثال : 

      در این جا ، دستور kill فرآیند first_one را خاتمه می دهد. اگر پروسس یک دستور kill معین را نادیده بگیرد ، می توانید از kill -9 و به دنبال آن ID پروسس به شرح زیر استفاده کنید.

      مثال : 

      پروسس های Parent و Child

      هر پروسس یونیکس دارای دو ID است که به آن اختصاص داده می شوند: (Process ID (pid و (Parent process ID (ppid. هر پروسس کاربر در سیستم یک پروسس اصلی دارد.

      بیش تر دستوراتی که شما اجرا می کنید دارای شل به عنوان والدین شان دارند. مثال ps -f را که در آن این دستورالعمل هم با شناسه پردازش و هم با process ID و هم با parent process ID ذکر شده است را بررسی کنید.

      پروسس های Zombie و Orphan

      به طور معمول ، هنگامی که یک پروسس کودک kill می شود ، پروسس والدین از طریق سیگنال SIGCHLD به روز می شود. سپس والدین می توانند کار دیگری انجام دهند یا فرزند خود را در صورت نیاز مجدداً راه اندازی کنند. با این حال ، گاهی اوقات پروسس والدین قبل از kill شدن فرزندانش kill می شود. در این حالت ، “والدین همه ی پروسس ها” ، پروسس init ، به (PPID (parent process ID تبدیل می شود. در بعضی موارد ، این پروسس ها ، پروسس های orphan نامیده می شوند.

      هنگامی که یک پروسس kill می شود ، لیست ps ممکن است پروسس را با حالت Z نشان دهد. این یک zombie یا defunct process است. این پروسس مرده است و مورد استفاده قرار نمی گیرد. این پروسس ها با پروسس های orphan متفاوت است. آن ها اجرا را به اتمام رسانده اند اما هنوز هم یک ورودی در جدول پروسس پیدا می کنند.

      پروسس های Daemon

      Daemon، پروسس های background مرتبط با سیستم هستند که غالباً با مجوزهای درخواست های ریشه و خدمات از دیگر فرآیندها اجرا می شوند.

      Daemon فاقد ترمینال کنترل کننده است. این نمی تواند dev/tty/ را باز کند. اگر یک “ps -ef” را انجام دهید و به فیلد tty نگاه کنید ، تمام Daemon ها دارای یک ؟ برای Tty هستند.

      به طور دقیق ، یک Daemon فرایندی است که در background اجرا می شود و معمولاً منتظر است تا اتفاقی بیفتد که بتواند با آن کار کند. به عنوان مثال ، یک Daemon چاپگر در انتظار دستورات چاپ است.

      اگر برنامه ای دارید که خواستار پردازش طولانی مدت است ، پس ارزش آن را دارد که آن را یک Daemon کنید و آن را در background اجرا کنید.

      دستور top

      دستور top ابزاری بسیار مفید برای نمایش سریع پروسس های طبقه بندی شده با معیارهای مختلف است.

      این یک ابزار تشخیصی تعاملی است که به طور مکرر به روز می شود و اطلاعات مربوط به حافظه فیزیکی و مجازی ، میزان مصرف CPU ، میانگین بارگیری و پروسس های مشغول شما را نشان می دهد.

      در این جا سینتکس  ساده برای اجرای دستور top و دیدن آمار استفاده از CPU توسط پروسس های مختلف آمده است.

      مثال : 

      Job ID در مقایسه با Process ID

      پروسس های معلق و Background معمولاً از طریق شماره کار (Job ID) دستکاری می شوند. این عدد با process ID فرق می کند و به دلیل کوتاه تر بودن استفاده می شود.

      علاوه بر این ، یک Job می تواند شامل چندین پروسس باشد که به صورت موازی در یک سری یا همزمان انجام می شوند. استفاده از Job ID آسان تر از ردیابی فرآیندهای فردی است.

      مدیریت Process ها در یونیکس (UNIX) را در این جا به پایان می رسانیم.

      کلام پایانی

      مدیریت Process ها در یونیکس (UNIX) را در دو بخش مورد بررسی قرار دادیم. در بخش بعدی در مورد Network Communication صحبت خواهیم نمود. با وب سایت پی وی لرن همراه باشید.

      QR:  جلسه ۰۸-۰۲ : مدیریت Process ها در یونیکس
      به اشتراک بگذارید