Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Виртуалды жадыда көрсетілетін файлдар





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

Файлды виртуалды жадыға көрсету үшін файлды ашқаннан соң mmap жүйелі шақыру орындалады, оның әрекеті ашық файл сияқты бөлінетін жады сегменті жасалады да, автоматты түрде процессордың виртуалды жадысына қосылады. Осыдан кейін процесс жаңа сегменттен оқи алады (шын мәнінде файлдағы байттар оқыла алады) және оған жаза алады (шын мәнінде барлық жазбалар файлда көрсетіледі). Файлды жапқан кезде сегмент автоматты түрде процессордың виртуалды жадысынан бөлінеді және файл басқа виртуалды жадыға қосылмаған болса жойылады.

Бірнеше процестер бір уақытта бір файлды mmap желілік шақырумен өздерінің виртуалды жадыларына қоса алады. Онда бөлінген жадының сәйкес сегментіне жазу көмегімен жасалатын кез келген өзгерістер басқа процестерге бірден көрінетін болады.

Файлға қатар ену кезіндегі синхронизация. Бұрыннан UNIX ОЖ файлдарға қатар енудің өте жай әдісі қолданады: жүйе процестердің кез келген санына бір файлды кез келген режимде ашуға мүмкіндік берген және ешқандай синхронизацияланатын әдістерді қолданған жоқ. Файлдың бірге өңдеу дұрыстығы үшін барлық жауапкершілік оны қолданушы процеске қарайды да, жүйе процестердің файлға ену синхронизациясы үшін бөлек құралдарды қолданған жоқ.

System у.4-те файлдарға қатар енуді процестерге синхронизациялауға мүмкіндік беретін құралдар пайда болды. UNIX ОЖ ядросы файлдық жүйеге қарайтын файлды ашу режимі туралы ақпаратты алу, ашу режимін өзгерту сияқты қосымша функцияларды қамтамасыз ететін fcntl қосымша желілік шақыруды ұстанады. Бұл желілік шақыру көмегімен файлды монопольді немесе ортақ құрсаулауды немесе файл ішінде көрсетілген диапазонды құрсаулауды орнықтыруға болады. Екі әдісі бар: құрсаулау талаптары оның жасалғанына дейін процесті бөлектеуге әкелетін күтумен және процесс құрсаулауды талап етудің қанағаттандырылуы жайлы немесе оның дәл осы уақытта тез арада хабарланған кездегі күтусіз. орнықтырылған қүрсаулар оны орнықтырған процеске ғана қарайды және осы процестің процесс ағындарымен мүраға қалмайды. осыған қоса, егер тіпті кейбір процесс fcntl жүйелі шақырудың синхронизациялайтын мүмкіндіктерімен қолданса да басқа процестер бұрынғыдай сол файлмен синхронизациялауды қолданбай жұмыс істей алады. Басқа сөзбен айтқанда, бүл файлды бірге қолданатын процестер тобының жұмысы - қатар енудің синхронизациялау әдісі жайында алдын ала келісіп алу.

Файлдарды сақтау. Көпқолданбалы операциялық жүйедегідей UNIX-та файлды жүйенің файлдар мен анықтамалықтарға енуге біртекті бақылау механизмі ұстанады. Кез келген процесс кейбір файлға файлда сипатталған ену қүқықтары берілген процесс мүмкіндіктеріне сәйкес келсе ене алады.

UNIX ОЖ қате енуден файлдарды қорғау үш фактіге негізделеді. Біріншіден, файлды жасайтын кез келген процеспен жүйеде кейбір әмбебап қолданушы (UID USER Identifier) идентификаторымен салыстырылады, оны келешекте қайта жасалған файл иесінің идентификаторы ретінде айтуға болады. Екіншіден, файлға енуді ойластырған әр процеспен екі идентификатор байланысты - қолданушылардың қазіргі идентификаторлары меп олардың топтары. Үшіншіден, әр файлға міндетті түрде оның сипаттағышы сәйкес келеді - і-торап.

Файлдар мен файл атаулары бір ұғым емес екенін түсіну маңызды. Бірақ бір файлмен байланысты бірнеше ңатты байланыстарда бірнеше файлдар атаулары шын мәнінде бір файлды ұсынады және бір і-торабымен бай- ланысты. Файлдық жүйедегі кез келген қолданылатын і-торапқа ылғида бір ғана файл сәйкес келеді. І-торап көп әрі әр түрлі ақпараттан түрады және осы ақпараттың ішінде файлдық жүйеге талап етілген режимде берілген файлға берілген процестің ену қүқыңтығын бағалауға мүмкіндік беретін бөлігі бар.

Жүйенің барлық нүсқалары үшін қорғаудың жалпы принциптері бірдей: і-торап ақпараты UID және файл иесінің GID қосады. Сонымен қатар, файл і-торабында онымен файл қолданушы - оның иесі, сол қолданушылар тобына кіретін қолданушылар және басқа қолданушылар не істей алатыны көрсетілген межелігі сақталған.

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

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

Желілік арақатынастың базалық механизмдері

UNIX операциялық жүйесі жасалғаннан бастап желілік операциялық жүйе болды.

Ағындар (Streams). UNIX ең бірінші нұсқаларында коммуникациондық құралдар таңбалық кіріс/шығысқа негізделген, өйткені, біріншіден аппараттық негіздер модем мен терминалдар болып табылады. Осындай құралдар салыстырмалы баяу болғандықтан, алғашқы нұсқаларында бағдарламалық жасақтаманың модульдігі, жайында ойлауға керегі жоқ болды.

TCP/IP (Transmission Control Protocol/Internet Protocol), SNA (IBM's System Network Architecture), OSI (Opensystems Internetworking), X.25 сияқты көп деңгейлі желілік хаттамалардың пайда болуымен UNIX ОЖ көп деңгейлі хаттамаларға негізделген желілік құралдарды құрудың кейбір ортақ негізінің талап етілуі түсінікті болды.

Көп жағдайда бұл қиындық құрылғылар драйверлері мен коммуникациялық хаттамалардың жасалуы үшін иілгіш және модульді мүмкіндіктерді қамтамасыз ететін (streams) ағындар механизімін шығарып жасаған AT&T компаниясымен шешілді.

Streams желілік шақырулар мен ішкі желілерді және ядро ресурстарынан түратын жалпы мақсаттағы өзара байланысқан құралдар жиыны болып табылады. Бірігіп бұл құралдар ядро ішіндегі, сонымен қатар ядролар және құрылғылардың сәйкес драйверлерінің арасында қатынастық сервистердің жасалу мен жүмыс істеуінің иілгіш және дамыған мүмкіндіктерін ұсынып, үлгілі таңбалы кіріс/шығыс интерфейсін қамтамасыз етеді. Бірақ ағын механизмі қандай да бір нақты желі архитектурасын және нақты хаттамаларды міндетті етпейді. Құрылғының кез келген драйвері сияңты ағынды драйвер open, close, read, write және ioctl амалдардың стандартты жиынымен файлды жүйенің арнайы файлымен ұсынылады. Қолданбалы процесс open желілік шақыруымоп қолданып, ағынды құрылғыны ашқан кезде ядроны драйвермен ағын аты байланыстырады. Осыдан кейіи қолданбалы процесс ағын атымен қүрылғының көдімгі драйвері секілді байланысады. Басқа сөзбен айтқанда, ағын атауы ағынды драйверге қатысты қолданбалы процеспен жасалатын барлық желілік шақырулардың өңделуіне жауап беретін. Егер процесс жазуды құрылғыға орындаса, ағын атауы деректерді қүрылғы драйверіне кему бағытымен жібереді. Керісінше құрылғыдан оқу кезінде құрылғы драйвері деректерді ағын атына өсу бағытымен жібереді.

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

Әр ағынды модуль ағында басқа деректерді өңдейтін модульдерден тәуелсіз болып табылады. Деректер ағынды модульдердің кез келген санымен кему бағытта қозғалумен, құрылғы драйверлерін немесе өсу бағытта қозғалумен ағын атына жетпейінше өңделеді. Деректерді ағын атынан драйвер немесе модульге, бір модульден басқа модульге және драйверден немесе модульден ағын атына жіберу үшін хабарлама механизмі ңолданылады. Әр хабарлама әрбіреуі атаудан, деректер блогінен және деректер буферінен тұратын хабарлама блогінің жиыны болып табылады.

 

 

Date: 2015-05-22; view: 1467; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию