{"id":30992,"date":"2019-10-31T21:38:47","date_gmt":"2019-10-31T18:38:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod\/"},"modified":"2019-10-31T21:38:47","modified_gmt":"2019-10-31T18:38:47","slug":"operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod","title":{"rendered":"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Hyrja n\u00eb sistemet operative<\/h1>\n<p>\nP\u00ebrsh\u00ebndetje, Habr! Dua t\u00eb paraqes para jush nj\u00eb seri artikujsh me p\u00ebrkthime nga nj\u00eb let\u00ebrsi interesante sipas mendimit tim - OSTEP. Ky material shqyrton mjaft thell\u00eb funksionimin e sistemeve operativ\u00eb t\u00eb ngjashme me UNIX, dometh\u00ebn\u00eb - pun\u00ebn me proceset, planifikuesit e ndrysh\u00ebm, memorien dhe komponent\u00eb t\u00eb tjer\u00eb t\u00eb ngjash\u00ebm q\u00eb p\u00ebrb\u00ebjn\u00eb nj\u00eb sistem operativ modern. Origjinali i t\u00eb gjith\u00eb materialeve mund ta shihni k\u00ebtu <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">k\u00ebtu<\/a><\/noindex>. Ju lutem, merrni parasysh se p\u00ebrkthimi \u00ebsht\u00eb realizuar n\u00eb m\u00ebnyr\u00eb jo profesionale (mjaft lirsh\u00ebm), por shpresoj se kuptimi i p\u00ebrgjithsh\u00ebm e kam ruajtur.<\/p>\n<p>P\u00ebr laborator\u00ebt n\u00eb k\u00ebt\u00eb l\u00ebnd\u00eb mund t\u00eb gjeni k\u00ebtu:<\/p>\n<ul>\n<li>origjinal: <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html<\/a><\/noindex><\/li>\n<li>origjinal: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><\/li>\n<li>adaptimi im personal: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">github.com\/bykvaadm\/OS\/tree\/master\/ostep<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nPjes\u00ebt e tjera:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446340\/\">Pjesa 1: Hyrja<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nDhe gjithashtu mund t\u00eb shikoni kanalin tim n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">telegram<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb abstraksionin m\u00eb themelor q\u00eb OF ofron p\u00ebrdoruesve: procesi. P\u00ebrkufizimi i procesit \u00ebsht\u00eb mjaft i thjesht\u00eb \u2014 \u00ebsht\u00eb <b>nj\u00eb program n\u00eb funksionim<\/b>. Programi vet\u00eb \u00ebsht\u00eb nj\u00eb gj\u00eb pa jet\u00eb, q\u00eb ndodhet n\u00eb diskut \u2014 nj\u00eb grup udh\u00ebzimesh dhe ndoshta disa t\u00eb dh\u00ebna statike, q\u00eb presin momentin e nisjes. Pik\u00ebrisht OF merr k\u00ebto bajta dhe i nis ato, duke e transformuar programin n\u00eb di\u00e7ka t\u00eb dobishme.<br \/>\n M\u00eb s\u00eb shpeshti, p\u00ebrdoruesit d\u00ebshirojn\u00eb t\u00eb nisin m\u00eb shum\u00eb se nj\u00eb program n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb; p\u00ebr shembull, ju mund t\u00eb ninit n\u00eb laptopin tuaj nj\u00eb shfletues, nj\u00eb loj\u00eb, nj\u00eb lojtar multimedial, nj\u00eb redaktues teksti dhe k\u00ebshtu me radh\u00eb. N\u00eb fakt, nj\u00eb sistem tipik mund t\u00eb nis\u00eb dhjet\u00ebra dhe qindra procese n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb. Ky fakt e b\u00ebn sistemin m\u00eb t\u00eb leht\u00eb p\u00ebr t'u p\u00ebrdorur, ju keni gjithmon\u00eb mund\u00ebsin\u00eb t\u00eb nisni programe pa u shqet\u00ebsuar se a \u00ebsht\u00eb CPU i lir\u00eb.<\/p>\n<p><i>Nga kjo lind problemi: si t\u00eb sigurohet iluzioni i shum\u00eb CPU-ve? Si mund t\u00eb krijoj\u00eb OF iluzionin e nj\u00eb numri praktikisht t\u00eb pafund CPU-sh, ndon\u00ebse ju keni vet\u00ebm nj\u00eb CPU fizik?<\/i><\/p>\n<p>OF e krijon k\u00ebt\u00eb iluzion p\u00ebrmes virtualizimit t\u00eb CPU-ve. Duke nisur nj\u00eb proces, pastaj duke e ndalur at\u00eb, duke nisur nj\u00eb proces tjet\u00ebr dhe k\u00ebshtu me radh\u00eb, OF mund t\u00eb mbaj\u00eb iluzionin se egzistojn\u00eb shum\u00eb CPU virtuale, ndon\u00ebse n\u00eb t\u00eb v\u00ebrtet\u00eb do t\u00eb ishte nj\u00eb ose disa procesor\u00eb fizik\u00eb. Kjo teknik\u00eb quhet <b>ndarja e burimeve t\u00eb CPU-s\u00eb sipas koh\u00ebs<\/b>. Kjo teknik\u00eb u lejon p\u00ebrdoruesve t\u00eb nisin aq shum\u00eb procese t\u00eb nj\u00ebkohshme sa t\u00eb d\u00ebshirojn\u00eb. \u00c7mimi i k\u00ebtij zgjidhjeje \u00ebsht\u00eb performanca \u2013 pasi n\u00ebse CPU-sh ndahen nga disa procese, \u00e7do proces do t\u00eb p\u00ebrpunoj\u00eb m\u00eb ngadal\u00eb.<br \/>\n P\u00ebr t\u00eb realizuar virtualizimin e CPU-ve, dhe ve\u00e7an\u00ebrisht p\u00ebr ta b\u00ebr\u00eb k\u00ebt\u00eb mir\u00eb, OF ka nevoj\u00eb p\u00ebr mb\u00ebshtetje si n\u00eb nivel t\u00eb ul\u00ebt ashtu edhe n\u00eb nivel t\u00eb lart\u00eb. Mb\u00ebshtetja n\u00eb nivel t\u00eb ul\u00ebt quhet <b>mekanizmat<\/b> \u2014 k\u00ebto jan\u00eb metoda ose protokolle t\u00eb nivelit t\u00eb ul\u00ebt q\u00eb realizojn\u00eb pjes\u00ebn e nevojshme t\u00eb funksionalitetit. Nj\u00eb shembull i till\u00eb funksionaliteti \u00ebsht\u00eb kalimi i kontekstit, i cili i jep OF mund\u00ebsin\u00eb t\u00eb ndal\u00eb nj\u00eb program dhe t\u00eb nis\u00eb nj\u00eb program tjet\u00ebr n\u00eb procesor. Kjo ndarje sipas koh\u00ebs \u00ebsht\u00eb realizuar n\u00eb t\u00eb gjitha OF-t\u00eb moderne.<br \/>\n N\u00eb kulmin e k\u00ebtyre mekanizmave ndodhet nj\u00eb logjik\u00eb e caktuar, e vendosur n\u00eb sistemin operativ n\u00eb form\u00ebn e \"politikave\". <b>Politika<\/b> \u00ebsht\u00eb nj\u00eb algoritem i caktuar p\u00ebr marrjen e vendimeve nga sistemi operativ. K\u00ebto politika, p\u00ebr shembull, vendosin se cila program duhet t\u00eb fillohet (nga lista e komandave) n\u00eb radh\u00eb t\u00eb par\u00eb. K\u00ebshtu, p\u00ebr shembull, ky problem do t\u00eb zgjidhet nga politika e quajtur <b>politika e planifikimit (scheduling policy)<\/b> dhe kur zgjidh nj\u00eb vendim do t\u00eb udh\u00ebhiqet nga t\u00eb dh\u00ebna t\u00eb tilla si: historia e nisjes (cili program \u00ebsht\u00eb nisur p\u00ebr m\u00eb gjat\u00eb gjat\u00eb minut\u00ebs s\u00eb fundit), \u00e7far\u00eb ngarkese ka ky proces (cilat lloje programesh jan\u00eb nisur), metrikat e performanc\u00ebs (a \u00ebsht\u00eb optimizuar sistemi p\u00ebr nd\u00ebrveprimin interaktiv apo p\u00ebr kapacitetin) e k\u00ebshtu me radh\u00eb.<\/p>\n<h3>Abstraksioni: procesi<\/h3>\n<p>\n Abstraksioni i nj\u00eb programi n\u00eb pun\u00eb, i ekzekutuar nga sistemi operativ, \u00ebsht\u00eb ajo \u00e7ka ne e quajm\u00eb <b>nj\u00eb proces<\/b>. Si\u00e7 \u00ebsht\u00eb th\u00ebn\u00eb m\u00eb par\u00eb, procesi \u00ebsht\u00eb thjesht nj\u00eb program n\u00eb pun\u00eb, n\u00eb \u00e7do moment t\u00eb caktuar t\u00eb koh\u00ebs. Nj\u00eb program me t\u00eb cilin mund t\u00eb marrim informacionin e p\u00ebrgjithsh\u00ebm nga burime t\u00eb ndryshme t\u00eb sistemit dhe t\u00eb cilave programi ka qasje apo q\u00eb ndikon gjat\u00eb ekzekutimit t\u00eb tij.<br \/>\n P\u00ebr t\u00eb kuptuar p\u00ebrb\u00ebr\u00ebsit e procesit, duhet t\u00eb kuptojm\u00eb gjendjet e sistemit: \u00e7far\u00eb mund t\u00eb lexoj\u00eb apo t\u00eb modifikoj\u00eb programi gjat\u00eb pun\u00ebs s\u00eb tij. N\u00eb \u00e7do moment t\u00eb caktuar, duhet t\u00eb kuptojm\u00eb se cil\u00ebt elemente t\u00eb sistemit jan\u00eb t\u00eb r\u00ebnd\u00ebsish\u00ebm p\u00ebr ekzekutimin e programit.<br \/>\n Nj\u00eb nga elementet e dukshme t\u00eb gjendjes s\u00eb sistemit, t\u00eb cilat p\u00ebrfshihen n\u00eb proces, \u00ebsht\u00eb <b>memoria<\/b>. Instruksionet ndodhen n\u00eb memorie. T\u00eb dh\u00ebnat q\u00eb programi lexon ose shkruan gjithashtu ndodhen n\u00eb memorie. K\u00ebshtu, memoria q\u00eb procesi mund t\u00eb adresoj\u00eb (hap\u00ebsira e quajtur adres\u00eb) \u00ebsht\u00eb nj\u00eb pjes\u00eb e procesit.<br \/>\n Po ashtu, pjes\u00eb e gjendjes s\u00eb sistemit jan\u00eb regjistrat. Shum\u00eb instruksione jan\u00eb t\u00eb orientuara p\u00ebr t\u00eb ndryshuar vler\u00ebn e regjistrave ose p\u00ebr t\u00eb lexuar vler\u00ebn e tyre dhe k\u00ebshtu regjistrat b\u00ebhen gjithashtu nj\u00eb pjes\u00eb e r\u00ebnd\u00ebsishme e funksionimit t\u00eb procesit. <br \/>\nDuhet theksuar se gjendja e makin\u00ebs formohet gjithashtu nga disa regjistra t\u00eb ve\u00e7ant\u00eb. P\u00ebr shembull,<b> IP \u2014 instruction pointer<\/b> \u00ebsht\u00eb treguesi i instruksionit q\u00eb programi po ekzekuton n\u00eb k\u00ebt\u00eb moment. Ka gjithashtu <b>stack pointer<\/b> dhe i lidhur me t\u00eb <b>frame pointer<\/b>, q\u00eb p\u00ebrdoren p\u00ebr t\u00eb menaxhuar: parametrat e funksioneve, variablat lokale dhe adresat e kthimit.<br \/>\nS\u00eb fundi, programet shpesh i referohen ROM-it (memoria e p\u00ebrhershme). Kjo informacion mbi \u201cI\/O\u201d (hyrjen-daljen) duhet t\u00eb p\u00ebrfshij\u00eb nj\u00eb list\u00eb t\u00eb skedareve q\u00eb procesi i ka hapur n\u00eb at\u00eb moment.<\/p>\n<h3>API-i i Procesit<\/h3>\n<p>\n P\u00ebr t\u00eb p\u00ebrmir\u00ebsuar kuptimin e funksionimit t\u00eb procesit, le t\u00eb shqyrtojm\u00eb shembuj t\u00eb thirrjeve sistemore q\u00eb duhet t\u00eb p\u00ebrfshihen n\u00eb \u00e7do nd\u00ebrfaqe t\u00eb sistemit operativ. K\u00ebto API n\u00eb nj\u00eb form\u00eb ose tjet\u00ebr jan\u00eb t\u00eb disponueshme n\u00eb \u00e7do OS.<\/p>\n<p>\u25cf <b>Krijo<\/b> (krijimi): Nj\u00eb OS duhet t\u00eb ket\u00eb ndonj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb krijuar procese t\u00eb reja. Kur jepni nj\u00eb komand\u00eb n\u00eb terminal ose hapni nj\u00eb aplikacion me nj\u00eb klik t\u00eb dyfisht\u00eb mbi ikonen, b\u00ebhet nj\u00eb k\u00ebrkes\u00eb p\u00ebr OS-n\u00eb p\u00ebr t\u00eb krijuar nj\u00eb proces t\u00eb ri dhe p\u00ebr t\u00eb nisur programin e specifikuar.<br \/>\n\u25cf <b>\u00c7instalim<\/b>: Meqen\u00ebse egziston nj\u00eb nd\u00ebrfaqe p\u00ebr krijimin e procesit, OS gjithashtu duhet t\u00eb ofroj\u00eb mund\u00ebsin\u00eb p\u00ebr t\u00eb eliminuar me forc\u00eb nj\u00eb proces. Shumica e programeve natyrsh\u00ebm do t\u00eb fillojn\u00eb dhe p\u00ebrfundojn\u00eb vet\u00eb n\u00eb p\u00ebrputhje me funksionimin e tyre. N\u00eb rast tjet\u00ebr, p\u00ebrdoruesi do t\u00eb d\u00ebshiroj\u00eb t\u00eb ket\u00eb mund\u00ebsin\u00eb p\u00ebr ta p\u00ebrfunduar dhe k\u00ebshtu nd\u00ebrfaqja p\u00ebr ndalimin e procesit do t\u00eb ishte e dobishme.<br \/>\n\u25cf <b>Pritja <\/b>(pritja): Ndonj\u00ebher\u00eb \u00ebsht\u00eb e dobishme t\u00eb prisni p\u00ebr p\u00ebrfundimin e nj\u00eb procesi, prandaj ofrohen disa nd\u00ebrfaqe q\u00eb ofrojn\u00eb mund\u00ebsin\u00eb e presjes.<br \/>\n\u25cf <b>Kontrolli Misc<\/b> (menaxhim i ndrysh\u00ebm): P\u00ebrve\u00e7 vrasjes dhe pritjes s\u00eb procesit, ekzistojn\u00eb edhe metoda t\u00eb tjera t\u00eb ndryshme kontrolluese. P\u00ebr shembull, shumica e OS-ve ofrojn\u00eb mund\u00ebsin\u00eb p\u00ebr t\u00eb ngrir\u00eb nj\u00eb proces (ndalimi i ekzekutimit t\u00eb tij p\u00ebr nj\u00eb periudh\u00eb) dhe rinisjen e m\u00ebvonshme (vazhdimi i ekzekutimit)<br \/>\n\u25cf <b>Status <\/b>(statusi): Ekzistojn\u00eb nd\u00ebrfaqe t\u00eb ndryshme p\u00ebr t\u00eb marr\u00eb informacion mbi statusin e procesit, si\u00e7 \u00ebsht\u00eb koha e tij e pun\u00ebs ose n\u00eb cilin gjendje ndodhet aktualisht.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/eccf4ba3b12a60a54a62bb13986a7783.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Krijimi i procesit: detajet<\/h3>\n<p>Nj\u00eb nga gj\u00ebrat interesante \u00ebsht\u00eb se si programet transformohen n\u00eb procese. Sidomos, si OS e ngre dhe e nis programin. Si krijohet konkretisht nj\u00eb proces.<br \/>\nS\u00eb pari, sistemi operativ duhet t\u00eb ngarkoj\u00eb kodin e programit dhe t\u00eb dh\u00ebnat statike n\u00eb memorje (n\u00eb hap\u00ebsir\u00ebn adresuese t\u00eb procesit). Programet zakonisht ndodhen n\u00eb disk ose n\u00eb nj\u00eb nj\u00ebsi ruajtjeje t\u00eb ngurt\u00eb n\u00eb nj\u00eb format ekzekutiv. Pra, procesi i ngarkimit t\u00eb programit dhe t\u00eb dh\u00ebnave statike n\u00eb memorje k\u00ebrkon q\u00eb sistemi operativ t\u00eb ket\u00eb aft\u00ebsin\u00eb t\u00eb lexoj\u00eb k\u00ebto byte nga disk dhe t'i vendos\u00eb ato diku n\u00eb memorje.<\/p>\n<p>N\u00eb sistemi operativ t\u00eb hersh\u00ebm, procesi i ngarkimit kryhej me ngut (eagerly), q\u00eb do t\u00eb thot\u00eb se kodi ngarkohej n\u00eb memorje n\u00eb t\u00ebr\u00ebsi para se programi t\u00eb fillonte. Sistemet moderne operojn\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb ngadalt\u00eb (lazily), duke ngarkuar cop\u00ebza kodi ose t\u00eb dh\u00ebnash vet\u00ebm kur ato k\u00ebrkohen nga programi gjat\u00eb ekzekutimit t\u00eb tij.<\/p>\n<p>Pasi kodi dhe t\u00eb dh\u00ebnat statike jan\u00eb ngarkuar n\u00eb memorje, sistemi operativ duhet t\u00eb realizoj\u00eb edhe disa detyra t\u00eb tjera p\u00ebrpara se t\u00eb nis\u00eb procesin. Nj\u00eb sasi memorjeje duhet t\u00eb ndahet p\u00ebr stakun. <b>Programet p\u00ebrdorin stakun p\u00ebr variabla lokal\u00eb, parametra funksionesh dhe adresa kthimi.<\/b>. Sistemi operativ ndan k\u00ebt\u00eb memorje dhe ia kthen procesit. Staku gjithashtu mund t\u00eb ndahen me disa argumente, duke plot\u00ebsuar specifikisht parametrat e funksionit main(), p\u00ebr shembull, me nj\u00eb varg argc dhe argv.<\/p>\n<p>Sistemi operativ gjithashtu mund t\u00eb ndan\u00eb nj\u00eb sasi memorjeje p\u00ebr heap-in e programit. <b>Heap-i p\u00ebrdoret nga programet p\u00ebr t\u00eb dh\u00ebnat q\u00eb k\u00ebrkohen n\u00eb m\u00ebnyr\u00eb dinamike.<\/b>. Programet k\u00ebrkojn\u00eb k\u00ebt\u00eb hap\u00ebsir\u00eb duke thirrur funksionin <b>malloc()<\/b> dhe e pastron at\u00eb, duke thirrur funksionin <b>free()<\/b>. Heap-i \u00ebsht\u00eb i nevojsh\u00ebm p\u00ebr struktura t\u00eb tilla si: lista t\u00eb lidhura, tabela hash, pem\u00eb dhe t\u00eb tjera. N\u00eb fillim, nj\u00eb sasi e vog\u00ebl memorjeje ndahen p\u00ebr heap-in, por me kalimin e koh\u00ebs, gjat\u00eb pun\u00ebs s\u00eb programit, heap-i mund t\u00eb k\u00ebrkoj\u00eb m\u00eb shum\u00eb memorje p\u00ebrmes thirrjes s\u00eb API t\u00eb bibliotek\u00ebs malloc(). Sistemi operativ \u00ebsht\u00eb i p\u00ebrfshir\u00eb n\u00eb procesin e ndarjes s\u00eb m\u00eb shum\u00eb memorjes p\u00ebr t\u00eb ndihmuar n\u00eb p\u00ebrmbushjen e k\u00ebtyre thirrjeve.<\/p>\n<p>Sistemi operativ gjithashtu do t\u00eb kryej\u00eb detyra inizializimi, ve\u00e7an\u00ebrisht ato q\u00eb lidhen me hyrjet dhe daljet. P\u00ebr shembull, n\u00eb sistemet UNIX, \u00e7do proces p\u00ebrshtyp\u00ebse ka 3 deshifrues t\u00eb hapur t\u00eb skedave p\u00ebr rrjedh\u00ebn standarde t\u00eb hyrjes, daljes dhe gabimeve. K\u00ebto deshifrues lejojn\u00eb programet t\u00eb lexojn\u00eb hyrjen nga terminali dhe gjithashtu t\u00eb dalin informacionin n\u00eb ekran. <\/p>\n<p>K\u00ebshtu, duke ngarkuar kodin dhe t\u00eb dh\u00ebnat statike n\u00eb memorie, duke krijuar dhe inicializuar stek\u00ebn, si dhe duke kryer pun\u00eb t\u00eb tjera q\u00eb lidhen me ekzekutimin e detyrave t\u00eb futjes-daljes, sistemi operativ p\u00ebrgatit terrenin p\u00ebr ekzekutimin e procesit. N\u00eb fund t\u00eb fundit, mbetet detyra e fundit: t\u00eb iniciohet programi p\u00ebrmes pik\u00ebs s\u00eb tij t\u00eb hyrjes, t\u00eb quajtur funksi main(). Duke kaluar te ekzekutimi i funksionit main(), OS i kalon kontrollin CPU-s\u00eb procesit t\u00eb sapokrijuar, k\u00ebshtu q\u00eb programi fillon t\u00eb ekzekutohet. <\/p>\n<h3>Gjendja e procesit<\/h3>\n<p>\n Tani, kur kemi nj\u00eb far\u00eb kuptimi se \u00e7far\u00eb \u00ebsht\u00eb nj\u00eb proces dhe si krijohet ai, le t\u00eb renditim gjendjet e procesit, n\u00eb t\u00eb cilat ai mund t\u00eb ndodhet. N\u00eb form\u00ebn m\u00eb t\u00eb thjesht\u00eb, procesi mund t\u00eb jet\u00eb n\u00eb nj\u00eb nga k\u00ebto gjendje:<br \/>\n\u25cf <b>Running<\/b>. N\u00eb gjendjen e ekzekutimit, procesi ekzekutohet n\u00eb CPU. Kjo do t\u00eb thot\u00eb se po kryhen instruksionet.<br \/>\n\u25cf <b>Gati<\/b>. N\u00eb gjendjen e gatishm\u00ebris\u00eb, procesi \u00ebsht\u00eb gati t\u00eb nis\u00eb, por p\u00ebr ndonj\u00eb arsye OS-ja nuk e ekzekuton at\u00eb n\u00eb at\u00eb moment t\u00eb caktuar.<br \/>\n\u25cf <b>Blocked<\/b>. N\u00eb gjendjen e bllokimit, procesi po kryen ndonj\u00eb operacion q\u00eb nuk e lejon t\u00eb jet\u00eb i gatsh\u00ebm p\u00ebr ekzekutim derisa t\u00eb ndodhi ndonj\u00eb ngjarje. Nj\u00eb nga shembujt e zakonsh\u00ebm \u00ebsht\u00eb kur procesi inicializon nj\u00eb operacion IO, ai b\u00ebhet i bllokuar dhe k\u00ebshtu nj\u00eb proces tjet\u00ebr mund ta p\u00ebrdor\u00eb CPU-n\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/d2c01bdb08e7b7aeea78edcbf6ce0250.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAta mund t\u00eb imagjinohen k\u00ebto gjendje si nj\u00eb graf. Si\u00e7 mund ta shohim n\u00eb figur\u00eb, gjendja e procesit mund t\u00eb ndryshoj\u00eb mes RUNNING dhe READY sipas d\u00ebshires s\u00eb OS-s\u00eb. Kur gjendja e procesit kalon nga READY n\u00eb RUNNING, kjo do t\u00eb thot\u00eb se procesi \u00ebsht\u00eb planifikuar. N\u00eb an\u00ebn tjet\u00ebr - \u00ebsht\u00eb hequr nga planifikimi. N\u00eb momentin kur procesi b\u00ebhet BLOCKED, p\u00ebr shembull, duke inicializuar nj\u00eb operacion IO, OS do ta mbaj\u00eb at\u00eb n\u00eb k\u00ebt\u00eb gjendje deri n\u00eb ndodhin e ndonj\u00eb ngjarjeje, p\u00ebr shembull p\u00ebrfundimi i IO. N\u00eb k\u00ebt\u00eb moment, kalimi n\u00eb gjendjen READY dhe ndoshta menj\u00ebher\u00eb n\u00eb gjendjen RUNNING, n\u00ebse kjo do t\u00eb vendos\u00eb OS. <br \/>\nLe t\u00eb hedhim nj\u00eb v\u00ebshtrim n\u00eb nj\u00eb shembull se si dy procese kalojn\u00eb p\u00ebrmes k\u00ebtyre gjendjeve. Fillimisht imagjinoni se t\u00eb dy proceset jan\u00eb n\u00eb ekzekutim, dhe secili p\u00ebrdor vet\u00ebm CPU. N\u00eb k\u00ebt\u00eb rast, gjendjet e tyre do t\u00eb duken si m\u00eb posht\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/904cef8e04c2f0d8eaf4fdc5860f5bfd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb shembullin e m\u00ebposht\u00ebm, procesi i par\u00eb pas nj\u00eb kohe t\u00eb caktuar k\u00ebrkon IO dhe kalon n\u00eb gjendjen BLOCKED, duke i dh\u00ebn\u00eb mund\u00ebsin\u00eb nj\u00eb procesi tjet\u00ebr t\u00eb filloj\u00eb (SHK. 1.4). OS shikon se procesi 0 nuk po p\u00ebrdor CPU-n\u00eb dhe aktivizon procesin 1. Gjat\u00eb ekzekutimit t\u00eb procesit 1, IO p\u00ebrfundon dhe statusi i procesit 0 ndryshon n\u00eb READY. S\u00eb fundi, procesi 1 p\u00ebrfundon, dhe pas p\u00ebrfundimit t\u00eb tij, procesi 0 aktivizohet, ekzekutohet dhe p\u00ebrfundon pun\u00ebn e tij.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/06f44895cc976e7755c1f7bf5afe466b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Struktura e t\u00eb dh\u00ebnave<\/h3>\n<p>\n OS vet\u00eb \u00ebsht\u00eb nj\u00eb program dhe ashtu si \u00e7do program tjet\u00ebr ka disa struktura ky\u00e7e t\u00eb t\u00eb dh\u00ebnave q\u00eb ndjekin informacione t\u00eb ndryshme relevante. P\u00ebr t\u00eb ndjekur statusin e \u00e7do procesi, OS do t\u00eb mbaj\u00eb nj\u00eb <b>list\u00eb procesesh<\/b> p\u00ebr t\u00eb gjith\u00eb proceset n\u00eb gjendjen READY dhe disa informacione shtes\u00eb p\u00ebr t\u00eb ndjekur proceset q\u00eb aktualisht po ekzekutohen. Gjithashtu, OS duhet t\u00eb ndjek\u00eb edhe proceset e bllokuara. Pas p\u00ebrfundimit t\u00eb IO, OS \u00ebsht\u00eb e detyruar t\u00eb zgjoj\u00eb procesin e nevojsh\u00ebm dhe ta kaloj\u00eb at\u00eb n\u00eb gjendjen e gatishm\u00ebris\u00eb p\u00ebr t\u00eb filluar.<\/p>\n<p>K\u00ebshtu, p\u00ebr shembull, OS duhet t\u00eb ruaj\u00eb statusin e regjistrave t\u00eb procesorit. N\u00eb momentin e ndalimit t\u00eb procesit, gjendja e regjistrave ruhet n\u00eb hap\u00ebsir\u00ebn adresore t\u00eb procesit, dhe n\u00eb momentin e vazhdimit t\u00eb pun\u00ebs s\u00eb tij, rinovohen vlerat e regjistrave dhe k\u00ebshtu vazhdohet realizimi i k\u00ebtij procesi.<\/p>\n<p>P\u00ebrve\u00e7 gjendjeve ready, blocked, running, ekzistojn\u00eb edhe disa gjendje t\u00eb tjera. N\u00ebs\u00eb, n\u00eb momentin e krijimit, procesi mund t\u00eb ket\u00eb gjendjen INIT. N\u00eb fund, procesi mund t\u00eb vendoset n\u00eb gjendjen FINAL, kur ai ka p\u00ebrfunduar, por informacioni n\u00eb lidhje me t\u00eb nuk \u00ebsht\u00eb pastruar ende. N\u00eb sistemet UNIX, kjo gjendje quhet <b>proces-zombi<\/b>. Kjo gjendje \u00ebsht\u00eb e dobishme p\u00ebr rastet kur procesi prind d\u00ebshiron t\u00eb dij\u00eb kodin e kthimit t\u00eb pasardh\u00ebsit, p\u00ebr shembull, zakonisht 0 sinjalizon p\u00ebrfundim t\u00eb suksessh\u00ebm, dhe 1 p\u00ebr nj\u00eb gabim, megjithat\u00eb programuesit mund t\u00eb krijojn\u00eb kode t\u00eb tjera dal\u00ebse, duke sinjalizuar p\u00ebr probleme t\u00eb ndryshme. N\u00eb p\u00ebrfundim, procesi prind b\u00ebn thirrjen e fundit sistemike, p\u00ebr shembull wait(), p\u00ebr t\u00eb pritur p\u00ebrfundimin e pun\u00ebs s\u00eb procesit pasardh\u00ebs dhe p\u00ebr t\u00eb sinjalizuar OS-n\u00eb q\u00eb mund t\u00eb pastroj\u00eb \u00e7do t\u00eb dh\u00ebn\u00eb t\u00eb lidhur me procesin e p\u00ebrfunduar.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre K\u00ebputje t\u00eb Lehta. Pjesa 2: Abstraksioni: Pro\u00e7esi (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/4756790c823a7e9ebbe26ff067ca00cc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Pikat ky\u00e7e t\u00eb leksionit:<\/h3>\n<p>\n\u25cf <b>N\u00eb dit\u00ebn e fillimit t\u00eb modulit, struktura e tij b\u00ebhet e disponueshme. Studimi n\u00eb UoL p\u00ebrb\u00ebhet nga cikli n\u00eb vijim: <\/b> \u2014 abstraksioni kryesore e nj\u00eb programi funksional n\u00eb OS. N\u00eb \u00e7do moment, nj\u00eb proces mund t\u00eb p\u00ebrshkruhet sipas gjendjes s\u00eb tij: p\u00ebrmbajtja e memories n\u00eb hap\u00ebsir\u00ebn e tij adresuese, p\u00ebrmbajtja e regjistrave t\u00eb procesorit, duke p\u00ebrfshir\u00eb treguesin e instruksioneve dhe treguesin e stack, si dhe informacionin mbi IO, si\u00e7 jan\u00eb skedar\u00ebt e hapur q\u00eb po lexohen ose shkruhen.<br \/>\n\u25cf <b>API-i i Procesit<\/b> p\u00ebrb\u00ebhet nga thirrje q\u00eb programet mund t\u00eb b\u00ebjn\u00eb n\u00eb lidhje me proceset. N\u00eb p\u00ebrgjith\u00ebsi, k\u00ebto jan\u00eb thirrje p\u00ebr krijimin, fshirjen ose veprime t\u00eb tjera.<br \/>\n\u25cf Nj\u00eb proces ndodhet n\u00eb nj\u00eb nga shum\u00eb gjendje, duke p\u00ebrfshir\u00eb running, ready, blocked. Ngjarje t\u00eb ndryshme, si planifikimi, p\u00ebrjashtimi nga planifikimi ose pritja, mund t\u00eb transferojn\u00eb gjendjen e procesit nga nj\u00ebra n\u00eb tjetr\u00ebn.<br \/>\n\u25cf <b>Lista e proceseve<\/b> p\u00ebrmban informacion mbi t\u00eb gjitha proceset n\u00eb sistem. \u00c7do hyrje n\u00eb t\u00eb quhet blloku i kontrollit t\u00eb procesit, i cili n\u00eb t\u00eb v\u00ebrtet\u00eb \u00ebsht\u00eb nj\u00eb struktur\u00eb q\u00eb p\u00ebrmban t\u00eb gjitha informacionet e nevojshme mbi nj\u00eb proces t\u00eb caktuar.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446866\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430 unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438, \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0447\u0438\u0438\u043c\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u041e\u0421. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0432\u0441\u0435\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0443\u0442. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22968,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 2: \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f: \u041f\u0440\u043e\u0446\u0435\u0441\u0441 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:38:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:38:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 2: Abstraksioni: Procesi (p\u00ebrkthim) | ProHoster","description":"Hyrje n\u00eb sistemet operative P\u00ebrsh\u00ebndetje, Habr! D\u00ebshiroj t'ju prezantoj nj\u00eb seri artikujsh p\u00ebrkthimi t\u00eb nj\u00eb let\u00ebrsie interesante p\u00ebr mua \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 2: \u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f: \u041f\u0440\u043e\u0446\u0435\u0441\u0441 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-2-abstraktsiya-protsess-perevod","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:38:47+00:00","article:modified_time":"2019-10-31T18:38:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30992","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 03:59:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:26:04","updated":"2026-01-21 03:59:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/30992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=30992"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/30992\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/22968"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=30992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=30992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=30992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}