تارا فایل

پاورپوینت فرایند در لینوکس


1
بسم لله الرحمن الرحیم

2
فرایند در لینوکس

3
فرایند های لینوکس – قسمت اول
مفهوم فرایند
اجرای یک فرایند در پیش زمینه یا پس زمینه
مد کاربر/هسته در اجرای برنامه
دستورات اصلی
دستورات پیشرفته
دستورات کاربردی

4
فرایندها (1)
منظور از فرایند یک برنامه یا کد در حال اجرا در سیستم می باشد.
قسمتی از کدهای یک فرایند در مود کاربر و قسمتی در مود کرنل (هسته) اجرا می شود.

5
فرایندها (2)
رابطه فرایند ها به صورت سلسله مراتبی است. به این معنی که یک فرایند می تواند یک یا چند فرایند ایجاد کرده و هر کدام از فرایند های جدید نیز به همین منوال می توانند فرایند جدید ایجاد کنند.
یک فرایند روی فرایند هایی که ایجاد کرده است کنترل کامل دارد و حتی می تواند اجرای آنها را متوقف کند.
توقف یک فرایند می تواند باعث توقف فرایند های تولید شده توسط آن فرایند شود.
در لینوکس به هر کدام از فرایندها یک PID نسبت داده می شود.

6
فرایندها (3)
Foreground
موقعی که یک دستور را از اعلان اجرامی کنیم و منتظر می مانیم تا پس از پایان اجرای آن دوباره شکل اعلان ظاهر شود می گوییم فرایند به صورت پیش زمینه اجرا شده است.
Background
موقعی که بعد از دستور علامت & را قرار می دهیم و دستور را اجرا می کنیم فرایند به صورت پس زمینه اجرا می شود به این معنی که بلافاصله شکل اعلان ظاهر می شود در حالیکه اجرای برنامه هنوز ادامه دارد.

7
فرایندها (4)
دستور jobs لیست برنامه هایی که در پس زمینه در حال اجراست را نشان می دهد.
برای اینکه یک فرایند را به صورت پس زمینه اجرا کنیم، در حین اجرای برنامه ctrl+z را زده و سپس دستور bg را اجرا می کنیم.
دستور fg، برنامه ای که در پس زمینه است را به صورت پیش زمینه اجرا می کند.

8
فرایندها (5)
[taghi@linuxserver behnami]$ cat > a
[1]+ Stopped cat >a
[taghi@linuxserver behnami]$ bg
[taghi@linuxserver behnami]$ fg
cat >a

9
فرایندها (6)
Daemons
فرایندهای پس زمینه سیستمی را Daemon می گوییم
این فرایندها معمولاً در حین بوت شدن دستگاه اجرا می شوند.
معمولاً این نوع فرایندها با ترمینال کاری ندارند.
UID PID PPID C STIME TTY TIME CMD
root 5 1 0 1999 ? 00:00:14 [kswapd]
bin 254 1 0 1999 ? 00:00:00 [portmap]
root 307 1 0 1999 ? 00:00:23 syslogd -m 0
root 350 1 0 1999 ? 00:00:34 httpd
در قسمت ترمینال ؟ آمده است. به این معنی که این فرایند ترمینال ندارد.

10
فرایندها (7)

11
فرایندها (8)
Real UID
در زمان ایجاد فرایند این فیلد نشان دهنده نام کاربری است که این فرایند را ایجاد کرده است.
Real GID
در زمان ایجاد فرایند این فیلد نشان دهنده نام گروه اصلی است که ایجادکننده فرایند در آن عضویت دارد.

12
فرایندها (9)
با دستور زیر می توانید فیلدهای uid, gid فرایند جاری که همان شل است را مشاهده کنید.

$id
uid=522(karamoz) gid=522(karamoz) groups=522(karamoz)

13
فرایندها (10)
Effective UID
این فیلد نشان دهنده کاربری است که فرایند با استفاده از اجازه های دسترسی آن به فایلها دستیابی انجام می دهد.

این فیلد به طور معمول همان مقدار Real UID را دارد. یعنی همان کاربری که این فرایند را ایجاد کرده است.
در صورتی که فایل دارای اجازه Setuid باشد مقدار این فیلد برابر با UID صاحب فایل خواهد شد.
این حالت در مورد برنامه های خاصی نظیر passwd رخ می دهد.
کاربری که این فایل را اجرا می کند فرایندی ایجاد می کند فیلد effective uid آن برابر uid صاحب فایل (یعنی root) خواهد شد و بدین وسیله اجازه دسترسی کاربر root را خواهد داشت.

14
فرایندها (11)
Effective GID
این فیلد نشان دهنده گروه کاربری است که فرایند با استفاده از اجازه های دسترسی آن به فایلها دستیابی انجام می دهد.

این فیلد به طور معمول همان مقدار Real GID را دارد. یعنی گروه همان کاربری که این فرایند را ایجاد کرده است.
در صورتی که فایل دارای اجازه Setgid باشد مقدار این فیلد برابر با GID گروه فایل خواهد شد.

15
فرایندها (12)
PID
این فیلد یک شناسه منحصر به فرد است که در حین اجرای یک فرایند به آن نسبت داده می شود.
با اجرای هر فرایند جدید در سیستم این فیلد افزایش می یابد
با دانستن شماره یک فرایند یا فیلد PID می توانیم اطلاعات مختلفی راجع به فرایند استخراج کنیم از طریق دستورهایی مثل ps, pstree, jobs

16
فرایندها (13)
PPID
فرایندی که یک فرایند جدید ایجاد می کند پدر و فرایند جدید فرزند نامیده می شود. فرایند پدر از طریق فیلد ppid شناخته می شود.

17
مد کاربر/هسته (1)
تمامی سیستم های عامل چند کاره و چند کاربره برای اجرای صحیح نیاز به استفاده ازمود محافظت شده پردازنده های اینتل دارند.
کرنل یا هسته سیستم عامل در مود ممتاز اجرا می شود
بقیه اجزاء سیستم عامل که همان برنامه ها یا فرایندها هستند در مود کاربر اجرا می شوند.
برنامه هایی که در مود کاربر اجرا می شوند برای انجام بعضی کارهای سیستمی از طریق system call کد را در مود کرنل اجرا می کنند.

18
مد کاربر/هسته (2)
مود کاربر
مود هسته

19
مود کاربر/هسته (3)
در مود کاربر بعضی از دستورهای پردازنده را نمی توان اجرا کرد.
مود کاربر به گونه ای است که هیچکدام از فرایندها نمی توانند در حوزه کار دیگری دخالت کند
در مود هسته تمامی دستورهای پردازنده را می توان اجرا کرد
در مود هسته برنامه در حال اجرا به تمامی اجزاء سیستم دسترسی دارد. ولی چون هسته به صورت امن نوشته شده است مشکلی برای بقیه به وجود نمی آید.

20
ps, pstree
ps: این دستور گزارشی از وضعیت پردازش در سیستم شما می دهد.
pstree: این دستور نمودار درختی وضعیت پردازش در سیستم را نمایش می دهد.

21
ps
[behnami@linuxserver behnami]$ ps
PID TTY TIME CMD
5740 pts/2 00:00:00 bash
5784 pts/2 00:00:00 cat
5786 pts/2 00:00:00 top
5788 pts/2 00:00:00 ps
[behnami@linuxserver behnami]$

این دستور فرایندها را لیست کرده و وضعیت آن را به ما نشان می دهد.

22
ps
ps -ax: این دستور لیست تمام فرایندهای در حال اجرای سیستم را به ما نشان می دهد.
ps -axl: با این گزینه اطلاعات کاملتری در مورد هر فرایند به ما داده می شود
ps -xf: گزینه f رابطه پدر-فرزندی بین فرایندها را مشخص می کند.

23
ps

24
ps
وضعیت یک فرایند
R: یعنی در حال اجرا
S: یعنی منتظر دریافت CPU
T: یعنی متوقف شده است
W: نمی توان آن را به حافظه SWAP منتقل کرد
Z: پدر این فرایند قبل از خود فرایند از بین رفته است.
N: فرایند اولویت پایینی دارد.

25
pstree

26
kill, killall
kill: از طریق این دستور و دادن شماره یک process به آن فرایند، یک سیگنال ارسال می کنیم.
برای دیدن لیست سیگنالهایی که می توان به یک فرایند ارسال کرد دستور Kill -l را اجرا کنید.
killall: با این دستور می توانیم به یک process از طریق نام آن سیگنال ارسال کنیم.

27
free, top
free: این دستور اطلاعاتی درباره حافظه استفاده شده و دست نخورده دستگاه شما می دهد.
top: این دستور لیست فرایندها را نشان می دهد. این دستور فرایندها را بر اساس میزان مصرف منابعی چون حافظه و پردازنده مرتب می کند.

28
free
کل حافظه موجود
حافظه مصرف شده
حافظه آزاد

29
Top
حافظه آزاد
ایجاد کننده فرایند
اولویت فرایند

30
Top

31
vmstat
vmstat: با اجرای این دستور می توانیم اطلاعات آماری در رابطه با حافظه، پردازنده و تعداد فرایندهای دستگاه دریافت کنیم.

32
vmstat
[behnami@linuxserver taghi]$ vmstat
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
1 0 1704 35900 105344 83724 0 0 7 5 109 228 14 0 0 86
[behnami@linuxserver behnami]$

وضعیت فرایندها
وضعیت حافظه
تعداد عملیات خواندن و نوشتن روی دیسک
وضعیت مصرف پردازنده
تعداد وقفه ها و تعداد تعویض متن
یعنی هر یک ثانیه اطلاعات جدید را نشان بده

33
id, w, uname, last
id: برای دریافت UIDها و GID کاربر جاری در سیستم از این دستور استفاده می شود.
w: این دستور نشان می دهد که چه کسانی داخل سیستم شده اند و چه کاری انجام می دهند.
who: نشان می دهد که چه کسانی وارد سیستم شده اند.
uname: اطلاعاتی درباره سیستم به کاربر می دهد مثلا” از طریق پارامتر –sکاربر میتواند از نسخه kernel آگاه شود.
last: این دستور لیستی از اسامی کاربرانی که وارد سیستم شده اند در اختیار شما قرار می دهد.

34
id
$id
uid=522(karamoz) gid=522(karamoz) groups=522(karamoz)

35
who
نام کاربر
ترمینال
از کجا وارد شده
نام فرمان

36
uname
این دستور اطلاعاتی در مورد کرنل سیستم به ما می دهد

37
last
این دستور آخرین کسانی را که روی سیستم وارد شده اند را نشان می دهد.
علاوه بر نام افراد ساعت ورود و خروج آنها از سیستم نیز مشخص می باشد.

38
last
نام کاربر
ترمینال مورد استفاده
زمان وارد شدن به سیستم
مدت زمان اتصال
وضعیت فعلی

39
which, whereis, alias

which: برای بدست آوردن آدرس دقیق محل دستورات شل.
locate, whereis: برای بدست آوردن آدرس دقیق یک فایل
alias: این دستور امکان تعریف دستورهای کوتاه را به ما می دهد. استفاده از این دستور بدون پارامتر، alias هایی که از قبل ساخته شده است (مانند ll) را نمایش می دهد.

40
which
این دستور کمک می کند تا مسیر کامل یک فرمان را پیدا کنیم.

41
locate, whereis
این دو دستور کمک می کند تا مسیر کامل یک فایل را در سیستم پیدا کنیم.
این دو دستور از پایگاه داده ای که توسط دستورهای updatedb makewhatis ساخته شده است استفاده می کنند.

42
locate, whereis

43
alias
این دستور امکان تعریف دستورهای کوتاه را به ما می دهد. در شکل زیر نمونه ای از فرمانهای تعریف شده را مشاهده می کنید.

44
unalias, uptime
unalias: برای از بین بردن aliasهایی که از پیش ساخته ایم استفاده می شود.
uptime: این دستور نشان می دهد که سیستم چه مدت است که روشن بوده است.

45
فرایند های لینوکس – قسمت دوم
فرایند بوت شدن سیستم
Run level (آغازگر سیستم)
/etc/inittab چیست؟
/etc/rc.d/rc#.d/
/etc/rc.d/init.d/
ntsysv, setup, chkconfig, tksysv
/proc

46
فرایند بوت شدن سیستم
روشن کردن دستگاه
اجرای POST
اجرای MBR
اجرای Loader
لود شدن سیستم عامل
اجرا شدن سیستم عامل
اجرا شدن اولین فرایند ( برنامه init) توسط کرنل
خوانده شدن /etc/inittab توسط برنامه init و اجرای دستورات مطابق runlevel پیش فرض

47
runlevel (1)
این فایل حاوی پیکربندی runlevelهای مختلف سیستم عامل لینوکس می باشد.
Runlevel رفتار یا حالت سیستم عامل موقع بوت شدن را معرفی می کند. این رفتار را می توان از طریق فایل /etc/inittab تغییر داد.

48
runlevel (2)
به طور پیش runlevelهای 0 تا 6 در سیستم وجود دارد.
0: یعنی halt
1: یعنی single user از این runlevel برای عملیات password_recovery استفاده می شود.
2: یعنی Multi User بدون سرویس NFS
3: یعنی Full Multi User
4: این run level استفاده نشده است
5: یعنی Graphics Full Multi User همراه با محیط گرافیکی
6: یعنی reboot

49
/etc/inittab چیست؟ (1)
این فایل حاوی رکوردهایی به شکل زیر است
id : runlevels : action : program
معنی این رکورد آن است که برنامه program را در سطوح runlevels به صورت action اجرا می کند.
فقط یک رکورد در این فایل است که program ندارد و آن رکورد initdefault است که runlevel پیش فرض را نشان می دهد.

50
/etc/inittab چیست؟ (2)

51
actions (1)
initdefault: این گزینه runlevel پیش فرض سیستم را مشخص می کند.
wait: به این معنی است که تا برنامه مربوط به این رکورد اجرا نشده است سراغ رکود بعدی نمی رود.
boot: به این معنی است که برنامه مربوط به این رکورد در زمان بوت شدن سیستم اجرا می شود.
once: به این معنی است که برنامه مربوط به این رکورد فقط یکبار اجرا می شود.
respawn: به این معنی است که برنامه مربوط به این رکورد باید همیشه در حال اجرا باشد. یعنی اگر برنامه را kill کنیم مجدداً اجرا می شود.

52
actions (2)
ctraltdel: این گزینه نشان می دهد که با فشار داده شده کلیدهای ctr+alt+del چه برنامه ای باید اجرا شود.
powerfail: این گزینه نشان می دهد که در صورتی که UPS در حال از دست دادن توان خود بود چه برنامه ای اجرا شود.
powerokwait: این گزینه نشان می دهد که بعد از درست شدن UPS چه برنامه ای باید اجرا شود.
sysinit: این گزینه برنامه راه انداز سیستم را معرفی می کند.

53
/etc/inittab چیست؟ (3)

54
/etc/inittab چیست؟ (4)
یکی از رکوردهایی که در فایل inittab است رکورد زیر است
l3: 3: wait: /etc/rc.d/rc 3
معنی این رکورد آن است که برنامه rc با پارامتر 3 در runlevel شماره 3 اجرا شود.

55
/etc/rc.d/rc
برنامه rc یک پارامتر عددی می گیرد که در واقع یک عدد بین 0 تا 6 می باشد.
این برنامه وارد شاخه /etc/rc.d/rc#.d/ می شود و تمام فایلهایی که به علامت S شروع می شوند را با پارامتر start صدا می کند.
این برنامه وارد شاخه /etc/rc.d/rc#.d/ می شود و تمام فایلهایی که به علامت K شروع می شوند را با پارامتر stop صدا می کند.

56
(1)/etc/rc.d/rc#.d/
فایلهایی که در این شاخه هستند به شکل زیر می باشند.
[SK]##service
این فایل یک symbol link به فایل service در شاخه /etc/rc.d/init.d/ می باشد.
برای مثال فایل S45sendmail در شاخه /etc/rc.d/rc3.d/ به فایل /etc/rc.d/init.d/sendmail اشاره می کند.
## یک عدد است که ترتیب اجرای فایلها را برای برنامه rc مشخص می کند.
/etc/rc.d/init.d/service

57
/etc/rc.d/init.d (1)
این شاخه حاوی تمامی فایلهای راه انداز سرویسهای لینوکس است.
برای مثال فایل راه انداز سرویس نامه، سرویس انتقال فایل و سرویس شبکه و …. در این شاخه قرار دارد.

58
/etc/rc.d/init.d (2)
فایلهای این شاخه همگی اجرایی هستند.
نحوه اجرا کردن این فایلها به این شکل است
/etc/rc.d/init.d/service {start|stop|restart|status}

59
/etc/rc.d/rc#.d/ (2)
برای پیکربندی هر کدام از runlevel ها باید شاخه /etc/rc.d/rc#.d/ را تنظیم کنیم.
تنظیم این شاخه به معنی درست کردن فایلهایی به شکل [SK]##service است.
در صفحه بعد لیست دستوراتی که به کمک آنها می توانیم این تنظیمات را انجام دهیم مشاهده می کنید.

60
ntsysv, setup, chkconfig, tksysv
ntsysv: یک رابط ساده برای پیکربندی runlevelها می باشد. (این دستور فقط runlevel جاری سیستم را پیکربندی می کند)
setup:یک رابط ساده برای پیکربندی runlevelها می باشد. (این دستور فقط runlevel جاری سیستم را پیکربندی می کند)
chkconfig: این دستور تمامی runlevelهای سیستم را به طور همزمان پیکربندی می کند.
tksysv: این دستور گرافیکی نیز تمامی runlevelهای سیستم را به طور همزمان پیکربندی می کند.

61
دستور ntsysv و دستور setup قسمت سرویسها

62
chkconfig (1)

63
chkconfig (2)

64
chkconfig (3)

65
درباره /proc و /etc/sysctl.conf, sysctl
/proc: پارامترهای مختلف کرنل در این شاخه نگهداری می شود. بعضی از این پارامترها فقط خواندنی و بعضی قابل تغییر می باشند.
/etc/sysctl.conf: اگر بخواهیم پارامترهای قابل تغییر کرنل در /proc مقداری غیر از مقدار پیش فرض را داشته باشد، مقادیر مورد نظر در این فایل نوشته می شوند.
sysctl: این دستورمقادیر مشخص شده در فایل /etc/sysctl.conf را خوانده و در /proc می نویسد.

66
/proc (1)

67
/proc (2)

68
/proc (3)

69
تنظیم پارامترهای کرنل- فایل sysctl.conf (1)

70
تنظیم پارامترهای کرنل- فایل sysctl.conf (2)

71
تنظیم پارامترهای کرنل- فایل sysctl.conf (3)

پایان
72


تعداد صفحات : 72 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود