راځئ چې ترټولو بنسټیز خلاصون وګورو چې 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 وضعیت (ریاست): د پروسې د وضعیت په اړه د ځینې معلوماتو ترلاسه کولو لپاره مختلف انٹرفیسونه شتون لري، لکه دا چې څومره وخت روان دی یا په کوم حالت کې دی.
د پروسې جوړول: توضیحات
یو له زړه پورې شیانو څخه دا دی چې څنګه واقعیا برنامې په پروسو بدلیږي. په ځانګړي توګه څنګه OS برنامه پورته کوي او پرمخ وړي. په سمه توګه پروسه څنګه رامینځته کیږي.
تر ټولو لومړی، OS باید د پروګرام کوډ او جامد ډاټا په حافظه کې بار کړي (د پروسې پته ځای کې). پروګرامونه معمولا په یو ډیسک یا سولیډ سټیټ ډرایو کې په ځینې اجرایوي بڼه کې موقعیت لري. په دې توګه، په حافظه کې د برنامه او جامد ډیټا بارولو پروسه OS ته اړتیا لري ترڅو وکولی شي دا بایټونه له ډیسک څخه ولولي او په حافظه کې یې ځای په ځای کړي.
په لومړیو عملیاتي سیسټمونو کې، د بارولو پروسه په لیوالتیا سره ترسره شوې، دا پدې مانا ده چې ټول کوډ د پروګرام پیل کولو دمخه په حافظه کې بار شوی و. عصري عملیاتي سیسټمونه دا په سستۍ سره ترسره کوي، دا دی، د کوډ یا ډاټا ټوټې پورته کول یوازې هغه مهال چې برنامه د هغې د اجرا کولو پرمهال ورته اړتیا لري.
یوځل چې کوډ او جامد ډیټا د OS حافظې کې بار شي ، یو څو نور شیان شتون لري چې د پروسې پرمخ وړلو دمخه باید ترسره شي. د حافظې یو څه مقدار باید د سټیک لپاره تخصیص شي. پروګرامونه د محلي متغیرونو، فعالیت پیرامیټونو، او بیرته راستنیدو پتې لپاره سټیک کاروي. OS دا حافظه تخصیص کوي او پروسې ته یې ورکوي. سټیک د ځینې دلیلونو سره هم تخصیص کیدی شي ، په ځانګړي توګه دا د اصلي () فنکشن پیرامیټرې ډکوي ، د مثال په توګه د argc او argv صف سره.