عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

د عملیاتي سیسټمونو پیژندنه

سلام، حبر! زه غواړم ستاسو پام ته د مقالو لړۍ وړاندې کړم - د یو ادب ژباړې چې زما په نظر په زړه پوري دي - OSTEP. دا مواد د یونیکس په څیر عملیاتي سیسټمونو کار په ژوره توګه معاینه کوي، د بیلګې په توګه، د پروسو سره کار، مختلف شیډولر، حافظه او نور ورته اجزا چې عصري OS جوړوي. تاسو کولی شئ دلته د ټولو موادو اصلي بڼه وګورئ دلته. مهرباني وکړئ په یاد ولرئ چې ژباړه په غیر مسلکي ډول (په آزاده توګه) شوې وه، مګر زه هیله لرم چې ما عمومي معنی ساتلی وي.

په دې موضوع کې د لابراتوار کار دلته موندلی شئ:

نورې برخې:

تاسو کولی شئ زما چینل هم وګورئ ټیلیګرام =)

راځئ چې ترټولو بنسټیز خلاصون وګورو چې OS کاروونکو ته چمتو کوي: پروسه. د پروسې تعریف خورا ساده دی - دا دی د چلولو پروګرام. برنامه پخپله یو بې ژونده شی دی چې په ډیسک کې موقعیت لري - دا د لارښوونو مجموعه ده او احتمالا ځینې جامد ډیټا د پیل کیدو په تمه دي. دا هغه OS دی چې دا بایټونه اخلي او چلوي، برنامه په یو څه ګټور بدلوي.
ډیری وختونه ، کارونکي غواړي په ورته وخت کې له یو څخه ډیر برنامې پرمخ وړي ، د مثال په توګه ، تاسو کولی شئ براوزر ، لوبه ، میډیا پلیر ، متن ایډیټر او داسې نور په خپل لپ ټاپ کې پرمخ وړئ. په حقیقت کې، یو عادي سیسټم کولی شي لسګونه یا سلګونه پروسې په ورته وخت کې پرمخ بوځي. دا حقیقت سیسټم کارول اسانه کوي ، تاسو هیڅکله اندیښنه نلرئ چې ایا CPU وړیا دی ، تاسو یوازې برنامې پرمخ وړئ.

دا ستونزه راپورته کوي: څنګه د ډیری CPUs فریب چمتو کړئ؟ OS څنګه کولی شي د نږدې لامحدود شمیر CPUs برم رامینځته کړي ، حتی که تاسو یوازې یو فزیکي CPU ولرئ؟

OS دا برم د CPU مجازی کولو له لارې رامینځته کوي. د یوې پروسې په پیل کولو سره، بیا یې ودرول، د بلې پروسې پیل کول، او داسې نور، OS کولی شي دا فریب وساتي چې ډیری مجازی CPUs شتون لري، کله چې په حقیقت کې یو یا څو فزیکي پروسیسرونه وي. دا تخنیک ویل کیږي د وخت په واسطه د CPU سرچینو ویش. دا تخنیک کاروونکو ته اجازه ورکوي چې څومره چې دوی وغواړي ډیری ورته پروسې پرمخ وړي. د دې حل لګښت فعالیت دی - ځکه چې که CPU د څو پروسو لخوا شریک شي، نو هره پروسه به ډیر ورو پروسس شي.
د CPU مجازی کولو پلي کولو لپاره ، او په ځانګړي توګه د دې ښه کولو لپاره ، OS دواړه ټیټ کچې او لوړې کچې ملاتړ ته اړتیا لري. د ټیټې کچې ملاتړ بلل کیږي میکانیزمونه د ټیټې کچې میتودونه یا پروتوکولونه دي چې د فعالیت اړین برخه پلي کوي. د دې ډول فعالیت یوه بیلګه د شرایطو بدلول دي، کوم چې OS ته دا وړتیا ورکوي چې یو پروګرام ودروي او بل پروګرام په پروسیسر کې پرمخ بوځي. دا وخت ویش په ټولو عصري عملیاتي سیسټمونو کې پلي کیږي.
د دې میکانیزمونو په سر کې یو څه منطق دی چې په OS کې د "پالیسیو" په بڼه جوړ شوی. پالیسي د عملیاتي سیسټم لپاره یو مشخص پریکړه کولو الګوریتم دی. دا ډول پالیسۍ، د بیلګې په توګه، پریکړه کوي چې کوم پروګرام باید پیل شي (د قوماندې لیست څخه). نو، د مثال په توګه، دا ستونزه به د پالیسۍ په نوم حل شي مهالویش (د مهال ویش پالیسي) او کله چې د حل غوره کول ، دا به د داسې معلوماتو لخوا لارښود شي لکه: د پیل تاریخ (کوم برنامه په وروستي دقیقو کې ترټولو اوږده پیل شوې وه) ، دا پروسه کوم بار لري (کوم ډول برنامې پیل شوي) ، د فعالیت میټریکونه (ایا سیسټم د متقابل تعامل لپاره یا د throughput لپاره مطلوب دی) او داسې نور.

خلاصون: پروسه

د عملیاتي سیسټم لخوا اجرا شوي د روان پروګرام خلاصول هغه څه دي چې موږ یې وایو پروسه. لکه څنګه چې مخکې یادونه وشوه، یوه پروسه په ساده ډول یو روان برنامه ده، د وخت په هر وخت کې. یو برنامه چې ورسره موږ کولی شو د مختلف سیسټم سرچینو څخه لنډیز معلومات ترلاسه کړو چې دا برنامه د هغې د اجرا کولو پرمهال لاسرسی یا اغیزه کوي.
د پروسې د اجزاوو د پوهیدو لپاره، تاسو اړتیا لرئ چې د سیسټم حالتونه وپیژنئ: هغه څه چې برنامه کولی شي د عملیاتو په جریان کې لوستل یا بدل کړي. په هر وخت کې، تاسو اړتیا لرئ پوه شئ چې د سیسټم کوم عناصر د پروګرام اجرا کولو لپاره مهم دي.
د سیسټم یو څرګند عنصر دی چې پروسه پکې شامله ده حافظه. لارښوونې په حافظه کې موقعیت لري. هغه معلومات چې برنامه یې لوستل یا لیکي هم په حافظه کې موقعیت لري. په دې توګه، هغه حافظه چې پروسه یې په نښه کولی شي (د پتې ځای په نوم یادیږي) د پروسې یوه برخه ده.
همدارنګه د سیسټم ریاست برخه راجسترونه دي. د ډیری لارښوونو هدف د راجسترونو ارزښت بدلول یا د دوی ارزښت لوستل دي، او پدې توګه راجسترونه د پروسې د عملیاتو یوه مهمه برخه ګرځي.
باید یادونه وشي چې ماشین ریاست هم د ځینو ځانګړو راجسترونو څخه جوړ شوی دی. د مثال په ډول، IP - د لارښوونې نښه - لارښوونې ته یو اشاره چې برنامه اوس مهال اجرا کوي. هم شته دلۍ نښه او له هغې سره تړاو لري چوکاټ اشاره کوونکی، کوم چې د اداره کولو لپاره کارول کیږي: د فعالیت پیرامیټرې ، ځایی تغیرات او د راستنیدو پتې.
په نهایت کې ، برنامې ډیری وختونه ROM ته لاسرسی لري (یوازې د لوستلو حافظه). دا "I/O" (input/output) معلوماتو کې باید د فایلونو لیست شامل وي چې اوس مهال د پروسې لخوا خلاصیږي.

پروسس API

د پروسې د کار کولو څرنګوالي په اړه زموږ د پوهیدو د ښه کولو لپاره ، راځئ چې د سیسټم تلیفونونو مثالونه مطالعه کړو چې باید په هر عملیاتي سیسټم انٹرفیس کې شامل شي. دا APIs په هر OS کې په یوه یا بل شکل کې شتون لري.

o جوړول (تخلیق): په OS کې باید ځینې میتودونه شامل وي چې تاسو ته اجازه درکوي نوې پروسې رامینځته کړئ. کله چې تاسو ټرمینل ته کمانډ داخل کړئ یا په عکس باندې دوه ځله کلیک کولو سره غوښتنلیک لانچ کړئ ، نو OS ته تلیفون لیږل کیږي ترڅو نوې پروسه رامینځته کړي او بیا ټاکل شوی برنامه پیل کړي.
o ړنګول: له هغه ځایه چې د پروسې رامینځته کولو لپاره انٹرفیس شتون لري ، نو OS باید د پروسې لرې کولو مجبورولو وړتیا هم چمتو کړي. ډیری برنامه به په طبیعي ډول پخپله پیل او پای ته ورسیږي کله چې دوی چلیږي. که نه نو کارونکي به د دې وړتیا ولري چې دوی ووژني او پدې توګه د پروسې بندولو لپاره انٹرفیس به ګټور وي.
o انتظار (انتظار): ځینې وختونه د پروسې بشپړیدو ته انتظار کول ګټور دي ، نو ځینې انٹرفیسونه چمتو شوي چې د انتظار وړتیا چمتو کوي.
o متفرق کنټرول (مختلف کنټرول): د پروسې لپاره د وژلو او انتظار سربیره، د کنټرول نورې مختلفې لارې هم شتون لري. د مثال په توګه، ډیری عملیاتي سیسټمونه د پروسې کنګل کولو وړتیا چمتو کوي (د یوې ټاکلې مودې لپاره یې اجرا کول ودروي) او بیا یې بیا پیل کړئ (عمل ته دوام ورکړئ)
o وضعیت (ریاست): د پروسې د وضعیت په اړه د ځینې معلوماتو ترلاسه کولو لپاره مختلف انٹرفیسونه شتون لري، لکه دا چې څومره وخت روان دی یا په کوم حالت کې دی.

عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

د پروسې جوړول: توضیحات

یو له زړه پورې شیانو څخه دا دی چې څنګه واقعیا برنامې په پروسو بدلیږي. په ځانګړي توګه څنګه OS برنامه پورته کوي او پرمخ وړي. په سمه توګه پروسه څنګه رامینځته کیږي.
تر ټولو لومړی، OS باید د پروګرام کوډ او جامد ډاټا په حافظه کې بار کړي (د پروسې پته ځای کې). پروګرامونه معمولا په یو ډیسک یا سولیډ سټیټ ډرایو کې په ځینې اجرایوي بڼه کې موقعیت لري. په دې توګه، په حافظه کې د برنامه او جامد ډیټا بارولو پروسه OS ته اړتیا لري ترڅو وکولی شي دا بایټونه له ډیسک څخه ولولي او په حافظه کې یې ځای په ځای کړي.

په لومړیو عملیاتي سیسټمونو کې، د بارولو پروسه په لیوالتیا سره ترسره شوې، دا پدې مانا ده چې ټول کوډ د پروګرام پیل کولو دمخه په حافظه کې بار شوی و. عصري عملیاتي سیسټمونه دا په سستۍ سره ترسره کوي، دا دی، د کوډ یا ډاټا ټوټې پورته کول یوازې هغه مهال چې برنامه د هغې د اجرا کولو پرمهال ورته اړتیا لري.

یوځل چې کوډ او جامد ډیټا د OS حافظې کې بار شي ، یو څو نور شیان شتون لري چې د پروسې پرمخ وړلو دمخه باید ترسره شي. د حافظې یو څه مقدار باید د سټیک لپاره تخصیص شي. پروګرامونه د محلي متغیرونو، فعالیت پیرامیټونو، او بیرته راستنیدو پتې لپاره سټیک کاروي. OS دا حافظه تخصیص کوي او پروسې ته یې ورکوي. سټیک د ځینې دلیلونو سره هم تخصیص کیدی شي ، په ځانګړي توګه دا د اصلي () فنکشن پیرامیټرې ډکوي ، د مثال په توګه د argc او argv صف سره.

عملیاتي سیسټم ممکن د برنامه هپ ته ځینې حافظې هم تخصیص کړي. هپ د برنامو لخوا کارول کیږي ترڅو په روښانه ډول د متحرک تخصیص شوي ډیټا غوښتنه وکړي. پروګرامونه د فنکشن په زنګ وهلو سره د دې ځای غوښتنه کوي مالاک () او دا د فنکشن په زنګ وهلو سره په ښکاره ډول پاکوي وړیا(). ڈھیر د ډیټا جوړښتونو لکه لینک شوي شیټونو ، هش میزونو ، ونو او نورو لپاره اړین دي. په لومړي سر کې، د حافظې لږه اندازه د هېپ لپاره تخصیص کیږي، مګر د وخت په تیریدو سره، لکه څنګه چې برنامه پرمخ ځي، هپ کولی شي د کتابتون API کال malloc() له لارې د ډیرې حافظې غوښتنه وکړي. عملیاتي سیسټم د دې تلیفونونو پوره کولو کې د مرستې لپاره د ډیرو حافظو تخصیص کولو پروسې کې دخیل دی.

عملیاتي سیسټم به د پیل کولو دندې هم ترسره کړي، په ځانګړې توګه هغه چې د I/O سره تړاو لري. د مثال په توګه، په UNIX سیسټمونو کې، هره پروسه په ډیفالټ ډول د 3 خلاص فایل توضیح کونکي لري، د معیاري ان پټ، محصول، او غلطۍ لپاره. دا لاسوندونه پروګرامونو ته اجازه ورکوي چې له ټرمینل څخه ان پټ ولولي او همدارنګه په سکرین کې معلومات ښکاره کړي.

په دې توګه، په حافظه کې د کوډ او جامد ډیټا په بارولو سره، د سټیک رامینځته کول او پیل کول، او د I/O دندو ترسره کولو پورې اړوند نور کارونه ترسره کول، OS د پروسې اجرا کولو لپاره مرحله چمتو کوي. په نهایت کې ، یو وروستی کار پاتې دی: برنامه د هغې د ننوتلو نقطې له لارې پرمخ وړل ، چې د مین () فنکشن په نوم یادیږي. د اصلي() فنکشن په اجرا کولو سره، OS د CPU کنټرول نوي جوړ شوي پروسې ته لیږدوي، پدې توګه برنامه اجرا کول پیل کوي.

د پروسې حالت

اوس چې موږ یو څه پوهیږو چې پروسه څه ده او دا څنګه رامینځته کیږي ، راځئ چې هغه پروسې لیست کړو چې دا پکې کیدی شي. په ساده بڼه کې، یوه پروسه کیدای شي په دې حالتونو کې وي:
o منډه. کله چې چلیږي، پروسه په پروسیسر کې پرمخ ځي. دا پدې مانا ده چې لارښوونې پلي کیږي.
o چمتو. په چمتو حالت کې، پروسه د چلولو لپاره چمتو ده، مګر د ځینو دلیلونو لپاره OS دا په ټاکل شوي وخت کې نه اجرا کوي.
o لګېدلی. په بند شوي حالت کې، یوه پروسه ځینې عملیات ترسره کوي چې دا د اجرا کولو لپاره چمتو کولو څخه مخنیوی کوي تر هغه چې ځینې پیښې واقع شي. یو عام مثال دا دی چې کله یوه پروسه د IO عملیات پیل کړي، دا بندیږي ترڅو ځینې نور پروسې کولی شي پروسیسر وکاروي.

عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

تاسو کولی شئ دا حالتونه د ګراف په بڼه تصور کړئ. لکه څنګه چې موږ په انځور کې لیدلی شو، د پروسې حالت کولی شي د OS په اختیار کې د چلولو او چمتو کولو ترمنځ بدل شي. کله چې د پروسې حالت له READY څخه په چلولو بدل شي، دا پدې مانا ده چې پروسه مهالویش شوې ده. په مخالف لوري کې - له ترتیب څخه لرې شوی. په اوس وخت کې کله چې یوه پروسه بنده شي، د بیلګې په توګه، زه د IO عملیات پیل کوم، OS به دا په دې حالت کې وساتي تر هغه چې یو څه پیښه رامنځته شي، د بیلګې په توګه د IO بشپړول. پدې وخت کې چمتو حالت ته لیږد او ممکن سمدلاسه روان حالت ته که OS پریکړه وکړي.
راځئ چې یو مثال وګورو چې څنګه دوه پروسې د دې ایالتونو له لارې حرکت کوي. د پیل کولو لپاره، راځئ چې تصور وکړو چې دواړه پروسې روانې دي، او هر یو یوازې CPU کاروي. په دې حالت کې، د دوی دولتونه به داسې ښکاري.

عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

په لاندې مثال کې، لومړی پروسه، د یو څه وخت په تیریدو سره، د IO غوښتنه کوي او بلاک شوي حالت ته ننوځي، د بلې پروسې چلولو ته اجازه ورکوي (FIG 1.4). OS ګوري چې پروسه 0 CPU نه کاروي او پروسه 1 پیل کوي. پداسې حال کې چې پروسه 1 روانه وي، IO بشپړ شوی او د پروسې 0 حالت چمتو ته بدلیږي. په نهایت کې ، 1 پروسه بشپړه شوه ، او په بشپړیدو سره ، پروسه 0 پیل کوي ، اجرا کوي او خپل کار پای ته رسوي.

عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

د معلوماتو جوړښت

OS پخپله یو برنامه ده، او لکه د نورو پروګرامونو په څیر، دا ځینې کلیدي ډیټا جوړښتونه لري چې د معلوماتو مختلف اړونده برخې تعقیبوي. د هرې پروسې حالت تعقیبولو لپاره، OS به ځینې ملاتړ وکړي د پروسې لیست په چمتو حالت کې د ټولو پروسو لپاره او ځینې اضافي معلومات د پروسې تعقیبولو لپاره چې اوس مهال روان دي. همچنان ، OS باید بلاک شوي پروسې وڅاري. د IO بشپړیدو وروسته ، OS باید اړین پروسې راویښ کړي او د چلولو لپاره چمتو حالت کې یې واچوي.

د مثال په توګه، OS باید د پروسیسر راجستر حالت وساتي. په هغه وخت کې چې پروسه ودریږي، د راجسترونو حالت د پروسې په پته ځای کې زیرمه کیږي، او دا مهال چې عملیات دوام لري، د راجسترونو ارزښتونه بیرته ساتل کیږي او پدې توګه د دې پروسې اجرا ته دوام ورکوي.

د چمتو ، بلاک ، چلولو ریاستونو سربیره ، ځینې نور ایالتونه هم شتون لري. ځینې ​​​​وختونه، د جوړولو په وخت کې، یو بهیر ممکن د INIT حالت کې وي. په نهایت کې ، یوه پروسه په وروستي حالت کې کیښودل کیدی شي کله چې دا دمخه بشپړ شوی وي ، مګر د هغې معلومات لاهم ندي روښانه شوي. په UNIX سیسټمونو کې دې حالت ته ویل کیږي د زومبی پروسه. دا حالت د هغو قضیو لپاره ګټور دی چیرې چې د مور او پلار پروسه غواړي د ماشوم د بیرته راستنیدو کوډ وپیژني، د بیلګې په توګه، معمولا 0 د بریالیتوب او 1 غلطی نښه کوي، مګر پروګرام کونکي کولی شي د مختلف ستونزو نښه کولو لپاره اضافي محصول کوډونه صادر کړي. کله چې د والدین پروسه پای ته ورسیږي، دا وروستی سیسټم غږ کوي، لکه انتظار ()، ترڅو د ماشوم پروسې پای ته رسیدو لپاره انتظار وکړي او OS ته سیګنال ورکړي چې دا کولی شي د ختم شوي پروسې سره تړلې هر ډول ډاټا پاک کړي.

عملیاتي سیسټمونه: درې اسانه ټوټې. 2 برخه: خلاصون: پروسه (ژباړه)

د لیکچر مهم ټکي:

o پروسه - په OS کې د چلولو برنامې اصلي خلاصون. په هر وخت کې، یوه پروسه د خپل حالت لخوا تشریح کیدی شي: د هغې د پتې ځای کې د حافظې مینځپانګې، د پروسیسر راجستر مینځپانګې، په شمول د لارښوونې پوائنټر او سټیک پوینټر، او IO معلومات، لکه پرانیستې فایلونه لوستل یا لیکل کیږي.
o پروسس API د زنګونو څخه جوړ دی چې پروګرامونه کولی شي پروسو ته ورسوي. معمولا دا رامینځته کول ، حذف کول یا نور زنګونه دي.
● پروسه په یو له ډیرو ایالتونو کې ده، پشمول چلول، چمتو کول، بندول. مختلف پیښې لکه مهالویش کول، د مهال ویش څخه استثناوې، یا انتظار کولی شي د پروسې حالت له یو څخه بل ته بدل کړي.
o د پروسې لیست په سیسټم کې د ټولو پروسو په اړه معلومات لري. په دې کې هر ننوتلو ته د پروسې کنټرول بلاک ویل کیږي، کوم چې په حقیقت کې یو جوړښت دی چې د یوې ځانګړې پروسې په اړه ټول اړین معلومات لري. 

سرچینه: www.habr.com

Add a comment