{"id":30717,"date":"2019-10-31T21:37:05","date_gmt":"2019-10-31T18:37:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-1-intro-perevod\/"},"modified":"2019-10-31T21:37:05","modified_gmt":"2019-10-31T18:37:05","slug":"operating-systems-three-easy-pieces-part-1-intro-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Hyrje n\u00eb sistemet operative<\/h1>\n<p>P\u00ebrsh\u00ebndetje, Habr! D\u00ebshiroj t'ju prezantoj nj\u00eb seri artikujsh p\u00ebrkthimesh nga nj\u00eb literatur\u00eb mjaft interesante sipas mendimit tim \u2014 OSTEP. N\u00eb k\u00ebt\u00eb material shqyrtohet thell\u00ebsisht funksionimi i sistemeve operative t\u00eb ngjashme me UNIX, sidomos \u2014 menaxhimi i proceseve, planifikuesve t\u00eb ndrysh\u00ebm, memorjeve dhe komponent\u00ebve t\u00eb tjer\u00eb t\u00eb ngjash\u00ebm q\u00eb p\u00ebrb\u00ebjn\u00eb nj\u00eb sistem t\u00eb modern operative. Origjinali i t\u00eb gjitha materiale \u00ebsht\u00eb i disponuesh\u00ebm k\u00ebtu <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">k\u00ebtu<\/a><\/noindex>. Ju lutem, mbani n\u00eb mend se p\u00ebrkthimi \u00ebsht\u00eb b\u00ebr\u00eb n\u00eb m\u00ebnyr\u00eb jo profesionale (mjaft e lir\u00eb), por shpresoj se e kam ruajtur kuptimin e p\u00ebrgjithsh\u00ebm.<\/p>\n<p>Laborator\u00ebt p\u00ebr k\u00ebt\u00eb l\u00ebnd\u00eb mund t'i gjeni k\u00ebtu:<br \/>\n \u2014 origjinali: <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><br \/>\n \u2014 origjinali: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 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><\/p>\n<p>Po ashtu mund t\u00eb d\u00ebshironi t\u00eb vizitoni 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<h3>Puna e programit<\/h3>\n<p>\n\u00c7far\u00eb ndodh kur nj\u00eb program funksionon? Programi i ekzekutuar kryen nj\u00eb gj\u00eb t\u00eb thjesht\u00eb \u2014 ai zbatuan instruktionet. \u00c7do sekond\u00eb, miliona dhe madje miliarda instrukcionesh nxirren nga procesori nga memoria e operativ, i cili i dekodon (p\u00ebr shembull, njihet se cilit tip i p\u00ebrkasin k\u00ebto instrukcione) dhe i ekzekuton. K\u00ebto mund t\u00eb jen\u00eb nj\u00eb shum\u00ebzim i dy numrave, akses n\u00eb memorie, kontrollimi i nj\u00eb kushti, kalimi n\u00eb nj\u00eb funksion dhe k\u00ebshtu me radh\u00eb. Pas p\u00ebrfundimit t\u00eb ekzekutimit t\u00eb nj\u00eb instrukcioni, procesori kalon n\u00eb ekzekutimin e nj\u00eb tjetri. Dhe k\u00ebshtu, instrukcion pas instrukcioni, ato ekzekutohen deri sa programa t\u00eb p\u00ebrfundoj\u00eb.<br \/>\nKy shembull natyrisht \u00ebsht\u00eb shqyrtuar n\u00eb m\u00ebnyr\u00eb t\u00eb thjeshtuar \u2014 n\u00eb t\u00eb v\u00ebrtet\u00eb, p\u00ebr t\u00eb p\u00ebrshpejtuar pun\u00ebn e procesorit, pajisjet moderne lejojn\u00eb ekzekutimin e instrukcionesh jasht\u00eb rendit, llogaritjen e rezultateve t\u00eb mundshme, ekzekutimin e instrukcionesh n\u00eb m\u00ebnyr\u00eb simultane dhe trukime t\u00eb ngjashme.<\/p>\n<h3>Modeli i Von Neumann t\u00eb llogaritjes<\/h3>\n<p>\nForma e thjeshtuar e pun\u00ebs q\u00eb kemi p\u00ebrshkruar \u00ebsht\u00eb e ngjashme me modelin e Von Neumann t\u00eb llogaritjeve. <i>Fon Neiman \u00ebsht\u00eb nj\u00eb nga pionier\u00ebt e sistemeve kompjuterike, gjithashtu ai \u00ebsht\u00eb nj\u00eb nga autor\u00ebt e teoris\u00eb s\u00eb loj\u00ebrave.<\/i>. Gjat\u00eb pun\u00ebs s\u00eb programit ndodhin shum\u00eb ngjarje t\u00eb tjera, punojn\u00eb shum\u00eb procese dhe logjika t\u00eb jashtme, e cila ka si q\u00ebllim kryesor thjesht\u00ebzimin e nisjes, funksionimit dhe mir\u00ebmbajtjes s\u00eb sistemit.<br \/>\nEkziston nj\u00eb grup softuer\u00ebsh q\u00eb \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr thjesht\u00ebsin\u00eb e nisjes s\u00eb programeve (ose madje lejon t\u00eb ekzekutohen disa programe nj\u00ebkoh\u00ebsisht), ai lejon programet t\u00eb ndajn\u00eb t\u00eb nj\u00ebjt\u00ebn memorie, si dhe t\u00eb nd\u00ebrveprojn\u00eb me pajisje t\u00eb ndryshme. Ky grup softuresh (software) n\u00eb esenc\u00eb e quajn\u00eb sistemin operativ dhe detyrat e tij p\u00ebrfshijn\u00eb mbik\u00ebqyrjen q\u00eb sistemi t\u00eb funksionoj\u00eb si\u00e7 duhet dhe n\u00eb m\u00ebnyr\u00eb efektive, si dhe sigurimin e thjesht\u00ebsis\u00eb n\u00eb menaxhimin e k\u00ebtij sistemi. <\/p>\n<h2>Sistemi operativ<\/h2>\n<p>\n<b>Sistemi operativ, p\u00ebr shkurtim OS \u2014 \u00ebsht\u00eb nj\u00eb grup i lidhur i programeve, t\u00eb destinuara p\u00ebr t\u00eb menaxhuar burimet e kompjuterit dhe p\u00ebr t\u00eb organizuar nd\u00ebrveprimin e p\u00ebrdoruesit me kompjuterin.<\/b>. <br \/>\nOS arrin eficienc\u00ebn e saj kryesisht p\u00ebrmes teknik\u00ebs m\u00eb t\u00eb r\u00ebnd\u00ebsishme \u2014 teknik\u00ebs <b>s\u00eb virtualizimit.<\/b>. Sistemi operativ nd\u00ebrvepron me burimet fizike (procesorin, memorien, diskin dhe t\u00eb ngjashme) dhe e transformon at\u00eb n\u00eb nj\u00eb form\u00eb m\u00eb t\u00eb p\u00ebrgjithshme, me m\u00eb shum\u00eb mund\u00ebsi dhe m\u00eb t\u00eb thjesht\u00eb p\u00ebr t'u p\u00ebrdorur. Prandaj, p\u00ebr nj\u00eb kuptim t\u00eb p\u00ebrgjithsh\u00ebm, mund t\u00eb krahasohet shum\u00eb shkurtimisht sistemi operativ me nj\u00eb makin\u00eb virtuale.<br \/>\nP\u00ebr t\u00eb lejuar p\u00ebrdoruesit t\u00eb japin komanda p\u00ebr sistemin operativ dhe k\u00ebshtu t\u00eb shfryt\u00ebzojn\u00eb mund\u00ebsit\u00eb e makin\u00ebs virtuale (si: ekzekutimi i programit, ndarja e memories, qasja n\u00eb skedar etj.), sistemi operativ ofron nj\u00eb nd\u00ebrfaqe t\u00eb quajtur <b>API<\/b> (application programming interface) dhe nga e cila mund t\u00eb kryhen thirrje (call). Nj\u00eb sistem operativ tipik ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb kryer qindra thirrje sistemike.<br \/>\nDhe, duke qen\u00eb se virtualizimi lejon shum\u00eb programe t\u00eb funksionojn\u00eb (n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, t\u00eb ndajn\u00eb CPU-n\u00eb) dhe gjithashtu t\u00eb ken\u00eb akses n\u00eb instrukcionet dhe t\u00eb dh\u00ebnat e tyre (n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, t\u00eb ndajn\u00eb memorin\u00eb), si dhe t\u00eb ken\u00eb qasje n\u00eb disqet (n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, t\u00eb ndajn\u00eb pajisjet e input-output), sistemi operativ quhet gjithashtu menaxher i burimeve. \u00c7do procesor, disk dhe memorie \u00ebsht\u00eb nj\u00eb burim i sistemit dhe k\u00ebshtu nj\u00eb nga rolet e sistemit operativ b\u00ebhet menaxhimi i k\u00ebtyre burimeve, duke e b\u00ebr\u00eb k\u00ebt\u00eb n\u00eb m\u00ebnyr\u00eb efikase, drejt\u00ebsisht ose, p\u00ebrkundrazi, sipas detyr\u00ebs p\u00ebr t\u00eb cil\u00ebn \u00ebsht\u00eb zhvilluar ky sistem operativ.<\/p>\n<h3>Virtualizimi i CPU<\/h3>\n<p>\nLe ta shqyrtojm\u00eb programin n\u00eb vijim:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAi nuk kryen ndonj\u00eb veprim t\u00eb ve\u00e7ant\u00eb, n\u00eb thelb, gjith\u00e7ka q\u00eb b\u00ebn \u00ebsht\u00eb t\u00eb th\u00ebrras\u00eb funksionin <b>spin<\/b>(), detyra e s\u00eb cil\u00ebs \u00ebsht\u00eb kontrolli ciklik i koh\u00ebs dhe kthimi, pasi t\u00eb ket\u00eb kaluar nj\u00eb sekond\u00eb. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, ajo p\u00ebrs\u00ebrit pafund\u00ebsisht rreshtin q\u00eb p\u00ebrdoruesi e ka d\u00ebrguar si argument.<br \/>\nDo ta fillojm\u00eb k\u00ebt\u00eb program dhe do t'i kalojm\u00eb si argument simbolin \u201cA\u201d. Rezultati \u00ebsht\u00eb jo shum\u00eb interesant \u2014 sistemi thjesht ekzekuton programin q\u00eb periodikisht shfaq n\u00eb ekran simbolin \u201cA\u201d.<br \/>\nTani le t\u00eb provojm\u00eb nj\u00eb variant kur jan\u00eb aktivizuar shum\u00eb instanca t\u00eb s\u00eb nj\u00ebjt\u00ebs program, por q\u00eb shfaqin letra t\u00eb ndryshme p\u00ebr ta b\u00ebr\u00eb m\u00eb t\u00eb qart\u00eb. N\u00eb k\u00ebt\u00eb rast, rezultati do t\u00eb jet\u00eb pak ndryshe. Pavar\u00ebsisht se kemi nj\u00eb procesor, programi ekzekutohet nj\u00ebkoh\u00ebsisht. Si ndodh kjo? Epo, ndodh q\u00eb sistemi operativ, me ndihm\u00ebn e mund\u00ebsive t\u00eb harduerit, krijon nj\u00eb iluzion. Iluzionin q\u00eb n\u00eb sistem ka disa procesor\u00eb virtual\u00eb, duke e transformuar nj\u00eb procesor fizik n\u00eb nj\u00eb num\u00ebr teorikisht t\u00eb pafund dhe k\u00ebshtu duke lejuar q\u00eb programet t\u00eb duken si po ekzekutohen nj\u00ebkoh\u00ebsisht. K\u00ebt\u00eb iluzion e quajn\u00eb <i>Virtualizimi i CPU<\/i>.<br \/>\n Nj\u00eb sken\u00eb e till\u00eb lind shum\u00eb pyetje, p\u00ebr shembull, n\u00ebse disa programe duan t\u00eb fillojn\u00eb nj\u00ebkoh\u00ebsisht, cila do t\u00eb ekzekutohet? K\u00ebt\u00eb pyetje e p\u00ebrgjigjin \"politikat\" e sistemit operativ. Politikat p\u00ebrdoren n\u00eb shum\u00eb vende t\u00eb sistemit operativ dhe p\u00ebrgjigjin n\u00eb pyetje t\u00eb tilla, gjithashtu jan\u00eb mekanizmat thelb\u00ebsor\u00eb q\u00eb gjithashtu e realizon sistemi operativ. K\u00ebshtu, roli i sistemit operativ si menaxher i burimeve \u00ebsht\u00eb i qart\u00eb.<\/p>\n<h3>Virtualizimi i memorjes<\/h3>\n<p>\n Tani le t\u00eb shqyrtojm\u00eb memorjen. <b>Modeli fizik i memorjes n\u00eb sistemet moderne paraqitet si nj\u00eb masiv bajt\u00ebsh<\/b>. P\u00ebr t\u00eb lexuar nga memoria, duhet t\u00eb specifikohet <b>adresa e qelis\u00eb<\/b>, p\u00ebr t\u00eb pasur qasje n\u00eb t\u00eb. P\u00ebr t\u00eb shkruar ose p\u00ebr t\u00eb azhurnuar t\u00eb dh\u00ebnat, gjithashtu duhet t\u00eb specifikohen t\u00eb dh\u00ebnat dhe adresa e qelis\u00eb ku do t\u00eb shkruhen ato.<br \/>\n Qasjet n\u00eb memorie ndodhin me vazhdim\u00ebsi n\u00eb procesin e pun\u00ebs s\u00eb programit. Programi ruan n\u00eb memorie t\u00eb gjith\u00eb struktur\u00ebn e t\u00eb dh\u00ebnave t\u00eb tij dhe i qaset asaj duke ekzekutuar udh\u00ebzime t\u00eb ndryshme. Udh\u00ebzimet po ashtu ruhen n\u00eb memorie, k\u00ebshtu q\u00eb qasja ndaj saj ndodh gjithashtu p\u00ebr \u00e7do k\u00ebrkes\u00eb p\u00ebr udh\u00ebzimin e ardhsh\u00ebm.<\/p>\n<h4>Thirrja e malloc()<\/h4>\n<p>Le t\u00eb shqyrtojm\u00eb programin e m\u00ebposht\u00ebm, i cili alokon nj\u00eb zon\u00eb memorjeje duke p\u00ebrdorur thirrjen <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgrami b\u00ebn disa gj\u00ebra. S\u00eb pari, ai rezervon nj\u00eb sasi t\u00eb caktuar memorjeje (rreshti 7), pastaj jep adres\u00ebn e qeliz\u00ebs s\u00eb rezervuar (rreshti 9), shkruan zero n\u00eb pozit\u00ebn e par\u00eb t\u00eb memorjes s\u00eb rezervuar. M\u00eb pas, programi hyn n\u00eb nj\u00eb cik\u00ebl ku inkrementon vler\u00ebn e shkruar n\u00eb memori n\u00eb adres\u00ebn e variabl\u00ebs \u201cp\u201d. Po ashtu, ai jep identifikuesin e procesit t\u00eb tij. <b>Identifikuesi i procesit \u00ebsht\u00eb unik p\u00ebr secilin proces t\u00eb aktivizuar.<\/b>. Duke nisur disa kopje, p\u00ebrballemi me nj\u00eb rezultat interesant: N\u00eb rastin e par\u00eb, n\u00ebse nuk b\u00ebjm\u00eb asgj\u00eb dhe thjesht nisim disa kopje, adresat do t\u00eb jen\u00eb t\u00eb ndryshme. Por kjo nuk p\u00ebrputhet me teorin\u00eb ton\u00eb! E sakt\u00eb, pasi n\u00eb distribucione moderne \u00ebsht\u00eb aktivizuar p\u00ebr default funksioni i randomizimit t\u00eb memories. N\u00ebse e \u00e7aktivizojm\u00eb, do t\u00eb marrim rezultatin e pritur - adresat e memories te dy programeve q\u00eb funksionojn\u00eb nj\u00ebkoh\u00ebsisht do t\u00eb p\u00ebrputhen. <\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Si rezultat, del q\u00eb dy programe t\u00eb pavarura punojn\u00eb me hap\u00ebsira t\u00eb tyre private t\u00eb adresave, t\u00eb cilat n\u00eb k\u00ebndv\u00ebshtrimin e sistemit operativ, i p\u00ebrkasin memories fizike.<\/b>. Prandaj, p\u00ebrdorimi i adresave t\u00eb memories brenda nj\u00eb programi nuk do t\u00eb ndikoj\u00eb asnj\u00ebher\u00eb n\u00eb t\u00eb tjer\u00ebt, dhe \u00e7do program e ndjen se ka nj\u00eb pjes\u00eb t\u00eb vet t\u00eb memories fizike, e cila i \u00ebsht\u00eb dh\u00ebn\u00eb plot\u00ebsisht atij. Realiteti, megjithat\u00eb, \u00ebsht\u00eb se memoria fizike \u00ebsht\u00eb nj\u00eb burim i ndar\u00eb, menaxhimi i t\u00eb cilit b\u00ebhet nga sistemi operativ.<\/p>\n<h3>Konsistenca<\/h3>\n<p>\nNj\u00eb tjet\u00ebr nga temat e r\u00ebnd\u00ebsishme n\u00eb kuad\u00ebr t\u00eb sistemeve operative \u00ebsht\u00eb <b>konsistenca<\/b>. Ky term p\u00ebrdoret kur flitet p\u00ebr problemet n\u00eb sistem, t\u00eb cilat mund t\u00eb ndodhin gjat\u00eb pun\u00ebs me shum\u00eb gj\u00ebra n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb brenda nj\u00eb programi. Problemet e konsistenc\u00ebs ndodhin edhe n\u00eb vet\u00eb sistemin operativ. N\u00eb shembujt e m\u00ebparsh\u00ebm me virtualizimin e memories dhe procesorit, ne kuptuam se OS menaxhon shum\u00eb gj\u00ebra n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb - fillon procesin e par\u00eb, pastaj t\u00eb dytin dhe k\u00ebshtu me radh\u00eb. Si\u00e7 doli, ky p\u00ebrfundim mund t\u00eb sjell\u00eb disa probleme. P\u00ebr shembull, programet moderne shum\u00ebfishe p\u00ebrballen me k\u00ebto v\u00ebshtir\u00ebsi.<\/p>\n<p>Le ta shqyrtojm\u00eb programin n\u00eb vijim:<\/p>\n<p> <img decoding=\"async\" alt=\"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrograma n\u00eb funksionin kryesor krijon dy fije, duke p\u00ebrdorur thirrjen <b>Pthread_create()<\/b>. N\u00eb k\u00ebt\u00eb shembull, mund t\u00eb mendoni p\u00ebr nj\u00eb rrjedh\u00eb si nj\u00eb funksion q\u00eb ekzekutohet n\u00eb nj\u00eb hap\u00ebsir\u00eb t\u00eb vetme memorie af\u00ebr funksioneve t\u00eb tjera, dhe numri i funksioneve t\u00eb ekzekutuara nj\u00ebkoh\u00ebsisht \u00ebsht\u00eb m\u00eb shum\u00eb se nj\u00eb. N\u00eb k\u00ebt\u00eb shembull, \u00e7do rrjedh\u00eb niste dhe ekzekuton funksionin <b>worker() i cili thjesht inkrementon nj\u00eb variab\u00ebl.<\/b>,.<\/p>\n<p>Tani do ta ekzekutojm\u00eb k\u00ebt\u00eb program me argumentin 1000. Si\u00e7 mund ta keni supozuar, rezultati duhet t\u00eb jet\u00eb 2000, pasi \u00e7do rrjedh\u00eb inkrementonte variabl\u00ebn 1000 her\u00eb. Megjithat\u00eb, nuk \u00ebsht\u00eb aq e thjesht\u00eb. Le t\u00eb provojm\u00eb ta nisim programin me nj\u00eb num\u00ebr p\u00ebrs\u00ebritjesh shum\u00eb m\u00eb t\u00eb lart\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tri Pjesa t\u00eb Lehta. Pjesa 1: Hyrja\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke dh\u00ebn\u00eb si hyrje nj\u00eb num\u00ebr, p\u00ebr shembull, 100000, ne presim t\u00eb shohim si rezultat numrin 200000. Megjithat\u00eb, duke e ekzekutuar numrin 100000 disa her\u00eb, ne jo vet\u00ebm q\u00eb nuk do t\u00eb shohim p\u00ebrgjigjen e sakt\u00eb, por do t\u00eb marrim edhe p\u00ebrgjigje t\u00eb ndryshme t\u00eb gabuara. Zgjidhja \u00ebsht\u00eb n\u00eb at\u00eb se p\u00ebr t\u00eb rritur numrin k\u00ebrkohen tre operacione \u2014 nxjerrja e numrit nga memoria, inkrementimi dhe m\u00eb pas shkrimi i numrit p\u00ebrs\u00ebri. Pasiq\u00eb t\u00eb gjitha k\u00ebto instruksione nuk realizohen atomikisht (t\u00eb gjitha nj\u00ebkoh\u00ebsisht), ndodhin k\u00ebto gj\u00ebra t\u00eb \u00e7uditshme. Ky problem quhet n\u00eb programim <b>gjend\u00ebrrimi i gar\u00ebs \u2014 gjendje garash<\/b>. Kur forca t\u00eb panjohura n\u00eb nj\u00eb moment t\u00eb panjohur mund t\u00eb ndikojn\u00eb n\u00eb realizimin e ndonj\u00eb operacioni tuaj.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446340\/\">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\u044b\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\u043d\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":22702,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30717","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.0.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\u044b\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\u043d\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.\" \/>\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-1-intro-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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 1: Intro (\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\u044b\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\u043d\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-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:37:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:05+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 1: Hyrje (p\u00ebrkthim) | ProHoster","description":"Hyrje n\u00eb sistemet operative P\u00ebrsh\u00ebndetje, Habra! D\u00ebshiroj t'ju paraqes nj\u00eb seri artikujsh p\u00ebrkthimesh nga nj\u00eb literatur\u00eb interesante sipas mendimit tim \u2014 OSTEP. N\u00eb k\u00ebt\u00eb material shqyrtohet mjaft n\u00eb thell\u00ebsi funksionimi i sistemeve operative t\u00eb ngjashme me Unix, sidomos \u2014 puna me proceset, planifikuesit e ndrysh\u00ebm, memorie dhe komponente t\u00eb tjera t\u00eb ngjashme q\u00eb formojn\u00eb nj\u00eb sistem t\u00eb zakonsh\u00ebm operativ. Origjinalin e t\u00eb gjith\u00eb materialeve mund ta shihni k\u00ebtu.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-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 1: Intro (\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\u044b\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\u043d\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.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-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:37:05+00:00","article:modified_time":"2019-10-31T18:37:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30717","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 02:38:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:30:51","updated":"2026-01-21 02:38: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\/30717","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=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}