دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. در این بخش، مدیریت Process ها در یونیکس را مورد بررسی قرار داده. این مبحث در دو بخش بیان خواهد شد.
در این بخش، ما به طور مفصل در مورد مدیریت Process ها در یونیکس بحث خواهیم کرد. وقتی برنامه ای را روی سیستم یونیکس خود اجرا می کنید ، سیستم محیط خاصی را برای آن برنامه ایجاد می کند.
هرگاه در یونیکس دستوری صادر کردید ، پروسس جدیدی ایجاد یا شروع می شود. هنگامی که از دستور ls برای لیست کردن محتوای دایرکتوری استفاده می کنید، فرآیندی (Process) را شروع کردید. یک فرآیند (Process) ، به زبان ساده ، نمونه ای از یک برنامه ی در حال اجرا است.
سیستم عامل پروسس ها را از طریق یک شماره شناسه (ID) پنج رقمی که به عنوان pid یا شناسه فرآیند (process ID) شناخته می شود ، دنبال می کند. هر پروسس در سیستم دارای یک pid منحصر به فرد است.
سرانجام PID ها تکرار می شوند، زیرا تمام شماره های ممکن استفاده می شود و pid بعدی دوباره شروع می شود. در هر مقطع زمانی ، هیچ دو فرآیند با pid یکسان در سیستم وجود ندارد زیرا این pid است که یونیکس برای ردیابی هر فرایند از آن استفاده می کند.
هنگامی که یک پروسس را شروع می کنید (فرمان را اجرا می کنید) ، دو نوع پروسس در یونیکس وجود دارد که می توانید آن را اجرا کنید.
به طور پیش فرض ، هر پروسسی که شروع می کنید در foreground اجرا می شود. ورودی خود را از صفحه کلید دریافت می کند و خروجی را به صفحه نمایش ارسال می کند.
می توانید با دستور ls این اتفاق را ببینید. اگر می خواهید تمام فایل های موجود در دایرکتوری فعلی خود را لیست کنید ، می توانید از دستور زیر استفاده کنید.
1 | $ls ch*.doc |
این کار می تواند تمام فایل هایی را نشان دهد که نام آن ها با ch شروع می شود و با doc. پایان می یابد.
1 2 3 | ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc |
پروسس در foreground اجرا می شود ، خروجی به اسکرین هدایت می شود و اگر دستور ls هر ورودی را بخواهد (که این کار را نمی کند) ، از صفحه کلید منتظر آن می شود.
در حالی که یک برنامه که در foreground اجرا شده و وقت گیر است ، هیچ دستور دیگری را نمی تواند اجرا کند (هر فرآیند دیگری را شروع کنید) زیرا تا زمانی که برنامه پردازش را تمام کند، اعلان، وجود ندارد. با مدیریت Process ها در یونیکس همراه باشید.
یک پروسس Background بدون اتصال به صفحه کلید شما اجرا می شود. اگر پروسس های Background به هر ورودی صفحه کلید نیاز داشته باشد ، منتظر می ماند.
مزیت اجرای یک پروسس در background این است که می توانید دستورات دیگری را اجرا کنید و برای شروع دیگری لازم نیست صبر کنید تا زمان کامل شود!
ساده ترین روش برای شروع یک پروسس Background، اضافه کردن یک & در انتهای دستور است.
1 | $ls ch*.doc & |
این تمام فایل هایی را نشان می دهد که نام آن ها با ch شروع می شود و با doc. پایان می یابد.
1 2 3 | ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc |
در این جا ، اگر دستور ls هر ورودی را بخواهد (که این کار را نمی کند) ، تا زمانی که آن را به foreground منتقل کنیم و داده ها را از صفحه کلید به آن بدهیم ، در حالت توقف (stop) قرار می گیرد.
این خط اول حاوی اطلاعاتی درباره background process – شماره کار و شناسه (ID) پروسس است. برای دست کاری آن بین background و foreground ، باید شماره کار را بدانید.
کلید Enter را فشار دهید و موارد زیر را مشاهده خواهید کرد.
1 2 | [1] + Done ls ch*.doc & $ |
خط اول به شما می گوید که پروسس background دستور ls با موفقیت به پایان رسیده است. خط دوم اعلان فرمان دیگری است.
با اجرای دستور ps (وضعیت پروسس) به شرح زیر می توانید پروسس های خود را به راحتی مشاهده کنید.
1 2 3 4 5 | $ps PID TTY TIME CMD 18358 ttyp3 00:00:00 sh 18361 ttyp3 00:01:31 abiword 18789 ttyp3 00:00:00 ps |
یکی از شایع ترین فلگ های PS ، گزینه (f ( f for full- است که اطلاعات بیش تری را در شکل زیر ارائه می دهد.
1 2 3 4 5 6 | $ps -f UID PID PPID C STIME TTY TIME CMD amrood 6738 3662 0 10:23:03 pts/6 0:00 first_one amrood 6739 3662 0 10:22:54 pts/6 0:00 second_one amrood 3662 3657 0 08:10:53 pts/6 0:00 -ksh amrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f |
در این جا توضیحات کلیه فیلدهای نمایش داده شده توسط دستور ps -f ارائه شده است.
ردیف | ستون و توضیحات |
---|---|
۱ | UID User ID که به این پروسس تعلق دارد (شخصی که آن را اجرا می کند)
|
۲ | PID Process ID |
۳ | PPID پروسس ID والدین (ID پروسسی که آن را آغاز کرده است)
|
۴ | C بهره وری CPU از پروسس
|
۵ | STIME زمان شروع پروسس
|
۶ | TTY نوع ترمینال مربوط به پروسس
|
۷ | TIME با استفاده از آن مدت زمان اجرا شدن دستور ها را اندازه میگیرند.
|
۸ | CMD دستوری که پروسس را شروع کرده است. |
گزینه های دیگری نیز وجود دارد که می تواند به همراه دستور ps استفاده شود.
ردیف | آپشن و شرح |
---|---|
۱ | a- اطلاعات مربوط به همه کاربران را نشان می دهد.
|
۲ | x- اطلاعات مربوط به پروسس های بدون پایانه را نشان می دهد.
|
۳ | u- اطلاعات اضافی مانند گزینه f- را نشان می دهد.
|
۴ | e- اطلاعات توسعه یافته را نشان می دهد |
مدیریت Process ها در یونیکس را در این بخش از آموزش یونیکس مورد بررسی قرار دادیم. در بخش بعدی نیز این مبحث را ادامه خواهیم داد. با وب سایت آموزشی پی وی لرن و آموزش یونیکس همراه باشید.