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



 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
Қолданылған әдебиеттер
25
Кіріспе
Әрбір операциялық жүйе бір түсініктемеге қолданылады оның бірі
Файлдық жүйе – бұл операциялық жүйенің компоненті, ол
Бұл курстық жобада UNIX-тегі программалау жөнінде қарастырылады. Бұл
Сонымен қатар Sun Microsystems фирмасымен өңделген виртуальді файлдық
Файлдық жүйелер
UNIX операциялық жүйедегі деректердің көбісі ағаш түрінде ұйымдастырылған
UNIX System V ізделінген файлдық жүйесі s5fs болып
System V базалық файлдық жүйесі
Әрбір қатқыл диск бір немесе бірнеше логикалық бөліктерден
Мысалы, диск төрт тараудан тұруы мүмкін. Әр біреуі
s5fs файлдық жүйе дискінің тарауында орын алады және
Суперблок (superblock). Ол файлдық жүйе жөніндегі жалпы ақпаратты
Индексті дескриптерінің массиві (ilist). Ол файлдық жүйенің барлық
Деректер сақтауының блоктары. Жалпы файлдардың және каталогтардың деректері
BSD UNIX файлдық жүйесі
4.3BSD UNIX нұсқаларында файлдық жүйенің архитектурасына жақсартулары енгізілген.
FFS файлдық жүйесі s5fs жүйесінің толық функционалдығымен меңгерілуі
Суперблок файлдық жүйенің жалпы сипатталуынан құралады және тараудың
Файлдық жүйенің ұйымы бір немесе бірнеше цилиндр тобына
Файлдық жүйенің құрылуы бойынша цилиндрдің әрбір тобына inode-тің
Файлдық жүйе құрылымының осындай идеясы барлық тарауларда орналасқан
Басқарылған ақпарат цилиндр тобының басынан әртүрлі ығысулармен орналасады.
Файлдық жүйенің өнімділігі деректер сақтау блогының өлшемінен тәуелді
Бұл кемшілік блок фрагментациясы мүмкіндігінің көмегімен жүзеге асырылған.
Әрбір блок екі, төрт немесе сегіз фрагментке бөлінуі
Топтағы бос кеңістік туралы ақпарат блоктардың биттік карта
s5fs-тен ерекшелуінен FFS файлдық жүйе блоктар орналасу бойынша
Каталогтар
FFS файлдық жүйесі каталогының құрылымы файлдардың ұзын аттарын
d_ino
d_reclen Жазба
d_namlen Файл атының ұзындығы
d_name[] Файл аты
Файл атында 4-байтты шетке дейінгі нольдермен қосымшаланған айнымалы
Виртуальді файлдық жүйесінің архитектурасы
Әр түрлі файлдық жүйенің типтері ішкі архитектура
Сурет №1 Виртуальді файлдық жүйенің архитектурасы
Виртуальді индексті дескрипторлар
Дискілік файл метадеректер немесе inode деп аталатын деректер
Біріншіден бұл интерфейс файлдық жүйелердің әр түрлі типтерімен
Барлық активті файлдардың метадеректері жадыда in-core inode түрінде
Файлдық жүйеге қатынау
Процесс үшін локальді мәнін ие болатын бүтін сандар
Сурет №2 файлға процессті қатынауға керек ядроның негізгі
Сурет №2 Файлға қатынаудың ішкі құрылымдары
Файлға процессті қатынау үшін қолданатын файлдық дескриптор файлдық
Бұл кестенің ашық файлды көрсететін әр активті жазба
Сурет №2-де жүйелік файлдық кестенің бірнеше жазбалары сол
Файлдық кесте
u_ofile және u_pofile файлдық дескриптордың өрісі процесстің файл
Файлдық кестенің әрбір элементі файлмен жұмыс істеу үшін
Өріс Сипаттамасы
f_flag Файлды ашу кезінде көрсетілген жалаулар (open(2), creat(2)
FREAD Файл тек оқу үшін ашылған. O_RDONLY файлды
FWRITE Файл тек жазбаға ашылған. O_WRONLY файлды ашу
FAPPEND Қосу режимі. Жазба операциясы басының алдынан файлдық
FNONBLOCK, FNDELAY Бұғаттаусыз қайтару. Жүйелік шақыру операциясының аяқталуын
FSYNC Операцияның аяқталуы кезіндегі файл деректері және метадеректері
FDSYNC Операцияның аяқталуы кезіндегі тек файл деректері үшін
FRSYNC FSYNC және FDSYNC жалауларымен бірге оқу операциясы
f_count Берілген элементті файлдық кестеге адрестейтін файлдық дескрипторлар
f_vnode Файлдың виртуальді индекстік дескрипторына көрсеткіш.
f_offset Файлдағы ағымды аралас. Осы жерден бастап оқу
Файлға қатынауды бұғаттау
UNIX-тің дәстүрлі архитектуралы файлдық ішкіжүйесі бірнеше процесстерге оқу
UNIX файл байты немесе файл жазбасының берілген диапазонын
Келісім бойынша бұғаттау кепілдемелік (advisory lock) болып келеді.
flock құрылымы бұғаттаудың сипаттауына қызмет етеді. Осы құрылымының
Өріс Сипатталуы
short l_type
short l_whence Файлда жазба ығысудың санау
off_t l_start l_whence өрісімен көрсетілген санау
off_t l_len Бұғатталған жазбаның ұзындығы. l_len
pid_t l_pid GETLK команданың шақырылуы бойынша
UNIX-те міндетті бұғаттау (mandatory lock) бар. Оның
Файлдық жүйенің бүтіндігі
Файлдық жүйенің бөлігі оперативті жадыда орналасқан. Оперативті жадыда
Осындай сәйкес еместіктерді файлдың метадеректерін немесе файлдық жүйенің
Авариялық тоқтатылу жағдайындағы жадыда файлдық жүйенің үлгісі мен
Бір блок бірнеше inode-тармен адрестелінеді.
Блок бос түрінде белгіленген, бірақ сол уақытта бос
Блок бос емес түрінде белгіленген, бірақ сол уақытта
inode-ке сілтемелердің бұрыс сандары.
Файл көлемі мен суммарлы көлемінің арасындағы сәйкес еместік
Қатыналмаған адресті блоктары.
“Жоғалған” файлдар.
Каталогтардың жазбаларында inode-тің қатыналмаған немесе орналаспаған номерлері.
Егер де орындамау болса, файлдық жүйені жөндеуін жүзеге
fsck [options] filesystem
filesystem – құрылғының арнайы файлы.
Тексеріс және түзеу тек қана байланысқан файлдық жүйеде
Файлдармен жұмыс істеу
UNIX программалау ортасында файлдық енгізу/шығару үшін екі негізгі
Жүйелік шақырудың интерфейсі. Ол төмен деңгейдегі жүйелік функцияларды
Буферлік енгізу/шығару функциясымен ұсынылатын енгізу/шығару стандартты библиотека.
Екінші интерфейс жүйелік шақыру интерфейсінен “надстройкасы” болып табылады.
Файлдармен жұмыс істеуге арналған негізгі жүйелік фукнциялар
3 кестеде С программадағы жүйелік функциялардың бейнесі болып
Жүйелік функция Сипатталуы
open(2) Көрсетілген файлға оқуға және/немесе жазуға қатынау алу
creat(2) Файлдың құрылуына қызмет етеді.
close(2) Ашық файлмен тікелей байланысқан файлдық дескрипторын жабады.
dup(2) Файлдық дескриптордың дубликатын қайтарады.
dup2(2) Файлдық дескриптордың дубликатын қайтарады, бірақ оның мәнін
lseek(2) Файлдың анықталған орынға файлдық көрсеткішін орнатады. Келесі
read(2) Файлдағы байттардың көрсетілген сандарын оқуға жузеге асырады.
readv(2) Файлдағы байттардың көрсетілген сандарын оқудың бірнеше операцияларын
write(2) Файлға байттардың көрсетілген сандарын жазуға жүзеге асырады.
writev(2) Файлға байттардың көрсетілген сандарын жазудың бірнеше операцияларын
pipe(2) Екі файлдық дескрипторын қайтаратын коммуникациялық арнаны құрайды.
fcntl(2) Ашық файлмен басқару интерфейсін қамтамасыз етеді.
Енгізу/шығару стандартты библиотекасы
Қарастырылған функциялар операциялық жүйенің ядросы мен қосымшаларының арасындағы
Бірақ та программистер төменгі деңгейдегі интерфейсті аз қолданады,
Библиотеканың файлдық дескрипторын қолдану орнына көрсеткіш ағымдық немесе
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
Байланыстар
UNIX файлдық жүйенің әрбір метадеректер файлында аттардың санын
Қатқыл байланыс link(2) жүйелік шақырудың көмегімен құрылады:
#include
int link (const char *existing, const char *new);
Осымен existing файлының метадеректерін көрсететін new атты және
Қатқыл байланысты жою үшін unlink(2) жүйелік байланысы қолданылады:
#include
int unlink(const char *path);
Бұл функцияны файлды жою кезінде rm(1) командасы шақырады.
Қатқыл байланыстарға қарама-қарсы файл деректер адресациясы табиғи тәсілі
Символдық байланыс басқа файлды файлдық жүйеге жанама адрестеуге
#include
int symlink (const char *name, const char *symname);
Символдық байланысты құрып болғаннан кейін name мақсатты файлға
Кесте 4. Әр түрлі жүйелік шақырулармен символдық байланыстардың
Жүйелік шақыру Символдық байланыспен қатынау Символдық байланыспен қатынамау
access(2) +
chdir(2) +
chmod(2) +
chown(2) +
lchown(2)
+
creat(2) +
exec(2) +
link(2) +
mkdir(2) +
mknod(2)
+
open(2) +
readlink(2)
+
rename(2)
+
stat(2) +
lstat(2)
+
unlink(2)
+
Символдық байланыс – файлдың құрамын оқу үшін readlink(2)
#include
int readlink (const char *path, void *buf, size_t
path аргументі символдық байланыстың атын құрайды. bufsiz өлшемді
Жоғарыда айтылғандарды өрнектеу үшін программа мысалын келтірейік, алдымен
#include
#include
#include
#include
#define BUFSZ 256
/* Аргумент ретінде программа символдық байланыстың атын қолдайды
main (int argc, char *argv[])
{
char buf [BUFSZ+1];
int nread, fd;
/* Символдық байланыс құрамын оқиық*/
printf (“Символдық байланысты оқимыз\n”);
nread = readlink (argv[1], buf, BUFSZ);
if (nread


Ұқсас жұмыстар

Linux файлдық жүйелеріне жалпы мәлімет
АҚПАРАТТЫҚ ЖҮЙЕ
Операциялық жүйе түсінігі
Linux ядросының алғашқы нұсқасы
Операциялық жүйелер,оның дамуы және түрлері ( MS-DOS,NC,OS/2,UNIX,Windows, оның түрлері)
Файлдық жүйе функцияларына шолу
UNIX – жүйесіндегі файлдың жүзеге асуы
Ядросы Unix Linux тұқымдас операциялық жүйелер
Visual basic ортасында деректер қоры
Windows NT–ң монолитті құрылымы