К оммутатор ды пайдалану мысалы 8 страница



 


Әрбір үрдістің виртуалды адрестік кеңістіктері берілген жүйе үшін фикисрленген тең көлемді бірдей виртуалды беттер деп аталатын бөліктерге бөлінеді. Жалпы жағдайда үрдістің виртуалды адрестік кеңістігінің көлемі беттің көлемінен кіші болмайды, сондықтан әрбір үрдістің соңғы беті фиктивті облыспен толықтырылады. Машинаның барлық оперативті жадысы да сол сияқты көлемдегі физикалық беттер деп аталатын бөліктерге бөлінеді. Беттің көлемі екілік деңгеймен тең алынады: 512, 1024, 4096 байт т.б. бұл адрестерді түрлендіру механизмін қарапайым ету үшін қажет.

Үрдістің құрылуы барысында операциялық жүйе оперативті жадыға оның бірнеше виртуалды беттерін жүктейді (кодтық сегмент пен деректер сегменттінің бастапқы беттері). Барлық виртуалды адрестік кеіңстіктердің көшірмесі дискіде сақталады. Сыбайлас виртуалды беттердің сыбайлас физикалық беттерде орналасуы міндетті емес. Әр процесс үшін операциялық жүйе үрдістің барлық виртуалды беттері жайлы жазуды қамтитын ақпаратты құрылым – беттер кестесін құрады.

Беттің дескрипторы деп аталатын кесте жазуы келесі ақпараттарды қамтиды:

- Берілген виртуалды бет жүйктелеген физикалық беттің нөмірін;

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

Жадының бөлінбелі сегменттері

Виртуалды жадының жүйеасты жүйесі жадының бір сегментінде бірнеше жадының бірге жұмыс істеу мүмкіндігін беретін қолайлы механизмді ұсынады. Ол жады бұл жағдайда бөлінбелі жады деп аталады.

Операциялық жүйенің негізгі мақсаттырының бірі бір процесс орындалып жатқан жадының облысына басқа үрдістің жүктелуін болдырмау болғанымен, жадының белгілі бір облысына бірнеше үрдістерді жүктеу кейбір жағдайларда пайдалы боп табылады екен. Мысалы, бірнеше қолданушы бір уақытта белгілі бір текстік редактормен жұмыс істеп отырған жағдайда, оның кодын оперативті жадыға қайта-қайта жүктей беру тиімді емес. Барлық қолданушыға қызмет көрсететін кодтың тек бір ғана көшірмесін жүктеп қою әлдеқайда үнемді (бұл үшін редактор коды рентерабельді болуы шарт). Редактордың деректері сегментінің жадыда тек бір ғана экземплярда бола алмайтыны анық. Әр қолданушы үшін рекдактирленетін мәтін мен редактордың басқада айнымалыларының мәні сақталатын сегменттің көшірмесі құрылуы тиіс.

Бөлінбелі жадының қолданылуының басқа бір мысалына оның процессаралық деретермен алмасу буфері ретінде қолданылуын келтіруге болады. Бұл жағдайда бір процесс бөлінбелі облысқа енгізіп жатса, енді бір процесс одан оқып жатады.

Виртуалды адрестің жүйеасты жүйесі бар болған жағдайда бөлінбелі сегментті ұйымдастыру үшін оны (жүйеасты жүйесін) берілген сегментке енуі тиіс әр үрдістің виртуалды адрестік кеңістігіне орналастырып, одан кейін бұл виртуалды сегменттерді бейнелеу параметрлерін олар оперативті жадының белгілі бір жалғыз облысына сәйкес келетіндей етіп баптау жеткілікті. Мұндай баптаудың кей бөліктері операциялық жүйеде қолданылатын виртуалды жадының моделіне байланысты (сегментті немесе сегментті-бетті. Таза беттік модель «сегмент» ұғымын қабылдамайды, сондықтан қарастырылып отырған есептің шешілуі бұл модель үшін табылмайды).

Есте сақтау құрылғыларының иерархиясы.

Есептеу машинасының жадысы есте сақтау құрылғыларының (ЕҚ) бір-бірінен деректермен жұмыс істеудің орташа уақытымен және көлемі мен бір байтты сақтау құныдығы бойынша өзгеше болатын иерархияны береді (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 – аудару) деп аталады, ал аудару арнайы трансляторлар деп аталатын бағдарламалар арқылы орындалады.Трансляторлар екі түрі:

Ø интерпретаторлар,

Ø компиляторлар

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

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

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

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

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

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

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

- алғашқы бағдарламаның әрбір жеке операторын тізбектік тәуелсіз құрастыруды жүзеге асыратын түсініктеме беруші компилятор;

- объектілік бағдарламаның тиімділігін арттыратын оңтайландырушы компилятор; мысалы, циклдар қайталанған кезде әрекеттің нәтижесі өзгермейтін командаларды циклдан шығару;

- пайдаланушыға бағдарламаны жөндеуді жеңілдететін жөндеуіш компилятор

Сурет 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 атты жаңа о.ж пайда болады.


Дата добавления: 2022-01-22; просмотров: 153; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!