Түпкі каталогты тапқаннан кейін каталогтар ағашындағы қажетті жазба ізделінеді. Каталог жазбасы дискілік блоктарды табуға көмектесетін ақпаратты ұсынады. Жүйеге байланысты бұл файлдың барлығының дискілік адресі (ажырамас файлдар үшін), бірінші блок нөмірі (байланысқан тізімдермен болатын екі схема да) немесе индекстік түйін нөмірі болуы мүмкін. Барлық жағдайда каталогтар жүйесінің негізгі функциясы ASCII-атауды деректерді іздеуге қажетті ақпаратқа түрлендіру болып табылады. файл атрибуттарын сақтау мәселесі бұл проблемамен тығыз байланысты. Әрбір файлдық жүйе файлдың әртүрлі атрибуттарын – файлды құру күні, иесінің аты және т.б. қолдайды, және осы ақпараттық барлығын бір жерде сақтау қажет. белгілі нұсқалардың бірі – бұл осы мәліметтерді тікелей каталог жазбасына орналастыру. Қарапайым жағдайда каталог фиксирленген өлшемдегі жазбалар тізімі болып табылады, бір файлға блоктардың орналасуын анықтайтын фиксирленген өлшемдегі файл атынан, атрибуттар құрылымы және бір немесе бірнеше дискілік адрестерден (белгіленген максимумнан аспайтын) тұратын бір жазбадан келеді. Индекстік түйінді жүйелер атрибуттарды каталогтар жазбасында емес индекстік түйіндерде сақтай алады. бұл жағдайда каталог жазбасы қысқа болады: ол тек файл атынан және индекстік түйін нөмірінен тұрады.
7. Енгізу-шығаруды басқару. Енгізу-шығару жүйесін басқару. Синхронды және асинхронды енгізу-шығару. Енгізу-шығаруды диспетчерлеу.
1. Енгізу-шығаруды басқару. Енгізу-шығару жүйесін басқару.
Операциялық жүйенің ең негізгі функцияларының бірі компьютердің барлық енгізу-шығару құрылғыларын басқару болып табылады. Операциялық жүйе осы құрылғыларға командалар беруі, үзілулерді ұстауы және қателерді өңдеуі қажет. ол құрылғылар және жүйенің қалған бөліктері арасында қарапайым және ыңғайлы интерфейс орнатуы қажет. Интерфейс мүмкіндігінше барлық құрылғыларға бірдей болғаны жөн (ол қолданылатын жабдыққа тәуелді болмауы тиіс). Енгізу-шығарудың бағдарламалық қамтамасы операциялық жүйенің айтарлықтай бөлігін құрайды.
Енгізу-шығару жүйесін басқару үшін ең алдымен оның аппараттық қамтамасыз етуін білуіміз абзал. Әртүрлі мамандар енгізу-шығарудың аппараттық қамтамасын әртүрлі қарастырады. Инженер-электроншылар микросхемаларды, өткізгіштерді, қоректену көздерін, двигательдерді және басқа да физикалық компоненттерді көреді. Бағдарламалаушылар бірінші кезекте интерфейске, бағдарламалық қамтамаға ұсынылған – аппаратурамен қабылданатын командалар, онымен орындалатын функциялар, аппаратура хабарлай алатын қателерге назар аударады
Енгізу-шығару құрылғыларын жалпы екі категорияға бөлуге болады: блоктық және символдық. Блоктық құрылғылар деп ақпаратты фиксирленген өлшемді адрестелетін блоктар түрінде сақтайтын құрылғыларды айтамыз. Әдетте, блоктар өлшемі 512-ден 32768 байтқа дейін болады. Блоктық құрылғының маңызды қасиеті - әрбір блокты қалған блоктардан тәуелсіз оқуға болатындығында. Анағұрлым кеңінен таралған блоктық құрылғылар – дискілер болып табылады. Егер ерекше ықыласпен қарайтын болсақ, блоктық адрестелетін құрылғылар мен жеке құраушыларына тікелей адрестеле алмайтын құрылғылар арасындағы шекара қатаң айқындалмағанын көруге болады.
Дискіжетектің бастиегінің ағымдық орналасқан орнына тәуелсіз оны белгілі бір цилиндрге қойып, жеке блокты қажетті жолдан бастап оқуға немесе жазуға болатындықтан диск блоктық адресетелетін құрылғы екенін барлығы да біледі. Дисктің резервтік көшірмесін сақтау үшін қолданылатын магнитті лентадағы жинақтауышты (магнитофон) қарастырайық. Лентада блоктар тізбегі сақталады. Егер магнитофонға қайсыбір блокты оқуға бұйрық берілсе, оған лентаны қайта орап, процесс сұраныс жасалған блокқа жеткенге дейін деректерді оқуды бастауға тура келеді. Бұл операция дискте блокты іздеуге ұқсайды, шамалы айырмашылығы – ол айтарлықтай көп уақыт алады. Сонымен қатар, жинақтауышқа байланысты және онда сақталған деректердің форматына қарай лентаның ортасына жеке кездейсоқ блокты жазуға кепілдік берілмеген. Магниттік лентаны кездейсоқ қол жетерлік блоктық құрылғы ретінде пайдалану әрекеті едәуір ауыр болады: ешкім оларды мұндай түрде пайдаланбайды. Енгізу-шығару құрылғысының басқа түрі – символдық құрылғы. Символдық құрылғы символдар ағынын ешқандай блоктық құрылымсыз ұсынады немесе қабылдайды. Символдық құрылғы адрестелмейді және іздеу операциясын орындамайды. Дискке ұқсамайтын принтерлер, желілік интерфейстік адаптерлер, тышқан (экранды позицияны көрсету үшін), атжалмандар (психология бойынша лабораториялық эксперименттер үшін) және көптеген басқа құрылғыларды символдық құрылғылар ретінде қарастыруға болады.
Классификацияның мұндай схемасы жетілдірілмеген. Кейбір құрылғылар категориялардың ешбіріне сәйкес келмейді. Мысалы, сағаттар блоктық адрестелетін құрылғы емес. Олар сонымен қатар символдық ағындарды құрмайды және қабылдамайды. Олардың барлық іс-әрекеті уақыттың қатаң анықталған сәттерінде үзілулерді инициализациялау болып табылады. Сонда да блоктық және символдық құрылғыларға бөлу жеткілікті түрде барлығын қамтитын және операциялық жүйелердің бағдарламалық қамтамалары енгізу-шығару құрылғыларынан тәуелсіз болуына қол жеткізуге мүмкіндік беретін негіздер ретінде жақын келеді. Сонымен, файлдық жүйе адстрактылы блоктық құрылғылармен қатынас жасайды, ал құрылғыға тәуелді бөлікті төмен деңгейлі бағдарламалық қамтама – құрылғылар драйверіне қалдырады. Енгізу-шағыру құрылғысының жұмыс істеу жылдамдығының диапазоны өте кең (7.1 сурет). Бұл шамалы ерекшеленетін деректерді алмасу жылдамдығымен болатын құрылғыларға сапалы қызмет көрсетуді қамтамасыз етуге арналған бағдарламаны айтарлықтай қиындатады.
Көптеген енгізу-шығару құрылғыларының жылдам дамып келе жатқанын айта кеткен жөн.
Кесте 7.1 - Кейбір типтік құрылғылар, шиналар мен желілердің деректерді алмасу жылдамдықтары
Құрылғы |
Жылдамдық |
Пернетақта |
10 байт/с |
Тышқан |
100 байт/с |
Модем |
56 Кбайт 7 Кбайт/с |
Сканер |
400 Кбайт/с |
Цифрлық камера |
4 Мбайт/с |
CD-ROM |
52x 8 Мбайт/с |
Firewire (IEEE 1394) |
50 Мбайт/с |
USB 2.0 |
60 Мбайт/с |
Монитор XGA |
60 Мбайт/с |
Сеть SONET OC |
-12 78 Мбайт/с |
Gigabit Ethernet |
125 Мбайт/с |
Диск Serial ATA |
200 Мбайт/с |
Диск SCSI Ultrawide |
320 Мбайт/с |
Шина PCI |
528 Мбайт/с |
2. Синхронды және асинхронды енгізу-шығару. Енгізу-шығаруды диспетчерлеу.
Енгізу-шығару құрылғылары, механикалық және электронды компоненттерден тұрады. Көптеген жағдайларда бұл компоненттерді максимальді модульді және жалпыланған модельді алу үшін логикалық түрде бөлуге болады. Электронды компонент құрылғының контроллері немесе адаптері деп аталады. Дербес компьютерлерде ол кеңейту слотына қойылатын баспа платасы түрінде болады. Механикалық компонент – бұл құрылғының өзі. Берілген құрылым 7.1-суретте көрсетілген.
Контроллер платасы әдетте құрылғының өзіне жалғанатын кабельді қосуға болатын разьеммен жабдықталады. Көптеген контроллерлер екі, төрт немесе сегіз идентивті құрылғыларды басқаруға қабілетті болып келеді. Егер контроллер және құрылғы арасындағы интерфейс стандартты болса, яғни, ANSI, IEEE немесе ISO ресми стандартымен анықталған болса, бұл берілген интерфейске сәйкес келетін контроллерлер және құрылғылардың жеке-жеке шығарылуын қысқартады. Осылай көптеген компаниялар IDE немесе SCSI интерфейчтеріне сәйкес келетін қатты дисктерді жасайды.
Сурет 7.1 – Процессор, жад, енгізу-шығару құрылғылары мен контроллерлерді қосу моделі
Контроллер мен құрылғы арасындағы айырмашылықты еске салған себебіміз, өйткені операциялық жүе негізінде құрылғының өзімен емес контроллермен жұмыс істейді. Көптеген кіші компьютерлерде құрылғылармен өзара әрекет ету бірыңғай шина моделі бойынша ұйымдастырылады (7.1 сурет қараңыз). Үлкен машиналарда, мэйнфреймдерде енгізу-шығару каналдары деп аталатын мамандандырылған енгізу-шығару компьютерлерімен қызмет көрсетілетін бірнеше шиналы басқа модель қолданылады. Мұндай ұйымдастыру негізгі процессорға түсетін жүкті азайтуға мүмкіндік береді. Құрылғы мен контроллер арасындағы интерфейс өте төмен деңгейлі интерфейс болып табылады. Мысалы, қандай да бір қатты диск 1024 сектордан жолдарға, 512 байт өлшемді секторларға форматталуы мүмкін. Шындығында, дисктен контроллерге сектор тақырыбынан (преамбула) басталатын биттердің тізбектік ағыны, оның артынан секторда 4096 бит және ең соңында қателерді түзету коды (Error-Correcting Code, ECC) деп аталатын бақылау суммасы келіп түседі. Сектор тақырыбы дискке форматталып жатқан уақытта жазылады. Ол цилиндрлер мен секторлар нөмерінен, сектор өлшемінен, синхронизациялау ақпаратынан және т.б. тұрады.
Контроллердің жұмысы биттердің тізбектік ағынын байттар блогына түрлендіру және егер қажет болса, қателерді түзету болып табылады. Әдетте, байттар блогы контроллер буферінде тізбектелген биттер бойынша жиналады. Содан кейін блоктың бақылау суммасы тексеріледі және ол тақырыпта көрсетілген сектормен сәйкес келсе, блокты қатесіз оқылған болып саналып, содан кейін ол оперативті жадыға көшіріледі.
Монитор контроллері (бейнеконтроллер) дәл осындай төмен деңгейде тізбектік биттік құрылғы сияқты жұмыс істейді. Ол жадтан бейнелеу қажет символдардан тұратын байттарды оқиды және экранда бейнені шығаруға мәжбүрлейтін электронды түтікше сәулесін модуляциялау үшін пайдаланылатын сигналдарды құрады. Сонымен қатар, бейнеконтроллер электронды сәүленің көлденең және тік орналасуын басқаратын сигналдарды құрайды. Сұйықкристалды экранда бұл сигналдар жеке пикселдерді көрсетеді және электронды сәүлені имитациялай отырып олардың жарықтығын береді. Егер контроллер болмаса, бағдарламалаушының мұны өзінің істеуіне тура келер еді. Шындығында, операциялық жүйе бар болғаны қатардағы символдар немесе пикселдер саны және экрандағы қатар саны сияқты болмашы параметрлер санын бере отырып контроллерді инициализациялайды, басқару бойынша негізгі жұмысты контроллер өз міндетіне алады. Кейбір құрылғылар контроллерлері, әсіресе, дисктердің, бірте-бірте қиындап келеді. Мысалы, қазіргі кездегі дискілік контроллерлер ішкі жадтың көптеген мегабайттарымен жабдықталған. Нәтижесінде оқу операциясын орындау барысында бастиек қажетті цилиндрге қойылған сәттен бастап контроллер деректерді оқуды және сақтауды бастайды. Мұндай кэштеу деректердің тізбектік сұранысы барысында тиімді болады. Сонымен қатар, қажетті деректерді алғаннан кейін болашақта келесі секторларға қол жеткізу ықтималдығы жоғары болатындықтан контроллердің оларды кэштеуді бастауына болады. Осыған ұқсас механизм дискке жүгінусіз оқуға қатысты көптеген сұраныстарға қызмет көрсетуіне мүмкіндік береді.
8. Еркін және тізбекті қатынас құру тәсілдері. Енгізу-шығару ағындары. Енгізу-шығаруды қорғау тәсілдері.
1. Еркін және тізбекті қатынас құру тәсілдері.
Әрбір контроллердің бірнеше регистрлері болады, олардың көмегімен орталық процессор контроллерлермен қатынаса алады. Бұл регистрлерге белгілі бір мәндерді жаза отырып, операциялық жүйе құрылғыға деректерді алмасу және қабылдау, қосу және өшіру командасын береді. Құрылғының регистрлерін оқу оның жағдайын, команданы қабылдау дайындығын және т.б. анықтауға мүмкіндік береді. Басқару регистрлеріне қосымша көптеген құрылғыларда операциялық жүйе тарапынан жазбаларды жазу және оқуға қол жетерлік деректер буфері болады. Мысалы, пикселдерді экранда бейнелеу көптеген компьютерлерде бейнежад көмегімен іске асырылады. Түбінде, бейнежад операциялық жүйе бағдарламалары бейнеленетін деректерді жазып қоятын буфер болып табылады. «Процессор басқару регистрлері және құрылғылардың деректер буферімен қалай өзара әрекет етеді?» деген сұрақ туындайды. Екі альтернатива бар. Біріншісі рбір регистрге енгізу-шығару портының нөмірлерін – 8 – немесе 16-разрядты сандар белгілеуді ұйғарады. Процессор PORT басқару регистрін оқи алады және енгізу-шығарудың арнайы командасын пайдалана отырып нәтижені өзінің REG регистрінде сақтай алады, мысалы:
IN REG,PORT
Дәл осылайша, келесі команда процессордың REG регистрінің мазмұнын құрылғының PORT басқару регистріне жазады:
OUT PORT,REG
Мэйнфреймдерді қосқанда, көптеген алғашқы компьютерлер осылайша жұмыс істеді. Бұл жағдайда жад және енгізу-шығару облысының 8.1-суретте көрсетілгендей әртүрлі адрестік кеңістіктері бар.
Сурет 8.1 – Жад және енгізу-шығару кеңістігінің орналасу нұсқалары: а – жад және енгізу-шығарудың жеке кеңістіктері; б – жадқа бейнелеу арқылы енгізу-шығару; в – аралас нұсқа
Басқа компьютерлерде енгізу-шығару регистрлері жадтың әдеттегі адрестік кеңістігінің бір бөлігі болып табылады (5.2б сурет). Мұндай ұйымдастыру жадқа бейнелеумен болатын енгізу-шығару деп аталады. Ол алғаш рет PDP-11 мини-компьютерінде қолданылды. Басқарудың әрбір регистріне қарапайым жадпен ешқандай байланысы жоқ жадтың уникальді адресі беріледі. Басқару регистрлеріне адрестер адрестік кеңістіктің жоғарғы бөлігінен бөлінеді. 6-суретте жадқа бейнеленген деректер буфері және басқару регистрлеріне арналған енгізу-шығарудың жеке порттары пайдаланатын аралас схема көрсетілген. Мұндай архитектура 640 Кбайттан 1 Мбайтқа дейінгі адрестер диапазоны құрылғының деректер буферіне резервтелінген, ал енгізу-шығару порттарының облысы алғашқы 64 Кбайт орынды алатын, Pentium процессоры негізіндегі жүйелерде қолданылады.
2. Енгізу-шығару ағындары. Енгізу-шығаруды қорғау тәсілдері.
Жадқа тікелей қол жеткізу. Жүйенің енгізу-шығаруды жадқа бейнелеуінің бар-жоғына қарамастан, орталық процессорға деректермен алмасу үшін құрылғылар контроллерлерін адрестеу қажет. Процессор контроллерден деректерді байт бойынша сұрауы мүмкін, бірақ егер құрылғыдан үлкен блоктарды алу қажет болса (мысалы, дисктен оқу барысыныда), уақыттың айтарлықтай бөлігі босқа кетеді. Осы себептен жадпен өзара әрекет ету үшін жадқа тікелей қол жеткізу (Direct Memory Access, DMA) деп аталатын басқа әдісті қолданады. Операциялық жүйе DMA-ны жадқа тікелеу қол жеткізу контроллері (DMA-контроллері) бар болған жағдайда ғана пайдалана алады. Көптеген компьютерлер осындай контроллермен жабдықталған. Кейде DMA-контроллерді басқа контроллерлерге қояды (мысалы, дискілік), бірақ бұл жағдайда ол әрбір құрылғыға қажет болады. Көбінесе жүйелерді әдетте аналық платада орналасатын жалғыз DMA-контроллермен жабдықтайды. Ол көптеген енгізу-шығару құрылғыларында деректер алмасуды басқарады және көбіне параллель түрде. DMA-контроллер қайда орналасса да ол процессордан тәуелсіз жүйелік шинаға қол жеткізе алады. (8.2-сурет). DMA-контроллердің оқу және жазу үшін процессорға қол жетерлік бірнеше регистрлері бар: адрес регистрі, байттар есептегіші және бірқатар басқару регистрлері. Соңғысы енгізу-шығарудың пайдаланылатын портын, деректермен алмасу бағытын (оқу немесе жазу), алмасу бірлігін (байт немесе сөз) және бір циклде берілетін байттар санын анықтайды.
Сурет 8.2 – DMA-контроллерлерінің жұмысы
DMA функциялау принципін түсіндіру үшін бірінші жадқа тікелей қол жеткізу жоқ кезде дисктен оқу қалай іске асатынын анықтап алайық. Алғашында контроллер бит бойынша контроллердің ішкі буферіне жеткенге дейінгі блокты (бір немесе бірнеше секторды) оқиды. Ары қарай бақылау суммасы есептеледі және қателер тексеріледі. Содан кейін үзілу генерацияланады. Операциялық жүйе іске қосылып тұрған уақытта ол контроллер буферінен жіберілген блокты оқи алады. оқу байт немесе сөз бойынша циклдық түрде іске асырылады. Байтты (сөзді) оқып болғаннан кейін ол негізгі жадқа сақталады, жад адресі инкременттеледі, қалған элементтер есептегіші декременттеледі. Есептегіш мәні нөлге тең болғанда цикл тоқтайды.
Жадқа тікелей қол жеткізу сипатталған процедураны өзгертеді. Алғашында процессор DMA-контроллерінің регистрлеріне контроллерге нені және қайда жіберуді көрсететін мәндерді жаза отырып, DMA-контроллерді бағдарламалайды (8.2-сурет). Содан кейін контроллерге деректерді дисктен өзінің ішкі буферіне оқу және бақылау суммасын тексеру командасы жіберіледі. Контроллер буферінде дұрыс деректер пайда болғаннан кейін DMA жұмысқа кірісе беруіне болады.
DMA-контроллер дискілік контроллерге шина арқылы оқуға сұраныс жібере отырып деректерді тасымалдауды бастайды (2-қадам). Бұл сұраныс әдеттегі оқуға сұраныс сияқты болады, сондықтан диск контроллері оның орталық процессордан немесе DMA-контроллерден түскенін білмейді. Әдетте, жад адресі адрестік шинада болады, сәйкесінше диск контроллері әрдайым өзінің ішкі буферіндегі келесі сөзді қайда жіберетінін біледі. Жадқа жазу шинаның тағы бір стандартты циклы болып табылады (3-қадам). Ажзба аяқталса, диск контроллері шина арқылы DMA-контроллерге растау сигналын жібереді (4-қадам). Содан кейін DMA-контроллер жадтың пайдаланылып отырған адресін инкременттейді және байттар есептегішінің мәнін декременттейді. Содан кейін есептегіш мәні нөлге тең болғанша 2-4 қадамдар қайталанады. Көшіру циклі аяқталғаннан кейін DMA-контроллер процессор үзілуін инициализациялайды. Операциялық жүйеге блокты дисктен жадқа көшірудің қажеті жоқ. Ол бұл сәтте сол жерде болады.
9. Файлдық жүйе. Файлдық жүйенің негізгі функциялары. Файлдық жүйенің құрамдары.
1. Файлдық жүйе. Файлдық жүйенің негізгі функциялары
Файлдық жүйенің негізгі элементі немесе құрамы – бұл файл. Файл – атау берілген реттелген деректер жиынтығы. Файл әдетте, төмендегі атрибуттардан тұрады:
- Файл аты. Бұл адам қабылдауына ыңғайлы түрдегі ақпаратты қолдайтын символдар қатары.
- Файл типі. Бұл ақпарат файлды алғашқы идентификациялау үшін көптеген утилиттер мен жүйелерге қажет.
- Орналасқан орны. Бұл файл орналасқан құрылғы туралы ақпарат және оған алып баратын толық жол осы құрылғы маңайында болады.
- Файл өлшемі;
- Файлды оқудан, жазу және орындаудан қорғау туралы ақпарат;
- Файлды құрған пайдаланушы туралы ақпарат, құрылған күні және уақытын қоса;
- Файлды соңғы болып өзгерткен пайдаланушы туралы ақпарат, өзгерткен күні және уақытын қоса.
Файлдық жүйе дегеніміз дискіде сақталған деректермен жұмыс істеу үшін қолданушыға ыңғайлы интерфейсті және бірнеше процестер мен қолданушылар бірігіп файлдарды қолдануды қамтамасыз ететін операциялық жүйенің бөлігі.
Файлдық жүйе түсінігіне кіреді:
- барлық файлдарды дискіге біріктіру;
- файл дискрипторы, дискідегі бос және бос емес кеңістіктегі тарату кестелері, файлдар каталогі сияқты файлдарды басқару үшін қолданылатын деректер құрылымының жинағы;
- құру, оқу, өшіру, атын өзгерту, жазу, іздеу және басқа да файлдарға байланысты операциялары секілді файлдарды басқаруды орындайтын бірнеше жүйелік программалар комплексі.
Файлдар. Файлдарға атау беру. Файлдар абстрактылы механизм объекттері болып табылады. Олар ақпаратты дискке сақтау және кейін оны оқу құралдарын ұсынады. Бұл жерде пайдаланушыдан ақпаратты сақтау тәсілі мен орны, дисктердің жұмыс істеу детальдары сияқты жайлар жасырылуы қажет. Файлды құру барысында процесс файлға ат береді. Процесс жұмысты аяқтаған кезде файл өзінің бар болуын жалғастырады, және басқа процестер аты бойынша оған жүгіне алады. Файлдарға ат беру ережелері жүйеден жүйеге варияцияланады, бірақ барлық қазіргі кездегі операциялық жүйелер файлдар атауы ретінде 8-символдық мәтіндік қатарды пайдалануды қолдайды. Яғни, andrea, bruce және cathy идентификаторлары файлдардың рұқсатты атаулары болып табылады. Көбіне файлдар атауында цифрлар мен арнайы символдарды пайдалануға рұқсат етіледі, сондықтан файлдарға 2, urgent! HFig.2-14 сияқты ат беруге болады. Көптеген файлдық жүйелер ұзындығы 255 символға дейінгі файл аттарына рұқсат етеді. Кейбір файлдық жүйелерде, мысалы, UNIX, бас және кіші әріптер ерекшеленеді, MS-DOS-та олай емес. Осылайша, UNIX жүйесінде maria, Maria және MARIA атаулары әртүрлі үш файлды көрсетеді, MS-DOS жүйесінде бұл үш атаудың барлығы да бір файлға қатысты болады. Windows операциялық жүйесі осы екі аралықта тұрады. Windows 95 және Windows 98 файлдық жүйелері MS-DOS файлдық жүйесі негізінде жасалған: осы себептен соңғысының көптеген қасиеттері, соның ішінде файлдарға атау беру принципі мұраға қалды. Әр нұсқа сайын файлдық жүйеге жетілдірулер қосылды, алайда біз жалпы MS-DOS және Windows-тың «классикалық» нұсқаларының мүмкіндіктерін оқып-үйренумен шектелеміз. Windows NT, Windows 2000 және Windows XP операциялық жүйелері MS-DOS файлдық жүйесін қолдауды ұсынады, алайда олардың басқа да қасиеттерге ие (файлдарға Unicode кодтауында ат беру) өз NTFS (New Technology File System – жаңа технологияның файлдық жүйесі) файлдық жүйесі бар. Windows-тың аталған нұсқаларында NTFS жүйесі де өзгерді. Бұл бөлімде Windows-тың Windows 98 сияқты ескі нұсқаларының файлдық жүйесі қарастырылады. Егер қандай да бір сипатталып жатқан қасиет MS-DOS-та жоқ болса, біз оны ереше атап өтетін боламыз. NTFS туралы айта отырып, біз Windows XP файлдық жүйесін меңзейміз, ал қарастырылып отырған аспект Windows NT және Windows 2000 файлдық жүйелеріне қолданылмайтын болса, бұл да жеке аталып өтеді.
2. Файлдық жүйенің құрамдары.
Көптеген операциялық жүйелерде файл аты нүктемен бөлінген екі бөліктен тұрады, мысалы prog.с. нүктеден кейінгі файл атының бөлігі файл атауының кеңейтілуі деп аталады және әдетте, оның типі сипатталады. Сонымен MS-DOS-та файл аты 1-ден 8-ге дейінгі символдарға қоса 1-ден 3-ке дейінгі кеңейтілуден тұрады. UNIX-те файл кеңейтілуінің шамасы пайдаланушымен анықталады. Сонымен қатар, файлдың бірнеше кеңейтілуі болуы мүмкін, мысалы, prog.с . bz2, мұндағы bz2 кеңейтілуі prog.с файлының bzip2 алгоритмі көмегімен сығылғанын білдіреді. Кейбір жиі кездесетін файл атауының кеңейтілулері және олардың мағыналық жүктемесі 9.1-кесетеде көрсетілген.
Кесте 9.1 – Файл атауларының кейбір типтік кеңейтілулері
Кеңейтілуі |
Мәні |
file.bak |
Файлдың резервтік көшірмесі |
file.с |
С тіліндегі бағдарламаның бастапқы мәтіні |
file.gif |
GIF форматындағы бейне |
file.hip |
Анықтама файлы |
file.html |
HTML (веб-бет) форматындағы құжат |
file.jpg |
JPEG стандартының статикалық бейнесі |
file.iso |
Компакт-диск бейнесі, оны жазу үшін арналған |
file.mp3 |
MPEG форматындағы музыка, 3-деңгей |
file.mpg |
MPEG форматындағы фильм |
file.о |
Объектті файл (компилятордың әлі жинақталмаған шығыс файлы) |
file.pdf |
PDF (Adobe Acrobat бағдарламасының) форматындағы құжат |
file.ps |
PostScript форматындағы құжат |
file.tex |
ТЕХ форматтау бағдарламасы үшін кіріс файлы |
file.txt |
Ортақ міндетті мәтіндік файл |
file.zip |
Сығылған архив |
10. Файлдарды ұйымдастыру тәсілдері. Файлдық жүйенің менеджері. Файлдарды қорғау мен сақтау.
1. Файлдарды ұйымдастыру тәсілдері. Файлдық жүйенің менеджері.
Файлдар бірнеше тәсілдермен ұйымдастырылуы немесе құрылымдануы мүмкін. Құрылымның үш түрі 10.1-суретте көрсетілген. 10.1а суретегі файл байттардың құрылымдалмаған тізбегін көрсетеді. Бұл жерде операциялық жүйе файл мазмұнына қызығушылық танытпайды. Оның бар көретіні – байттар. Бұл байттарға мәндер пайдаланушы деңгейіндегі бағдарламалармен меншіктеледі. Мұндай тәсіл UNIX-пен қатар Windows 98 жүйесіне де тән. Оперциялық жүйенің файлдарды тек байттар тізбегі ретінде трактовкалауы максимальді иілгіштікті қамтамасыз етеді. Пайдаланушы бағдарламалары файлға барлық нәрсені орналастыра алады және оларды өздеріне ыңғайлы кез келген тәсілмен атай алады. Операциялық жүйе бұл процеске араласпайды, бұл ерекше нәрсе жасауға жиналған пайдаланушылар үшін айтарлықтай құнды болып табылады. Құрылымдау бағыты бойынша бірінші қадам 10.1,б суретте көрсетілген. Берілген модельде файл әрқайсысы өз ішкі құрылымымен болатын фиксирленген ұзындықтағы жазбалар тізбегі болып табылады. Жазбалардан тұратын файлдар үшін ең маңыздысы – оқу операциясы бір жазбаны қайтарады, ал жазу операциясы бір жазбаны жаңалайды немесе толықтырады. 80 тесікті бағандардан тұратын перфокарталар қолданылған бірнеше ондаған жылдар бұрын көптеген операциялық жүйелер (мэйнфреймдерде) 80-символдық жазбалар – перфокарталар бейнесінен тұратын файлдарды операциялады. Бұл операциялық жүйелермен сызықтық принтерлерге арналған (сол кездері бір қатарда 132 символ баспаға шығаратын) 132-символдық жазбалардан тұратын файлдар да қолдау тапты. Нәтижесінде бағдарламаларды кіріс файлдарынан 80-символдық блоктарды оқыды және сол сәтте оларды 132-символдық блоктарға кеңейтті. Қазіргі кезедегі ешқандай әмбебап жүйе бұлай жұмыс істемейді.
Сурет 10.1 – Файлдың үш типі: а – байттар тізбегі; б – жазбалар тізбегі; в - ағаш
Файлдық құрылымның үшінші нұсқасы 10.1,в суретте көрсетілген. Мұндай ұйымдастырылуда файл жазбалар ағашы болы табылады (міндетті түрде бірдей ұзындықта емес). Әрбір жазба фиксирленген позицияда кілттік өрістен тұрады. Ағаш берілген кілт бойынша жылдам іздеу мақсатында кілттік өріс бойынша реттеліп қойылған.
Мұндағы негізгі файлдық операция мүмкін болса да келесі жазбаны алу емес, кілттің көрсетілген мәніндегі жазбаны алу болып табылады. 10.1,в суретте көрсетілген файл үшін, мысалы жүйеден жазбаның файлдағы дәл орнына алаң болмай-ақ «пони» кілтті жазбаны сұрауға болады. Жаңа жазбаны қосу барысында оны қайда қоюды пайдаланушы емес, операциялық жүйе шешуі тиіс. Файлдардың мұндай типі UNIX және Windows 98 жүйелерінде қолданылатын құрылымдалмаған байттар ағынынан принципиальді түрде ерекшеленеді. Осыған ұқсас файлдық жүйелер деректерді коммерциялық өңдеу үшін де пайдаланылатын үлкен мэйнфреймдерге тән болып келеді.
2. Файлдарды қорғау мен сақтау.
Көптеген операциялық жүйелер әртүрлі типтегі файлдарды қолдайды. Мысалы, UNIX және Windows жүйелерінде қарапайым файлдар мен каталогтар арасында айырмашылық бар. Сонымен қатар, UNIX жүйесінде символдық және блоктық арнайы файлдар бар. Windows XP жүйесі метадеректер файлдарын пайдаланады. Қарапайым (regular) файлдарға пайдаланушы ақпаратынан тұратын барлық файлдар жатады. 10.2 суреттегі барлық файлдар жай ғана файл болып табылады. Каталогтар – бұл файлдық жүйені құрылымдауды қамтамасыз ететін жүйелік файлдар. Символдық арнайы файлдардың енгізу-шығаруға қатысы бар және терминал, принтер және желі сияқты енгізу-шығарудың тізбектік құрылғыларын модельдеу үшін пайдаланылады. Блоктық арнайы файлдар дисктерді модельдеу барысында қолданыс табады. Бұл бөлімде негізінде қарапайым файлдар қарастырылады. Қарапайым файлдар не ASCII-файлдар, не екілік файлдар болып табылады. ASCII-файлдар мәтіндік қатарлардан тұрады. Кейбір жүйелерде әртбір ASCII-қатар каретканы қайтару символымен аяқталады. Басқа (мысалы, UNIX) жүйелерде қатарды ауыстыру символы пайдаланылады. Бұл екеуі де қажет болатын жүйелер (мысалы, Windows) бар. Қатарлар бірдей ұзындықта болуы шарт емес.
Сурет 10.2 – Екілік файл құрылымы: а — орындалатын файл; б — архив
Барлық операциялық жүйелер ең болмағанда бір файл типін - өз орындалушы файлдарын тануы тиіс, бірақ кейбір операциялық жүйелер басқа типтегі файлдарды да айыра алады. TOPS-20 ескі жүйесі (DECsystem 20 компьютеріне арналған) оған орындауға берілген әрбір файлдың құрылған уақытына да анализ жасайды. Содан кейін ол бастапқы файлды тауып, орындалушы файл құрылғаннан кейін оның өзгеріске ұшыраған-ұшырамағанын тексереді. Егер орындалушы файл ескірген болса, операциялық жүйе басстапқы файлды автоматты түрде қайта компиляциялайды. UNIX тіліне аударуда – make бағдарламасы қабықшаға кірістіріліп қойылды. Операциялық жүйенің қандай екілік бағдарлама қай бастапқы файлдан туындағанын анықтай алуы үшін файлдар атауының кеңейтілуі міндетті болды.
Алайда, файлдар типінің мазмұнына деген мұндай қатаң байлануы операциялық жүйені құрастырушылармен қарастырылмаған, қандай да бір нәрсені жасауға тырысқан пайдаланушы үшін ыңғайсыз болуы мүмкін. Мысалы, бағдарламалық шығыс файлдары автоматты түрде dat (деректер файлы) кеңейтілуін алатын жүйені алайық. Айталық, пайдаланушы С тілінде бағдарламаның бастапқы мәтіндерін форматтайтын бағдарлама жазды делік. Бағдарлама кеңейтілуі .с болатын файлды оқиды, оны өңдейді және содан кейін нәтижені стандартты кеңейтілуі .dat болатын файлға сақтайды. Егер пайдаланушы кейін бұл файлды С компиляторына ұсынатын болса, операциялық жүйе оны компиляциялауға жол бермейді, өйткені осы әрекет үшін файлдың кеңейтілуі дұрыс емес. file.dat файлын file.с файлына көшіру әрекеті пайдаланушыны қателіктен қорғау үшін операциялық жүйемен қайтарылып тасталады. Алайда мұндай «достық» пайдаланушыларға қатысты жаңадан келгендерге пайдалы болуы мүмкін, ол операциялық жүйені алдау үшін тәжірибелі пайдаланушыларды шарасыз күйге түсіреді.
11. Жадыны басқару. Жадыны бірігіп қолдану. Жадыны қорғау. Виртуалды жадыны ұйымдастыру. Беттерді аударыстыру стратегиялары. Жады қорының менеджері. Жадыны бөлу стратегиялары.
- Жадыны басқару. Жадыны бірігіп қолдану.
Адрестерді байлау. 11.1 суретте бастапқы бағдарлама ақпаратын жедел жадқа бейнелеу процесі көрсетілген.
Сурет 11.1 – Адрестерді байлау
Бізді функция қызықтырады.
- Берілген пайдаланушы атын ақпарат идентификаторына бейнелейтін атау беру функциясы. Бұл функция әдетте, байланыстар редакторымен іске асырылады.
2 Жадыны қорғау.
Үлестірілген ортақ жад. Үлестірілген есептеулер идеясының пайда болу сәтінен бастап машиналарда бағдарламалар физикалық ортақ жадсыз әртүрлі адрестік кеңістіктерде орындалады деп айқын шамаланды. Тек 1986 жылы К.Ли (К. Li) үлестірілген ортақ жад ҮОЖ (Distributed Shared Memory - DSM) концепциясын жасады. Оның негізгі идеясы - желідегі жұмыс станцияларының жинағы бірыңғай беттік виртуальді адрестік кеңістікті бөлетіндігінде.
Үлестірілген ортақ жадты жүйелер артықшылықтары – оларда мультипроцессорлық жүйелер үшін жазылған бағдарламалар орындала алады. Мұндай жүйелер оңай масштабталады. Олардың кемшілігі – коммуникациялық хаттамаларды (trashing) орындауға кеткен шығындармен байланысты айтарлықтай төмен өнімділік болып табылады.
Үлестірілген ортақ жадты жүйелерді оңтайландыру жолы - тек жазу үшін қажетті деректерді бөлуден тұрады, ал оқу үшін қажетті деректер бөлінбейді (сондықтан бұл беттер желі бойынша жіберілмейді).
Архитектуралар типтері және оларға сәйкес үлестірілген ортақ жадты қолдайтын құрылымдар 11.2-суретте көрсетілген.
Сурет 11.2 – Үлестірілген ортақ жад
12. Виртуалды жадыны ұйымдастыру. Беттерді аударыстыру стратегиялары. Жады қорының менеджері. Жадыны бөлу стратегиялары.
1 Виртуалды жадыны ұйымдастыру. Беттерді аударыстыру стратегиялары.
Жадты виртуальді түрде ұйымдастыру – логикалық жадты физикалық жадтан тыс кеңейту процесі.
Виртуальді жад – жадта толық емес болатын процестерді орындауға мүмкіндік беретін техника. Виртуальді жад көптеген операциялық жүйелерде іске асырылған. Алайда, оны түрлі себептермен қолдамайтын операциялық жүйелер де бар:
- MS-DOS - әлсіз аппараттық қамтылған ескі процессорларда кең таралу себебі бойынша;
- Cray архитектурасындағы операциялық жүйелер – уақытты үнемдеу мақсатында.
Виртуальді жадтың екі негізгі есепті шешеді.
- Бірнеше қосымшалармен бірмезгілде жұмыс істеу мүмкіндігі.
- Бағдарламаның негізгі жадта толығымен болмау мүмкіндігі.
Виртуальді жадтың нақты мезанизмі үш негізгі стратегияның қалай іске асырылатынына тәуелді болады.
- Орналастыру стретагиясы (placement policy) итермеленетін бет немесе сегменттің негізгі жадтың қай жеріне орналастырылатынын анықтайды.
- Итермелеу стратегиясы (fetch policy) бет немесе сегменттің уақыттың қай моментінде негізгі жадқа орналастырылатынын анықтайды.
- Ығыстыру стратегиясы (replacement policy) орнына жаңасын қою үшін беттердің немесе сегменттердің қайсысын жедел жадтан өшіру керек екенін анықтайды.
Орналастыру стратегиясы
Жадты беттік ұйымдастыру жағдайында орналастыру стратегиясы жадтың барлық бөліктерінің өлшемдері бірдей болғандықтан тривиальді түрде іске асырылады. Жадты сегменттік ұйымдастыру жағдайында екі тәсіл ерекшеленеді.
- Бос жад тізімін жасау. Тізімді адрестердің немесе фрагменттер өлшемдерінің өсу реті бойынша ұйымдастыруға болады. Тізім жасаудің белгілі стратегиясы – 2-ң қайсыбір дәрежесі өлшеміндегі блоктар жағдайындағы егіздер әдісі болып табылады.
- Жадты нығыздау болып табылатын қоқысты құрастыру. Қоқысты құрастырудың кері әсері жеткілікті, мысалы, оның көзінше ағымдық тапсырмаларды тоқтатып қоюға тура келеді.
Итермелеу (вталкивания) стратегиясы
Итермелеудің екі негізгі стратегиясы бар:
- жоқ бет қажет болған сәтте іске асырылатын сұраныс бойынша итермелеу.
- алдын орап кетумен итермелеу. Ол бағдарлама тәртібін алдын ала білу мүмкіндігі бар болса ғана қолданыла алады. Бұл өте сирек жағдайларда ғана (мысалы, тізбектей өңделетін үлкен массивпен жұмыс істеу барысында) жасалынады. Жадта жоқ бет қажет жағдайда операциялық жүйе үзілуді генерациялайды. Ары қарай виртуальді жад менеджеріне жүгіну орындалады. Ол қатты дисктен қажетті бетті оқып, оны жадтың бос бөлігіне жазады, беттер кестесін түзетеді және процессорға әрекеттің қайта орындалуына команда береді.
Ығыстыру стратегиясы
Негізгі жадтан ығыстырылатын бетті анықтау үшін келесі алгоритмдер пайдаланылады:
1. Оңтайлылық принципі (Биледи прнципі). Ұзақ уақыт бойы жүгіну жасалмайтын бетті ығыстыру керек. Бұл принцип практикада іске аспайды, бірақ басқа алгоритмдерді бағалау кезінде эталон ретінде пайдалануға болады.
2. Кездейсоқ таңдалған бетті ығыстыру. Бұл әдістің кемшілігі кездейсоқ жолы болуда, ал артықшылығы – дискриминациялаудың жоқтығы.
3. Бірінші жүктелген бетті ығыстыру. Әдістің артықшылығы – жеңіл іске асырылады, кемшілігі – үлкен жүйені жүктеу барысында тиімді емес. Бұл әдістің аномалиясы бар
2 Жады қорының менеджері. Жадыны бөлу стратегиялары.
Жады қорының менеджерінде үлестірілген ортақ жадты реализациялау алгоритмдері
Төрт негізгі алгоритм бар:
- Орталық серверлі алгоритм. Барлық бөлінетін деректер орталықтандырылған серверді қолдайды. Клиенттер оған сұраныстармен жүгінеді. Егер деректер оқу үшін керек болса, онда олар клиенттерге жіберіледі. Егер жазу үшін керек болса, онда сервер оларды түзетеді және модификацияны растайтын квитанцияға жауап ретінде клиенттерге жіберіледі.
- Миграциялық алгоритм. Алдыңғы алгоритмдерден негізгі айырмашылығы - деректердің орталықтандырылған серверді қолдамайды. Бөлінетін деректер сұраған түйінге қайта жіберіледі (миграциялайды). Алгоритм - бетті басқа түйінге миграциялағанға дейін оған бірнеше жүгіну орындалып болғанша еріксіз сол түйінде ұсталып тұратын уақытты беру мүмкіндігін қарастырады.
- Оқу үшін бөлу алгоритмі. Оқу және жазу концепциялары болып бөлінеді. Оқуға арналған беттерді әрбір түйінде сақтауға болады. Жазуға арналған беттер алдыңғы алгоритм бойынша басқарылуы тиіс. Алгоритм өнімділігі оқу бойынша бірмезгілде қол жеткізу мүмкіндігі есебінен артады. Деректерді жазу барлық ескірген деректер блогы немесе оларды түзету көшірмесін жоюға кететін үлкен шығындарды талап тетеді.
- Толық көбею алгоритмі. Бұл алгоритм – алдыңғы алгоритмнің кеңейтілген түрі. Ол көптеген оқырмандар және көптеген жазушылар хаттамасын реализациялайды. Көптеген түйіндер деректерді параллель түрде жаза алатындықтан келісімділікті қолдау үшін оларға қол жеткізуді бақылау талап етіледі.