{"id":31229,"date":"2019-10-31T21:40:10","date_gmt":"2019-10-31T18:40:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-3-process-api-perevod\/"},"modified":"2019-10-31T21:40:10","modified_gmt":"2019-10-31T18:40:10","slug":"operating-systems-three-easy-pieces-part-3-process-api-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-3-process-api-perevod","title":{"rendered":"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (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><noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">origjinali<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">origjinali<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">adaptimi im personal<\/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<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446866\/\">Pjesa 2: Abstraksioni: procesi<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/447182\/\">Pjesa 3: Hyrje n\u00eb API-t\u00eb e proceseve<\/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><br \/>\n<b>Alarm!<\/b> ka nj\u00eb laboratorium p\u00ebr k\u00ebt\u00eb ligj\u00ebrat\u00eb! shiko <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">github<\/a><\/noindex><\/p>\n<h2>API-i i Procesit<\/h2>\n<p>Le t\u00eb shqyrtojm\u00eb nj\u00eb shembull t\u00eb krijimit t\u00eb nj\u00eb procesi n\u00eb sistemin UNIX. Ai ndodh p\u00ebrmes dy thirrjeve sistemike <b>fork()<\/b> \u0438 <b>exec()<\/b>.<\/p>\n<h3>Thirrja fork()<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/c0c39726560e18a82ae05a31b43f92c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe t\u00eb shqyrtojm\u00eb programin q\u00eb kryen thirrjen fork(). Rezultati i ekzekutimit t\u00eb tij do t\u00eb jet\u00eb si vijon.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/3ddddbaf5bbb38e9882827da0513805a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb radh\u00eb t\u00eb par\u00eb ne hyjm\u00eb n\u00eb funksionin main() dhe kryejm\u00eb daljen e nj\u00eb vargu n\u00eb ekran. Vargu p\u00ebrmban identifikuesin e procesit q\u00eb n\u00eb origjinal quhet <b>PID<\/b> ose identifikuesi i procesit. Ky identifikues p\u00ebrdoret n\u00eb UNIX p\u00ebr t'u referuar nj\u00eb procesi. Komanda e ardhshme do t\u00eb ekzekutoj\u00eb thirrjen fork(). N\u00eb k\u00ebt\u00eb moment krijohet nj\u00eb kopje pothuajse e sakt\u00eb e procesit. P\u00ebr sistemin operativ, duket se jan\u00eb nisur si t\u00eb ishin 2 kopje t\u00eb t\u00eb nj\u00ebjt\u00ebs programi, t\u00eb cilat p\u00ebrfundimisht do t\u00eb dalin nga funksioni fork(). Procesi i ri i krijuar (n\u00eb lidhje me procesin prind) nuk do t\u00eb ekzekutoj\u00eb m\u00eb, duke filluar nga funksioni main(). Duhet mbajtur mend se procesi i ri nuk \u00ebsht\u00eb nj\u00eb kopje e sakt\u00eb e procesit prind, ve\u00e7an\u00ebrisht pasi ai ka hap\u00ebsir\u00ebn e tij t\u00eb adresave, regjistrat e tij, treguesin p\u00ebr instruktionet e ekzekutueshme dhe gj\u00ebra t\u00eb ngjashme. K\u00ebshtu, vlera e kthyer nga thirr\u00ebsja e funksionit fork() do t\u00eb jet\u00eb e ndryshme. Sakt\u00ebsisht, procesi prind do t\u00eb marr\u00eb si kthim vler\u00ebn PID t\u00eb procesit f\u00ebmij\u00eb, nd\u00ebrsa f\u00ebmija do t\u00eb marr\u00eb nj\u00eb vler\u00eb t\u00eb barabart\u00eb me 0. Me k\u00ebto kode t\u00eb kthimit m\u00eb pas \u00ebsht\u00eb e mundur t\u00eb ndahen proceset dhe t\u00eb b\u00ebjn\u00eb q\u00eb secili prej tyre t\u00eb kryej\u00eb pun\u00ebn e vet. N\u00eb k\u00ebt\u00eb rast, ekzekutimi i k\u00ebtij programi nuk \u00ebsht\u00eb i p\u00ebrcaktuar me sakt\u00ebsi. Pas ndarjes n\u00eb 2 procese, sistemi operativ fillon t'i ndjek\u00eb ato, ashtu si dhe t'i planifikoj\u00eb aktivitetet e tyre. N\u00eb rastin e ekzekutimit n\u00eb nj\u00eb procesor me nj\u00eb b\u00ebrtham\u00eb, puna do t\u00eb vazhdoj\u00eb me nj\u00eb nga proceset, n\u00eb k\u00ebt\u00eb rast - prindin, dhe m\u00eb pas kontrolli do t\u00eb kaloj\u00eb te procesi f\u00ebmij\u00eb. N\u00eb nj\u00eb p\u00ebrs\u00ebritje t\u00eb m\u00ebtejshme, situata mund t\u00eb zhvillohet ndryshe.<\/p>\n<h3>Thirrja wait()<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/abb10671424f1889fbbb3facae739029.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe t\u00eb shqyrtojm\u00eb programin e m\u00ebposht\u00ebm. N\u00eb k\u00ebt\u00eb program, fal\u00eb thirrjes <b>wait()<\/b> procesi prind gjithmon\u00eb do t\u00eb pres\u00eb p\u00ebr p\u00ebrfundimin e pun\u00ebs s\u00eb procesit f\u00ebmij\u00eb. N\u00eb k\u00ebt\u00eb rast, ne do t\u00eb marrim nj\u00eb dalje t\u00eb p\u00ebrcaktuar me sakt\u00ebsi n\u00eb ekran<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/7e8ea54531b7717b7b42802550afd27b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Thirrja exec()<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 3: API e Procesit (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/dfe3a41c03bc35fd716a1b4c3af68c2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe t\u00eb shqyrtojm\u00eb thirrjen <b>exec()<\/b>. Ky thirrje sistemike \u00ebsht\u00eb e dobishme kur duam t\u00eb nisemi nj\u00eb program krejt\u00ebsisht tjet\u00ebr. K\u00ebtu do t\u00eb th\u00ebrrasim <b>execvp()<\/b> p\u00ebr t\u00eb nisur programin wc, i cili \u00ebsht\u00eb nj\u00eb program p\u00ebr num\u00ebrimin e fjal\u00ebve. \u00c7far\u00eb ndodh kur thirret exec()? K\u00ebsaj thirrjeje i jepet si argument emri i skedarit ekzekutiv dhe disa parametra. Pas k\u00ebsaj ngarkohet kodi dhe t\u00eb dh\u00ebnat statike nga ky skedar ekzekutiv dhe mbi-shkruhet seksioni i vet me kod. Pjes\u00ebt e tjera t\u00eb memories, si steka dhe kupa, inicializohen p\u00ebrs\u00ebri. Pas k\u00ebsaj, OS thjesht ekzekuton programin, duke i dh\u00ebn\u00eb nj\u00eb grup argumentesh. K\u00ebshtu, ne nuk kemi krijuar nj\u00eb proces t\u00eb ri, thjesht kemi transformuar programin aktual po funksionon n\u00eb nj\u00eb program tjet\u00ebr q\u00eb po funksionon. Pas thirrjes exec() n\u00eb f\u00ebmij\u00eb krijohet p\u00ebrshtypja se programi fillestar nuk \u00ebsht\u00eb nisur fare.<\/p>\n<p>Ky komplimin i nisi \u00ebsht\u00eb krejt\u00ebsisht normal p\u00ebr shell-in Unix dhe i lejon atij t\u00eb ekzekutoj\u00eb kod pas thirrjes <b>fork()<\/b>, por para thirrjes <b>exec()<\/b>. Nj\u00eb shembull i till\u00eb kodi mund t\u00eb jet\u00eb p\u00ebrshtatja e mjedisit t\u00eb shell-it p\u00ebr nevojat e programit q\u00eb do t\u00eb nis\u00eb, para nisjes s\u00eb tij t\u00eb drejtp\u00ebrdrejt\u00eb.<\/p>\n<p><b>Shell<\/b> \u2014 thjesht \u00ebsht\u00eb nj\u00eb program p\u00ebrdoruesi. Ai tregon rreshtin e promovimit dhe pret derisa t\u00eb shkruani di\u00e7ka atje. N\u00eb shumic\u00ebn e rasteve, n\u00ebse shkruani emrin e programit atje, shell do ta gjej\u00eb vendndodhjen e tij, do t\u00eb th\u00ebrras\u00eb metod\u00ebn fork(), dhe pastaj p\u00ebr t\u00eb krijuar nj\u00eb proces t\u00eb ri do t\u00eb th\u00ebrras\u00eb ndonj\u00eb nga llojet e exec() dhe do t\u00eb pres\u00eb p\u00ebr ekzekutimin e tij me thirrjen wait(). Kur procesi f\u00ebmij\u00eb p\u00ebrfundon, shell do t\u00eb kthehet nga thirrja wait() dhe do t\u00eb tregoj\u00eb p\u00ebrs\u00ebri rreshtin e promovimit dhe do t\u00eb pres\u00eb p\u00ebr futjen e komand\u00ebs tjet\u00ebr.<\/p>\n<p>Ndarja e fork() &amp; exec() i lejon shell-it t\u00eb b\u00ebj\u00eb gj\u00ebra si:<br \/>\n<b>wc file &gt; new_file.<\/b><\/p>\n<p>N\u00eb k\u00ebt\u00eb shembull, dalja e programit wc \u00ebsht\u00eb ridrejtuar n\u00eb skedarin. M\u00ebnyra se si shell e arrin k\u00ebt\u00eb \u00ebsht\u00eb mjaft e thjesht\u00eb \u2014 kur krijon procesin e f\u00ebmij\u00ebs para thirrjes <b>exec()<\/b>, shell mbyll rrjedh\u00ebn standarde t\u00eb daljes dhe hap skedarin <b>new_file<\/b>, k\u00ebshtu q\u00eb t\u00eb gjitha daljet nga programi q\u00eb do t\u00eb ekzekutohet m\u00eb von\u00eb <b>wc<\/b> do t\u00eb ridrejtohen n\u00eb skedar n\u00eb vend t\u00eb ekranit.<\/p>\n<p><b>Unix pipe<\/b> jan\u00eb zbatuar n\u00eb m\u00ebnyr\u00eb t\u00eb ngjashme, me ndryshimin se ato p\u00ebrdorin thirrjen pipe(). N\u00eb k\u00ebt\u00eb rast, rrjedha e daljes s\u00eb procesit do t\u00eb lidhet me nj\u00eb radh\u00eb pipe, e cila ndodhet n\u00eb b\u00ebrtham\u00eb, me rrjedh\u00ebn e hyrjes s\u00eb nj\u00eb procesi tjet\u00ebr.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/447182\/\">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":23195,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31229","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.1.1 - 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-3-process-api-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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 3: Process API (\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-3-process-api-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:40:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:40:10+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 Pjesa t\u00eb Lehta. Pjesa 3: API e Procesit (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-3-process-api-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 3: Process API (\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-3-process-api-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:40:10+00:00","article:modified_time":"2019-10-31T18:40:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31229","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 05:09:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:20:31","updated":"2026-01-21 05:09:19","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\/31229","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=31229"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/23195"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=31229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=31229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=31229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}