GetCurrentThread() – аымды рдісті сипатын алу.

Синхрондау тсілдері мен рдістерді зара рекеттестігі

Бір рдіс екіншісіне деректерді жнелдіре алады, немесе бірнеше рдіс жалпыа орта файлдаы деректерді дей алады. Осылайша, рдістерді зара рекеттесуі ажетті жайт. Барлы жадайларда рдістерді кідірісі мен белсенділігі, реттілікті туындауы, ресурстарды блока тсуі мен босануы тсілдері арылы шешіле алатын рдістерді синхрондалу ахуалдары алыптасуы ытимал.

Мультибадарламаландыру тртібінде орындалып жатан рдістерді синхрондалу сауалдарын толыанды дрежеде ескермей ту – анаатсыз ызмет, тіпті жйені толытай лдырауына сотыруы ммкін. Мысала, файлдарды баспаа шыару бадарламасын (принт-сервер) арастырайы. Аталан бадарлама келіп тускен реттілігінде арнайы жалпыа орта файла тіркелеген барлы файлдарды баспаа шыарады. Барлы рдіс-клиенттерге жетерлік ерекше былмалы NEXT, оны сраныс файл станымдарыны файл атауын тіркеудегі алашы бос нмірі болады.рдіс-клиенттер аталан былмалымен танысып, оны сйкес сраныс файл станымдарына тіркеп, бірлікке NEXT маынасын осады. R рдісі андай да бір стте з файлын басылыма шыаруа бел буды делік, сол себепті ол маынасы мысала 4 те былмалы NEXT маынасымен танысты. рдіс аталан маынаны ескерсе де, орындалуы зіліске шырау себебінен (мысала, квант жойылуы салдарынан) файл атауын орнытыруа лгермеді. (например, в следствие исчерпания кванта). Файлды баспаа шыаруды кздеген S рдсі де былмалы NEXT маынасымен танысып, з файлыны атауын тртінші станыма орнытырып, былмалылыты маынасын бір бірлікке лайтты. Басару R рдісіне ретті берілген жадайда ол зіні орындалуын жаластыра отырып, алдыды итерация нтижесінде алынан бос станым маынасына сйкес S рдісі файлыны атауы стінен файл атауын 4 станыма тіркейді.

Сурет 1.Синхрондау ажеттілігіні мысалы

Осылайша, S рдісі з файлын шыарылан кйін круі екі талай.Синхрондауды ахуалды крделілігі – туындайтын жайтттарды реттіліксіздігі салдарынан болады. Аталан жадайда барлыы рдістерді жылдамдыы мен оларды арасындаы зіліспен аныталады. Сондытан да, зара атынасатын рдістерді тотату – крделі мінджеттіліктерді бірі болып табылады. Екі не одан да кп рдістер блісілген деректерді деп, аыры нтиже жарыс деп аталынатын рдістерді жылдамды атынастарына туелді келеді.

рдістерді синхрондаудаы маызды тсінік – бадарламаны критикалы секциясы. Критикалы секция – бл блісілген деректерге ол жеткізу орындалатын бадарламаны дербес блігі. андай да бір ресурстараарасты жарыс эффектісін болдырмау масатында бадарламаны рбір критикалы секциясында аталан ресурспен байланысты бір рдісті болуынамтамасыз ету ажет. Бл тсіл зара жойылым деп аталады.

зара жойылымды амтамасыздандыруды е арапайым дерлік тсілі – критикалы секцияда орныан рдіске барлы зілімдерді болдыртпауа бйры ету. Дегенмен аталан тсіл олайсыз, себебі жйені басару ыын ттыншылы рдіске сеніп-табыстауа болмайды; ол процессорды за уаыт бойына амтып алуы ытимал, ал критикалы секцияда рдісті лдырауы барысында зілістерге рсат етілмеу себебінен бтін жйе лдарауы ммкін.

Екінші тсіл – блоктаушы былмалыларды олдану тсілі.рбір блісілген ресурспен 1 маынасын иемденетін екілік былмалылы байланысады, егер де ресурс бос болса (еге де бір рдіс аталан рдіспен байланысты критикалы секцияда орныса), егер ресурс ызметте болса 0 маынасы белгіленеді.

Жоарыда келтірілген мысал синхрондауды таы да бір ахуалы - дедлок (deadlocks), клинчи (clinch) немесе тыырытар деп аталынатын зара блоктарды айаруа ыпал етеді. Жайттарды саралануы салдарынан екі рдіс бір-бірін зара блоктауы ммкін. рдіс жылдамдытарыны атынасына сйкес олар бір-брінен туелсіз блісілген ресурстарды олданыла алады (г), немесе блісілген ресурстара арасты реттілік алыптасыра алады (в), я болмаса бірін-бірі зара блоктауа абілетті келеді. екеуі де ресурстарды орта пайдалану салдарынан туындаса да, Тыырыты жадайларды арапайым реттіліктерден ажырата білуіміз ажет: рдіс кідіріп, ресурсты босауын ктеді. Дегенмен реттілік те – алыпты рдіс ретінде танылады. Ол, ресурс аталан жадайда ол жетекізу аясынан тыс боланда тауындап, кейіннен айтара іскеосылады.Тыыры, атауынан байаанымыздай, шешілімі жо есеп болып табылады.

Сурет 2.(a) принтер мен дискіні блетін А жне В бадарламаларыны кескіндері, (б) зара блок (клинч); (в) блісілген дискіге алыптасан реттілік, (г) ресцурстарды туелсіз олданылуы.

арастырылан мысалда (сурет 2.) тыыры екі рдіспен алыптасты, дегенмен бір-бірін зара блоктауа рдістерді біршама блігі атыса алады.

Тыыры ахуалдары з атарына келесі міндеттіліктерді осады:

  1. Тыырытарды айтару
  2. Тыырытарды анытау
  3. Тыырытан кейін жйені алпына келтіру

Тыырытар бадарлама орындауды алашы кезедерінде айтарылуы ммкін, яни бл дегеніміз бадарлама арапайымдылыымен ерекшеленіп, андай да бір тыырытарды туындауын болдырмауы ажет. Осылайша, алдыы мысалда А жне В рдістері ресурстарды бірдей реттілікте срастырса, онда тыырыты туындауы да ытимал. Тыырытарды болдырмауды екінші тсілі – динакалы деп аталып, рдістерге ресурстарды таайындау барысында андай да бір ережелерге сйемденуге негізделеді, яни ресурстар барлы рдістерге тн белгілі реттілікте блінуі ажет.

Ресурстарды анытау сызбалары мен ызметтегі ресурстара ол жтекізу сызбаларына негізделген формальды, бадарлалы-орындаушылы тсілдер баршылы. Аталан сызбаларды сараптамасы зара блоктарды анытауа ммкіндік береді.

Егер де тыырыты жадай толасы, туындай жатса, онда барлы блоктаы рдістерді орындалу тізбегінен ыыстыру міндет емес.Оларды тек жарты блігін ыыстыра аламыз, бл ретте баса рдістермен ктілетін ресуртар босасып, кейіннен кейбір рдстерді свопинг аймаына айтара аламыз, сондай-а бадарламаны алпына келтіруге ммкіндік беретін аыры нктеде рдістерді айтаруымыза болады. Аыры нктелер нтижесінде тыырытар туындауы ммкін жерлерде орныады.

Жолдар

рдістер жайында сз озай отырып, операционды жйе оларды жалпылыын олдайтынын ескере кеткеніміз жн: рбір рдісті зіндік виртуалды мекен-жай кеістігі болады, рбір рдіске зіндік ресурстар – файлдар, терезелер, семаофралар таайындалады. Мндай жалпылы рбір ресурс зара бсекелесуі кезінде бір рдісті екіншсінен орау шін ажетті. Кп жадайда рдістер бір компьютерді блісетінбірнеше ттынушыа тиесілі, жне же ОЖ рдістерарасындаы арама-айшылытарын шешуде арбитр рлін атарады.

Мультибадарламаландыру барысында жйені ткізгіштік асиеті жоарылайды, дегенмен рдіс бр бадарламалы жйеде орындаланнан жылдам орындалуы екі талай. Бір рдіс шегінде шешілетін мселе оны шешілуін жылдамдататын ішкі параллелизм асиетіне ие болады. Мысала есепті орындау барысында сырты рылыа атынас орнатылады,бл ретте рдісті орындалуын толытай блоктамай, рдістізге де тармаынан есептеу жргізуді жаластыруымыза болады.

Аталан масатта азіргі заманы ОЖ кпжолды деуді (multithreading) олданылады. Бл ретте жаа жол ымы (thread) енгізіледі.

Мультибадарламаландыру ендігіде жолдар дегейінде жзеге асады, ал рдіс шегінде жолдарды бірнеше дегейінде орындалатын есептер оны жеке бліктеріні псевдопараллельді орындалуымен жылдамдатылады. Кп жолдылыты блісілген осымшаларды орындау барысында олданыса енгізуімізге болады.

Бір рдіске ана арасты жолдар дстрлі кп міндетті жйе рдістеріндей бір-бірінен тым алша емес, оларды арасында тыыз байланыс орнату оай.

Жолдарды кейде жеілдетілген рдістер немесе мини-рдістер деп атайды. рбір жол ата реттілікпен орындалып, зіндік бадарламалы есепшоты мен стегін иемденеді. Жолдар рдістер іспеттес жол-рпатарын туындатып, бір жадайдан екіншісінежеіл ауыстырыла алады.Жолдар келесі жадайларды бірінде болуы ытимал: орындалу, кідіріс, дайын болу. Бір жол блокта болса, екіншісі ызметін жаластыра береді. Жолдар жоспарлауды трлі нсаларына сйкес процессорды рдістер іспеттес блістіреді.

Дегенмен бір рдіс шегіндегі трлі жолдар жекелеген рдітер сияты туелсіз емес.Барлы жолдар андай да бір белгілі мекен-жай кеістігіне ие. Бл дегеніміз, оларды бір ана жаанды былмалылар блістіреді. рбір жол рбір виртуалды мекен-жайа ол жеткізе алады, бір жол екіншісіні стекін олданыса енгізе алады. Жолдар арасында толыанды ораныс жо, сондытан да біріншіден ол ммкін емес, екіншіден ажетсіз де. Бір рдісті барлы жолдары бір ттынушыны жалпы есебін шешеді, ал жолдар аппараты есептеуді паралельдендіру арылу оны орындалуын жылдамдату масатында олданылады. Одан зге, мекен-жай кеістігін блістіру кезінде барлы жолдар ашы файлдар, таймерлер, сигналдар жиынтыын блістіреді.

Кп жолды деу жйені ызмет нтижелілігін кп міндетті деумен салыстыранда жоарлатады. Мысала, Windows кп міндетті ортасында бір уаытта электронды кесте мен мтіндікредактормен жмыс істеуімізге болады. Дегенмен, ттынушы жмыс параыны есептелуін срастыран жадайда электронды кесте уаытша блока тседі. Кп жолды ортада кесте кп жолды деуді ммкіншіліктерін ескерумін жасалса, мндай ахуалдарды туындауы екі талай жне де ттынушы аталан электронды кестеге ол жеткізе алады.

Операциялы жйелерді руды негізгі принциптері:

Кптеген принциптерді ішінен е маыздыларын атап крсетейік:

1 Модульдік принцип

2 Тадауды функционалды принципі

3 ОЖ генерациялау принципі

4 Артышылыты функционалды принципі

5 Виртуалдау принципі

6 Бадарламаларды сырты рылылардан туелсіздік принципі

7 йлесімділік принципі

8 Ашы жне сіп жетілдіретін ОЖ-ні принципі

9 Мобильдік принципі

10 Есептеуішті ауіпсіздігін амтамасыз ету принципі

Модульдік принципі

Модульді кбінесе жйені аяталан жне абылданан модуль арасындаы интерфейстерге сйкес орындалан функционалды элементі ретінде тсінедіреді. Модуль зіні анымасын бойынша берілген интерфейстер арылы оай ауысу ммкіндігін береді. Операциялы жйелерді рама бліктерін жекелеу дістері ртрлі болуы ммкін, біра функционалды белгілері бойынша ажыратылады.Жйелерді модульдерге бліну дегейі операциялы жйелерде олданылатын жобалау дісімен байланысты.

Операциялы жйені ру кезіндегі маызды модульдерге ерекше ыты, айта кіретін жне реентерабелді модульдер жатады, олар есептеуіш жйені ресурстарын тиімді пайдалануа ммкіндік береді.

Реентерабелдiктi табысы р трлi дiстермен жзеге асырылады. Кейбір жйелерде бадарламаларды реентерабельдігі автоматты трде алынады. рине, ол шін йлесімді аппаратты олдау ажет. Баса жадайларда бл арнайы жйелік модульдерді олданатын бадарламашылар кмегімен жзеге асады.

Модульдік принципі жйені технологиялы жне олданушылы асиетін крсетеді. Оны олданыунан лкен тиімділікті принцип операциялы жйеге, олданбалы бадарламаа жне аппаратураа бірдей таратыланда алуа болады.