{"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\/az\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>\u0130\u015fletim sistemlerine giri\u015f<\/h1>\n<p>Merhaba, Habr! Sizlere ilgin\u00e7 buldu\u011fum bir edebiyat serisinin \u00e7eviri makalelerini sunmak istiyorum \u2014 OSTEP. Bu materyalde Unix benzeri i\u015fletim sistemlerinin \u00e7al\u0131\u015fma prensipleri derinlemesine ele al\u0131n\u0131yor; \u00f6zellikle s\u00fcre\u00e7ler, farkl\u0131 zamanlay\u0131c\u0131lar, bellek ve modern bir i\u015fletim sistemini olu\u015fturan di\u011fer bile\u015fenler \u00fczerine. T\u00fcm materyallerin orijinal haline buradan ula\u015fabilirsiniz <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">burada<\/a><\/noindex>. L\u00fctfen dikkate al\u0131n ki, \u00e7eviri profesyonelce yap\u0131lmam\u0131\u015ft\u0131r (biraz serbest) ama umar\u0131m genel anlam\u0131 korumu\u015fumdur.<\/p>\n<p>Bu konuda laboratuvar \u00e7al\u0131\u015fmalar\u0131 burada bulunabilir:<br \/>\n \u2014 orijinal: <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 orijinal: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 benim ki\u015fisel uyarlamam: <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>Bir de Telegram kanal\u0131mda bana g\u00f6z atabilirsiniz <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>Program\u0131n \u00e7al\u0131\u015fmas\u0131<\/h3>\n<p>\nBir program \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda ne olur? Ba\u015flat\u0131lan program, yapmas\u0131 gereken basit bir i\u015fi vard\u0131r \u2014 talimatlar\u0131 y\u00fcr\u00fctmek. Her saniye, milyonlarca hatta belki milyarlarca talimat, i\u015flemci taraf\u0131ndan bellekteki yerinden \u00e7\u0131kar\u0131l\u0131r, i\u015flemci bunlar\u0131 \u00e7\u00f6z\u00fcmler (\u00f6rne\u011fin, bu talimatlar\u0131n hangi t\u00fcre ait oldu\u011funu tan\u0131r) ve y\u00fcr\u00fct\u00fcr. Bu, iki say\u0131n\u0131n toplanmas\u0131, belle\u011fe eri\u015fim, ko\u015ful kontrol\u00fc veya bir fonksiyona ge\u00e7i\u015f gibi i\u015flemler olabilir. Bir talimat\u0131n y\u00fcr\u00fct\u00fclmesi tamamland\u0131\u011f\u0131nda, i\u015flemci di\u011ferine ge\u00e7er. Bu \u015fekilde, talimatlar birbirini takip eder ve program sona erene kadar y\u00fcr\u00fct\u00fclmeye devam eder.<br \/>\nBu \u00f6rnek elbette basitlenmi\u015f olarak ele al\u0131nm\u0131\u015ft\u0131r; asl\u0131nda modern donan\u0131m, i\u015flemcinin talimatlar\u0131 s\u0131raya almadan y\u00fcr\u00fctmesine, olas\u0131 sonu\u00e7lar\u0131 hesaplamas\u0131na, talimatlar\u0131 ayn\u0131 anda y\u00fcr\u00fctmesine ve benzeri hileleri yapmas\u0131na olanak tan\u0131r.<\/p>\n<h3>Von Neumann hesaplama modeli<\/h3>\n<p>\nYukar\u0131da a\u00e7\u0131klad\u0131\u011f\u0131m\u0131z basitle\u015ftirilmi\u015f \u00e7al\u0131\u015fma \u015fekli, Von Neumann hesaplama modeline benzemektedir. <i>Von Neumann, bilgisayar sistemlerinin \u00f6nc\u00fclerinden biridir ve ayn\u0131 zamanda oyun teorisi \u00fczerine de \u00e7al\u0131\u015fmalar\u0131yla tan\u0131n\u0131r.<\/i>. Program \u00e7al\u0131\u015f\u0131rken pek \u00e7ok ba\u015fka olay da ger\u00e7ekle\u015fir, bir\u00e7ok ba\u015fka s\u00fcre\u00e7 ve d\u0131\u015f mant\u0131k \u00e7al\u0131\u015f\u0131r; bunlar\u0131n ana amac\u0131 sistemi ba\u015flatmay\u0131, \u00e7al\u0131\u015ft\u0131rmay\u0131 ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131rmakt\u0131r.<br \/>\nBir program\u0131n ba\u015flat\u0131lmas\u0131n\u0131 (hatta birka\u00e7 program\u0131 ayn\u0131 anda \u00e7al\u0131\u015ft\u0131rmay\u0131) kolayla\u015ft\u0131rmakla sorumlu bir yaz\u0131l\u0131m seti vard\u0131r. Bu yaz\u0131l\u0131m, programlar\u0131n ayn\u0131 belle\u011fi payla\u015fmas\u0131na ve \u00e7e\u015fitli ayg\u0131tlarla etkile\u015fime girmesine olanak tan\u0131r. Bu yaz\u0131l\u0131m setine temelde i\u015fletim sistemi denir ve g\u00f6revleri aras\u0131nda sistemin do\u011fru ve verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak, ayn\u0131 zamanda bu sistemin y\u00f6netimini kolayla\u015ft\u0131rmak yer al\u0131r. <\/p>\n<h2>\u018fm\u0259liyyat sistemi<\/h2>\n<p>\n<b>\u018fm\u0259liyyat sistemi, q\u0131sacas\u0131, \u018fS \u2014 komp\u00fcterin resurslar\u0131n\u0131 idar\u0259 etm\u0259y\u0259 v\u0259 istifad\u0259\u00e7i il\u0259 komp\u00fcter aras\u0131nda qar\u015f\u0131l\u0131ql\u0131 \u0259laq\u0259 yaratma\u011fa y\u00f6n\u0259lmi\u015f, bir-biri il\u0259 \u0259laq\u0259li proqramlar\u0131n kompleksidir.<\/b>. <br \/>\n\u018fS \u00f6z s\u0259m\u0259r\u0259liliyin\u0259, ilk n\u00f6vb\u0259d\u0259, \u0259n \u0259sas texnika vasit\u0259sil\u0259 \u2014 texnikadan. <b>virtualizasiya<\/b>. \u018fS fiziki resursla (prosessor, yadda\u015f, disk v\u0259 s.) qar\u015f\u0131l\u0131ql\u0131 \u0259laq\u0259 qurur v\u0259 onu daha \u00fcmumi, daha geni\u015f imkanlara malik v\u0259 istifad\u0259 \u00fc\u00e7\u00fcn daha asan forma \u00e7evrir. Buna g\u00f6r\u0259, \u00fcmumi anlay\u0131\u015f \u00fc\u00e7\u00fcn, \u0259m\u0259liyyat sistemini virtual ma\u015f\u0131nla \u00e7ox sad\u0259 bir \u015f\u0259kild\u0259 m\u00fcqayis\u0259 ed\u0259 bil\u0259rik.<br \/>\n\u0130stifad\u0259\u00e7il\u0259r\u0259 \u0259m\u0259liyyat sistemin\u0259 komandalar verm\u0259y\u0259 v\u0259 bel\u0259likl\u0259 virtual ma\u015f\u0131n\u0131n imkanlar\u0131ndan (m\u0259s\u0259l\u0259n: proqram\u0131 i\u015f\u0259 salmaq, yadda\u015f ay\u0131rmaq, fayla giri\u015f v\u0259 s.) istifad\u0259 etm\u0259y\u0259 imkan tan\u0131maq \u00fc\u00e7\u00fcn, \u0259m\u0259liyyat sistemi bir interfeys t\u0259qdim edir ki, buna da <b>API<\/b> (application programming interface) deyilir v\u0259 buna \u00e7a\u011f\u0131r\u0131\u015flar (call) etm\u0259k m\u00fcmk\u00fcnd\u00fcr. Tipik bir \u0259m\u0259liyyat sistemi y\u00fczl\u0259rl\u0259 sistem \u00e7a\u011f\u0131r\u0131\u015f\u0131 etm\u0259y\u0259 imkan tan\u0131y\u0131r.<br \/>\nV\u0259 n\u0259hay\u0259t, virtualizasiya bir \u00e7ox proqram\u0131n paralel i\u015fl\u0259m\u0259sin\u0259 (bel\u0259likl\u0259, CPU-nu birg\u0259 istifad\u0259 etm\u0259y\u0259) v\u0259 eyni zamanda onlar\u0131n instrukiyalar\u0131na v\u0259 m\u0259lumatlar\u0131na (buna g\u00f6r\u0259 d\u0259 yadda\u015f\u0131 b\u00f6l\u00fc\u015fd\u00fcrm\u0259y\u0259) giri\u015fi icaz\u0259 verdiyin\u0259 g\u00f6r\u0259, \u0259m\u0259liyyat sistemin\u0259 resurs meneceri d\u0259 deyilir. H\u0259r bir prosessor, disk v\u0259 yadda\u015f sistemin resursudur, buna g\u00f6r\u0259 d\u0259 \u0259m\u0259liyyat sisteminin v\u0259zif\u0259l\u0259rind\u0259n biri bu resurslar\u0131 effektiv, \u0259dal\u0259tli v\u0259 ya \u0259ksin\u0259, bu \u0259m\u0259liyyat sisteminin haz\u0131rlanma m\u0259qs\u0259din\u0259 uy\u011fun olaraq idar\u0259 etm\u0259kdir.<\/p>\n<h3>CPU virtualizasiyas\u0131<\/h3>\n<p>\nG\u0259lin a\u015fa\u011f\u0131dak\u0131 proqram\u0131 n\u0259z\u0259rd\u0259n ke\u00e7ir\u0259k:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBu proqram\u0131n x\u00fcsusi bir f\u0259aliyy\u0259ti yoxdur, \u0259slind\u0259 onun etdiyi \u2014 bir funksiyan\u0131 \u00e7a\u011f\u0131rmaqd\u0131r <b>spin<\/b>(), v\u0259zif\u0259si is\u0259 zaman\u0131n d\u00f6vr\u00fc yoxlan\u0131lmas\u0131d\u0131r v\u0259 bir saniy\u0259 ke\u00e7dikd\u0259n sonra d\u00f6n\u00fc\u015fd\u00fcr. Bel\u0259likl\u0259, istifad\u0259\u00e7inin arqument olaraq verdiyi s\u0259tiri sonsuz d\u00f6vr\u0259d\u0259 t\u0259krarlay\u0131r.<br \/>\nBu proqram\u0131 i\u015f\u0259 salaq v\u0259 ona arqument olaraq \u201cA\u201d simvolunu ver\u0259k. N\u0259tic\u0259 o q\u0259d\u0259r d\u0259 maraql\u0131 deyil \u2014 sistem sad\u0259c\u0259 olaraq, periodik olaraq \u201cA\u201d simvolunu ekrana \u00e7\u0131xaran proqram\u0131 icra edir.<br \/>\n\u0130ndi eyni proqram\u0131n bir \u00e7ox n\u00fcmun\u0259si il\u0259 i\u015fl\u0259dikd\u0259, lakin f\u0259rqli h\u0259rfl\u0259r \u00e7\u0131xard\u0131qda daha ayd\u0131n olmas\u0131 \u00fc\u00e7\u00fcn bir variant\u0131 s\u0131naqdan ke\u00e7ir\u0259k. Bu halda, n\u0259tic\u0259 bir q\u0259d\u0259r f\u0259rqli olacaq. Bizim yaln\u0131z bir prosessor olmas\u0131na baxmayaraq, proqram eyni anda icra edilir. B\u0259s bu nec\u0259 m\u00fcmk\u00fcnd\u00fcr? M\u0259s\u0259l\u0259 buras\u0131ndad\u0131r ki, \u0259m\u0259liyyat sistemi, avadanl\u0131\u011f\u0131n imkanlar\u0131ndan da istifad\u0259 ed\u0259r\u0259k, ill\u00fcziya yarad\u0131r. Bu ill\u00fcziya, sistemd\u0259 bir ne\u00e7\u0259 virtual prosessorun oldu\u011funa, bir fiziki prosessoru n\u0259z\u0259ri c\u0259h\u0259td\u0259n sonsuz sayda \u00e7evirm\u0259y\u0259 imkan verir v\u0259 bel\u0259likl\u0259, proqramlar\u0131n g\u00f6r\u00fcn\u00fc\u015fd\u0259 eyni anda icra olunmas\u0131na imkan tan\u0131y\u0131r. Bu ill\u00fcziya <i>CPU-nun virtualizasiyas\u0131<\/i>.<br \/>\n Bel\u0259 bir m\u0259nz\u0259r\u0259 bir \u00e7ox suallar yarad\u0131r, m\u0259s\u0259l\u0259n, \u0259g\u0259r bir ne\u00e7\u0259 proqram eyni anda i\u015f\u0259 d\u00fc\u015fm\u0259k ist\u0259yirs\u0259, hans\u0131 konkret proqram icra olunacaq? Bu suala \u0259m\u0259liyyat sisteminin \"siyas\u0259tl\u0259ri\" cavab verir. Siyas\u0259tl\u0259r \u0259m\u0259liyyat sisteminin bir \u00e7ox yerl\u0259rind\u0259 istifad\u0259 olunur v\u0259 bel\u0259 suallara cavab verir, eyni zamanda \u0259m\u0259liyyat sisteminin realla\u015fd\u0131rd\u0131\u011f\u0131 \u0259sas mexanizml\u0259rdir. Buradan \u0259m\u0259liyyat sisteminin resurs meneceri olaraq rolu da ortaya \u00e7\u0131x\u0131r.<\/p>\n<h3>Yadda\u015f\u0131n virtualizasiyas\u0131<\/h3>\n<p>\n \u0130ndi g\u0259lin yadda\u015f\u0131 n\u0259z\u0259rd\u0259n ke\u00e7ir\u0259k. <b>M\u00fcasir sisteml\u0259rd\u0259 yadda\u015f\u0131n fiziki modeli bayt massivl\u0259ri kimi t\u0259svir edilir<\/b>. Yadda\u015fdan oxumaq \u00fc\u00e7\u00fcn <b>h\u00fcceyr\u0259nin \u00fcnvan\u0131n\u0131<\/b>g\u00f6st\u0259rm\u0259k laz\u0131md\u0131r ki, ona daxil olmaq m\u00fcmk\u00fcn olsun. M\u0259lumat\u0131 yazmaq v\u0259 ya yenil\u0259m\u0259k \u00fc\u00e7\u00fcn d\u0259, el\u0259c\u0259 d\u0259 yaz\u0131lmas\u0131 g\u0259r\u0259k\u0259n h\u00fcceyr\u0259nin \u00fcnvan\u0131n\u0131 g\u00f6st\u0259rm\u0259k laz\u0131md\u0131r.<br \/>\n Proqram\u0131n icras\u0131 zaman\u0131 yadda\u015fa daima m\u00fcraci\u0259t edilir. Proqram yadda\u015fda b\u00fct\u00fcn m\u0259lumat strukturlar\u0131n\u0131 saxlay\u0131r v\u0259 m\u00fcxt\u0259lif t\u0259limatlar\u0131 yerin\u0259 yetir\u0259rk\u0259n ona m\u00fcraci\u0259t edir. Bu arada, t\u0259limatlar da yadda\u015fda saxlan\u0131l\u0131r, buna g\u00f6r\u0259 d\u0259 h\u0259r n\u00f6vb\u0259ti t\u0259limata m\u00fcraci\u0259t zaman\u0131 da yadda\u015fla \u0259laq\u0259 qurulur.<\/p>\n<h4>malloc() \u00e7a\u011f\u0131r\u0131\u015f\u0131<\/h4>\n<p>\u0130ndi a\u015fa\u011f\u0131dak\u0131 proqram\u0131 n\u0259z\u0259rd\u0259n ke\u00e7ir\u0259k ki, malloc() \u00e7a\u011f\u0131r\u0131\u015f\u0131 il\u0259 yadda\u015f sah\u0259si ay\u0131r\u0131r. <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProqram bir ne\u00e7\u0259 \u015feyi edir. Birincisi, m\u00fc\u0259yy\u0259n bir miqdar yadda\u015f ay\u0131r\u0131r (s\u0259tir 7), sonra ayr\u0131lan h\u00fcceyr\u0259nin \u00fcnvan\u0131n\u0131 \u00e7\u0131xar\u0131r (s\u0259tir 9), ayr\u0131lan yadda\u015f\u0131n birinci slotuna s\u0131f\u0131r yaz\u0131r. Daha sonra proqram, \"p\" d\u0259yi\u015f\u0259nind\u0259ki \u00fcnvan \u00fczr\u0259 yadda\u015fda yaz\u0131lm\u0131\u015f d\u0259y\u0259ri art\u0131rd\u0131\u011f\u0131 bir d\u00f6vr\u0259y\u0259 daxildir. Eyni zamanda, proqram \u00f6z\u00fcn\u00fcn proses identifikatorunu da \u00e7\u0131xar\u0131r. <b>Prosesin identifikatoru h\u0259r bir i\u015f\u0259 sal\u0131nm\u0131\u015f proses \u00fc\u00e7\u00fcn unikald\u0131r<\/b>. Lakin bir ne\u00e7\u0259 n\u00fcsx\u0259 i\u015f\u0259 sald\u0131qda maraql\u0131 bir n\u0259tic\u0259y\u0259 rast g\u0259l\u0259c\u0259yik: Birinci halda, he\u00e7 bir \u015fey etm\u0259d\u0259n sad\u0259c\u0259 bir ne\u00e7\u0259 n\u00fcsx\u0259 i\u015f\u0259 sald\u0131qda, \u00fcnvanlar f\u0259rqli olacaq. Amma bu, bizim n\u0259z\u0259riyy\u0259miz\u0259 uy\u011fun g\u0259lmir! Do\u011frudur, \u00e7\u00fcnki m\u00fcasir distroslarda yadda\u015f\u0131n t\u0259sad\u00fcfi yerl\u0259\u015fdirilm\u0259si standart olaraq aktivdir. Onu deaktiv ets\u0259niz, g\u00f6zl\u0259nil\u0259n n\u0259tic\u0259ni alaca\u011f\u0131q \u2014 eyni zamanda \u00e7al\u0131\u015fan iki proqram\u0131n yadda\u015f \u00fcnvanlar\u0131 eynil\u0259\u015f\u0259c\u0259k. <\/p>\n<p><img decoding=\"async\" alt=\"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>N\u0259tic\u0259d\u0259, iki m\u00fcst\u0259qil proqram\u0131n \u00f6z\u0259l \u00fcnvan m\u0259kanlar\u0131 il\u0259 i\u015fl\u0259diyi ortaya \u00e7\u0131x\u0131r, ki bunlar \u00f6z n\u00f6vb\u0259sind\u0259 \u0259m\u0259liyyat sistemi t\u0259r\u0259find\u0259n fiziki yadda\u015fda \u015f\u0259kil al\u0131r.<\/b>. Buna g\u00f6r\u0259 d\u0259 bir proqram daxilind\u0259 yadda\u015f \u00fcnvanlar\u0131n\u0131n istifad\u0259si dig\u0259r proqramlara tamamil\u0259 t\u0259sir etm\u0259y\u0259c\u0259k v\u0259 h\u0259r bir proqrama, sanki \u00f6z\u00fcn\u0259 aid fiziki yadda\u015f par\u00e7as\u0131 varm\u0131\u015f kimi g\u00f6r\u00fcn\u0259c\u0259k. Lakin ger\u00e7\u0259k budur ki, fiziki yadda\u015f - payla\u015f\u0131lan bir resursdur v\u0259 onun idar\u0259 olunmas\u0131 \u0259m\u0259liyyat sistemi t\u0259r\u0259find\u0259n h\u0259yata ke\u00e7irilir.<\/p>\n<h3>Uy\u011funluq<\/h3>\n<p>\n\u018fm\u0259liyyat sisteml\u0259ri \u00e7\u0259r\u00e7iv\u0259sind\u0259ki vacib m\u00f6vzulardan biri d\u0259 <b>uy\u011funluq<\/b>d\u0131r. Bu termin, bir proqram daxilind\u0259 bir \u00e7ox \u015fey eyni anda i\u015fl\u0259dil\u0259rk\u0259n ortaya \u00e7\u0131xan sistemd\u0259ki probleml\u0259rl\u0259 \u0259laq\u0259dard\u0131r. Uy\u011funluq probleml\u0259ri h\u0259tta \u0259m\u0259liyyat sisteminin \u00f6z\u00fcnd\u0259 d\u0259 ba\u015f ver\u0259 bil\u0259r. Ke\u00e7mi\u015fd\u0259 yadda\u015f v\u0259 prosessor virtualizasiyas\u0131 n\u00fcmun\u0259l\u0259rind\u0259, \u0259m\u0259liyyat sisteminin eyni anda \u00e7ox sayda \u015feyi idar\u0259 etdiyini anlad\u0131q \u2013 ilk prosesi ba\u015flad\u0131r, sonra ikinci v\u0259 s. Bel\u0259 bir davran\u0131\u015f\u0131n b\u0259zi probleml\u0259r\u0259 s\u0259b\u0259b olaca\u011f\u0131n\u0131 qavramaq oldu. M\u0259s\u0259l\u0259n, m\u00fcasir \u00e7ox ipli proqramlar bel\u0259 \u00e7\u0259tinlikl\u0259rl\u0259 \u00fczl\u0259\u015fir.<\/p>\n<p>G\u0259lin a\u015fa\u011f\u0131dak\u0131 proqram\u0131 n\u0259z\u0259rd\u0259n ke\u00e7ir\u0259k:<\/p>\n<p> <img decoding=\"async\" alt=\"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProqram\u0131n \u0259sas funksiyas\u0131 iki iplik yarad\u0131r, istifad\u0259 ed\u0259r\u0259k <b>Pthread_create()<\/b>. Bu n\u00fcmun\u0259d\u0259 bir ipliyi dig\u0259r funksiyalardan ayr\u0131lm\u0131\u015f bir yadda\u015f m\u0259kan\u0131nda ba\u015flam\u0131\u015f bir funksiya kimi d\u00fc\u015f\u00fcnm\u0259k olar, burada eyni anda icra olunan funksiyalar\u0131n say\u0131 bir d\u0259n\u0259d\u0259n art\u0131qd\u0131r. Bu n\u00fcmun\u0259d\u0259 h\u0259r bir iplik ba\u015flay\u0131r v\u0259 <b>worker() funksiyas\u0131n\u0131 icra edir ki, bu da sad\u0259c\u0259 olaraq d\u0259yi\u015f\u0259ni art\u0131r\u0131r.<\/b>,.<\/p>\n<p>Bu proqram\u0131 1000 arqumenti il\u0259 i\u015f\u0259 salaq. Art\u0131q t\u0259xmin ed\u0259 bil\u0259c\u0259yiniz kimi, n\u0259tic\u0259 2000 olmal\u0131d\u0131r, \u00e7\u00fcnki h\u0259r bir iplik d\u0259yi\u015f\u0259ni 1000 d\u0259f\u0259 art\u0131r\u0131b. Lakin h\u0259r \u015fey bu q\u0259d\u0259r asan deyil. Proqram\u0131 t\u0259krarlama say\u0131 bir d\u0259r\u0259c\u0259 daha \u00e7ox olark\u0259n i\u015f\u0259 salma\u011fa \u00e7al\u0131\u015faq.<\/p>\n<p><img decoding=\"async\" alt=\"\u0130\u015fletim Sistemleri: \u00dc\u00e7 Kolay Par\u00e7a. B\u00f6l\u00fcm 1: Giri\u015f (\u00e7eviri)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u018fg\u0259r giri\u015f olaraq 100000 \u0259d\u0259dini ver\u0259rs\u0259k, \u00e7\u0131x\u0131\u015fda 200000 \u0259d\u0259dini g\u00f6rm\u0259yi g\u00f6zl\u0259yirik. Ancaq 100000 \u0259d\u0259dini bir ne\u00e7\u0259 d\u0259f\u0259 i\u015f\u0259 sald\u0131qda, yaln\u0131z d\u00fczg\u00fcn cavab\u0131 g\u00f6rm\u0259y\u0259c\u0259yik, h\u0259m d\u0259 f\u0259rqli yanl\u0131\u015f cavablar alaca\u011f\u0131q. Bu problemin a\u00e7ar\u0131 odur ki, \u0259d\u0259din art\u0131r\u0131lmas\u0131 \u00fc\u00e7\u00fcn \u00fc\u00e7 \u0259m\u0259liyyat t\u0259l\u0259b olunur - \u0259d\u0259din yadda\u015fdan \u00e7\u0131xar\u0131lmas\u0131, art\u0131r\u0131lmas\u0131 v\u0259 sonra \u0259d\u0259din yenid\u0259n yaz\u0131lmas\u0131. \u00c7\u00fcnki bu \u0259mrl\u0259r atomik \u015f\u0259kild\u0259 (ham\u0131s\u0131 eyni anda) yerin\u0259 yetirilmir, bel\u0259 q\u0259rib\u0259 \u015feyl\u0259r ba\u015f ver\u0259 bil\u0259r. Bu problem proqramla\u015fd\u0131rmada <b>race condition \u2014 yar\u0131\u015f v\u0259ziyy\u0259ti<\/b>adlan\u0131r. Nam\u0259lum q\u00fcvv\u0259l\u0259r nam\u0259lum bir anda siz\u0259 aid olan \u0259m\u0259liyyatlar\u0131n icras\u0131n\u0131 t\u0259sir ed\u0259 bil\u0259r.<br \/>\n<br \/>M\u0259nb\u0259: <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.\" \/>\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\/az\/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=\"az_AZ\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/az\/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\udd47\u018fm\u0259liyyat Sisteml\u0259ri: \u00dc\u00e7 Asan Par\u00e7a. 1-ci hiss\u0259: Giri\u015f (t\u0259rc\u00fcm\u0259) | ProHoster","description":"\u018fm\u0259liyyat sisteml\u0259rin\u0259 giri\u015f Salam, Habr! Siz\u0259 maraql\u0131 olan bir \u0259d\u0259biyyat\u0131n t\u0259rc\u00fcm\u0259l\u0259rind\u0259n ibar\u0259t bir m\u0259qal\u0259 seriyas\u0131n\u0131 t\u0259qdim etm\u0259k ist\u0259yir\u0259m - OSTEP.","canonical_url":"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"az_AZ","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.","og:url":"https:\/\/prohoster.info\/az\/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\/az\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}