Shakl: 2.36. Umumiy fayl tizimining modeli
Ramziy darajaning vazifasi - uning noyob nomini ramziy fayl nomidan aniqlash. Har bir fayl faqat bitta ramziy nomga ega bo'lishi mumkin bo'lgan fayl tizimlarida (masalan, MS-DOS), bu daraja mavjud emas, chunki foydalanuvchi tomonidan faylga tayinlangan ramziy nom bir vaqtning o'zida noyobdir va operatsion tizim tomonidan ishlatilishi mumkin. Xuddi shu fayl bir nechta ramziy nomlarga ega bo'lishi mumkin bo'lgan boshqa fayl tizimlarida ushbu darajadagi noyob fayl nomini aniqlash uchun katalog zanjiri ko'rib chiqiladi. Masalan, UNIX fayl tizimida noyob nom faylning inode raqami (i-tugun) hisoblanadi.
Keyingi, asosiy darajada, noyob fayl nomi uning xususiyatlarini aniqlaydi: kirish huquqlari, manzil, hajm va boshqalar. Yuqorida aytib o'tilganidek, fayl xususiyatlari katalogga kiritilishi yoki alohida jadvallarda saqlanishi mumkin. Fayl ochilganda, uning xarakteristikalari o'rtacha faylga kirish vaqtini kamaytirish uchun diskdan RAMga ko'chiriladi. Ba'zi fayl tizimlarida (masalan, HPFS), fayl ochilganda, uning xususiyatlari bilan birga, ma'lumotlarni o'z ichiga olgan faylning dastlabki bir nechta bloklari RAMga ko'chiriladi.
Faylga so'rovni amalga oshirishning navbatdagi bosqichi - unga kirish huquqini tekshirish. Buning uchun so'rov yuborgan foydalanuvchi yoki jarayonning ruxsatnomalari ushbu faylga ruxsat berilgan kirish turlari ro'yxati bilan taqqoslanadi. Agar so'ralgan kirish turiga ruxsat berilsa, so'rovning bajarilishi davom etadi, agar bo'lmasa, kirish huquqini buzganligi to'g'risida xabar beriladi.
Mantiqiy darajada faylda so'ralgan mantiqiy yozuvning koordinatalari aniqlanadi, ya'ni kerakli mantiqiy yozuv faylning boshidanoq qaysi masofada (baytda) ekanligini aniqlash talab qilinadi. Shu bilan birga, faylning fizik joylashuvi mavhum bo'lib, u doimiy baytlar ketma-ketligi sifatida ifodalanadi. Ushbu darajadagi algoritm faylni mantiqiy tashkil qilinishiga bog'liq. Masalan, agar fayl l sobit uzunlikdagi mantiqiy yozuvlar ketma-ketligi sifatida tashkil qilingan bo'lsa, u holda n-chi mantiqiy yozuv l ((n-1) baytni almashtirishga ega. Fayldagi mantiqiy yozuv koordinatalarini aniqlash uchun indeksli ketma-ketlikdagi tashkilot bilan to'g'ridan-to'g'ri mantiqiy yozuvning manzilini ko'rsatadigan indekslar (kalitlar) jadvalini o'qing.
Shakl: 2.37. Fayl tizimining fizik qatlam vazifalari
Dastlabki ma'lumotlar:
V - blok hajmi;
N - faylning birinchi blokining soni;
S - fayldagi mantiqiy yozuvni ofset qilish.
Xotira bilan bog'langan fayllar
Xotiraga kirish bilan taqqoslaganda an'anaviy faylga kirish chalkash va noqulay ko'rinadi. Shu sababli, MULTICS-dan boshlab ba'zi operatsion tizimlar fayllarni ishlayotgan jarayonning manzil maydoniga xaritalashni ta'minlaydi. Bu ikkita yangi tizim qo'ng'iroqlariga aylanadi: MAP (displey) va UNMAP (displeyni bekor qilish). Birinchi qo'ng'iroq fayl nomi va virtual manzilni operatsion tizimga parametr sifatida o'tkazadi va operatsion tizim belgilangan faylni belgilangan manzil bo'yicha virtual manzil maydoniga tushiradi.
Masalan, f fayli 64K uzunlikda va 512K boshlang'ich manzili bilan virtual manzil maydonining maydoniga tushirilgan deb taxmin qilaylik.Shundan so'ng, 512K da bayt tarkibini o'qigan har qanday mashina buyrug'i 0-baytni oladi. va shu kabilar. ... Shubhasiz, 512K + 1100 da yozish faylning 1100 baytini o'zgartiradi. Jarayon tugagandan so'ng, faylning o'zgartirilgan versiyasi, xuddi SEEK va WRITE qo'ng'iroqlari kombinatsiyasi bilan o'zgartirilganidek, diskda qoldiriladi.
Darhaqiqat, faylni xaritalashda ichki tizim jadvallari o'zgartirilib, fayl diskdagi virtual xotira sahifalarini saqlash vazifasini bajaradi. Shunday qilib, 512K da o'qish sahifada xatolikka olib keladi, natijada 0-sahifa jismoniy xotirada saqlanadi. Xuddi shu tarzda, 512K + 1100 da yozish sahifadagi xatolarni keltirib chiqaradi, natijada ushbu manzilni o'z ichiga olgan sahifa xotiraga ko'chiriladi, shundan so'ng kerakli manzilda xotiraga yozuv yoziladi. Agar ushbu sahifa sahifani almashtirish algoritmi bilan xotiradan chiqarilsa, u holda fayl tegishli joyga qaytarib yoziladi. Jarayon tugagandan so'ng, barcha xaritalangan va o'zgartirilgan sahifalar xotiradan faylga yoziladi.
Fayllarni xaritalash segmentatsiyani qo'llab-quvvatlaydigan tizimda yaxshi ishlaydi. Bunday tizimda har bir faylni o'z segmentiga solish mumkin, shunda fayldagi kth bayt segmentning k baytidir. Shakl 2.38, a ikkita kod va ma'lumotlar segmentlariga ega bo'lgan jarayonni ko'rsatadi. Keling, ushbu jarayon fayllarni nusxalashini taxmin qilaylik. Buni amalga oshirish uchun avval manba faylini ko'rsatadi, masalan abc. Keyin u bo'sh segmentni yaratadi va unga maqsad faylini, masalan, ddd fayli bilan xaritasini belgilaydi.
Shu nuqtada, jarayon mov ko'rsatmalaridan foydalangan holda muntazam dastur tsikli yordamida manba segmentini maqsad segmentiga ko'chirishi mumkin . O'QING yoki YOZING qo'ng'iroqlari kerak emas. Nusxalash tugagandan so'ng, jarayon faylni manzil maydonidan olib tashlash va undan keyin chiqish uchun UNMAP chaqiruvini amalga oshirishi mumkin. Ddd chiqish fayli diskda odatdagidek yaratilganidek mavjud bo'ladi.
Fayl xaritasi kiritish-chiqarish ehtiyojlarini yo'q qilsa va shu bilan dasturlashni osonlashtirsa, ba'zi yangi muammolarni keltirib chiqaradi. Birinchidan, tizim uchun chiqish faylining aniq uzunligini bilish qiyin, bu misolda ddd. Yozilgan eng yuqori sahifa raqamini belgilash osonroq, lekin bu sahifada qancha bayt yozilganligini bilishning imkoni yo'q. Dasturda faqat 0 sahifa raqami ishlatiladi, deylik va bajarilgandan so'ng barcha baytlar 0 ga teng (ularning dastlabki qiymati). Ehtimol, faylda 10 ta nol bor. Yoki u 100 noldan iborat bo'lishi mumkin. Buni qanday aniqlash mumkin? Operatsion tizim buni etkaza olmaydi. Qilishi mumkin bo'lgan narsa - bu sahifa hajmi qadar uzun bo'lgan faylni yaratishdir.
Shakl: 2.38. a) bo'sh joyni manzil qilish uchun fayllarni xaritalashdan oldin segmentlarni qayta ishlash; (b)
Mavjud abc faylini bitta segmentga moslashtirish va ddd fayli uchun yangi segment yaratgandan so'ng jarayon
Ikkinchi muammo yuzaga keladi (potentsial), agar bitta jarayon faylni namoyish qilsa va boshqa jarayon uni oddiy faylga kirish uchun ochsa. Agar birinchi jarayon sahifani o'zgartirsa, sahifadagi diskka surilguncha o'zgarish diskdagi faylda aks etmaydi. Ushbu ikki jarayon uchun fayl ma'lumotlarining izchilligini saqlash tizim uchun katta tashvish tug'diradi.
Uchinchi muammo shundaki, fayl segmentdan kattaroq yoki hatto butun virtual manzil maydonidan kattaroq bo'lishi mumkin. Uni hal qilishning yagona usuli bu MAP chaqiruvini butun faylni emas, balki uning qismini aks ettiradigan tarzda amalga oshirishdir. Garchi bu butun faylni namoyish qilishdan ko'ra kamroq qulay bo'lsa ham.
Fayl tizimining zamonaviy arxitekturalari
Yangi operatsion tizimlarni ishlab chiquvchilar foydalanuvchiga birdaniga bir nechta fayl tizimlari bilan ishlash imkoniyatini berishga intilishadi. Yangi tushunchada fayl tizimi ko'plab tarkibiy qismlardan, shu jumladan an'anaviy ma'noda fayl tizimlaridan iborat.
Yangi fayl tizimi ko'p darajali tuzilishga ega (2.39-rasm), uning yuqori darajasida fayl tizimi almashinuvi deb ataladi (masalan, Windows 95 da ushbu kalit o'rnatiladigan fayllar tizimi menejeri, IFS). Bu ilova so'rovlari va dastur kirayotgan ma'lum fayl tizimi o'rtasida interfeysni ta'minlaydi. Fayl tizimining kaliti so'rovlarni keyingi qatlam, fayl tizimi qatlami tomonidan o'qilishi mumkin bo'lgan formatga aylantiradi.
Do'stlaringiz bilan baham: |