Тақырыбы: «Операциялық жүйелер, орта және қабықшалар»
Кіріспе. Курс мақсаты мен мәні. Операциялық жүйелердің даму бағыттары. Операциялық жүйелердің даму тенденциялары.
1 Негізгі ұғымдар мен анықтамалар
Операциялық жүйе (ОЖ) – компьютердің аппаратурасы мен қосымшалары (және пайдаланушылары) арасындағы интерфейс ретінде болатын бағдарламалық қамтама бөлігі.
ОЖ екі негізгі функцияны орындайды:
- Пайдаланушы-бағдарламалаушыға компьютердің нақты аппаратурасының орнына жұмыс істеуге ыңғайлы болатын кеңейтілген виртуальді машинаны ұсынады. Виртуальді машина – бұл пайдаланушы үшін берілген конфигурацияны нақты бар компьютердің бағдарламалық және аппараттық құралдарымен модельдейтін есептеуіш жүйесі. ОЖ аппараттық машинаны виртуальді машинаға түрлендіретін бағдарламалық қамтама қабаты болып табылады. Виртуальді машина конфигурациясының нақты машина конфигурациясынан айтарлықтай ерекшелігі болуы мүмкін.
- Компьютердің ресурстарын рационалды түде басқару есебінен оны пайдалану тиімділігін арттырады.
ОЖ ресурстарын екі топқа бөлуге болады (1.1-сурет):
- бағдарламалық ресурстар (процестер, виртуальді адрестік кеңістік, енгізу-шығару ішкіжүйесі);
- аппараттық ресурстар (процессорлар, жады, құрылғылар).
Сурет 1.1 – Ресурстар классификациясы
Әрбір аппараттық ресурсқа онымен тығыз байланысқан қандай да бір бағдарламалық ресурс (мысалы, процессор мен процесс) сәйкес келетінінен назар аударайық.
Бейнелеп айтқанда, ОЖ-нің негізгі функциясын сиқырлаушылық деп есептеуге болады – жүйенің нақты бейнесінен жоғарылау күйге түрленуі. Мысалы, операциялық жүйе бір процессорда бірнеше бағдарламаны бірмезгілде орындау иллюзиясын жасай алады. Нәтижесінде пайдаланушы виртаульді машинаны нақты бар машинадан архитектурасы өте жоғары компьютер ретінде қабылдайды.
Операциялық жүйе ядросы – операциялық жүйенің негізгі функцияларын орындайтын модульдер. Бұл модульдер әдетте, процестерді, жадты, енгізу-шығару құрылғыларын басқаруды қолдайды. Операциялық жүйе ядросының коды процессор жұмысының пұрсатты режимінде орындалады.
Операциялық жүйенің кейбір компоненттері осы операциялық жүйе үшін стандартты форматтағы қарапайым қосымшалар болып табылады. Оларды операциялық жүйенің көмекші модульдері деп атайды. Сондықтан көп жағдайда операциялық жүйе мен қосымшалар арасында шекара жүргізу қиынға соғады. Әдетте, қандай да бір бағдарламаның операциялық жүйеге тиістілігі туралы шешімді өндіруші қабылдайды.
3 Операциялық жүйелердің даму бағыттары.
ОЖ-лердің төменде келтірілген тарихи буындарын атап көрсету қабылданған:
- Нөлдік буын. Алғашқы компьютерлерде ОЖ-лер болмаған. Бұл алғашқы компьютерлердің пайда болуынан бастап ХХ ғасырдың 50-ші жылдары ортасына дейінгі период.
- Бірінші буын. Пакеттік өғдеу, мультибағдарламалық ОЖ-лер. ХХ ғасырдың 50-жылдарының ортасында пайда болды.
- Екінші буын. Көпрежимді ОЖ-лер, нақты уақыт ОЖ-лері. ХХ ғасырдың 60-жылдарында пайда болды.
- Үшінші буын. Дербес компьютерлерге арналған ОЖ-лер, желілік ОЖ-лер. ХХ ғасырдың 80-жылдарының басында пайда болды
- Төртінші буын. Үлестірілген ОЖ-лер. ХХ ғасырдың 90-жылдарының басында пайда болды
4 Операциялық жүйелердің даму тенденциялары
Бірінші ОЖ ХХ ғасырдың 50-жылдары ортасында пайда болды. Ол IBM-701 компьютері үшін General Motors компаниясының зерттеу лабораториясында жасалды. ХХ ғасырдың 60-жылдары ортасына дейін операциялық жүйелер тегін таратылатын. 1.2-суретте белгілі ОЖ-лер және олардың жасалған жылдары көрсетілген.
Кейбір операциялық жүйелерге мінездеме берейік.
- Atlas. Бұл ОЖ Манчестер (Англия) университетінде жасалды. Алғаш рет осы операциялық жүйеде пайда болған ерекшеліктердің көбі (мысалы, жадты беттік басқару) қазіргі уақытта қазіргі заманғы операциялық жүйелердің стандартты бөліктері болып табылады.
- XDS-940. Бұл жүйе Беркли (АҚШ) университетінде жасалды. Бұл уақыты бөлінген операциялық жүйелер болды. Ол пайдаланушылық бағдарламаға процестерді анықтап, олармен жүйелік шақырулар арқылы жұмыс істеуге мүмкіндік берді.
- THE. Эйндховен Техникалық мектебінде (Голландия) жасалды. Жүйе қабатты архитектуралы болды және семафорлар көмегімен синхронизацияны орындай отырып, параллель процестермен жұмыс істей алды.
- CTSS. Жүйе Массачусетс технологиялық институтында (АҚШ) уақытты бөлу механизмімен болатын экспериментальды жүйе ретінде жасалды.
- MULTICS. Бұл жүйе де Массачусетс технологиялық институтында жасалды және CTSS жүйесінің дамытылған түрі болып табылды. Өз кезегінде бұл жүйе Unix операциялық жүйесінің алдыңғы түрі болып табылады.
- OS/360. IBM/360 копьютерлерінің үлкен әулеті үшін арналған операциялық жүйе. Ол ассемблер тілінде мыңдаған бағдарламалаушылармен жазылды және миллиондаған қатарлы кодты ұсынды.
- Unix. Unix операциялық жүйесінің ресми туылған күні деп 1970 жылдың 1-қаңтары саналады. Осы сәттен бастап кез келген Unix жүйесі өзінің жүйелік уақытын есептеуді бастайды. Шындығында бұл операциялық жүйенің бірінші нұсқасы 1969 жылы жасалды.
Сурет 1.2 – Белгілі операциялық жүйелер
2. Операциялық жүйелердің жіктелігі. Операциялық жүйенің функциялары мен міндеттері. Мультипрограммалау. Уақыт бөлу режимдері.
1 Операциялық жүйелердің жіктелігі
1.1 Орталықтандыру типі бойынша жіктеу
Бірінші және негізгі жіктеу негізіне операциялық жүйені орталықтандыру (байланыстылық) дәрежесін жатқызамыз (2.1-сурет).
Сурет 2.1 – Орталықтандыру типі бойынша жіктеу
Бұл жіктеу операциялық жүйелер жасалатын аппараттық платформалар ерекшеліктерін назарға алады.
1. Орталықтандырылған (жергілікті) ОЖ-лер. Бұл жүйелер жалғыз локальді компьютер ресурстарын басқарады. Оларға алгоритмдер жағынан алғанда екі әртүрлі ішкікластар кіреді: - Бірпроцессорлы жүйелер; - Көппроцессорлы жүйелер.
2. Желілік ОЖ-лер. Мұндай жүйелер желі пайдаланушыларына нақты желілік аппаратураға қарағанда жұмыс істеуге ыңғайлы қайсыбір виртуальді машинаны ұсынады. Алайда, пайдаланушы желілік ресурстарға қол жеткізу үшін әрқашан арнайы операцияларды орындайды. Желілік жүйелер үш негізгі компоненттен тұратын қосымша желілік құралдардан тұрады:
- ОЖ-нің серверлік бөлігі – жергілікті ресурстарды және ортақ пайдалану қызметтерін ұсыну құралдары;
- ОЖ-нің клиенттік бөлігі – алыстатылған ресурстар мен қызметтерге қол жеткізу сұраныстарының құралдары;
- ОЖ-нің транспорттық құралдары – желі компьютерлері арасында хабарламалар алмасуды қамтамасыз ететін құралдар.
3. Үлестірілген ОЖ-лер. Олар желі пайдаланушысына желілік ресурстардың мөлдірлігінің (ашықтығының) ең үлкен дәрежесін беретін бірыңғай орталықтандырылған виртуальді машинаны ұсынады. Үлестірілген жүйелер тығыз кооперацияда жұмыс істеу үшін желінің барлық компьютерлерін біріктіреді. Мұндай жүйелерде жұмыс істеу барысында қосымшаны іске қосатын пайдаланушы оның нақты қай компьютерде орындалып жатқанын білмейді.
Бұл жіктеудің қызықты негіздемесі бар. Параллель және үлестірілген архитектуралар классификациясының негізгі мінездемесі деп ортақ немесе үлестірілген (әрбір түйін үшін локальді) жадты айтады. Осыдан келіп, есептеуіш жүйелерін екі класқа бөлуге болады.
- Күшті байланысты жүйелер. Бұған бірнеше біртекті процессорлардан және ортақ жад массивінен тұратын жүйелер жатады.
- Әлсіз байланысты жүйелер. Бұл әрқайсысының өз жадысы бар біртекті есептеуіш түйіндерінен тұратын жүйелер.
Бағдарламалық қамтаманы да екі класқа бөлуге болады.
- Күшті байланысты бағдарламалық қамтама. Бұған бірнеше есептеуіш модульдерінде орындалу барысында көбіне бір-бірімен байланысқан бағдарламалар жатады.
- Әлсіз байланысқан бағдарламалық қамтама. Ол есептеуіш модульдеріне бір-бірінен тәуелсіз болуына, бірақ қажет жағдайда шектеулі мөлшердегі тәсілдермен өзара әрекет етуіне мүмкіндік береді.
Нәтижесінде осы жұптар арасында төрт әртүрлі комбинацияны алуға болады, олардың үшеуі мағыналы болып табылады және келесі операциялық жүйелер типін анықтайды (2.2-сурет).
Сурет 2.2 – Орталықтандыру типі бойынша жіктеудің негіздемесі
1.2 Ресурстарды басқару алгоритмдерінің ерекшеліктері бойынша жіктеу
Ресурстарды басқару алгоритмдерінің ерекшеліктері бойынша ОЖ жіктеуінің төмендегідей аспектілері бар:
1. Көпесептілікті қолдау
- Біресепті ОЖ-лер пайдаланушының компьтермен өзара әрекетін қарапайым әрі ыңғайлы ете отырып, оған виртуальді машинаны ұсыну функциясын орындайды.
- Көпесепті операциялық жүйелер қосымша түрде бірлесіп пайдаланатын ресурстарды бөлуді басқарады. Бірінші кезекте олар бірмезгілде бірнеше есепті бір процессорда орындау мүмкіндігін береді.
2. Көппайдаланушылық режимді қолдау
- Бірпайдаланушылық ОЖ-лер бір пайдаланушының ақпараттарын басқа пайдаланушының санкцияланбаған қол жеткізуінен қорғау құралдарын ұсынбайды. Мұндай жүйелер ресурстарды бөлу мүмкіндіктерін ұсынбайды.
- Көппайдаланушылық ОЖ-лерде ақпаратты қорғау құралдары бар.
3. Көпағындықты қолдау. Көпағындық ОЖ-лер процессорлық уақытты тек процессорлар арасында ғана емес, сонымен қатар процестердің жеке бұтақтары – ағындар арасында да бөлу мүмкіндігін береді.
4. Көппроцессорлы өңдеуді қолдау. Көппроцессорлы ОЖ-лер бірнеше процессорлармен жұмыс істеу мүмкіндігін ұсынатын ресурстарды басқарудың күрделі алгоритмдерін реализациялайды.
1.3 Аппараттық платформалар ерекшеліктері бойынша жіктеу.
Аппараттық құралдар спецификасы ОЖ спецификасында бейнеленеді. Бұл классификациядағы компьютерлердің әрбір типінің ОЖ-лер қасиетіне тікелей әсер ететін белгілі бір қасиеттері бар.
Дәл қазір төмендегідей ОЖ-лер тобы айтарлықтай қызығушылық тудырып отыр:
- қуатты серверлер үшін ОЖ-лер;
- жұмыс станциялары және дербес компьютерлер үшін ОЖ-лер;
- қалта компьютерлері үшін ОЖ-лер.
1.4 Пайдалану облыстарының ерекшеліктеріне қарай жіктеу
Пайдалану облыстарының ерекшеліктеріне қарай көпесепті ОЖ-лер үш типке бөлінеді:
1. Пакеттік өңдеу операциялық жүйелері. Олар есептер пакетімен жұмыс жасайды, және процессордың бір есептен екіншісіне ауысуы тек белсенді есептің өзі процесордан бас тартқан жағдайда ғана орындалады.
2. Уақытты бөлу операциялық жүйелері. Мұндай жүйелер әрбір есепке процессорлық уақыттың қандай да бір квантын ұсынады. Бұл жерде осы операциялық жүйелерді диалогтық ретінде пайдалануға мүмкіндік беретіндей бағдарламаның жауап беру уақыты қабылдауға болатындай жеткілікті болады.
3. Нақты уақыт операциялық жүйелері. Олар қандай да бір технологиялық объекттер мен процестерді басқару үшін қолданылады. Оларда бағдарлама жауап беруге жететіндей шектелген уақыт болады.
Көптеген қазіргі заманғы операциялық жүйелер өзінде әртүрлі типтегі жүйелердің қасиеттерін үйлестіре алды. Мысалы, есептің бір бөлігі уақытты бөлу режимінде, ал бір бөлігі нақты уақыт режимінде орындалады.
1.5 Жүйе ядросының типі бойынша жіктеу
Ядро архитектурасының төменде келтірілген негізгі түрлері бар.
1. Монолитті ядро. Мұндай ядро пұрсатты режимде жұмыс істейтін және бір процедурадан екіншісіне жылдам өтуді пайдаланатын бір бағдарлама ретінде жинақталады (2.3а сурет).
2. Қабатты ядро. Бұл жағдайда операциялық жүйе компоненттері жақсы ұйымдастырылған функционалдылық пен интерфейс деңгейін құрайды. Алдыңғы жағдайдағыдай компоненттер пұрсатты режимде жұмыс істейді (2.3б сурет).
3. Микроядро. Микроядро аппаратураны басқару бойынша минимум функцияларды орындайды. Әдетте, оған машиналық-тәуелді бағдарламалар, үзілулерді өңдеу мен процестерді басқарудың кейбір функциялары қосылады. Жоғарылау деңгейдегі функциялар операциялық жүйенің мамандандырылған компоненттерін – процессор сервері, файлдық сервер және т.б. орындайды. Бұл компоненттер пайдаланушылық, пұрсатты емес режимде жұмыс істейді. Берілген архитектура «клиент-сервер» тәсіліне негізделген және кеңейтуге болатындығымен, сенімділікпен, шыдамдылықпен мінезделеді (2.3в сурет).
4. Экзоядро. Бұл архитектураның негізгі идеясы - функциялардың үлкен кітапханасын пайдалана отырып бағдарламаны құрастыру сияқты операциялық жүйені жинауға болатындығында. Нәтижесінде ол қосымшалардың қайсыбір жиынтығы үшін ең аз қажетті жинақты ғана қоса алады. Ядро архитектурасының бұл типі қазіргі уақытта әйгілі болып келеді.
Ядро архитектурасының айтарлықтай дәрежеде операциялық жүйенің барлық архитектурасына әсер ететінін айта кеткен жөн.
Сурет 2.3 – Ядро архитектурасын типі бойынша жіктеу
2 Операциялық жүйенің функциялары мен міндеттері
Операциялық жүйенің негізгі функциясы
Бейнелеп айтқанда, ОЖ-нің негізгі функциясын сиқырлаушылық деп есептеуге болады – жүйенің нақты бейнесінен жоғарылау күйге түрленуі. Мысалы, операциялық жүйе бір процессорда бірнеше бағдарламаны бірмезгілде орындау иллюзиясын жасай алады. Нәтижесінде пайдаланушы виртаульді машинаны нақты бар машинадан архитектурасы өте жоғары компьютер ретінде қабылдайды.
3 Мультипрограммалау. Уақыт бөлу режимдері.
Мультипрограммалу экзоядрода жүзеге асырылады. VM/370 жүйесінде әрбір пайдаланушы нағыз машинаның дәл көшірмесін ғана алады. Pentium-де 8086 виртуалды машинасы режимінде әрбір пайдаланушы басқа машинаның дәл көшіресін алады. Осы идеяны дамыта отырып, Массачусетс технологиялық институтының зерттеушілері әрбір пайдаланушыны нақты компьютердің абсолютті көшірмесімен қамтамасыз ететін (бірақ ресурстардың ішкі жиынымен) жүйені жасап шығарды. Мысалы, бір виртуалды машина дискте 0-ден 1023-ке дейінгі нөмірлі блоктарды, ал келесісі- 1024-тен 2047-ге дейінгі блоктарды және т.с.с. ала алады.
Ядро режимінде төменгі деңгейде экзояро (exokernel) деп аталатын бағдарлама жұмыс істейді. Оның міндетіне виртуалды машиналар үшін ресурстарды үлестіру, содан кейін оларды пайдалануды тексеру (машинаның бөтен ресурсты пайдалану әрекетін тексеру) енеді. Әрбір виртуалды машина пайдаланушы деңгейінде өз операциялық жүйесімен жұмыс істей алады.
Экзоядро схемасының артықшылығы - бейнелеу деңгейінсіз амалдай алуға мүмкіндік беретіндігінде. Жұмыс істеудің басқа әдістерінде әрбір виртуалды машина 0-ден қайсыбір максимумге дейінгі блоктар нөмірлеуімен өзінің меншікті дискісін пайдаланудамын деп есептейді. Сондықтан виртуалды машина мониторы дискте адрестерді түрлендіру кестесін (және барлық басқа ресурстарды) қолдауы тиіс. Берілген ресурс қай виртуалды машинаға бөлінгені туралы жазбаны ғана сақтау қажет экзоядро бар болған жағдайда түрлендіру қажеттілігі мағынасыз болып қалады. Мұндай тәсілдің тағы бір артықшылығы бар: ол көпесептілікті (экзоядрода) пайдаланушы операциялық жүйесінен (пайдаланушы кеңістігінде) ең аз шығындармен бөліп алады, өйткені бұл үшін оған тек бір виртуалды машинаның басқа машина жұмысына араласуына рұқсат етпеу ғана қажет.
3. Арнай міндетті және әмбебап операциялық жүйелер. Процессорді басқару.
1. Арнай міндетті және әмбебап операциялық жүйелер.
Монолитті жүйе
Жалпы жағдайда монолитті жүйені ұйымдастыру үлкен ретсіздік болып табылады. Яғни, осы сияқты құрылым жоқ. Операциялық жүйе әрқайсысы өзіне қажет кезде басқа процедураларды шақыра алатын процедуралар жинағы ретінде жазылған. Мұндай техниканы пайдалану барысында жүйенің әрбір процедурасы параметрлер және нәтижелер терминдерінде қатаң анықталған интерфейске ие болады, және олардың әрқайсысы өзіне қажетті қайсыбір жұмысты орындау үшін кез келген басқасын шақыру мүмкіндігіне ие.
Монолитті жүйені тұрғызу үшін барлық жеке процедураларды жинақтау қажет, содан кейін оларды жинақтаушы (компоновщик) көмегімен бірыңғай объекттік файлға байланыстыру қажет. Мұнда іске асырудың жасырын детальдері толығымен жоқ - әрбір процедура кез келген басқа процедураны көреді (ақпараттың көп бөлігі модуль үшін локальді болып табылатын және модуль процедураларын тек арнайы анықталған кіріс нүктелері арқылы ғана шақытуға болатын модульдерден тұратын құрылымға қарағанда). Алайда мұндай монолитті жүйелердің өзі қайфсыбір құрылымға ие. Операциялық жүйелерден қолдау табатын жүйелік шақыруларға жүгіну барысында параметрлер қатаң анықталған орныдарға – регистрлер немесе стекке орналасады, одан кейін ядро шақыру немесе супервизор шақыруы ретінде белгілі үзілудің арнайы командасы орындалады.
Клиент-сервер моделі
VM/370 жүйесі дәстүрлі операциялық жүйе кодының айтарлықтай бөлігін жоғары деңгейге, CMS жүйесіне (кеңейтілген машинаны қамтамасыз ететін) тасымалдау арқылы қарапайымдылық жағынан ұтады.
Алайда VM/370 және бұл жерде де күрделі кешендік бағдарлама болып қала береді, өйткені бірнеше виртуалды 370-х машиналарын модельдеу оңай емес (әсіресе, егер сіз оны жеткілікті түрде тиімді еткіңіз келсе).
Қазіргі кездегі операциялық жүйелерді дамытуда кодты ары қарай жоғарғы деңгейге ауыстыру және ядро режимінен минимальді микроядроны қалдыра отырып барлық мүмкін нәрселерді жою барысындағы тенденция бақыланады. Әдетте, бұл операциялық жүйенің көптеген есептерін орындауды пайдаланушылық процестерге арта салумен жүзеге асырылады. Қандайда бір операцияға сұраныс ала отырып, мысалы файл блогын оқу, пайдаланушы процесі (қызмет көрсетілетін процесс немесе клиенттік процесс деп аталатын) оны өңдеп, ажауап қайтаратын серверлік (қызмет көрсететін) процеске сұраныс жібереді.
2. Процестер және басқару ағымдары. Процесс ұғымы.
Процесс ұғымы қазіргі операциялық жүйелердегі негізгі ұйымдардың бірі болып табылады. Операциялық жүйе тұрғысынан алғанда, процесс жұмыс бірлігі, жүйелік ресурстарды тұтынуға өтініш. Егер процесс пен программа арасындағы қатынасты айтатын болсақ, онда келесі екі бекітім әділ:
- программа бұл процесс күйінің бөлігі.
- программа жұмысты орындау үшін бір процестен көбірек шақыруы мүмкін.
Процестер операциялық жүйеде иерархия құрайды. Соған сәйкес, туылған процестерді – берілген процестердің ұрпақтары, ал туылған процестің ата-анасын – бабасы деп атайық. Процестің негізгі күйлерін белгілейік (3.1 сурет):
Сурет 3.1 – Процесстің күйлері
- процессорда – процесс барлық қажетті ресурстарға, оның ішінде процессорға ие, беленді күй;
- дайындық – процесс орындауға кезекте;
- күту – процесс оқиғаның аяқталуын күтеді;
- тоқтату – процесс тоқтатылған;
- құру – процесті құру үшін қажетті әрекетті орындау;
- яқтау – процестің сәтті аяқталуымен байланысты әрекетті орындау;
- зомби – процесс бітті, бірақ баба оның аяқталуын қабылдамады;
Процесті құру негізінде келесі әрекеттер орындалуы керек:
- процеске ерекше нөмір беру (ID);
- процесті жүйеге белгілі процестер тізімін қосу;
- бастапқы приоритетті анықтау;
- процеспен басқару блогын қалыптастыру;
- қажетті ресурстарды бөлу.
3 Ағымдылықты қолдайтын процестер.
Басқару (thread) ағымы – программа командаларын табиғи ретпен орындау. Процестер традициялық және көп ағымды болып бөлінеді. Бір процестегі көп ағымдылықтың артықшылықтары бар. Бір процесте екі ағым арасында контексті ауыстырып қосу екі процесс арасындағы контексті ауыстырып қосудан оңайырақ. Орындау стегі мен процессор регистрінің мазмұны етегінен басқа барлық мәліметтер ағымдар арасында бөлінеді. Осылайша, көп ағымдылық тиілу параллеллизмді ұсынады. Көп ағымдылық қажет болатын программалардың тұтас класын көрсетуге болады: операциялық жүйелер, желілік серверлер, орныққан жүйелер, есептеу программалары.
Сигналдар – UNIX операциялық жүйесінде процестің қызметін үзуге болатын, программалық құрал. Сигналдар механизмі процестерге үрей оқиғаларға әсер етуге мүмкіндік береді. Әрбір сигналға сәйкесінше қойылады:
- сигнал нөмірі;
- символдық тұрақты;
- сигналдардың бес класының біріне жатқызу;
- процестің сигналға реакциясы;
- сигналды өңдеушіні шақыру;
- процесті аяқтау;
- сигналды игнорирлеу;
- орныдауды тоқтату.
Келесі үш жағдай операциялық жүйемен сигналды генерация жасауға әкеледі:
- ядро қолданушы клавиатурадағы клавишалардың белгілі бір комбинациясын басқан кезде процеске сигнал жібереді;
- апараттық ерекше жағдайлардың пайда болуы орындалу кезеңіндегі процеске сигнал жіберейік, операциялық жүйенің ядросына бекітімді жіберуге әкеледі;
- жүйенің белгілі бір программалық жағдайы сигналды жіберуді шақыруы мүмкін;
Сигналдардың келесі типтері қызығырақ болып табылады:
- кейбір шарттардың пайда болуы нәтижесінде процестің орындалуы кезінде туатын жабдықтардан сигналдар;
- SIGFPE (8) – жылжымалы немесе тиянақты үтірлі операцияларда орындау кезіндегі ерекше жағдайлар;
- SIGILL (4) – дұрыс емес машиналық команданы орындауға тырысы;
- SIGSEGV (11) – жадыны қорғаудан бұзылды;
- SIGBUS (10) – шына қатесі;
- Қолданушының клавиатурамен генерациялауын, не процестен келесісіне жіберілетін, программалық сигналдар: Мысалы
SIGINT (2) – терминалдан үзу сигналы (<ctrl>+<c> );
SIGQUIT (3) – терминалдан авариялық жұмысты аяқтау сигдалы (<ctrl>+<\>);
SIGTERM (15) – kill үнсіз командасымен жіберілетін программалық үзу сигналы;
SIGKILL (9) – ешқандай процеспен программлық үзу сигналы;
SIGHUP (1) – терминалмен байланысты ажырату;
Қолданушының клавиатурамен генерациялауын, не процестен келесісіне жіберілетін, процесті бақылау сигналы;
SIGSTOP (23) – процесті тоқтату;
SIGSTP (24) – қолданушымен процесті тоқтату (<ctrl>+< Z > );
SIGCONT (25) – тоқтатылған процесті жалғастыру;
SIGCHLD (18) – туған процестің статусын өзгерту.
4 Орталықтандырылған архитектурадағы процестерді коммуникациялау және синхронизациялау
Процестерді параллель деп атайды, егер олар бір уақытта бар болса. Параллель процестерді келесі екі топқа бөлсе болады:
- тәуелсіз процестер;
- асинхронды процестер.
Процестерді асинхронизациялау – процестер арасындағы өзара әрекеттерді болдырмсау үшін, арнайы атомдық амалдарды қолдану.
Критикалық ресурстар – бір рет бір ғана процеске қызмет ететін ресурс. Егер бірнеше процесс критикалық ресурсты болу режимінде пайдаланғысы келсе, онда оларға өз әрекеттерін синхронизация жасауы керек.
Критикалық учаскілер – критикалық ресурсқа қатынас жүретін, процестің учаскілері
Блоктау – біреудің бірнәрсені орындауына тиым салу. Процесс критикалық учаскіге кірер алдында блокты орнатып, оны шыққан соң алып тастауы керек. Егер учаске блокта болса, онда басқа процесс оның алдында күтуі қажет.
Критикалық ресурстыңмысалы деп қандай да бір қосындылап, бөлектейтін айнымалыны (оны санағыш деп атайды) айтады. Процестердің критикалық учаскілері кодтан тұруы мүмкін:
Санағыш:=санағыш+1.
Жарыс (гонки) – екі немесе олдан да көп процесс бөлінген мәліметтерді өңдеп, соңғы нәтиже оның орындалуы жылдамдығының қатынасынан тәуелді болған жағдай.
Тығырықтар
Процестер мен басқару ағындары – белсенді объектілер. Ресурстар – белсенді емес объектілер. Процесс жұмыс кезінде екі келенсіз жағдайға тап болуы мүмкін: Қатып қалу (зависание) және тығырық.
Қатып қалу – ерте ме, кеш пе процестің шығатын анық емес күту жағдайы. Ол қандай да бір ресурстау күтуімен байланысты.
Тығырық – ешқандай шыға алмайтын, қандай да бір оқиғаның күту жағдайы.
Егер бір немесе бірнеше процестер тығырық жағдайында болса, жүйе де тығырық күйде болады.
Тығырықтың пайда болуы үшін төрт шарты бар:
- Өзара ерекшелік шарты (процестер ұсынылған ресурстарды монополиялық игеруді талап етеді);
- Күту шарты (процестер оларға бөлінген ресурстарда қосымшасын бөлуді күте отырып ұстап қалуы);
- Таратылмау шарты (ресурстарды қолданылмай тұрып, оларды ұстап қалған процестерден алып қоюға болмайды);
- Айналма күту шарты (әрбір процесс келесі процеске ажетті бір немесе бұдан да көп ресурсты ұстап қалатын, процестердің айналма тізбегі).
Тығырықтармен жұмыс істеудің төрт негізгі стратегиялары бар:
- Мәселені толық игнорирлеу (страус алгоритмі). Көбіне шынайы оперциялық жүйелер ресурстардың көптігінен тығырықтармен күреспейді.
- Тығырықтарды болдырмау (prevention). Тығырықты болдырмау үшін, қажетті шарттардың ең болмағанда біреуін бұзу жеткілікті.
- Тығырықтарды аралу (avoidance) – рационалды ережелер бойынша ресурстарды рационалды орналастыру.
- Тығырықтарды тауып алу (detection) – тығырықтың пайда болуына жол беріп, сол жақтағы тап болған процестер мен ресурстарды анықтап, жүені одан шығаруға тырысады.
5 Процестерді жоспарлау және диспетчерлеу
Процессордың уақытын тарату бойынша операциялық жүйені үш топқа бөлуге болады:
- бір қолданушылық режим жүйесі
- пакеттік режимдегі жүйе
- көп есепті режимді жүйе
Жоспарлаудың үш деңгейін бөлуге болады:
- жоғары деңгейдегі жоспарлау – бұл жүйеге келіп түскен кездегі жоспарлау
- аралық деңгейдегі жоспарлау – бұл процестің ресурсты күту кезегімен процессорға орналастыруға дайын кезегін аулауы кезіндегі жоспарлау
- төменгі деңгейдегі жоспарлау(диспетчерлеу) – бұл дайын процессорға орналастыру кезегін жоспарлау
Жоспарлаудың бес негізгі мақсатын қалыптастыруға болады:
- жоспарлаудың әділдігі;
- процестің көп мөлшерінің уақыт бірлігінде аяқталуы;
- қолданушының көп санына жауап беру уақытын тиімді қамтамасыз ету;
- жоспарлаудың алдын-ала болжауы, ол бір есептің бір уақытта ешқандай шартқа тәуелсіз жүйеде орындалуы;
- жүйенің жұмысқа қабілеттігінің біртіндеп төмендеуі.
Приоритеттер
Приоритет – процестің маңыздылығын белгілейтін қандай да бір сан. Олар төмендегідей болады:
- статикалық және динамикалық;
- автоматты түрде берілетін және сырттан белгіленетін;
- сатып алынған және сутегі сіңген ;
- рационалды және кездейсоқ
Жоспарлау алгоритмдері
Жоспарлау алгоритмдердің негізгілерін қарап шығайық:
1. Кезекке бірінші келген процеске бірінші қызмет көрсетілуі.
2. Циклға қызмет көрсету. әрбір процесс процессорда шектеулі уақыт квантілді болады, уақыт біткен соң кезектің соңына барып тұрады.
3. Қысқа процесске бірінші қызмет көрсетіледі.
4. Аз қалдықты уақыты бар процеске бірінші қызмет көрсетіледі.
5. Кері байланысы бар көпдеңгейлі кезек. Алдымен әрбір процесс бірдей приоритетпен кезекке түседі. Егер процесс оған берілген уақыттың барлығын процессорда өткізсе, онда ол кезекке аз приоритетпен өтеді. Егер процесс барлдық уақытты өтеп шықпаса, онда ол үлкен приоритетпен өтеді.
6 Таратылған жүйеде процестерді синхрондау
Синхрондауға негізгі ыңғайлар
Байырғы архитектураларды синхрондау барлық процестерге ортақ учаскілерде орындалатын. Таратылған жүйелерде синхрондау орталықтандырылмаған алгоритмдерді қолданады. Мұндай алгоритмдер немесе қасиеттерге ие:
- іске қатысты ақпарат көптеген компьютерлер арасында таратылған;
- процестер жеке информация негізінде шешім қабылдайды;
- бірдей нүктенің болмау керек;
- жалпы сағат немесе нақты ауқымды уақыттың басқа көзі болмайды.
Алғышқы үш қасиет бір орында шешім қабылдамау үшін барлық қажетті информацияны жинауға болмайтының көрсетуі.
Т аратылған жүйелердегі өзара орталықтандырылған алгоритм
Барлық процестер өзінен соң кім тұрғанын біле тұрып, логикалық шеңбер құрайды. Шеңбер бойында критикалық сенушіге рұқсат беретіне маркер айналып тұрады. Маркерді алған соң процесс оны өзінде ұстап тұрып, критикалық секцияға кіреді, не егер оған критикалық секция керек болса, маркерді әрі қарай береді. Меркерді бермей, екі рет қатарынан критикалық секцияға кіруге болмайды.
Уақытша таңбалар енгізілгендегі орталықтандырылмаған алгоритм.
Алгоритм уақыт бойынша жүйедегі барлық оқиғалардың ауқымды реттелгенін талап етеді. Процесс критикалық секцияға енгісі келген кезде, ол барлық қалған процестерге секцияның атымен өз нөмерімен және ағымдағы уақытпен хабар жібереді. Содан соң процесс барлық процестен рұқсат күтеді. Осыдан кейін ғана критикалық секцияға кіруге болады. Процесс сұраныс – хабар алып, өзінің күйіне байланысты көрсетілген критикалық секцияға келесі әдістердің бірімен әрекет етеді:
- егер алушы берілген критикалық секция ішінде болмаса және оған кіруге рұқсат сұрамаса, онда ол «рұқсат» хабарын қайтарады;
- егер алушы кртикалық секцияда болса, онда ол сұранысқа жауап береді, бірақ оны кете сақтайды;
- егер алушы критикалық секцияға кіруге сұраныс беріп қойып, бірақ оған әлі кірмесе, онда ол уақытша уақытына таңбаларды салыстырады.
Егер келген сұраныстың таңбасы бұрынғы болса, онда ол «рұқсат» хабарын қайтарады.
Критикалық секциядан шыққан соң процесс сұраныстары есте қалған барлық процестерге «рұқсат» хабарын жібереді, сосын барлық сақталған сұраныстарды өшіреді.
Атомарлы транзакциялар.
АТ – жұмыстың логикалық бірліктеріне беретін синхронизациялаудың жоғарғы деңгейлі құралдары. Ереже бойынша жұмыстың логикалық бірліктері амалдар қатарының келісуі болып табылады. Транзакция процесін қолдайтын жүйе, егер қандай да бір амалды орындау уақытында қателік болса, онда барлық жаңартулардың жоққа шығарылуына кепілдік береді. Транзакция нәтижесінде не толығымен орындалады, не толығымен орындалмайды. Транзакциялар транзакция администраторынан келесі операторлардың көмегімен қамтамасыз етілуі:
- BEGIN_TRANSACTION – транзакцияның басын беру;
END_TRANSACTION – транзакцияның сәтті аяқталуын хабарлап және оны бекіту.
4.Үрдістерді басқару және ұйысмдастыру. Үрдіс және ядро ұғымы. Үрдістің виртуалдық мекен-жайлық кеңістігін сегментациялау. Үрдіс мәнмәтінінің құрылымы.
1 Үрдістерді басқару және ұйысмдастыру. Үрдіс және ядро ұғымы
Үрдіс және ядро ұғымы файлдарға қол жеткізуде қолданылады. Ескі операциялық жүйелерде файлдарға тек бір ғана қол жеткізу түрі - тізбектік қол жеткізу ұсынылды. Бұл жүйелерде процесс байттар мен файлдар жазбаларын басынан бастап соңына дейінгі ретпен ғана оқи алатын. Сонымен қатар тізбектік файлдар үшін оларды қанша қажет болса соншалықты жиі оқуға мүмкіндік беретін «қайта орау» (перемотка) қолдау тапты. Тізбектік файлдар ақпаратты сақтау құрылғысы ретінде диск емес магниттік лента пайдаланылатын кездері ыңғайлы болды.
Дисктер пайда болғаннан бастап байттарды немесе файлдар жазбаларын кездейсоқ ретпен оқу немесе жазбаларға кілт бойынша қол жеткізу мүмкін болды. Байттары кездейсоқ ретпен оқылатын файлдар кездейсоқ қол жеткізу файлдары деп аталады. Мұндай файлдар көптеген қосымшаларда пайдаланылады. Кездейсоқ қол жеткізу файлдары бірқатар қосымшалар, мысалы, деректер қоры үшін өте маңызды болып табылады. Егер клиент нақты рейске орын алу мақсатында авиакомпанияға телефон шалатын болса, авиабилеттерді резервтеу бағдарламасы басқа рейстер туралы ақпараттардан тұратын мыңдаған жазбаларды оқымастан, қажетті жазбаға қол жеткізу мүмкіндігіне ие болуы керек. Оқуды бастау орны екі тәсілмен көрсетіледі. Бірінші жағдайда әрбір read операциясы айқын емес түрде файлда позиция орнатады. Екінші жағдайда жаңа ағымдық позицияны орнататын арнайы seek операциясы пайдаланылады. Seek операциясы орындалып болған соң файлды ағымдық позициядан бастап тізбектей оқуға болады.
Мэйнфреймдерде жұмыс істейтін кейбір ескі операциялық жүйелерде файлға қол жеткізу тәсілі (тізбектік немесе кездейсоқ) файлды құру моментінде көрсетілетін. Бұл операциялық жүйеге әртүрлі кластағы файлдарды сақтаудың түрлі әдістерін қолдануға мүмкіндік берді. Қазіргі кездегі операциялық жүйелерде мұндай айырмашылық жоқ. Барлық файлдар автоматты түрде кездейсоқ қол жеткізу файлдары болып табылады.
2 Үрдістің виртуалдық мекен-жайлық кеңістігін сегментациялау. Үрдіс мәнмәтінінің құрылымы.
Үрдістің виртуалдық мекен-жайлық кеңістігін сегментациялауда біз ең алдымен файлдар атрибуттарына көңіл бөлуіміз керек.. Әрбір файлдың аты және деректері болады. Бұған қоса, операциялық жүйелер әрбір файлмен басқа ақпаратты байланыстырады, мысалы, файлдың құрылған күні мен уақыты, өлешемі. Біз бұл қосымша мәліметтерді файл атрибуттары деп атаймыз, бірақ кейде оларды метадеректер терминімен атайды. Атрибуттар тізімі жүйеден жүйеге айтарлықтай түрде вариацияланады. 4.1 кестеде кейбір мүмкін атрибуттар көрсетілген, алайда басқа да атрибуттар болуы мүмкін. Практикада ешқандай операциялық жүйеде кестеде келтірілген файлдар атрибуттарының барлығы бірден пайдаланылмайды, бірақ олардың әрбірін бір немесе басқа жүйеде кездестіруге болады.
Кесте 4.1 – Файлдардың кейбір мүмкін атрибуттары
Атрибут
|
Мәні
|
Қорғау (Защита)
|
Кім және қалай файлға қол жеткізе алады
|
Пароль
|
Файлға қол жеткізу үшін пароль
|
Жасаушы (Создатель)
|
Файлды құрған пайдаланушы идентификаторы
|
Иегер (Владелец)
|
Ағымдық иесі
|
Тек оқу жалаушасы
(Флаг только чтения)
|
0 — оқу/жазу үшін; 1 — тек оқу үшін
|
Жасыру жалаушасы
(Флаг скрытия)
|
0 — қалыпты; 1 —файлдары тізімінде каталог көрсетпеу
|
«Жүйелік» жалаушасы
(Флаг «системный»)
|
0 — қалыпты; 1 — жүйелік
|
Архивтеу жалаушасы
(Флаг архивации)
|
0 — файл резервтік қоймаға орналастырылған;
1 — резервтеу қажет етілуде
|
ASCII/екілік жалаушасы
(Флаг ASCII/двоичный)
|
0 — ASCII; 1 — екілік
|
Кездейсоқ қол жеткізу жалаушасы
(Флаг произвольного доступа)
|
0 — тек тізбектік қол жеткізу;
1 — кездейсоқ қол жеткізу
|
«Уақытша» жалаушасы
(Флаг «временный»)
|
0 — қалыпты; 1 — процесс соңында файлды жою
|
Блоктау жалаушасы
(Флаги блокировки)
|
0 — блокталмаған; блокталған жағдайда нөлдік емес
|
Жазба ұзындығы
(Длина записи)
|
Жазбадағы байттар саны
|
Кілт позициясы
(Позиция ключа)
|
Жазбада кілтке дейін жылжу
|
Кілт ұзындығы
(Длина ключа)
|
Кілт өрісіндегі байттар саны
|
Құру уақыты
(Время создания)
|
Фалды құру уақыты мен күні
|
Соңғы қол жеткізу уақыты (Время последнего доступа)
|
Файлға соңғы қол жеткізу уақыты мен күні
|
Соңғы өзгерту уақыты
(Время последнего изменения)
|
Файлды соңғы өзгерту уақыты мен күні
|
Ағымдық өлшем
(Текущий размер)
|
Файлдағы байттар саны
|
Файл үлкейе алатын Байттар санының максимал өлшемі, алғашқы төрт атрибут файлды қорғауға қатысты атрибуттар және файлға қол жеткізуге кімнің құқығы бар, кімде жоқ екені туралы ақпараттан тұрады. Файлды қорғаудың әртүрлі схемалары бар. Кейбір жүйелерде пайдаланушы файлға қол жеткізуге рұқсат алу үшін пароль көрсетуі тиіс. Бұл жағдайда пароль файл атрибуттарына кіруі тиіс. Жалаушалар кейбір спецификалық қасиеттерді басқаратын жеке биттер немесе қасқаша биттік өрістер болып табылады. Мысалы, жасырын файлдар каталогты ашқанда файлдар тізімінен көрінбейді. Архивтеу жалаушасы файл үшін резервтік көшірме құрылған-құрылмағанын бақылайтын бит болып табылады. Бұл жалаушы архивтеу бағдарламасымен тазаланады және файлды өзгерту кезінде операциялық жүйемен орнатылады. Осылайша архивтеу бағдарламасы қандай файлдарды архивтеуге болатынын анықтай алады. Уақытша файлды файл құру процесінің жұмысы аяқталғаннан кейін автоматты түрде өшіруге болады. Жазба ұзындығы, кілт позициясы және кілт ұзындығы атрибуттары жазбалары кілт бойынша ізделінетін файлдарда ғана болады.
Уақыт мәнін сақтайтын түрлі атрибуттар файл қашан құрылғаны, қашан соңғы рет өзгертілгені, қашан оған соңғы рет қол жеткізілгенін бақылауға мүмкіндік береді. Бұл деректерді әртүрлі мақсаттарда пайдалануға болады. Мысалы, бағдарламаның бастапқы файлы объекттік файлдан кейін модификацияланған болса, берлген бастапқы файл қайта компиляциялануы қажет.
Файлдың ағымдық өлшемі ретінде осы моменттегі файлдағы байттар саны көрсетіледі. Кейбір мэйнфреймдердің ескі операциялық жүйелерінде файлды құру барысында файлдың максимал ұзындығын беру қажет болатын, ол файлдың кейінірек үлкеюі үшін операциялық жүйенің жеткілікті орын резервтеп қоюына мүмкіндік береді. Дербес компьютерлерде жұмыс істейтін қазіргі кездегі операциялық жүйелер мұндай резервтеусіз жұмыс істей алады.
Файлдар ақпаратты сақтауға және оны кейінірек алуға мүмкіндік береді. Әртүрлі операциялық жүйелерде файлдармен түрлі операциялар жасауға болады. Төменде файлдарға қатысты жиі кездесетін жүйелік шақырулар көрсетілген.
create – файл құру. Файл деректерсіз құрылады. Бұл жүйелік шақыру жаңа файлдың пайда болуы туралы жариялайды және оның кейбір атрбуттарын орнатуға мүмкіндік береді.
delete – файлды өшіру. Файл қажет болмай қалған жағдайда дискте кеңістікті босату үшін оны өшіреді. Бұл жүйелік шақыру барлық операциялық жүйелерде бар.
open – файлды ашу. Файлды пайдаланбас бұрын процесс он ашуы тиіс. Open жүйелік шақыруы жүйеге файл атрибуттарын және келесі шақыруларда файл мазмұнына жыдам қол жеткізу үшін дискілік адрестер тізімін оперативтік жадыға оқуға мүмкіндік береді.
close – файлды жабу. Файлға жасалатын барлық операциялар аяқталған кезде атрибуттар мен дискілік адрестер қажетсіз болып қалады, сондықтан жүйенің ішкі кестесінде кеңістікті босату үшін файлды жабу керек. Көптеген операциялық жүйелер бірмезгілде тек шектелген мөлшердегі файлдарды ғана ашуға мүмкіндік береді. Дискке жазу блоктық түрде жүргізіледі, ал файлды жабу файлдың соңғы блогының жазбасын шақырады, бұл блок әлі соңына дейін толмаған жағдайда да.
read – файлдан деректерді оқу. Әдетте, байттар файлда ағымдық позициядан түседі. Оқитын процесс қажетті деректер санын көрсетуі тиіс және оларға буферді қамтамасыз етуі керек.
write – файлға жазу. Деректерді файлға жазу файлдағы ағымдық позициядан басталады. Егер ағымдық позиция файл соңында болса файл өлшемі автоматты түрде өседі. Кері жағдайда жазу қайтымсыз түрде жоғалатын бұрыннан бар деректер үстіне жасалады.
append – файл соңына деректер қосу. Бұл жүйелік шақыру write шақыруының қиылған нұсқасы болып табылады. Ол деректерді тек файл соңына ғана қосуға мүмкіндік береді. Аталған шақыру жүйелік шақырулары санаулыболатын операциялық жүйелерде болмауы мүмкін.
seek – файлда позициялану. Кездейсоқ қол жеткізу файлдары үшін деректеді файлда қай жерге орналастыруды көрсететін тәсіл талап етіледі. Бұл операция ағымдық позиция көрсеткішін файлдың белгілі бір жеріне орнатады. Кейінгі деректер осы позициядан бастап оқылып, жазылады.
get attributes – файл атрибуттарын алу. Процестерге көбіне оларды қызықтыратын файлдар атрибуттары қажет болады. Мысалы, көптеген жеке бастапқы модульдерден тұратын бағдарламаларды жинау үшін UNIX-те көбіне make бағдарламасы пайдаланылады. Бұл бағдарлама барлық бастапқы және объекттік файлдардың өзгерген уақытын зерттейді, сондықтан жүйе олардың аз санын өңдеумен құтылады. Өз жұмысын орындау үшін бағдарлама файлдар атрибуттарын білуі тиіс.
set attributes – файлдар атрибуттарын орнату. Файлдың кейбір атрибуттары пайдаланушымен файл құрылып болғаннан кейін орнатылады. Бұл жүйелік шақыру осындай мүмкіндік береді. Мысалы, файлға қол жеткізуден қорғау коды және басқа да көптеген жалаушалар орнатуға болады.
rename – файлға қайта атау беру. Бұл шақыру файл атын өзгертуге мүмкіндік береді. Операциялық жүйенің rename шақыруын қолдауы қажетті емес, өйткені файлды жаңа атпен сақтап, ескі экземплярын өшіріп тастауға болады.
lock – файлды блоктау. Файлды немесе оның фрагментін блоктау оған бірнеше процестер тарапынан бірмезгілде қол жеткізуден қақпайлайды. Мысалы, авиабилеттерді резервтеу жүйесінде деректер қорын блоктау бір орынды екі пассажирдің резервтеу мүмкіндігіне жол бермейді.
5. Үрдістің идентификаторы мен дескрипторы. Үрдісті диспетчерлеу және уақытүйлесімдіру. Үрдістердің кезегі және приоритет ұғымы.
1 Үрдістің идентификаторы мен дескрипторы. Үрдісті диспетчерлеу және уақыт үйлесімдіру.
Үрдістің идентификаторы мен дескрипторы енгізу-шығару құрылғыларының аппаратураларында кездеседі. Енді енгізу-шығару аппаратурасынан енгізу-шығарудың бағдарламалық қамтамасына көшеміз. Бірінші енгізу-шығару бағдарламалық қамтамасының міндетімен танысамыз, содан кейін операциялық жүйе тарапынан енгізу-шығару операцияларының орындалуының әртүрлі тәсілдерін зерттейміз.
Енгізу-шығарудың бағдарламалық қамтамасын құрастырудың кілттік концепциясы құрылғылардан тәуелсіз ретінде белгілі. Бұл концепция нақты құрылғыны алдын ала көрсетпей-ақ кез келген енгізу-шығару құрылғысына қол жеткізуге қабілетті бағдарламаларды жазу мүмкіндігін білдіреді. Сәйкесінше, кіріс файлынан деректер оқитын бағдарлама компакт-дисктегі, қатты дисктегі және дискетадағы файлдармен бірдей табысты жұмыс істеуі қажет. сонымен қатар бағдарламаға ешқандай өзгеріс енгізбестен жұмыс істеуі қажет. Мысалы, sort <input >output сияқты команданы орындау мүмкіндігі болуы тиіс.
Бұл команда кіріс құрылғысы ретінде – иілгіш диск, IDE-диск, SCSI-диск немесе пернетақта көрсетілгеніне қарамастан жұмыс істеуі керек. Шығару құрылғысы ретінде дәл сол сияқты экран, кез келген дисктегі файл немесе принтерді көрсетуге болады. Осы құрылғылардың ерекшеліктеріне байланысты барлық проблемаларды операциялық жүйе шешеді.
Құрылғылардан тәуелсіз идеясы бірыңғай атау беру (принцип единообразного именования) принципімен тығыз байланысты. Құрылғы немесе файл атауы қарапайым мәтіндік қатар немесе бүтін сан болуы керек және физикалық құрылғыдан ешқандай тәуелді болмауы тиіс.
Тағы бір кілттік сұрақ бұл – деректерді алмасу тәсілі: синхронды (блоктайтын) асинхрондыға (үзілулерді басқаратын) қарсы. Енгізу-шығарудың көптеген операциялары физикалық деңгейде асинхронды болып табылады – орталық процессор деректерді алмасуды бастайды және үзілу пайда болғанға дейін ол туралы ұмытады. Енгізу-шығарудың блоктаушы операцияларын қолдана отырып пайдаланушылық бағдарламаларды жазу айтарлықтай оңай, - receive жүйелік шақыруына жүгінгеннен кейін бағдарлама деректер буферде пайда болғанға дейін автоматты түрде тоқтатылады. Шындығында асинхронды болып табылатын енгізу-шығару операциялары пайдаланушы бағдарламаларында блоктаушы ретінде болуымен операциялық жүйе айналысады.
Енгізу-шығару бағдарламалық қамтамасы сөз болғанда буферлеуді айналып өтуге болмайды. Көбіне құрылғылардан келіп түсетін деректер олардың бағытталған орнына бірден сақталмайды. Мысалы, пакет желі арқылы келген болса, операциялық жүйе оның мазмұнын біліп алмайынша оны қайда орналастыратынын білмейді. Сонымен қатар, нақты уақыттың көптеген құрылғылары үшін ең маңыздысы - деректердің келіп түсу мерзімдерінің параметрлері (мысалы, цифрланған дыбысты қою құрылғылары), сондықтан қабылданған деректердің буферден шығарылу жылдамдығы буфердің толу жылдамдығынан тәуелді болмауы үшін деректерді алдын-ала шығыс буферіне орналастырылуы керек. Буферлеу көбіне енгізу-шығару операцияларының өнімділігін төмендетудің негізгі факторы болып табылатын айтарлықтай мөлшердегі деректерді көшіру болып табылады.
Соңғысы – бұл ерекшеленген құрылғылар және бөлінуші құрылғылар ұғымы. Дисктер сияқты кейбір енгізу-шығару құрылғыларымен көптеген пайдаланушылар жұмыс істей алады. Сонымен қатар бірнеше пайдаланушылар бір дисктегі файлдарды бірмезгілде ашқан кезде проблемалар туындамауы керек. Магнитті лентаға жинақтауыштар сияқты басқа құрылғылар бір пайдаланушы осы құрылғымен жұмысын аяқтап болмайынша оған монополиялық иелікке берілуі қажет. Егер екі немесе одан көп пайдаланушылар бірмезгілде блоктарды аралас түрде бір лентаға жазатын болса, бұл жақсы емес. Ерекшеленген құрылғылар ұғымын енгізу (монополиялық түрде пайдаланылатын) өзара блоктаау сияқты кең көлемді проблемаларға алып келеді. Сонда да операциялық жүйе бөлінуші құрылғыларды да, ерекшеленген құрылғыларды да басқаруға міндетті және әртүрлі потенциалды проблемаларды өз бетінше жеңуі тиіс.
Бұл есептер енгізу-шығару бағдарламалық қамтамасын төрт деңгейге бөлу жолымен шешіледі:
1. Үзілулерді өңдеуіштер (төмен деңгей).
2. Құрылғылар драйверлері.
3. Аппаратурадан тәуелсіз операциялық жүйе коды.
4. Пайдаланушылық бағдарламалар (жоғары деңгей).
2 Үрдістердің кезегі және приоритет ұғымы
Өзара блокталу. Компьютерлік жүйелерде әрқайсысы нақты бір уақыт моментінде тек бір процеспен ғана пайдаланыла алатын ресурстар бар. Мысал ретінде принтерлерді, магнитті лентаға жинақтауыштарды және жүйенің ішкі кестелері элементтерін айтуға болады. Принтерге бірмезгілде деректер жіберетін екі процестің болуы мағынасыз символдар жинағын баспаға шығаруға алып келеді. Файлдық жүйе кестесінің бір элементін пайдаланатын екі процестің болуы мідетті түрде файлдық құрылымның күйреуіне себепкер болады. Сондықтан барлық операциялық жүйелер процеске бағдарламалық және аппараттық сияқты белгілі бір ресурстарына эксклюзивті қол жеткізуді ұсыну қабілетіне ие (ең болмағанда уақытша).
Көбіне қолданбалы процесс бір емес бірнеше ресурстарға ерекше қол жеткізуге мұқтаж болады. Айталық, мысалы, әрбір екі процес сканерленген құжатты компакт-дискке жазғысы келеді делік. А процесі сканерді пайдалануға рұқсат сұрап, рұқсат алады. В процесі басқаша бағдарламалнған, сондықтан бірінші компакт-дисктерді жазуға арналған құрылғы сұрайды және оны алады. Содан кейін А процесі компакт-дисктерді жазуға арналған құрылғыға жүгінеді, бірақ құрылғы В процесінен босағанша сұраныс қабылданбайды, кейінге қалдырылады. Өкінішке орай, компакт-дисктерді жазуға арналған құрылғыны босатудың орнына В процесі сканерді сұрайды. Процестер өзара блокталып қалады және «асылған» күйде қалып қояды. Мұндай жағдай өзара блокталу немесе тығырық деп аталады.
Өзара блокталу енгізу-шығарудың тек ерекшеленген құрылғыларының сұраныстарына ғана тән емес, сонымен қатар көптеген басқа да жағдайларға тән. Деректер қоры жүйелерінде бағдарламаның жарыстардан құтылу үшін бірнеше жазбаларды амалсыздан блоктап қоюына тура келеді. Егер А процесі R1 жазбасын блоктап қойса, В процесі R2 жазбасын блоктап қояды, содан кейін әр процесс бөтен жазбаны блоктауға тырысады, біз тағыда тығырыққа тірелеміз. Осылайша, өзара блоктаулар аппараттық, сонымен бірге бағдарламалық ресурстармен жұмыс кезінде де пайда болады.
6. Сигналдар өңдеу жабдықтары. Үрдістерді басқаратын уақиғалық тітіктер. Үрдістер әрекеттестігі. Үзу жүйелері. Үрдістің біресепті және көпесепті орындалуы. Есепті көппрцессорлық шешуді басқару тәсілдері.
1 Сигналдар өңдеу жабдықтары
Сигналдар өңдеу жабдықтары ең алдымен каталогтарда орын алады. Үрдістерді басқаратын уақиғалық тітіктер қарапайым каталогтардың бірден-бір бөлшегі болып табылады. Сондықтан каталогтар туралы ақпарат алғанымыз абзал.
Каталогтар. Файлдық жүйелерде файлдар әдетте каталогтарға немесе бумаларға ұйымдастырылады, олар өз кезегінде көптеген операциялық жүйелерде файлдар болып табылады. Келесі бөлімде каталогтар, оларды ұйымдастыру, қасиеттері мен оларға жасалатын әрекеттер қарастырылады.
Қарапайым каталогтар. Әдетте каталог әр файлға бір жазбадан болатын бірнеше жазбадан тұрады. Каталогтың әрбір жазбасына файл аты, оның атрибуттары және файл деректерінің дисктегі адрестері кіретін нұсқалардың бірі 6.1, а суретте көрсетілген. Басқа нұсқасы 6.1, б суретте көрсетілген. Мұнда каталог жазбасы файл атын және атрибуттар және дискілік адрестерімен болатын деректер құрылымына сілтейтін көрсеткішті сақтайды. Кең түрде екі нұсқа да пайдаланылады.
Сурет 6.1 - Каталогтарды ұйымдастыру: а — атрибуттар каталогта сақталады;
б — атрибуттар жеке сақталады
Файл ашылған кезде операциялық жүйе оның жазбасын каталогтан кздейді. Содан кейін оны шығарып, не жазба сілтеме жасайтын құрылымнан не жазбаның өзінен оның атрибуттары мен дискілік адрестерін жадқа жүктейді. Одан кейін сол файлға жүгіну кезінде жадтағы ақпарат пайдаланылады. Каталогтар саны жүйеден жүйеге өзгеріп отырады. Қарапайым жағдайда барлық пайдаланушылардың барлық файлдары сақталатын бір каталог болады (6.2, а сурет). Мұндай жүйелер алғашқы дербес компьютерлерде пайдаланылды, өйткені компьютерлер бірпайдаланушылық болатын.
Сурет 6.2 – Файлдық жүйелер құрылғыларының үш нұсқасы:
а — барлық пайдаланушылар үшін бір каталог; б — әр пайдаланушы үшін жеке каталог; в — әрбір пайдаланушы үшін каталогтар ағашы.
Әріптермен каталогтар немесе файлдар иелері белгіленген
Бір каталогты жүйелерге келесі проблема тән: егер пайдаланушылар көп болса, онда олардың кейбірі аттары бірдей файлдар құруы мүмкін. Мысалы, егер А пайдаланушысы mailbox файлын құрып, содан кейін В пайдаланушысы да дәл осы аттас файл құратын болса, онда А пайдаланушысының файлы қайта жазылады. Осы себептен сипатталған схема көппайдаланушылық жүйелерде қолданылмайды, алайда оны кіші жүйелерде, мысалы, дербес электронды секретарьларда және ұялы телефондарда кездестіруге болады. Пайдаланушылардың өз файлдарына бірдей атау беру конфликтінен құтылу үшін әрбір пайдаланушыға дербес каталог бөлу қадамы жасалды. Бұл жағдайда пайдаланушылар таңдайтын атаулар бір-біріне әчер етпейді және бірнеше каталогта бірдей атауларды қолдану проблема тудырмайды. Мұндай тәсіл 6.2, б суретте көрсетілген жүйеге алып келеді. Мұндай жүйелерді, мысалы, көппайдаланушылық компьютерде немесе дербес компьютерлердің ортақ файлдық сервері бар күрделі емес локальді желісінде қолдануға болады.
Сипатталған схемада операциялық жүйе сәйкес каталогта іздеуді іске асыру үшін қай пайдаланушы сол немесе басқа файлды ашуға тырысып жатқанын білуі тиіс. Осыдан келіп пайдаланушы кіріс атын немесе идентификациялық деректерді көрсетуі тиіс жүйеге кіру процедурасының қажеттілігі туады.
Бірдеңгейлі құрылымды каталогтар жүйесінде мұндай процедура қажет емес. Егер сипатталған жүйе қарапайым формада реализацияланған болса, пайдаланушылар олардың өз каталогтарында ғана бар файлдарға қол жеткізе алады.
2 Үрдістерді басқаратын уақиғалық тітіктер. Үрдістер әрекеттестігі. Үзу жүйелері
Каталогтардың иерархиялық жүйелері. Екідеңгейлі иерархия әртүрлі пайдаланушылардың файлдары арасында конфликт болдырмайды. Мұнда басқа проблема бар: көп файлдармен жұмыс істейтін пайдаланушылар оларды топтауы қажет. Мысалы, профессорға студенттері үшін оқу материалдарын өзі жазған кітап черновиктерінен жеке сақтау ыңғайлы болады. Осыдан келіп қандай да бір ортақ иерархия қажет болады (яғни, каталогтар ағашы). Мұндай тәсілде әрбір пайдаланушы өз файлдарын табиғи түрде топтай отырып, өзіне қанша каталог қажет болса, сонша каталог құра алады. Мұнда түпкі каталогқа салынған Л, В және С каталогтары әртүрлі пайдаланушыларға тиісті, олардың екеуі өздері жұмыс істеп жатқан жоба үшін құрылған ішкікаталогтар. Кездейсоқ мөлшерде ішкікаталогтар құру мүмкіндігі пайдаланушыға өз жұмысын жақсы ұйымдастыруға мүмкіндік бере отырып файлдарды құрылымдандыруға қуатты стимул болып табылады. Осы себептен дербес компьютерлердің және серверлердің барлық дерлік қазіргі кездегі файлдық жүйелері осы түрде іске асырылады. Сонда да алдында айтып өткеніміздей технологияға қатысты жағдай жиі қайталанады. Цифрлық камераларға суреттерді қандай да бір тасымалдаушыға – флэш-жад картасына жазу қажет болады. Ең алғашқы камераларда жалғыз ғана каталог болған, ал файлдарына DSC0001. JPG, DSC0002 . JPG және т.б. түрде ат берілген. Алайда жақын арада өндірушілер бірнеше каталогты файлдық жүйелер жасап шығарды (6.2, б сурет). Камера иелерінің мұндай каталогтарды пайдалана алуы немесе пайдалана алмауының мағынаса бар ма? Өндірушілерге ішкі орнатылған бағдарламалық қамтамалар мүлдем ақысыз дерлік келеді, сондықтан болашақта бірнеше кіріс аттарымен және аттары 255 символға дейінгі файлдармен толыққанды иерархиялық файлдық жүйелі цифрлық камералар пайда болатыны талас тудырмайды.
Жолдар. Файлдық жүйені каталогтар ағашы түрінде ұйымдастыру барысында қандай да бір файлды көрсету тәсілі қажет болады. Бұл үшін әдетте екі әдіс пайдаланылады. Бірінші жағдайда файлға жүгіну түпкі каталогтан ішінде файл және файл аты болатын каталогқа дейінгі барлық каталогтар аттарынан құралған абсолютті жол бойынша орындалады. Мысалы, /usr/ast/mailbox жолы түпкі каталог mailbox файлы орналасқан ast ішкікаталогы кірістірілген us ішкікаталогынан тұрады. Абсолютті жолдар барлық кезде түпкі каталогтан басталады және уникальді болып табылады. UNIX жүйесінде жол компоненттері (/) қиғаш сызықпен бөлінеді. Windows жүйесінде бөлгіш ретінде (\) кері қиғаш сызық қабылданған. Сонымен бірдей жолдың аты осы операциялық жүйелерде келесі түрде болады:
+ Windows:
\usr\ast\mailbox
♦ UNIX:
/usr/ast/mailbox
Егер бөлгіш ретінде пайдаланылатын символдан тәуелсіз жол атының бірінші әрпі бөлгіш болса, онда бұл жолдың абсолютті екенін білдіреді. Асолютті жолмен бәрге салыстырмалы жол да пайдаланылады. Салыстырмалы жол тікелей жұмыс немесе ағымдық каталог концепциясымен байланысты. Пайдаланушы каталогтардың бірін ағымдық (жұмыс) етіп белгілей алады. Бұл жағдайда жолдың барлық аттары бастапқы бөлгіш символынсыз да салыстырмалы болып саналады және ағымдық каталогтан бастап есептеледі. Мысалы, /usr/ast ағымдық каталог болса, / абсолютті жолы usr/ast/mailbox болатын файлға жай ғана mailbox файлына деп жүгінуге болады. Басқаша айтқанда, /usr/ast жұмыс каталог болса, келесі UNIX-командалар бірдей командаларды орындайды:
ср /usr/ast/mailbox /usr/ast/mailbox.bak
ср mailbox mailbox.bak
Жолды салыстымалы түрде беру формасы көбіне ыңғайлы болады.
Кейбір бағдарламаларға ағымдық сәтте қай каталогтың ағымдық екені қызықтырмайтын файлдарға қол жеткізу қажет болады. Бұл жағдайда олар әрдайым абсолютті жолды көрсетуі керек. Мысалы, дұрыс жазуды тексеру бағдарламасына жұмысты орындау үшін /usr/lib/dictionary файлын оқуы қажет болады. Бұл жағдайда шақыру кезінде жұмыс каталогының қандай болатыны алдын-ала белгісіз болатындықтан ол файлдың абсоютті атын пайдалануы керек. Файлдың абсолютті аты әрдайым қандай каталогтың ағымдық екеніне тәуелсіз жұмыс істейді.
Егер дұрыс жазуды тексеру бағдарламасына жұмыс каталогын /usr/lib каталогына өзгерту қажет болса, одан кейін open жұйелік шақыруының бірінші аргументі ретінде жай ғана dictionary атын көрсету керек. Өзінің жұмыс каталогын анық көрсете отырып бағдарлама оның каталогтар ағашының қай жерінде орналасқанын білетіндіктен ары қарай саластырмалы атауларды пайдалана алады. !рбір процестің өз жұмыс каталогтары бар, процесс өзінің жұмыс каталогын өзгертіп, содан кейні жұмысты аяқтаған кезде бұл басқа процестер жұмысына әсер етпейді және файлдық жүйеде мұндай өзгерістерден ешқандай із қалмайды. Осылайша, процесс өзіне ыңғайлы кезде ешқандай қорқынышсыз жұмыс каталогын ауыстыра алады. Басқа жағынан, егер кітапханалық процедура өзінің жұмыс каталогын ауыстырып және басқаруды қайтару кезінде оны қалпына келтірмейтін болса, мұндай процедураны шақырған бағдарламаның ағымдық каталог туралы болжамы қате болғандықтан өз жұмысын жалғастыруға шамасы келмеуі мүмкін. Осы себептен кітапханалық процедуралар жұмыс каталогтарын сирек ауыстырады, ал ауыстырған жағдайда басқаруды қайтару алдында міндетті түрде ескі атауды қалпына келдтіреді. Иерархиялық каталогтарды қолдайтын көптеген операциялық жүйелерде әрбір каталогта (.) ағымдық және (..) ата-тектік каталог екенін білдіретін арнайы жазбалар бар.
Каталогтарға орындалатын операциялар. Каталогтарды басқаратын жүйелік шақырулар әр жүйеде айрықша ерекшеленеді (файлдармен жұмыс істейтін жүйелік шақыруларға қарағанда). Олардың нені білдіретінін және қалай орындалатынын түсіндіру үшін келесі мысалды келтіреміз (UNIX-тен алынған).
create – каталог құру. Дәл қазір құрылған каталог бос және операциялық жүйе каталогына автоматты түрде немесе кейбір жағдайларда бағдарламамен қойылған (.) нүкте және (. .) екі нүктеден басқа жазбалары жоқ.
mkdir. delete – каталогты өшіру. Тек бос каталог қана өшіріледі. (.) нүкте және (. .) жазбалары файлдар емес және өшірілмейді.
opendir – каталогты ашу. Бұл операциядан кейін каталогты оқуға болады. Мысалы, каталогтың барлық файлдарын баспаға шығару үшін тізімді құратын бағдарлама каталогта бар барлық файлдардың атын оқу үшін оны ашады. Каталог оқылмай тұрып, оны файлды оқу және жазуға ұқсас ашуға болады.
closedir – каталогты жабу. Каталог оқылып болған соң, оны жүйенің ішкі кестесінде кеңістікті босату үшін оны жабу қажет.
readdir – ашық каталогтың келесі жазбасын оқу. Бұрынғы кезде каталогтарды қарапайым read жүйелік шақыруы көмегімен оқуға болатн, бірақ мұндай тәсіл пайдаланушыдан каталогтардың ішкі құрылымымен жұмыс істеу шеберлігін талап ететіндіктен қауіпсіз емес. Сондықтан каталогтардың ағымдық құрылымынан тәуелсіз стандартты форматтағы каталогтың бір жазбасын қайтаратын жеке readdir жүйелік шақыруы жасалды.
rename – каталогтың атын өзгерту. Көптеген жағдайларда каталогтар файлдарға ұқсас келеді және дәл файлдар сияқты атын өзгертуге болады.
link – файлдарды байланыстыру. Байланыстыру файлдарға бірден бірнеше каталогтарда пайда болуына мүмкіндік беретін техника болып табылады. Бұл жүйелік шақыру кіріс параметрлері ретінде файл атын және жол атын алады және олардың арасында байланыс орнатады. Осылайша бір файл бірден бірнеше каталогтарда пайда болады. Файлдың индекстік түйінінде есептегішті бір бірлікке арттырып отыратын мұндай байланыс (осы файлға сілтеме жасайтын каталогтар санын тіркеу үшін) кейде қатаң байланыс деп аталады.
unlink – файлмен байланысты өшіру. Егер файл тек бір каталогта ғана болса, бұл жүйелік шақыру оны файлдық жүйеден өшіреді. Егер осы файлмен бірнеше байланыс бар болса, тек көсетілген байланыс қана өшіріледі, ал қалғандары қалады. Бұл жүйелік шақыру UNIX операциялық жүйесінде файлды өшіру үшін қолданылады.
Келтірілген тізімде маңызды жүйелік шақырулар көрсетілген, және басқа да жүйелік шақырулар бар, мысалы, ақпаратты қорғауға арналған шақырулар.
Үзу жүйелері
Контроллерлер регистрлері бір немесе бірнеше қалып-күй биттерінен тұрады. Оларды тексеруге болады және шығару операциясы аяқталғанын және енгізу құрылғысында жаңа деректер бар-жоғын анықтауға болады. Процессормен орындалатын цикл және құрылғының деректерді қабылдау немесе жіберу дайындығына дейінгі күйін тексеру биті сұрақ (опрос) немесе белсенді күту деп аталады. Сыртқы құрылғының деректерді қабылдау немесе жіберу дайындығын күту өте ұзақ болуы мүмкін болатындықтан белсенді күту ерекшеленген кіші біресепті жүйелерде ғана мүмкін болады. Қалып-күй биттеріне қосымша көптеген контроллерлер процессорға регистрлердің деректерді жазуға немесе оқуға дайын екенін хабарлауға мүмкіндік беретін үзілулер пайдаланылады. Үзілуді өңдеу процедурасы енгізу-шығарудың аяқталғанын операциялық жүйеге хабарлайды. Содан кейін операциялық жүйе қалып-күй биттерін тексеруіне және қателердің жоқтығына көз жеткізуіне, алынған деректерді оқуына немесе қайта жіберуді инициализациялауына болады. Үзілу контроллерінің кіріс саны шектелген. Мысалы, Pentium дербес компьютерлерінде енгізу-шығару құрылғылары үшін тек үзілудің 15 линиясы ғана қол жетерлік. Ескі компьютерлердің контроллерлерінің кейбірі аналық платаға қойылған, мысалы, IBM PC –дегі пернетақта контроллері. Біріктіру платасындағы разъемға қойылатын контроллерлерде IRQ-сигналдар мен құрылғы арасында перемычка немесе ауыстырып-қосқыштар көмегімен сәйкестік орнатуға болады. Егер пайдаланушы жаңа карта алған болса, болдырмау үшін ол үзілу линиясын қолдан орнатуына мәжбүр болды. Пайдаланушылардың көпшілігі осы жерде қате жасады, бұл жағдай автоконфигурациялау механизмінің (Plug and Play) пайда болуына алып келді, осы механизмнің арқасында BIOS жүйені жүктеу кезеңінде өз бетінше құрылғыларға дұрыс үзілу линияларын белгілейді.
3. Үрдістің біресепті және көпесепті орындалуы. Есепті көппрцессорлық шешуді басқару тәсілдері.
Файлдық жүйені реализациялау. Енді файлдық жүйені пайдаланушы тарапынан қарастырудан құрастырушы тарапынан қарастыруға өтеміз. Пайдаланушыларды файлдар қалай аталады, олармен қандай операциялар жасауға болады, каталогтар ағашы қандай түрде және т.б. сұрақтар қызықтырады. Файлдық жүйелерді құрастырушылар файлдар мен каталогтар қалай сақталады, дискілік кеңістікті басқару қалай іске асырылады және файлдық жүйенің тиімді және сенімді жұмыс істеуіне қалай қол жеткізуге болады және т.б. сұрақтар қызықтырады.
Каталогтарды реализациялау. Файлды оқымас бұрын, оны ашу қажет. файлды ашу кезінде операциялық жүйе каталогта жазбаны табу үшін пайдаланушымен көрсетілген жолмен операциялайды. Әрине, каталогта жазбаны табу үшін бірінші түпкі каталогты табу қажет. Түпкі каталог бөлім басына қатысты фиксирленген орында болуы мүмкін немесе басқа ақпарат негізінде анықталуы мүмкін. Мысалы, UNIX классикалық файлдық жүйесінде суперблок деректер облысы алдындағы файлдық жүйе деректері құрылымының өлшемдері туралы мәліметтен тұрады. Суперблок көмегімен индекстік түйіндердің орналасқан жерін анықтауға болады. Бірінші индекстік түйін UNIX файлдық жүйесімен бірмезгілде құрылатын түпкі каталогты көрсетеді. Windows XP жүйесінде жүктеу секторының ақпараты (шындығында бір сектордан көп орын алатын) файлдардың басты кестесінің (Master File Table, MFT) орналасу орнын береді, оның көмегімен файлдық жүйенің басқа объектілерінің орны анықталады.