UNIX операциялық жүйедегі файлдық жүйе



Кіріспе
3
Файлдық жүйелер 4
System V базалық файлдық жүйесі 4
BSD UNIX файлдық жүйесі 5
Каталогтар 7
Виртуальді файлдық жүйесінің архитектурасы 8
Виртуальді индексті дескрипторлар 8
Файлдық жүйеге қатынау 8
Файлдық кесте 9
Файлға қатынауды бұғаттау 11
Файлдық жүйенің бүтіндігі 12
Файлдармен жұмыс істеу 13
Файлдармен жұмыс істеуге арналған негізгі жүйелік функциялар 13
Енгізу/шығару стандартты библиотекасы 14
Байланыстар 15
Жадыда бейнелінген файлдар 18
Файлдармен иелену 20
Қатынау құқықтары 21
Файлдық жүйе бойынша жылжыту 22
Қорытынды 24
Әр бір операциялық жүйе бір түсініктемеге қолданылады оның бірі болып үрдіс табылады. Ал екінші түсінік, олда өте маңызды – ол файл түсінігі.
Файлдық жүйе – бұл операциялық жүйенің компоненті, ол файлды құрады, сақтайды және атаулы деректер жиынына қатынас құрады. Бұл атаулы деректер жиынын файл деп атайды.
Бұл курстық жобада UNIX-тегі программалау жөнінде қарастырылады. Бұл материал тек программалық қамтаманың құрушыларына ғана қызық, бірақ бұлай ойлау бұрыс. Әрине, программаны құру операциялық жүйемен ұсынылған функциялар мен ішкі құрылымның түсінігінсіз және жүйелік шақыру интерфейсінің білімінсіз мүмкін емес. Бірақ жүйенің әкімшілік етуі UNIX ортасы қалай жұмыс істейтіндігін көрсетімсіз түсіну қиын. UNIX программалық интерфейсі осы операциялық жүйенің ішкі механизмдерін көрсетуге мүмкіндік береді.
Сонымен қатар Sun Microsystems фирмасымен өңделген виртуальді файлдық жүйені жүзеге асыруы қарастырылған. Берілген архитектура SVR4 үшін стандарты болып табылады. Бірақ UNIX-тің басқа версияларында осындай жуықтары пайдаланады.
1. Сергей Дунаев “Unix сервер” 1-2 том, 1999ж.
2. Робочевский А. “Операционная система в Unix”, 2003ж.
3. Гласс Грэм, Эйбл Кинг “Unix для программистов и пользователей”, С-П, БХВ, 2004ж.
4. “Ақпараттану және есептеу техникасы саласындағы аталымдардың түсіндерме сөздігі” Алматы, 1998ж.

UNIX операциялық жүйедегі файлдық жүйе

Мазмұны

Кіріспе 3
Файлдық жүйелер 4
System V базалық файлдық жүйесі 4
BSD UNIX файлдық жүйесі 5
Каталогтар 7
Виртуальді файлдық жүйесінің архитектурасы 8
Виртуальді индексті дескрипторлар 8
Файлдық жүйеге қатынау 8
Файлдық кесте 9
Файлға қатынауды бұғаттау 11
Файлдық жүйенің бүтіндігі 12
Файлдармен жұмыс істеу 13
Файлдармен жұмыс істеуге арналған негізгі жүйелік функциялар 13
Енгізушығару стандартты библиотекасы 14
Байланыстар 15
Жадыда бейнелінген файлдар 18
Файлдармен иелену 20
Қатынау құқықтары 21
Файлдық жүйе бойынша жылжыту 22
Қорытынды 24

Кіріспе

Әр бір операциялық жүйе бір түсініктемеге қолданылады оның бірі болып
үрдіс табылады. Ал екінші түсінік, олда өте маңызды – ол файл түсінігі.
Файлдық жүйе – бұл операциялық жүйенің компоненті, ол файлды құрады,
сақтайды және атаулы деректер жиынына қатынас құрады. Бұл атаулы деректер
жиынын файл деп атайды.
Бұл курстық жобада UNIX-тегі программалау жөнінде қарастырылады. Бұл
материал тек программалық қамтаманың құрушыларына ғана қызық, бірақ бұлай
ойлау бұрыс. Әрине, программаны құру операциялық жүйемен ұсынылған
функциялар мен ішкі құрылымның түсінігінсіз және жүйелік шақыру
интерфейсінің білімінсіз мүмкін емес. Бірақ жүйенің әкімшілік етуі UNIX
ортасы қалай жұмыс істейтіндігін көрсетімсіз түсіну қиын. UNIX программалық
интерфейсі осы операциялық жүйенің ішкі механизмдерін көрсетуге мүмкіндік
береді.
Сонымен қатар Sun Microsystems фирмасымен өңделген виртуальді файлдық
жүйені жүзеге асыруы қарастырылған. Берілген архитектура SVR4 үшін
стандарты болып табылады. Бірақ UNIX-тің басқа версияларында осындай
жуықтары пайдаланады.

Файлдық жүйелер

UNIX операциялық жүйедегі деректердің көбісі ағаш түрінде
ұйымдастырылған және деректердің кейбір тасушысында орналасқан файлдарда
сақталады. Жалпыда ол жергілікті қатқыл диск, бірақ файлдық жүйенің арнайы
типі – NFS (Network File System) жойылған компьютердегі файлдарды сақтауын
қамтамасыз етеді. Сонымен бірге файлдық жүйе CD-ROM-да, дискеталарда және
басқа тасушы типтерінде орналасуы мүмкін.

UNIX System V ізделінген файлдық жүйесі s5fs болып табылады. Берклиде
өңделген FFS файлдық жүйе 4.2BSD версиясында кейін шығарылған. s5fs-пен
салыстырғанда ол күшті өнімділігімен, функционалдығымен және сенімділігімен
меңгерілген. UNIX қазіргі нұсқаларындағы файлдық жүйелерде әртүрлі
нұсқалары үшін өзгешелінген өте күрделі архитектурасы бар. Осылардың
барлығына қарамастан олар AT&T және Беркли Калифорниялық университетіндегі
UNIX өңдеушілерімен кепілденген базалық идеяларды қолданады.

System V базалық файлдық жүйесі

Әрбір қатқыл диск бір немесе бірнеше логикалық бөліктерден құралады.
Олар тараулар (partitions) деп аталады. Тараудың өлшемі және орналасуы
дискіні пішімдеу бойынша анықталады. UNIX-те тараулар тәуелсіз құрылғылар
түрінде шығады. Олардың қатынауы деректердің өзгешелік тасушыларына сияқты
жүзеге асырылады.

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

s5fs файлдық жүйе дискінің тарауында орын алады және үш негізгі
компоненттерден құрылады:

1. Суперблок (superblock). Ол файлдық жүйе жөніндегі жалпы
ақпаратты құрайды. Мысалы, блоктың жалпы санын және индексті
дескриптерін немесе метадеректерін (inode).
2. Индексті дескриптерінің массиві (ilist). Ол файлдық жүйенің
барлық файлдарының метадеректерін құрайды. Индексті дескриптері
файл жөніндегі статусты ақпаратын құрайды және бұл файл
деректерінің орналасуын көрсетеді. Ядро ilist массивке индекс
бойынша inode-ке үндеу тастайды. Бір inode файлдық жүйенің түпкі
(root) inode болып табылады. ilist массивінің өлшемі бекітілген
болып табылады және файлдық жүйенің құрылуы бойынша беріледі.
Осыдан, s5fs файлдық жүйеде файлдар саны бойынша шектеулігі бар,
олар бұл файлдардың өлшемдерінен тәуелсіз файлдық жүйеде
сақталынуы мүмкін.
3. Деректер сақтауының блоктары. Жалпы файлдардың және
каталогтардың деректері блоктарда сақталады. Файлды өңдеу
деректер блогына сілтемелер құрайтын inode арқылы жүзеге
асырылады. Деректер сақтауының блоктары дискілік тараудың үлкен
бөлігін алады және олардың санын берілген файлдық жүйелердегі
файлдардың максимальді суммарлы көлемді анықтайды. Блоктың
өлшемі 512 байтқа тең, мысалы S51K SCO UNIX файлдық жүйесі 1
Кбайтта блоктың өлшемін қолданады.

BSD UNIX файлдық жүйесі

4.3BSD UNIX нұсқаларында файлдық жүйенің архитектурасына жақсартулары
енгізілген. Ол оның өнімділігін және сенімділігін де жоғарылайды. Жаңа
файлдық жүйе Berkeley Fast File System (FFS) атын алды.

FFS файлдық жүйесі s5fs жүйесінің толық функционалдығымен меңгерілуі
ядро деректерінің сол құрылымдарымен де қолданылады. Негізгі өзгерістер бос
блоктардың орналастыру алгоритмдерін, деректердің дискілік құрылымдарын
және файлдық жүйенің дискіде орналасуын тигізген.

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

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

Файлдық жүйенің құрылуы бойынша цилиндрдің әрбір тобына inode-тің
анықталған көлемінен орын бөлінеді. Осымен деректер сақтауының
блоктарындағы жалпы 2 Кбайт-тың әр біреуіне бір inode құрылады. Цилиндр
топтарының және inode массивінің өлшемі фиксацияланғанмен, BSD UNIX файлдық
жүйеде s5fs-ке ұқсас шектеулер бар.

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

Басқарылған ақпарат цилиндр тобының басынан әртүрлі ығысулармен
орналасады. Кері жағдайда, мысалы, цилиндр тобының басынан орналасуы
бойынша барлық топтарының ақпараты дискілік пластинаның біреуінде физикалық
түрде орналасуы және осы пластинаның істен шығуы жойылып кетуі мүмкін.

Файлдық жүйенің өнімділігі деректер сақтау блогының өлшемінен тәуелді
болады. Блок өлшемі үлкен болған сайын, деректердің үлкен көлемі
ізденусізден оқылуы және дискілік бастиегінің (головка) жылжуы мүмкін. FFS
файлдық жүйе 64 Кбайтқа дейін блок өлшемін қуаттайды. Мәселенің қорытындысы
UNIX типті файлдық жүйе үлкен емес өлшемі файлдың маңызды санынан құралады.
Бұл бөліктегіш бос емес блоктар тиімді емес пайдалануына әкеледі. Ол
дискінің 60% пайдалы көлеміне дейін шығынына әкелуі мүмкін.

Бұл кемшілік блок фрагментациясы мүмкіндігінің көмегімен жүзеге
асырылған.

Әрбір блок екі, төрт немесе сегіз фрагментке бөлінуі мүмкін. Бұл
ауқытта блок енгізушығару операцияларындағы деректер беру бірлігі болып
табылғанда, фрагмент дискіде деректер сақтауының адрестік бірлігін
анықтайды. Осыдан енгізушығару өнімділігі мен деректер сақтау
тиімділігінің арасындағы ымыра (компромисс) табылды. Фрагмент көлемі
файлдық жүйенің құрылуы бойынша беріледі. Оның максимальді мәні – блок
көлемімен (блок көлемі 0,5), ал минимальді дискілік құрылғылардың физикалық
шектеулермен (диск адресацияның минимальді бірлігі - сектормен) анықталады.

Топтағы бос кеңістік туралы ақпарат блоктардың биттік карта түрінде
сақталады.

s5fs-тен ерекшелуінен FFS файлдық жүйе блоктар орналасу бойынша
өнімділікті жоғарлатуына бағытталған стратегияны қолданады.

Каталогтар

FFS файлдық жүйесі каталогының құрылымы файлдардың ұзын аттарын (255
символдарға дейін) қуаттау үшін өзгертілген. Бекітілген ұзындығы жазбасының
орнына FFS каталогының жазбасы келесі өрістердің болуымен құрылымы
көрсетілген:

d_ino inode номері (ilist массивтегі индекс)

d_reclen Жазба ұзындығы

d_namlen Файл атының ұзындығы

d_name[] Файл аты

Файл атында 4-байтты шетке дейінгі нольдермен қосымшаланған айнымалы
ұзындығы бар. Файл атының жойылуынан оған бағынған жазба алдыңғыға қосылады
және d_reclen өрісінің мәні сәйкес шамаға үлкейеді. Бірінші жазбаның
жойылуы d_ino өрісіне нольдік мәнге меншіктелуінде өрнектелінеді.

Виртуальді файлдық жүйесінің архитектурасы

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

Сурет №1 Виртуальді файлдық жүйенің архитектурасы

Виртуальді индексті дескрипторлар

Дискілік файл метадеректер немесе inode деп аталатын деректер
құрылымымен байланысады. Онда берілген файлдың негізгі мінездемелері
сақталған және оның көмегімен деректерге қатынау қамтамасыз етілген.
Виртуальді файлдық жүйе файлдың метадеректерін ұсынуына негізделген.
Файлмен жұмыс істеу интерфейсі vnode (virtual inode – виртуальді индексті
дескриптор) болып табылады.

Біріншіден бұл интерфейс файлдық жүйелердің әр түрлі типтерімен (NFS
және ufs (FFS)) талап етілген жұмыстың унификацияларын қамтамасыз ету үшін
1984 жылы Sun Mircosystems фирмасымен өңделген. Қазіргі таңда виртуальді
файлдық жүйе SVR4-дегі стандарт болып табылады, бірақ та UNIX-тің басқа
нұсқалары да осындай архитектураны жүзеге асырады.

Барлық активті файлдардың метадеректері жадыда in-core inode түрінде
берілген. vnode деректерінің құрылымы нақты файлдық жүйеден тәуелсіз барлық
файлдар үшін бірдей. vnode деректері виртуальді файлдық жүйенің жұмысына
керек ақпараттарын, сонымен бірге өзгерілмейтін файлдың мінездемелерін
құрайды.

Файлдық жүйеге қатынау

Процесс үшін локальді мәнін ие болатын бүтін сандар – файлдық
дескрипторларының көмегімен адрестейтін процесс файлдармен операцияларын
аяқтайды. Бұл бір процесстің файлдық дескрипторы мүлдем басқа файлды
адрестейді. Ал сондай нөмірдегі файлдық дескриптор басқа процесспен
қолданылады. Процесс жүйелік шақырулар қатарының көмегімен файлдық
дескрипторын алады. Мысалы, атын аудару операцияларын орындайтын open(2)
немесе creat(2). Ол нәтижесінде ерекшеленетін файлдық дескрипторіне
сәйкесінше файлдық жүйенің файлы және анықталған inode (немесе vnode)
адрестелінеді.

Сурет №2 файлға процессті қатынауға керек ядроның негізгі құрылымы
көрсетілген.

Сурет №2 Файлға қатынаудың ішкі құрылымдары

Файлға процессті қатынау үшін қолданатын файлдық дескриптор файлдық
дескрипторы кестесінің индексі (file descriptor table) болып табылады. Әр
процессте файлдық дескрипторларының жеке кестесі бар. Ол оның u-area-сында
орналасқан. Сурет №2-де екі процесс көрсетілген, оның әр біреуі файлдық
дескрипторының жеке кестесін қолданады.
Бұл кестенің ашық файлды көрсететін әр активті жазба жүйелік файлдық
кестенің жазбасын адрестейді. Олар файлға қатынаудың режимі (жазба, оқу,
қосу және т.б.), файлдағы ағымды ығысу (файлдық көрстекіш), сонымен бірге
бұл файлдың vnode-қа көрсеткіш параметрлері сақталған. Жүйелік файлдық
кесте барлық процесстерімен жалғыз және бірлесе қолданылады.
Сурет №2-де жүйелік файлдық кестенің бірнеше жазбалары сол файды
адрестейді. Ол vnode кестесіндегі жалғыз жазбасы берілген.

Файлдық кесте

u_ofile және u_pofile файлдық дескриптордың өрісі процесстің файл
деректеріне қатынау үшін керек бастапқы ақпаратты құрайды. Қосымша ақпарат
жүйелік файлдық кестеде және индекстік дескриптор кестесінде болады.
Процесстің файлға қатынауын қамтамасыз ету үшін ядро файлдық дескриптордан
vnode-қа және сәйкес Сурет №2-де көрсетілгендей деректерді сақтау блогына
дейін тізбекшесін толығымен құру керек.
Файлдық кестенің әрбір элементі файлмен жұмыс істеу үшін керек
ақпаратты құрайды. Егер бірнеше процесстер сондай бірдей файлды ашса,
олардың әрқайсысы файлдық кестенің меншікті элементін алады, бірақ та
олардың барлығы тағы да сондай бірдей файлмен жұмыс істесе. Файлдық
кестенің қажетті өріс элементтері төменде келтірілген:

Өріс Сипаттамасы
f_flag Файлды ашу кезінде көрсетілген жалаулар (open(2),
creat(2) жүйелік шақырулар). Файлмен әрбір операция
көрсетілген режимге байланысты жіберуін тексереді.
Басқаша айтқанда, егер процесс файлды тек оқу үшін
ашса (FREAD жалауы), оған жазба операциясы кезінде
рұқсат етілмейді, егер де ол соған қатынау құқығы
бар болып тұрса да.
FREAD Файл тек оқу үшін ашылған. O_RDONLY файлды ашу
кезіндегідей.
FWRITE Файл тек жазбаға ашылған. O_WRONLY файлды ашу
кезіндегідей.
FAPPEND Қосу режимі. Жазба операциясы басының алдынан
файлдық көрсеткіш файлдың соңына қондырылады.
O_APPEND файлды ашу кезіндегідей.
FNONBLOCK, FNDELAY Бұғаттаусыз қайтару. Жүйелік шақыру операциясының
аяқталуын күтпейді. O_NONBLOCK немесе O_NDELAY
файлды ашу кезіндегідей.
FSYNC Операцияның аяқталуы кезіндегі файл деректері және
метадеректері үшін дискілік құрылымына сәйкес
синхронизацияны қамтамасыз ету. O_SYNC файлды ашу
кезіндегідей.
FDSYNC Операцияның аяқталуы кезіндегі тек файл деректері
үшін дискілік құрылымына сәйкес синхронизацияны
қамтамасыз ету. O_DSYNC файлды ашу кезіндегідей.
FRSYNC FSYNC және FDSYNC жалауларымен бірге оқу операциясы
бойынша файлдың сәйкес компоненттері үшін
синхронизация процесін анықтайды.
f_count Берілген элементті файлдық кестеге адрестейтін
файлдық дескрипторлар саны. Тағы сол сияқты файлдық
кестенің элементі dup(2) жүйелік шақыру немесе
fork(2) нәтижесінің көмегімен дескрипторларды
қосарлауда бірге қолданылуы мүмкін.
f_vnode Файлдың виртуальді индекстік дескрипторына
көрсеткіш.
f_offset Файлдағы ағымды аралас. Осы жерден бастап оқу
немесе жазбаның келесі операциясы өндіріледі.

Файлға қатынауды бұғаттау

UNIX-тің дәстүрлі архитектуралы файлдық ішкіжүйесі бірнеше процесстерге
оқу және жазу үшін файлға біркелкі қатынауға рұқсат береді. Бірақ та
read(2) немесе write(2) жүйелік шақырулардың көмегімен жүзеге асатын оқу
және жазу операциялары атомарлық болып келеді. UNIX-те келісім бойынша
бөлек шақырулардың арасында синхронизация жоқ. Басқаша айтқанда, read(2)
екі ізбасар шақырулардың арасында бір процесстен басқа процесске файл
деректері түрлендіруі мүмкін. Бұл файлмен шешілмеген операцияларға және
олардың деректерінің бүтіндігін бұзуға алып келуі мүмкін. Бұндай жағдай
көптеген қосымшалар үшін тиімсіз болып келеді.
UNIX файл байты немесе файл жазбасының берілген диапазонын бұғаттауын
қамтамасыз етуге рұқсат береді. Ол үшін fcntl(2) базалық жүйелік шақырудың
файлмен басқаруы және lockf(3C) бұғаттауды арнайы басқару үшін арналған
библиотекалық функциясы қызмет етеді. Содан фактілік файлдық операцияның
(оқу немесе жазу) алдынан процесс сәйкес типті (оқу үшін немесе жазу үшін)
бұғаттауды қондырады. Егер бұғаттау сәтті аяқталса, онда бұл талаптанған
файлдық операция жанжалдықты немесе деректер бүтіндігінің бұзылуын
туғызбайды. Мысалы, бірнеше процесстермен файлға бір уақытта жазу.
Келісім бойынша бұғаттау кепілдемелік (advisory lock) болып келеді. Бұл
ортақ жұмыс істейтін процесстер құрылған бұғыттауын басшылық ете алады,
бірақ ядро файлдың бұғатталған бөлігінде жазуын немесе оқуын тыйым
салмайды. Ұсынылған бұғаттауымен жұмыс істегенде процесс fcntl(2) және
lockf(3C) функцияларының көмегімен олардың бар болуын тексереді.
flock құрылымы бұғаттаудың сипаттауына қызмет етеді. Осы құрылымының
өрістері 2 кестеде берілген.

Өріс Сипатталуы
short Бұғаттау типі: F_RDLCK оқу үшін (read lock) бұғаттауын
l_type көрсетеді, F_WRLCK – жазу үшін (write lock) бұғаттау,
F_UNLCK бұғаттау алып тастауын көрсетеді.
short Файлда жазба ығысудың санау нүктесі. Ол lseek(2)
l_whence функциясының мәнін қолдана алады: SEEK_SET, SEEK_CUR,
SEEK_END.
off_t l_whence өрісімен көрсетілген санау нүктесінің қатынасынан
l_start бұғатталған жазбаның ығысуы.
off_t Бұғатталған жазбаның ұзындығы. l_len нольдік мәні жазба әр
l_len қашанда файлдың соңына дейін таратылады, файл көлемінің
мүмкін өзгерістен тәуелсіз.
pid_t GETLK команданың шақырылуы бойынша қайтаратын бұғаттауын
l_pid қондырған процесстің идентификаторы.

UNIX-те міндетті бұғаттау (mandatory lock) бар. Оның қатынауға шектеуі
файлдың жазбаларына ядроның өзімен қойылады. Міндетті бұғаттаудың жүзеге
асырылуы әр түрлі болуы мүмкін. SVR4 UNIX бөлек жазу және оқу үшін
бұғаттауын қондыруды қуаттайды. Процесстің көбісіне оқу үшін және тек қана
бір процесске жазу үшін қатынауын қамтамасыз етеді. Бұл қондырғылар
fcntl(2) жүйелік шақырулармен де жүзеге асырылады.

Файлдық жүйенің бүтіндігі

Файлдық жүйенің бөлігі оперативті жадыда орналасқан. Оперативті жадыда
байланысқан (монтирование) жүйенің суперблогы, активті файлдардың
метадеректері және буферлі кэште уақытша орналасатын файлдар деректерін
сақтауының бөлек блоктары орналасқан. Бөлек файлдардың мазмұны файлдық
жүйенің бүтіндігіне бұзуын әкелмейді.
Осындай сәйкес еместіктерді файлдың метадеректерін немесе файлдық
жүйенің басқа басқаратын ақпаратты, мысалы, суперблокты тигізеді. Файлдық
операцияларының көбісі файлдық жүйенің бірнеше объектілерін бірден
тигізеді. Егер де дискіде осы объектілердің тек бөліктеріне өзгерістер
сақталған болса, файлдық жүйенің бүтіндігі бұзылуы мүмкін.
Авариялық тоқтатылу жағдайындағы жадыда файлдық жүйенің үлгісі мен оның
дискіде деректердің арасында синхронизациялаудың болмауы келесі қателердің
пайда болуына әкеледі:
1. Бір блок бірнеше inode-тармен адрестелінеді.
2. Блок бос түрінде белгіленген, бірақ сол уақытта бос емес (оған inode
сілтемеленеді).
3. Блок бос емес түрінде белгіленген, бірақ сол уақытта бос (оған бірде
бір inode сілтенбейді).
4. inode-ке сілтемелердің бұрыс сандары.
5. Файл көлемі мен суммарлы көлемінің арасындағы сәйкес еместік
блоктардың inode-қа адрестелінеді.
6. Қатыналмаған адресті блоктары.
7. “Жоғалған” файлдар.
8. Каталогтардың жазбаларында inode-тің қатыналмаған немесе
орналаспаған номерлері.
Егер де орындамау болса, файлдық жүйені жөндеуін жүзеге асыратын
fsck(1M) утилитасы көмекке келу мүмкін. Осы утилитаның іске қосылуы
автоматты түрде жүйенің әрбір іске қосылуына немесе администратордың келесі
команданың көмегімен жүзеге асырылады:
fsck [options] filesystem
filesystem – құрылғының арнайы файлы.
Тексеріс және түзеу тек қана байланысқан файлдық жүйеде жүзеге асырылуы
қажет. Бұл олардың дискілік эквиваленттерімен жадыда кестенің
синхронизациясы айрықшалуының қажетімен байланысқан. Айрықшалау түпкі
файлдық жүйе құрайды, ол байланысқан бола алмайды. Оның түзетуіне тексеру
жүргізілгеннен кейінгі жүйенің сол бойда қайта іске қосуын қамтамасыз
ететін -b опциясын қолдану керек.

Файлдармен жұмыс істеу

UNIX программалау ортасында файлдық енгізушығару үшін екі негізгі
интерфейстері бар:

1. Жүйелік шақырудың интерфейсі. Ол төмен деңгейдегі жүйелік
функцияларды ұсынады және операциялық жүйенің ядросымен тікелей
өзара әрекеттеседі.
2. Буферлік енгізушығару функциясымен ұсынылатын енгізушығару
стандартты библиотека.
Екінші интерфейс жүйелік шақыру интерфейсінен “надстройкасы” болып
табылады. Ол файлмен ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Linux ядросының алғашқы нұсқасы
Windows операциялық жүйенің файлдық жүйесі
Sys conf каталогында файл конфигурациясын құру
Linux операциялық жүйесі жайлы ақпарат
Ядросы Unix Linux тұқымдас операциялық жүйелер
Операциялық жүйелер,оның дамуы және түрлері ( MS-DOS,NC,OS/2,UNIX,Windows, оның түрлері)
Windows операциялық жүйесінің тарихы
Операциалық жүйелердің файлдық жүйесі
Windows 2000
Linux операциялық жүйесінің функциялары
Пәндер