Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
микропроцессор 14-ртк-1.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
673 Кб
Скачать
☆

§8. Ip адрестеу

Желі түйіні - IP хаттамасын қолдайтын желіге қосылған компьютер. Оның бір немесе бірнеше IP-интерфейсі бар болады, әр интерфейстің дербес IP-адресі бар. IP-адрес – бұл айрықша 32 битті идентификатор. IP-адресті нүктемен ажыратылған ондық сандар түріне келтірілген октеттерге (8 бит) бөліп жазу қалыптасқан. IP адрес форматы Екілік    Ондық 10100000.01010001.00000101.100000Н    160.81.5.131 Интернетте әр IP адрес бірегей болыу тиіс. Егер сіздің компанияыңызда TCP/ IP хаттамасы қолданылып Интернетпен байланыс болмаса, онда IP адрестерді бекіту және қолдану қиындық туғызбайды. Сіз өз қажеттеріңізді қамтамасыз ететін адрестерді таңдауыңызға болады. Ал егерде сіздің компания желісі Интернетпен байланысатын болса, онда бұл IP адресті тағы біреу қолданбайтынына көз жеткізу қиындыққа түседі. Интернеттегі адрестерді бекіту және тарату үшін InterNIC (Internet Information Centre – Интернеттің желілік ақпараттық орталығы) жауап береді. InterNIC Интернеттегі әр адресті қадағаламайды. Оның орнына ол әр мекемеге ішкі желіде қажетті түйін құруға мүмкіндік беретін желілік идентификатор тағайымдайды. Мекеме өз ішкі желісінде түйіндер идентификаторлар өз қалауынша орнатады. IP адрес класстары 1. А класы. 0 0-127    X    X    X желі    түйін А класы желісін анықтау үшін тек бірінші октетті пайдаланады, ал қалған үш октет  түйінді анықтау үшін пайдаланылады. Бұл класс адресінің бірінші октет жоғарғы биті әрқашан нөлге тең. Желілік бөлігінің өлшемі - 8 бит, сондықтан А класының 27-1 желісін адрестеуге болады және әр желіде 224-2 адрестік кеңестік бар. Бұл класс адрестері желі өте көп түйінді қолдана алатындықтан бұлар өте үлкен мекемелерге беріледі. Бұл адрестердің көбісі бірнеше жылдар бұрын мекемелерге, мысалы, әскери, бекітілген. 2. В класы. 10 128 - 191    N    X    X желі    түйін В класы желісін анықтау үшін алғашқы екі октетті пайдаланады, ал қалған екі октет  түйінді анықтау үшін пайдаланылады. Бұл класс адресінің бірінші октет жоғарғы екі биті әрқашан 10-ге тең. Желілік бөлігінің өлшемі - 14 бит, сондықтан В класының 214 желісін адрестеуге мүмкіндік береді және әр желіде 216-2 адрестік кеңестік бар. Бұл класс адрестері орташа немесе үлкен желілерге арналған, бұл адрестерді алу қиын болғанымен әлі де кейбіреулерін бекітуге болады. 3. С класы. 110 192 - 223    N    N    X желі    түйін С класы желісін анықтау үшін алғашқы екі октетті пайдаланады, ал соңғы октет түйінді анықтау үшін пайдаланылады. Бұл класс адресінің бірінші октет жоғарғы үш биті әрқашан 110-ге тең. Желілік бөлігінің өлшемі - 21 бит, сондықтан В класының 221 желісін адрестеуге мүмкіндік береді және әр желіде 28-2 адрестік кеңестік бар. Бұл класс адрестері кіші желілерге арналған.  4. D класы. 1110 224>    X    X    X желі    түйін D класы кеңтаралатын хабарламалар үшін қолданылады. Бірінші октет жоғарғы төрт биті әрқашан 1110-ге тең. 5. Е класы. 1111 225>    N    N    X сеть    түйін Е класы - экспериментті, болашақта қолдануға арналған. Бұл класс адрестерінің бірінші октет жоғарғы биттері әрқашан 1111-ге тең   5 кесте. IP адрестерді классификациялау Класс    Жоғарғы биттер    Бірінші октет диапазоны    Желілер саны    Түйіндер саны А    0    1-126    126    16 777 214 В    10    128-191    16 384    65 534 С    110    192-223    2 097 152    254  IP адресті таңдау ережелері. •    Жоспарлаңыз. Сіздің желінің дамуын қамтамасыз ететін класты таңдаңыз. •    Адрестің білегей екенін қадағалаңыз. Маршрутизаторға қосылған әр сегменттің жеке желі идентификаторы болуы керек. •    Арнайы мақсаттар үшін бекітілген адрестерді қолданбаңыз. Мысалы, А класының  127 желілік адресі диагностикалық мақсаттар үшін бекітілген. Бекітілген адрестер тізімін http//ds.internic.net адресі бойынша көруге болады. •    IP  адрес ретінде 0 (нөлдерден тұратын октет) және 255 (бірліктерден тұратын октет) қолдануға болмайды. Классыз модель Адрестік кеңестікті тиімді пайдалану үшін IP адресацияның CIDR(Classless Inter-Domain Routing классыз доменаралық маршрутизация) жаңа схемасы құрылды.  Интернетке қосылған жеркілікте желі 2000 компьютерден тұрады делік. Сізге қосылу үшін С класының 8 адресі немесе В класының бір адресі қажет. Бірақ В класында 65534 түйін — бұл керекті мөлшерден тым көп. Егер С класының 8 адресін пайдаланса, бұл желілерді қосқанда трафик шадмадан иыс болады.  Екінші жағынан, біз 32-ні 21 және11 деп бөлсек, 211=2046 адрес болады, яғни, онда 21 битті адресті бір желі болады да, оған қызмет ету үшін маршруттар кестесінде тек бір жазба қажет болады. Адрестік кеңестікті бөлу процессін жеңілдету үшін ішкі желі маскасы арналған. Ішкі желі – IP адрестің желі идентификаторы бөлігінен түйін идентификаторы бөлігіне бірнеше бит ауыстыру арқылы анықталған желі. Ішкі желі маскасы – желіне анықтау ішін адресте қанша бит қолданылатынын білдіретін 32-битті адрес. Желілік маска келесі ережелер бойынша құрылады: 1)    желіні анықтайтын биттер 1-ге тең. 2)    түйінді анықтайтын биттер 0-ге тең. CIDR моделінде IP адресті жазу ыңғайлы болуы үшін, оны a.b.c.d./n түрде көрсетеді, мұндағы a.b.c.d - IP адрес; n – желілік бөлігіндегі биттер саны. Мысалы,. 137.158.128.0/17 IP адрес берілген, сондықтан, ішкі желі маскасында 17 бірлік (желі идентификаторы) және 15 нөлдер (түйін идентификатор ы) болады және де ол 255.255.128.0. тең болады. IP адрес белгілі болса, ішкі желідегі түйін нөмірін қалай анықтауға болады? Мысалы, С класының 205.37.193.134 IP адресі берілген болсын, желі нөмірі 134. Енді желіні ішкі желіге келесідей 205.37.193.134/26 бөлейік. Бұл жағдайда түйін адресі қандай?     ІР адрес    Желі идентификаторы    Түйін идентификаторы Түйіннің ІР-адресі    205.37.193.134    11001101.00100101. 11000111.    10000110 Ішкі желі маскасы    255.255.255.192    11111111.11111111. 11111111.11    000000 «Және» логикалық амалының нәтижесі    205.37.193.128    11001101.00100101. 11000111.10    000110 Нәтижесінде ішкі желінің IP адресі 205.37.193.128. болады, ал осы ішкі желідегі түйін нөмірі 6-ға тең. Үнсіз келісім бойынша маскалар •    А класы үшін - 255.0.0.0; •    В класы үшін - 255.255.0.0; •    С класы үшін - 255.255.255.0. Сізге NIC 192.168.24.0 IP адресін бекітті дейік. Сізде үш желі бар. Ішкі желіге бөлу үшін қандай масканы қолданған дұрыс. 255.255.255.224 маскасы ұсынылады, себебі бұл жағдайда желі идентификаторы бөлігінде үш бірлік болады, сондықтан 23-2=6 ішкі желі және 25-2=30 ішкі желі түйіндерін адрестеуге болады. Сонымен, ішкі желіге бөлу келесі мәселелерді шешу үшін қолданылады: •    желі қуаттылығының физикалық шектелуінен айрылу (желілік архитектураларда желідегі түйін санына шектеулер бар); •    түйіндерді байланыстыру үшін әр түрлі әдістерді қолдану (түрлі архитектуралы желілерді маршрутизатор арқылы қосуға болады). Ішкі желіге бөлу этаптары: •    Желі идентификаторлардың жалпы қажетті санын анықтау. Желінің болашақта дамуын естен шығармаңыз. •    Әр ішкі желі қолдайтын түйін идентификаторларының жалпы санын анықтау.. Желіге жаңа түйіндер қосылу мүмкіндігін ескеріңіз. •    Ішкі желіде қажетті желі және түйін идентификаторлар санын қолдайтын ішкі желі маскасын анықтаңыз. •    Желі идентификаторларының қайсысы қолданылады екенін анықтаңыз. •    Ішкі желіде түйін идентификаторларын бекітіңіз.

§9. Программалау тілдері. Пскаль, С++, Logo

Программаларды жасауда қазіргі заманғы компьютерлерде әр түрлі деңгейдегі программалау тілдері пайдаланылады. Жалпы жағдайда тіл деп информацияның жазылыуын және оның түрленуін белгілі ережелер бойынша формальдыетіп беруші құралдарды түсінеміз.

Тілдің құрамында информацияның негізгі элементтерін құрудың құралдары және осы элементтерден әр түрлі мазмұнды құрылымдар құруға арналған ережелер жүйесі бар.

Программалау тілі деп деректерді жазуға және оларды белгілі ережелер бойынша өңдеуге арналған адам мен компьютерді байланыстыратын формальды тілді айтамыз.

Програмалаудың әр түрлі тілдерін пайдалану. Әр түрлі белгілер бойынша жіктеуге болатын бірнеше жүздеген программалау тілдері бар. Ең жалпысы тілдің машинаға жақындық дәрежесі бойынша жіктеу болып табылады. Осы белгісі бойынша программалау тілдері екі үлкен топқа бөлінеді:

  • машинаға тәуелді тілдер;

  • машинаға тәуелсіз тілдер;

Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:

  • машина тілі;

  • машинаға бағдарланған тілдер;

Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға бағдарланған тілдердің екі деңгейі бар:

  • символдық кодтау тілдері, басқаша айтқанда мнемокодтар;

  • макротілдер.

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

Машинаға тәуелсіз тілдер программаларды бөлшектеу дәрежесіне қарай екі топқа бөлінеді:

  • процедулалы- бағдарланған тілдер;

  • проблемалы – бағдарланған тілдер

Процедулалы – бағдарланған тілдер есепті шешу алгоритмін сипаттауға арналған, сондықтан да оларды кейде алгоритмдік тілдер деп те атайды. Алгоритмдік тіл деген ұғым программалау тілі деген ұғыммен сәйкес елмейді. Егер алгоритмдік тілде жазылған алгоритмдік жазу компьютерге ендіруге тікелей жарамды және дайын жұмысшы программаға түрленетін болса, онда мұндай алгоритмдік тіл программалау тілі де бола алады. Кейбір алгоритмдік тілдер тек оларға кейбір құралдарды қосқаннан кейін ғана программалау тілі болады.

Проблемалы – бағдарланған тілдер есептерді сипаттау үшін қызмет атқарады. Бірақ алгоритмдік тілдер өздігінен барлық проблеманы, тіптен программаны да шеше алмайды. Мұндай тілде жазылған программа компьютерде тікелей орындалмайды, ол орындалу үшін алдын ала сол компьютердің машина тіліне аудару жеткілікті қиын мәселе болып табылады.

Алгоритмдік тілден программаны машина тіліне аудару жұмысын компьютердің әмбебаптығын пайдаланып, оның өзіне жүктеуге болады. Бұл үшін әрбір алгоритмдік тілден машина тіліне формальды аударуға яғни аударудың ережесін алгоритм түрінде тұжырымдауға мүмкіндік беретіндей болуы керек. Егер, осы алгоритмді бір рет машиналық программа түріне келтіріп алсақ, онда одан кейін осы программаның көмегімен компьютердің өзі берілген алгоритмдік тілде жазылған кез келген программаны нақтылы компьютердің машина тіліне аударып бере алады. Мұндай арнайы аудармашы-программа жоғарыда айтқанымыздай транслятор деп аталады.

Машина тілі Компьютердің ақпараттық бөлігі тікелей түсінетін жалғыз тіл: ол – машина тілі. Машина тілі деп копьютердің құрамындағы процессор командаларының кодын айтамыз. Архитектурасы әртүрлі процессорлардың машина тілдері де түрліше болады. Тек өзара үйлестірілген процессорларда ғана машина тілдері бірдей болады. Мұндай процессорлардың командалар жүйесі төменнен жоғары қарай үйлесімділікте болады деп айтылады. Сонымен әрбір компьютердің өзінің машина тілі болады және ол тек осы тілде жазылған программаларды ғана тікелей орындай алады.

Машина тілінде программалау деп программаға енетін командалардың реальды кодтарын тікелей жазуды айтамыз.

Командалардың кодтары әр түрлі санақ жүйелерінде берілуі мүмкін:

  • екілік;

  • сегіздік;

  • он алтылық;

Мысалы, процессордың А аккумляторының ішіндегісін В регистіріне жөнелту дегенді білдіретін МОV В,А командасының кодын әр түрлі санақ жүйелерінде былай жазып көрсетуге болады:

Санақ жүйелері Коды

Екілік 010001111

Сегіздік 107

Он алтылық 47

Келтірілген мысалдан көрініп тұрғандай команда он алтылық санақ жүйесінде ең ықшамды түрде жазылған. Машина кодтарын пайдаланып программалау үшін қарапайым жағдайда қағаз, қалам және информацияны тасымалдаушыға машина кодындағы программаны жазуға арналған перфоратор болса жеткілікті. Командалардың он алтылық кодтары пернетақтадан компьютердің жадына ендіріледі, монитор программаны түзету процесін басқарады, ал экран командалардың коды мен деректерді он алтылық кодта бейнелеп көрсетеді. Машина кодын пайдаланып программалауда еңбек өнімділігін артыру үшін командалардың мнемоникасын және коды берілген анықтамалық кестелерді пайдалануға болады. Бірақ қазіргі кезде машина тілінде программалау тек қысқа программаларға шамалы өзгерістер өндіру қажет болған жағдайларда ғана қолданылады, өйткені бұл программа жасаушылар кездесетін мынадай қиыншылықтарға байланысты:

  • процессор командаларының көптеген кодтарын есте сақтауға тура келеді;

  • жадтың абсолюттік адрестері, әсіресе шартты өтулердің саны көп, сондықтан ұзын программалар жасауда қадағалау өте қиын;

  • жазылған программаны қайта жетілдіріп, өзгертіп жасау өте күрделі жұмыс болады;

  • машина кодтарында жазылған программалар өте қиын оқылады;

  • тек қана сандардан тұратын программаны жасау программана жасаушыны жалықтырып жібереді және программаларда қателіктердің келуіне алып келеді.

Осылауша машина тілі цифрлар тілі бола отырып, программа жасаушы адамнан программаны жазуға және оны жөндеуге көп уақыт жұмсауды талап етендіктен, программалау үшін жарамдылығы шамалы болады.

Ассемблер және макроассемблер тілдері

Ассамблер таңбалар (символдар)тілі бола отырып,белгілі бір дәрежеде машина тілінде программа жасаудағы кемшіліктерді жоюға мүмкіндік береді. Ассамблер тілінде программаның барлық элементтері таңбалармен берілетіндігі оның басты артықшылығы болып табылады.Басқаша айтқанда ассамблер тілінің машина командаларының цифрлық кодтарын әріптермен немесе әріп-цифрлармен таңбалауға және деректердің таңбалық аттарын пайдалануға мүмкіндік беретіндігі оның машина тілінен айырмашылығы болып табылады. Ассамблер тілінің командаларын машина тіліне аударғанда машина командасын білдіретін әрбір оператор осы команданың цифрлық кодтарымен алмастырылады. Командалардың таңбалық аттарын олардың екілік кодтарына түрлендіру жұмысы программа жасаушы адамды өте қиын әрі күрделі машақаты көп жұмыстан босататын және бұл жағдайда құтиылоуға болмайтын қателіктерден құтқаратын арнайы программа-ассамблерге жүктеледі. Ассамблер тілінде программалауда пайдаланылатын таңбалық аттар программаның семантикасын, ал команданың қысқартылып берілген атаулары оның негізгі функциясын білдіреді.Мысалы, ADD-қосу, SUB-азайту, PARAM-параметр т.с.с.Мұндай аттарды программа жасаушылар оңай есінде сақтайтын болады. Ассамблер тілінде программа жасау үшін машина тілінде программа жасағандағыдан көп күрделі құралдар қажет болады:

  • сыртқы құрылғылармен жабдықталған дербес компьютер;

  • процессордың түріне қарай резиденттік немесе жүйелік программалар

Машина тіліне қарағанда ассамблер тілі едәуір күрделі, программаларды ұтымды жазуға және жөндеуге мүмкіндік береді. Ассамблер тілі машинаға бағдарланған тіл, яғни процессордың әрбір командасына таңбалық ат меншіктейтіндіктен машина тіліне және процессордың құрылысына тәуелді тіл болып табылады. Программа жасауда ассамблер тілі машина тіліне қарағанда программа жасаушылардың еңбек өнімділігін арттыруға сонымен бірге процессордың программалық және аппараттық ресурстарын толық пайдалануға мүмкіндік береді. Бұл біліктілігі жоғары программалаушыларға жоғары деңгейлі тілдермен жасалған программамен салыс–тырғанда компьютердің жадында аз орын алатын жылдам жұмыс істейтін программалар жасауға мүмкіндік береді. Ассамблер тілінің осындай артықшылықтарына байланысты ендіру-шығару құрылғыларын басқарушы программалар неше түрлі жоғары деңгейлі тілдердің көптігіне қарамай ассамблер тілінде жазылады. Ассамблер тілінің көмегімен программа жасаушы адам мынадай параметрлерді бере алады:

  • процессордың машина тілінің әрбір командасының таңбалық атын;

  • ассамблер тілінде жазылған программалық қатардың стандартты пішімін;

  • командалардың нұсқаларын және адрестеудің тәсілдерін қалай көрсету керектігі туралы пішімді;

  • таңбалық тұрақтыларды және бүтін сандық тұрақтыларды әртүрлі санақ жүйелерінде көрсету үлгілерін;

  • программалауды ассамблерлеу (транслациялау) процесін басқарушы пседокомандаларды.

Ассамблер тілі кез келген компьютерге түсінікті,өйткені басқа барлық тілдерге қарағанда машина тіліне ең жақын тіл ол ассамблер тілі. Бұл тіл копьютнрмен жақынырақ танысуға мүмкіндік береді. Сондықтан да ассамблерді оқу дегеніміз процессордың өзін оқып үйрену деген сөз. Ассемблер тілінде жазылған программа кез келген басқа тілдерде жазылған программаларға қарағанда өте тез орындалады. Мысалы, ассемблер тілінде жазылған программа дәл осы программаға баламалы СИ немесе Паскаль тілдерінде жазылған программалардан екі-үш есе, ал BASIC тілінде жазылған программалардан он бес және онда да көп есе тез орындалады. Ассемблер тіліндегі программалар басқа тілдерде жазылған программаларға қарағанда өлшемі жағынан шағын болады, сондықтан компьютердің жадын үнемдеуге мүмкіндік береді. Ассемблер тіліндегі программалар компьютердің барлық мүмкіндіктерін толық ұтымды пайдалануға сізге жол ашады. Ассемблер тілін әрқайсысы машина командаларының бір тобына баламалы макрокомандалармен толықтыру жүйе қолданылады. Мұндай тіл макроассемблер тілі деп аталады. Макрокомандаларды пайдалану ірі құрылыс блоктарының программалар құруға мүмкіндік береді және ассемблер тілін жоғары деңгейлі тілдерге жақындатады.