сте сатау рылыларыны иерархиясы.

Есептеу машинасыны жадысы есте сатау рылыларыны (Е) бір-бірінен деректермен жмыс істеуді орташа уаытымен жне клемі мен бір байтты сатау ныдыы бойынша згеше болатын иерархияны береді (10-бет). Есте сатау рылыларыны бл пирамидасыны табаны сырты жады болып табылады (атты диск). йткені ол те лкен клемді амтиды (ондаан жне жздеген гигабайттар), біра мндаы деректермен жмыс істеу уаыты айтарлытай жылдам емес. Дискіге атынас жасау уаыты миллисекундтармен лшенеді.

Келесі сатыда барынша тез жмыс істейтін (атынасу уаыты шамамен 10-20 наносекунда те) жне кішірек клемдегі (ондаан мегабайттн бірнеше гигабайта дейін) динамикалы DRAM жадылары негізіндегі оперативті жады орналасады.

Тез атынасуды ажет ететін деректерді сатау шін барынша тез жылдам жмыс істейтін ыайлы SRAM статикалы жадылар олданылады. Оларды клемі ондаан килобайттан жздеген килобайта дейін райды, ал деректерге атынасу уаыты детте 8 нс-тен аспайды.

Пиирамиданы е тбесіне деректерді аралы сатауа ажет болатын процессорды ішкі регистрлері орналасады. Регитрлерді жалпы клемі ондаан байттарды райды, ал жылдамдыы процессерді шапшадыымен аныталады жне азіргі тада шамамен 2-3 нс-ті райды.

1 байтты сатау ны

Сырты жады

Оперативті жады

(DRAM негізінде)

Жылдам жмыс істейтін жады (SRAM негізінде)

Процессор регистерлері

Клем

атынасу уаыты

Ондаан гигабайт

Ондаан мегабайт

Ондаан-жздеген килобайт

Ондаан байт

-2-3 нс

-5-8 нс

-10-20 нс

Ондаан мс

Сурет 10.Есте сатау рылыларыны иерархиясы

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

ТАЫРЫП 9. ТАПСЫРМАНЫ РУ ЖНЕ

ОТЛАДКА РАЛЫ

Масаты:Тапсырманы ру жне отладка ралыны тсілдері мен ерекшеліктерін арастыру

Кілттік сздер:трансляция, трансляторлар, интерпретатор, компилятор, машиналы код, машиналы команда, модуль, нскау, хабарлар, символ, дегей, бадарламалы тілдер

Дріс жоспары (1 саат)

  1. Тапсырмаларды жктеу, трансляция, компоновка.
  2. Бадарламалау тілдері мен орталары.
  3. Екілік, объектілік жне орындалу файлдарыны пішімдері.
  4. ELF стандарты жне a.out жне COFF форматтары.
  5. Жктеушіні олдану. Бапталатын жктеуші алгоритмі.

Паскаль тілінде жазылан бадарлама компьютерге тсініксіз боландытан, оны машина тіліне аудару керек болады. Бадарламалау тілінен машина кодтарына аудару рдісі трансляция (translation – аудару) деп аталады, ал аудару арнайы трансляторлар деп аталатын бадарламалар арылы орындалады.Трансляторлар екі трі:

  1. интерпретаторлар,
  2. компиляторлар

Интерпретатор деп берілген бадарламаны р операторын деп, орындайтын трансляторды атайды. Интерпретатормен жмыс істеу кезінде процессор оны прогрпммалау тілдерінен аударан кезекті р операторын бірден орындайды. Компилятор алдымен бадарламаны синтаксисін тексеріп,бадарламада жіберілген синтаксистік ателерді хабарлайды.Олар жнделген со жктеуші деп аталатын бадарламасын іске осады, ол алдымен бадарламаны машиналы тілге жуы обьектілік бадарлама деп аталатын аралы бадарламаа трлендіріп шыады. Одан рі байланыстар редакторы деп аталатын бадарлама іске осылып,ол обьектілік бадарламаа бадарламалау тілі ішінде арнайы дайындалан кітапханалы процедуралардан ажетті стандартты процедуралар мен функцияларды осады. Осыдан кейін бадарлама дайын болады да,ол бірден орындалады.лкен ЭЕМ дер компилятормен жабдыталан, ІВМ РС ге йлесімді дербес компьютерді екеуімен де жмыс істеу ммкіндіктері бар.

Компилятор (compiler; compiling programm — компиляциялаушы бадарлама) —

1) жоары дегейлі бадарламалау тілінде жазылан алашы бадарламаны машиналы тілге (алгоритмдік тілдер, тсіндіргіш, аударыш) трлендіруді орындайтын компьютерді жалпы математикалы жасатамасыны рамды блігі. Компилятор екі бліктен трады: бірінші блігі — бадарламалаушыны бадарламаны жазуы шін пайдаланылатын алашы тіл, екіншісі — Объектілік бадарламаны машиналы тілде жазатын аударыш. андай да бір жоары дегейлі тіл шін к. Жо болан жадайда пайдаланылатын тілді командаларын наты компьютер шін аударатын жне оларды орындалуын жасатайтын тсідіргіш даярланады;

2) жоары дегейлі тілде „жазылан бадарламаны машиналы кода трлендіруші аударыш. Бл сз "compile" етістігінен рылан, ”растыру” деген маына береді. Бл етістікті компьютерлік маынасы «машиналы кода аудару, ал жалпы тілдік маынасы — "материал жинау, есеп-исап, анытама даярлау";

3) барлы бадарламаларды оларды орындалуынсыз машиналы командаа аударатын аударыш. Компиляторды жмыс істеуіні нтижесінде орындалуа дайын емес жеке модульдер даярланады. Бадарламаны орындалуы шін бірнеше объектілік модулдер катынасатын жктемелік (орындалатын) модуль ру ажет;

4) бадарламалы модулдерді растыруды орындайтын бадарлама-аударыш. Компиляторды тсіндіргіштен айырмашылыы — жоары дегейлі бадарламалау тіліндегі бадарламаны машиналы тілдегі бадарламаа немесе машиналы тілге жуы бадарламаа трлендіреді, біра оны орындалуына атыспайды. Компиляторды кірісіне тскен алашы модуль компиляциядан кейін объектілік модулге трленеді. Компилятор бадарламалау жйесіні ажырамас блігі.

Компиляторды трлері:

  1. алашы бадарламаны рбір жеке операторын тізбектік туелсіз растыруды жзеге асыратын тсініктеме беруші компилятор;
  2. объектілік бадарламаны тиімділігін арттыратын отайландырушы компилятор; мысалы, циклдар айталанан кезде рекетті нтижесі згермейтін командаларды циклдан шыару;
  3. пайдаланушыа бадарламаны жндеуді жеілдететін жндеуіш компилятор

Сурет 1. Транслятор

Бадарламалау тілдері мен орталары:

Бадарламалау тілі (орыс. язык программирования; гр. programme - нскау, хабарлау) — хабарларды есептеуіш машиналарды кмегімен срыптайтын жасанды тілдер тобы. Бадарламалы тілдерде символдарды бірізділікпен деуге ажет мтіндер алды ала жазылып кояды, мтіндерді бйрыты тапсырма деп арауа болады. Семантикалы шарттары бойынша мтіндер мынадай дегейлерде срыпталады: дербес маынасы жо ліпби табалары; шаын тіл бірліктеріні екі жаты атаулары; маынасы бйрык трінде емес атауларды осындысы білдіретін сйлемшелер; белгілі рекетті білдіретін (бйры маынасында) синтаксистік рылымдардан тратын операторлар таы баса.

Бадарламалы тілдерді зіне т сипаты —символды, сздік, сйлемдік, мтіндік дегейлерді аражігі белгісіздігінде мтіндерді жазып, ЭЕМ-ге енгізуде ондаы жетімсіздік баска символдармен толытырылады. Мысалы, (СОТО сйлемшесі бір символ, бір сз немесе бір сйлем болып есептелуі ммкін. Бадарламалы тілдер олданылу трысынан екіге блінеді:

алгоритмдік р трлі типтерді алдын ала жазуа болатын универсалдык бадарламалы тілдер жне нерлым шаын масатты жмыстара (модель жасау, мтінді автомат деу, белгілі бір процесті басару) арналан мамандандырылан бадарламалы тілдер. Блардын ішінде ЭЕМ-мен пайдаланушыны арым-атынасын дамытуда диалогтік бадарламалы тілдер манызды орын алады. Бадарламалы тілдерді дамуы оларды дегейін ктеру, адам мен машинаны арым-атынас рдісін женілдету, бадарламаларды тиімділігін арттыру арылы іске асырылып отырады. 20 асыр 70 жылдары бадарламалы тілдерді жалпы саны 1 мыа жаындады. Ен жиі олданылатын, дегейі жоары тілдік бадарламалар: фортран, кобол, ПЛ/1, алгол, бейсик, паскаль, мектепте кетараан — лого тілі.

 

БАДАРЛАМАЛАУ ТІЛІ, бадарламалау тілі — мліметті (деректі, апаратты) жне оларды алгоритмін (бадарламасын) ЭЕМ-де деуге арналан формальды (жасанды) тіл. Бадармалау тіліні негізін алгоритмдік тіл райды. Алашы Бадармалау тілі ішкі машиналы тіл болып есептеледі. азіргі Бадармалау тілі машиналы-бадарланан, процедуралы-бадарланан жне проблемалы-бадарланан тілдер болып ажыратылады. Машиналы-бадарланан Бадармалау тілі зіні мліметте-ріні трі мен алгоритміні рылуы бойынша белгілі бір ЭЕМ-ні (не ЭЕМ класыны) рылымын бейнелейді. Мны стіне оны бадарламалау рдісін жеілдету жне

автоматтандыру сияты ерекшеліктері бар. Ол машиналы тілге жаын тіл. Машиналы-бадарланан бадармалау тіліне автокод, алмо, эпсилон, т.б. тілдер жатады.

ELF - standard

Оффшорлы ксiпорындар шiн йреншiктi саудалы есепке алу бадарламасы.

Сурет 2. ELF – standardтыны терезесі

a.out жне COFF форматтары

Coff— мрагер алып.(Common Object File Format ) COFF алып айтарлытай болады алыпты жетiлдiрiлген жне аятап iстелген болжамын a.out. Ол UNIX-тi лемiнде жайылан, сол сияты Windows NT мысалы, деулер (коммерциялы емес) еркiн орталармен, DJGPP.осымшаларды деуi шiн олданылады жне С жне С/Н пен.

Егер компиляторлар шаыру параметрi барса f - болса онда СOFFты алыбында объектiнi файлы шыуын аламыз.

ТАЫРЫП 10. LINUX ОЖ ДРАЙВЕРЛЕРДІ ЖОБАЛАУ

ЖНЕ ІСКЕ АСЫРУ

Масаты:LINUX ОЖ драйверлерді жобалау жне іске асыруын талдау

Кілттік сздер: командалы жол, ядро, бастапы код, графикалы кеейтілу, терезе, бума, файлды жйе, параметр, журнал

Дріс жоспары (1 саат)

  1. Linux ОЖ модулдерді (компиляция, орнату, жою) кімшілік-тендіру.
  2. Linux ОЖ драйверінде file_operations рылымы, драйвермен орындалатын негізгі функциялар.
  3. Драйверлерді растыру ралдары. Linux ОЖ арнайы файлдары, оларды ру жне олдану.
  4. Жргізуші жне минорлы сандар.

Linux жедел даму стіндегі рі сенімді о.ж. Linux-ті негізін Линус Тровалдьс (Linus Trovalds) 1991 жылы Unix-ке сйене отырып,оны ашы кодты версиясы ретінде алыптастырды. Линус Тровалдьс Хельсинк университетінде оып жрген кезіде Unix-ті жаа версиясын жасауда кптеген бадарламалаушытерді олдауын табады.Бл олдауды нтижесінде Linux атты жаа о.ж пайда болады.

Linux операциялы жйесіні негізгі тсініктері

  1. Free Software – еркін бадарламалы амтама (ЕБ), оны еркін олданып жне таратуа рсат ететін еркін лицензияларды біреуі аясында таратылады.
  2. Open Source – бастапы кодтары ашы бадарламалы амтама не ашы бадарламалы амтама.
  3. GNU/Linux – Linux ядросына негізделген операциялы жйесіні атауы. Кбінесе осы сз тіркесіні бірінші блігі айтылмайды, тек Linux (Линукс) деп айтылады. GNU/Linux рамасы – ядро, командалы ндеуіш жне бадарламалы амтаманы жинаы.
  4. Дистрибутив – бадарламалы амтаманы (операциялы жйелер де) таратылу трі, рамында осы операциялы жйені орнатышы мен минималды бадарламалар жинаы болады. Linux дистрибутивтеріні мысалдары: Ubuntu, Debian, Slackware, openSUSE, Archlinux, т.б.
  5. Консоль (командалы жол) – негізі, ол – операциялы жйені мтіндік крінісі, трі. Мтіндік командаларды енгізу-шыару ралы. GNU/Linux жйелерінде командалы жол деп кбінесе Bash командалы деуіші жне оны графикалы кеейтуі (Xterm, Gnome-terminal) аталады.
  6. Root (суперпайдаланушы) – GNU/Linux жйелерінде шектеусіз кімшілік ыы бар пайдаланушысы.
  7. GUI (аылш. «graphical user interface») – пайдаланушыны графикалы интерфейсі. Яни, терезелер, панельдер, батырмалар мен т.с.с.
  8. Window Manager – терезелерді орналасуын мен оларды рекеттерін басарады. Мысалы, Compiz – графиалы эффектілерді сынады.
  9. Desktop Environment – жмыс стеліні ортасы, негізгі ші трі бар: KDE, GNOME, XFCE. рамында бадарламалар жинаы болуы ммкін. Мысалы, мтіндік редактор ретінде Gnome ішінде gedit, ал KDE ішінде Kwrite болып келеді.
  10. Скрипт – командалы деуіш орындайтын командалар жазылан файл. Мысалы, командалар тізімін айта-айта тере бермеу шін оны скриптке жинауа болады
  11. Десте – бадарламалы амтама файлы, рамында бадарламаны зі, осымша мліметтер болады (лицензия мтіні, мысала). Десте атауы детте стандартты болады, бадарлама аты, нсасы, архитектурасы крсетіледі. Сонымен атар, Linux лемінде олданатын дестелер тріне сйкес дистрибутивтер екі лкен топа блінеді. Е кп тараландары deb жне rpm дестелер трлері.
  12. Дестелер менеджері – Б дестелерін басаруа арналан бадарлама. Бадарлама дестелерін іздеу, орнату, шіру, жаарту мен т.с.с. рекеттерді орындайды Мысалы: dpkg, rpm. Archlinux шін дестелер менеджері – pacman.
  13. Репозиторий – Б дестелері орналасатын жер. Ол интернеттегі серверде, жергілікті компьютерде, не компакт-дисктерде орналасуы ммкін. Репозиторийден дестелер менеджері дестелер туралы апаратты оып, оларды жктеп ала алады.
  14. Бастапы код – бадарламаны «шикі» трі, яни, бадарламалау тілінде жазылан код файлдары мен осымша рама (суреттер, жаттама, т.с.с.). Бадарлама осы трінде пайдасыз, олдану шін оны «жинау» керек, бл рдіс компиляция деп аталады.

Linux-ты файлды жйесі

Linux- та тбірлік бума ыса жне нса да — «/» деп белгіленеді. Барлы алан бумаларды толы аттары (жолдары) «/» белгісі мен оан о жаынан осылан тізбектей бірінін ішіне бірі салынан бумалар аттарынан трады. Жолдаы бумалар да «/» («слэш») табасымен ажыратылады. Мысалы, /home жазбасы тбірлік бумада орналасан («/») «home» бумасын анытайды, ал /home/user — «user» бумасы «home» бумасында орналасанын крсетеді.

Тіркеу — бл файлды жйені бір бумасына баса блек бтін файлды жйені осу рекеті. Тіркеу шін бос бума керек – ол тіркелу нктесі деп аталады. Тіркелу нктесі ролін кез-келген бос бума атара алады – ол жаынан Linux-та ешандай шектеулер жо. Mount командасыны кмегімен біз буманы ішінде осындай жерде орналасан файлды жйені крсету керек екенін білеміз. Осы рекеттен кейін бума ішінде (тіркелу нктесінде) сйкес тіркелген файлды жйесіні файлдары мен бумалары крсетіле бастайды.

Linux шін е маызды тбірлік файлды жйе (root filesystem) болып келеді. Баса рылылардаы барлы файлды жйелер оан осылады (тіркеледі). Назар аударыыз, тбірлік буманы зі де тіркеледі, біра баса файлды жйеге емес, «Linux-ты зіне», тіркелу нктесіні ролін «/» атарады (тбірлік бума). Сондытан жйе осылан кезде тбірлік бума е бірінші болып тіркеледі, ал жйе сндірілген кезде соы болып тіркеуден босатылады.

Linux-жйесіні тбірлік бумасында детте аттары стандартты ішкі бумалар орналасады. Одан рі, аттарына оса, оларды рамасыны трлері де стандартпен шектеледі. Бл стандарт балы Linux-жйелерінде саталады, сол шін сіз р Linux-та /etc, /home, /usr/bin т.с.с. тауып, олардаы рамасыны трін кбінесе болжай аласыз. Файлдарды стандартты орналасуы адамы жне бадарламаа жйені белгілі бір блігін айдан іздеу керек екенін анытауды ммкін ылады. Пайдаланушы шін осындай жадай кез-келген Linux жйесінде керек нрсені таба алатынын крсетеді.

Тіркеу параметрлері

Тіркеу рекетін орындаан кезде, Linux-жйесін орнату шін тіркеу бумасын тадау жадайын оса, тіркелген файлды жйені асиеттерін згертуге болады. Ол шін mount утилитасына бір немесе бірнеше параметр крсету керек. Барлы файлды жйелер олдайтын бірнеше параметрлер бар, сонымен атар кейбір файлды жйелерде тек здеріне тн тіркеу параметрлері болады. Тіркеу параметрлері туралы кбірек mount утилитасыны дістемесінде оуа болады (mount(8)).

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

Linux-ты жмысы шін керек баптауларды барлыын (файлдарды барлы керек трлері мен атрибуттарды, соны ішінде рсат ытарын сатауды) олдайтын файлды жйелерді бірнеше трі бар:

Ext2/3

Файлды жйені осы трі Linux шін арнайы жасалып, Linux-жйелерді кбінде олданылады. Ext3 пен Ext2 айырмашылыы, біріншісі кейін шыып, рамында журналдау олдауы бар. алан асиеттері бойынша осы екі файлды жйе бірдей, жне бір-бірне оай айналдырылады. Сенімділігі жоары болан со детте журналдауы бар нсасы (Ext3) тадалады. Диск рекеттер белсенділігі жоары болан кезде Ext3 файлды жйені німділігі тмендейді жне жйеге тсетін орташа жктелу артады (Load Average).

ReiserFS

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

XFS

Бл файлды жйе здіксіз жазылатын не рамасы згертілетін лкен жне те лкен файлдарды сатауа арналан. Ext3 сияты німділігі нашар емес, біра оны олданан кезде электрорегі кенет шірілсе, файлдарды рамасын жоалту аупі бар (ауіпсіздік салдарынан осындай кезде файлды рамасын нлдеу олданылады). здіксіз орек кзіне (UPS) осылан компьютерлерде олдануа сынылады.

SWAPFS

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

 

JFS
IBM компаниясы осы файлды жйесін жктелуі лкен серверлер шін жасаан: жасау кезінде німділік пен сенімділікке назар аударылан, жне ойылан масаттара жетті. Журналдауы бар.

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

ТАЫРЫП 11. КПАЫНДЫ БАДАРЛАМАЛАУ

Масаты:Кпаынды бадарламалауды ерекшеліктеріне талдау жасау

Кілттік сздер: аын, синхронизация, блокировка, модель, ядро, біраынды рдіс, кпаынды рдіс, мултипроцессорлы архитектура

Дріс жоспары (1 саат)

  1. Sun фирмасыны API орындалу аындары жне POSIX анытамасы.
  2. Орындалу аындары синхронизациясы: зара шектеуші баттар, шартты айнымалылар, барьерлер, оу-жазуды баттау (блокировка).

Бл дрісте аын жне кпаынды орындалу тсініктері; кпаынды модельдер; ядроларды аындары жне олданушылы аындар; "Эльбрусе", Solaris, Linux, POSIX, Windows 2000, Java аындары туралы арастырылан.

Кпаынды- бл курсты маызды жне ызыты таырыптарыны бірі. Бл таырыпты маыздылыы кпядролы процессорларды пайда болуымен байланысты. Дрісте мынандай сратар арастырылан:

Біраынды жне кпаынды рдістер

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

Біртіндеп орындалатын (біраынды) рдіс- бл оны командалар есептеуiшiнi згерiсін сипаттайтын бір басару аыны (control flow) болытын рдіс. Аын (thread ) - параллелді орындалатын ерекше рдіс.Ол ата-аналы рдісті адрестік кеістігінде орындалады.

Сурет.1 Біраынды жне кпаынды рдіс

Схемада бір аынды рдіс зі жмыс істейтін негізгі жады мен файлдарды кодын олданады. рдіс сонымен атар процедураларда орындалатын регистрлерді жне стектерді олданады. Кпаынды рдіс біршама крделі йымдастырылан. Ол кез-келген ОЖ шiн з стегiн ратын жне регистрлердi мнiн меншiктi сатайтын бiрнеше параллел аындардан трады. Аындар жалпы негізгі жадыда жмыс істейді жне ата-аналы рдістер олданатын адрестік кеістікте пайдаланады, сонымен атар рдіс жне файл кодтарын бледі.

Кпаындыты артышылытары:

  1. Жылдамдыты артуы ( арапайым рдістермен салыстыранда)Кпаындылы виртуалды жадыны жалпы кеістігінде орындалатын жеілдетілген рдістерді(lightweight processes)олдануа негізделген. Кпаындалыты арасындаUNIX ОЖ-ге тн тиімді емес жадайлар болмайды.рбір shell командасы жеке рдіс ретінде зіні жеке адрестік кеістігінде орындалады.Жеілдетілген рдістерге арама арсы рдістерді ауырсалматы (heavyweight) рдістер деп атайды.
  2. Жалпы ресурстарды олдау.Бір рдісті аындары жалпы жады мен файлды олданады.
  3. немдеу.Кпаындыты арысында жадыны немдеуге болады.Сонымен атар арапайым рдіске араанда контекстерді жеілдетілген рдістерге ауыстыру шін ажет стектерді алмастыру жне регистрлерді мнін алпына келтіру тез орындалады.

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

Кпаындылыты тарихы

Кпаындылыты олдануды алашы шарттары 1970-ші жылдарда кеестік компьютерлік аппаратураны растырушылар мен бадарламашылар кмегімен жасалан. 1979 жылы рылан "Эльбрус-1" аппаратурасында жне операциялы жйеде рдісті тиімді тжырымдамасын олданды. "Эльбрусе" рдісінде кбінесе зіні стектерімен сипатталды. "Эльбрусе" рдісінде баса рдістер болмаандытан виртуалды жадыны жалпы кеістігінде орындалады жне жеілдетілген рдістер болады.

Кпаындылыты тжырымдамасы 1980 жылдары UNIX операциялы жйесінде жне оны диалектерінде алыптаса бастады. Кпаындылыты дамуы AT&T фирмасындаы UNIX диалектісінде болды, оны негізінде Solaris жйесі рылды. Бны барлыы POSIX стандартында UNIX-ті негізгі ммкіндіктерімен крсетілді.

1990 жылдарды ортасында кпаындылы осылан ОС Windows NT шыарылды.

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

Спецификацияны ерекшеліктеріне жне р трлі жйелерде кпаындылыты іске осылу себептеріне байланысты Бьярн Страуструп зі ран C++ тіліне кпаындылыты оспады, біра оны кітапханасыны базалы негізін рады. С++тіліндегі бадарламашылар наты операциялы жйелерді кітапханасында жне жйелік шаыртулар дегейінде олданды.

1995 жылдары шыарылан Java жне Java-технологиясыны авторлары маызды ала адам жасады. Java-да алаш рет кпаындылы базалы кітапханалар жне тілді конструкторлы дегейінде іске асырылды. Java-да арнайы дістер жне тілді конструкциясы трінде сынылан аын жне операция -Thread классы енгізілген.

2000 жылы пайда болан NET платформасы Java идеясын дамытушы механизмін сынды.

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

олданушылы аын жне ядроларды аындары

Кпаындылыты моделі. Операциялы жйеде кпаындылыты іске асуы бірнеше абстракцияны дегейлерінен трады. олданушыны кзарасы бойынша оны бадарламасын басару олданушылы дегей аындарыны кітапханасы (user threads)арылы жзеге асады. Наты операциялар жайлы кейінірек арастырамыз. азір аындарды олданушылы дегейлеріндегі моделдерін арастырамыз:

POSIX Pthreads –POSIX стандартымен спецификацияланан аындар жне POSIX осымшаларында олданылады.

Mac C-threads–MacOS жйесіндегі олданушылы аындар;

Solaris threads–Solaris операциялы жйесіндегі олданушылы аындар.

олданушыы аындар крсетілетін тмен дегейлі аындар- ядро аыны (kernel threads)деп аталады. Олар операциялы жйены ядро дегейінде олданылады. ртрлі операциялы жйелерде олданушылы аындарды жйеде бейнеленуі р трлі. Мысалы, келесі операциялы жйелерде зіні спецификациясымен ядро аыныны моделдері іске сады:

  1. Windows 95/98/NT/2000/XP/2003/2008/7;
  2. Solaris;
  3. Tru64 UNIX;
  4. BeOS;
  5. Linux.

Кп дегейлікті бірнеше моделдері бар- ядро аынында олданушылы аындарды бейнелеу тсілдері. Кпаындылыты келесі моделдері орындалуы ммкін:

- кп/ бір моделі (many-to-one)– бірнеше олданушылы аындарды ядроны аындарды біреуінде крсетіледі. Бл модель кп жйелік аындары жо операциялы жйелерде оданылады.

Аталан модель келесі суретте крсетілген.


Сурет 2. Кпаындылыты «кп/бір» моделіні схемасы

- бір/бір моделі – рбр аныталаан ядро аынында олданушылы аынды біресепті кресетілуі. Осы модельді олданатын операциялы жйелер:Windows 95/98/NT/2000/XP/2003/2008/7; OS/2.

Аталан модель келесі суретте крсетілген


Сурет 3.Кпаындылыты « бір/бір» моделіні схемасы

- Кп/кп моделі (many-to-many)– бірнеше олданушылы аындарды бірнеше жйелік аындарда крсетеді. Бндай модель операциялы жйеде кп жйелік аындарды рады. Аталан моделді олданатын операциялы жйелерге мысал: Solaris, Windows NT / 2000 / XP / 2003 / 2008 / 7 ThreadFiber пакеттерімен

Бл модель Сурет 4-те крсетілген


Сурет 4.Кпаындылыты «кп/кп» моделіні схемасы

Кпаындылыты мселесі

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

fork() жне exec()жйелік шаыртуларды семантикасы. Классикалы UNIX операциялы жйесінде fork жйелік шаыртуы зіні адрестік кеістігі бар ауырсалматы рдіс рады. Біра, тменнен жоарыа арай бадарламаларды сйкестігін олдау масатында осы семантиканы сатау ажет, ал кпаынды болса, жаа жйелік шаырту кмегімен енгізіледі.

Аындар жмысын тотату.Маызды мселелерді бірі аындар жмысын тотату болып табылады. Мысалы: Егер ата-аналы аын тоатылса, оан туелді аын тотытылу ажет пе? Егер бірнеше аынды ратын стандартты аын тотатылса, оны барлы аындары тотатылу керек пе? Осы сратарды жауабы барлы операциялы жйелерде ртрлі.

игналдарды деу.UNIX операциялы жйесіні сигналы- ателік жадайларындаы тмендегейлі механизмдерді деу. Сигналдара мысал: SIGSEGV- сегментті бзылуы, SIGKILL- kill командасын орындау жне жою рдісіні сигналы.

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

Кп жадайларда бл сра былай шешіледі: сигналгенерацияланан аын арылы деледі жне осы аынны орындалуына сер етеді.

азіргі кездегі объектілі-баытталан операциялы жйелерде сигнал тжырымдамасы жоары дегейлі ерекшелік (исключения) (exception)тжырымдамасымен алмастырылан. Ерекшелік тртіп бойынша аындарды стегімен таралады. Ерекшелікті деуді састы моделі Java жне .NET жзеге асырылан.

Аындар топтары.Мысалы мынандай крделі есептерде : ртрлі аындар анында моделдеу есебініні рылымдау жне аындар тобыны тжырымдамасын ажет етеді. Аындар тобы- топты операциялары аныталан жне аты бар аындарды жиыны. Аындарды тобы алаш рет Java-да іске осылан. NET-те аындарды пулын (ThreadPool)тиімді осылуын атап ту ажет.

Аындарды жергілікті деректері (thread-local storage - TLS)-бір ана аына тн жне осы аында олданылатын деректер. Осы деректерді кпаындылыта ажеттілігі – крделі есепті шешетін параллелді дісті бірі, онда рбір аын берілген блікті шешуде жмыс істейді. азіргі операциялы жйелер жне платфорламаларды барлыы аындар деркетіріні жергілікті тжырымдамасын олдайды.

Аындарды синхрондау. Барлы аындар рдістер сияты жалпы ресурстарды олдана алады жне жалпы оиаа сер етеді.

Тыыры (тыыры) жне оларды жою жолдары.Аындар рдістер сияты бір-бірін баттай( блокровка) алады.

POSIX (Pthreads) аындары

Кпаындылыты наты моделі ретіндеPOSIX аынын арастырамыз. POSIX-тегі кпаындылы аындарды ратын жне синхрондауа арналан API –ді сипаттайтын IEEE 1003.1c стандартымен спецификацияланан. POSIX стандарты аындарды кітапхана тртібін анытайды.

Аындарды іске осу авторды алауынша POSIX сйкестік кітапханасын тадауымен жзеге асады. POSIX аындары UNIX операциялы жйесінде ке таралан жне Solaris жне Windows NT операциялы жйелерінде де олданылады.

POSIX стандарты аындар шін деректерді екі типін анытайды: