Байланысты: 1 Негізгі ымдар мен аны тамалар Операциялы ж йе (ОЖ) (4)
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 операциялық жүйесінде файлды өшіру үшін қолданылады.
Келтірілген тізімде маңызды жүйелік шақырулар көрсетілген, және басқа да жүйелік шақырулар бар, мысалы, ақпаратты қорғауға арналған шақырулар.