ഫയൽ ഘടനയും ഫയൽ സിസ്റ്റങ്ങളും. OS ഫയൽ ഘടന. ഫയൽ പ്രവർത്തനങ്ങൾ

ലബോറട്ടറി വർക്ക് നമ്പർ 10

ഡിസ്കിലേക്കും പ്രിൻ്ററിലേക്കും ഔട്ട്പുട്ട്

ഡിസ്പ്ലേയിലെ വിവരങ്ങളുടെ ലളിതമായ പ്രദർശനം മിക്കവാറും എല്ലാ പ്രോഗ്രാമുകളിലും ഉപയോഗിക്കുന്നു, എന്നാൽ അതിൻ്റെ കഴിവുകൾ കുറച്ച് പരിമിതമാണ്. എല്ലാ സന്ദേശങ്ങളും വായിക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നതിന് ഒരു താൽക്കാലിക താൽക്കാലിക വിരാമം ഉപയോഗിക്കുന്നത് പോലും പ്രശ്നം പൂർണ്ണമായും പരിഹരിക്കില്ല: ഒരു സന്ദേശം സ്ക്രീനിൽ നിന്ന് പോയിക്കഴിഞ്ഞാൽ, പ്രോഗ്രാം വീണ്ടും ആരംഭിക്കാതെ അത് വായിക്കാൻ കഴിയില്ല.

കൂടാതെ, വേരിയബിളുകൾക്ക് നൽകിയിരിക്കുന്ന മൂല്യങ്ങൾ പ്രോഗ്രാമിൻ്റെ എക്സിക്യൂഷൻ കാലയളവിലേക്ക് മാത്രം നിലനിർത്തുന്നു. പ്രോഗ്രാം പൂർത്തിയാകുമ്പോൾ, നൽകിയ എല്ലാ വിവരങ്ങളും നഷ്ടപ്പെടും. ഇതിനർത്ഥം, ഉദാഹരണത്തിന്, നിങ്ങളുടെ സിഡി ശേഖരത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഘടന വേരിയബിളുകളുടെ ഒരു നിരയിലേക്ക് നൽകിയാൽ, പ്രോഗ്രാം പുറത്തുകടക്കുമ്പോൾ അത് നഷ്‌ടമാകും, അടുത്ത തവണ നിങ്ങൾ കമ്പ്യൂട്ടറിലേക്ക് പ്രവേശിക്കുമ്പോൾ, നിങ്ങൾ എല്ലാ ഡാറ്റയും വീണ്ടും നൽകേണ്ടിവരും.

നിങ്ങൾക്കായി വിവരങ്ങൾ സംരക്ഷിക്കുന്നതിനോ നിങ്ങളുടെ പ്രോഗ്രാമിൻ്റെ ഫലങ്ങൾ മറ്റുള്ളവരെ പരിചയപ്പെടുത്തുന്നതിനോ, നിങ്ങൾ ഈ ഫലങ്ങൾ പേപ്പറിൽ പ്രിൻ്റ് ചെയ്യേണ്ടതുണ്ട്. ഒരിക്കൽ നൽകിയ ഡാറ്റ എപ്പോൾ വേണമെങ്കിലും ആക്സസ് ചെയ്യാൻ, ഡിസ്കിലെ ഒരു ഫയലിൽ വിവരങ്ങൾ സംരക്ഷിക്കേണ്ടത് ആവശ്യമാണ്.

എന്താണ് ഒരു ഫയൽ ഘടന

അനുബന്ധ ഔട്ട്പുട്ട് നിർദ്ദേശങ്ങൾ അനുസരിച്ച് ഔട്ട്പുട്ട് ഡാറ്റ ഉടൻ ഡിസ്കിലേക്കോ പ്രിൻ്റിംഗ് ഉപകരണത്തിലേക്കോ അയയ്ക്കില്ല. പകരം, അവർ ആദ്യം വിവരങ്ങളുടെ താൽക്കാലിക സംഭരണത്തിനായി രൂപകൽപ്പന ചെയ്ത മെമ്മറിയുടെ ഒരു മേഖലയിലേക്ക് പോകുന്നു ബഫർ. ബഫർ നിറയുമ്പോൾ മാത്രം, ഡാറ്റ ഡിസ്കിലേക്കോ പ്രിൻ്ററിലേക്കോ അയയ്ക്കും (ചിത്രം 1). ഡിസ്കിൽ നിന്ന് നൽകിയ ഡാറ്റയും ആദ്യം ഒരു ബഫറിലേക്ക് പോകുന്നു, അവിടെ നിന്ന് അത് സ്ക്രീനിൽ പ്രദർശിപ്പിക്കാം അല്ലെങ്കിൽ ഒരു വേരിയബിൾ മൂല്യമായി നൽകാം.

ഒരു ബഫറിലേക്ക് ഡാറ്റ അയയ്ക്കുന്നതിനോ അതിൽ നിന്ന് ഡാറ്റ സ്വീകരിക്കുന്നതിനോ, നിങ്ങളുടെ പ്രോഗ്രാമും കമ്പ്യൂട്ടറിൻ്റെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റവും തമ്മിൽ ഏതെങ്കിലും തരത്തിലുള്ള ലിങ്ക് ആവശ്യമാണ്. ഈ ലിങ്ക് ഫയൽ ഘടനയാണ്.

ഒരു പ്രോഗ്രാം ജോലിക്കായി ഒരു ഫയൽ തുറക്കുമ്പോൾ, അത് മെമ്മറിയിൽ ഒരു പ്രത്യേക ഘടന സൃഷ്ടിക്കുന്നു. ഈ ഘടനയിൽ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു

അരി. 1. ഡാറ്റ കുറച്ച് സമയത്തേക്ക് ഒരു ബഫറിൽ സൂക്ഷിക്കുന്നു

നിങ്ങളുടെ പ്രോഗ്രാമിനും കമ്പ്യൂട്ടറിനും ഒരു ഫയലിലേക്ക് ഡാറ്റ ഔട്ട്പുട്ട് ചെയ്യുന്നതിനും ഒരു ഫയലിൽ നിന്ന് ഇൻപുട്ട് ചെയ്യുന്നതിനും അതുപോലെ ഒരു പ്രിൻ്ററിലേക്ക് വിവരങ്ങൾ പ്രിൻ്റ് ചെയ്യുന്നതിനും ആവശ്യമാണ്.

ഉദാഹരണത്തിന്, ഘടനയിൽ ഒരു ഫയൽ ബഫറിൻ്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു, അതിനാൽ നിങ്ങൾ ഡിസ്കിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന വിവരങ്ങൾ എവിടെയാണ് തിരയേണ്ടതെന്നും അല്ലെങ്കിൽ ഡിസ്കിൽ നിന്ന് നിങ്ങൾ വായിക്കാൻ ആഗ്രഹിക്കുന്ന ഡാറ്റ എവിടെ നൽകണമെന്നും കമ്പ്യൂട്ടറിന് അറിയാം. കൂടാതെ, ഈ ഘടന ബഫറിൽ ശേഷിക്കുന്ന പ്രതീകങ്ങളുടെ എണ്ണത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംഭരിക്കുന്നു, അതുപോലെ തന്നെ അടുത്ത പ്രതീകത്തിൻ്റെ സ്ഥാനവും ബഫറിൽ നിന്നും പുറത്തേക്കും ഔട്ട്പുട്ട് ചെയ്യുന്നു (ചിത്രം 2).


അരി. 2. ഫയൽ പ്രവർത്തനങ്ങളുടെ സാധാരണ നിർവ്വഹണത്തിന് ആവശ്യമായ വിവരങ്ങൾ ഫയൽ ഘടന സംഭരിക്കുന്നു

മിക്കവാറും എല്ലാ C, C++ കംപൈലറുകളും ഫയലുകളുമായി പ്രവർത്തിക്കാൻ ആവശ്യമായ വിവരങ്ങൾ STDIO.H എന്ന ഹെഡർ ഫയലിൽ സംഭരിക്കുന്നു. ഫയൽ പ്രവർത്തനങ്ങൾക്ക് ആവശ്യമായ സ്ഥിരാങ്കങ്ങളുടെ നിർവചനങ്ങൾ ഈ ഫയലിൽ അടങ്ങിയിരിക്കുന്നു. കൂടാതെ, അതിൽ ഫയൽ ഘടനയുടെ ഒരു വിവരണം അടങ്ങിയിരിക്കാം. ഫയലുകളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ ഉപയോഗിക്കുന്നതിന്, നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് പ്രോഗ്രാം ആരംഭിക്കണം

#ഉൾപ്പെടുന്നു,

പ്രോഗ്രാം കംപൈൽ ചെയ്യുമ്പോഴും ലിങ്ക് ചെയ്യുമ്പോഴും ഫയൽ സ്ഥിരാങ്കങ്ങളും ഫയൽ ഘടന വിവരണങ്ങളും ലഭ്യമാക്കും.

നിങ്ങൾ ഒരു ഡിസ്ക് ഫയലിൽ നിന്ന് ഡാറ്റ നൽകുമ്പോൾ, അത് കമ്പ്യൂട്ടറിൻ്റെ മെമ്മറിയിലേക്ക് പകർത്തുന്നു; പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ ഡിസ്കിൽ ശേഷിക്കുന്ന വിവരങ്ങൾ മാറില്ല. ഇക്കാരണത്താൽ, പ്രോഗ്രാമർമാർ ഇതിനെ ഇൻപുട്ട് എന്ന് വിളിക്കുന്നു വായനയിലൂടെഫയലിൽ നിന്നുള്ള ഡാറ്റ. ഡിസ്കിലേക്ക് ഡാറ്റ ഔട്ട്പുട്ട് ചെയ്യുമ്പോൾ, മെമ്മറിയിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയുടെ ഒരു പകർപ്പ് ഒരു ഫയലിൽ സ്ഥാപിക്കുന്നു. ഈ നടപടിക്രമം വിളിക്കുന്നു റെക്കോർഡിംഗ്ഡിസ്കിലേക്ക്.

ഫയലിലേക്കുള്ള പോയിൻ്റർ

ഫയലുകളിലേക്കുള്ള വിവരങ്ങളുടെ ഇൻപുട്ട് അല്ലെങ്കിൽ ഔട്ട്പുട്ട് നൽകിയിരിക്കുന്നത് ഫയൽ പോയിൻ്റർ എന്ന് വിളിക്കപ്പെടുന്ന ഒരു ഫയൽ ഉപയോഗിച്ചാണ്, ഇത് മെമ്മറിയിലെ ഒരു ഫയൽ ഘടനയിലേക്കുള്ള ഒരു പോയിൻ്ററാണ്. ഒരു ഫയലിലേക്ക് വിവരങ്ങൾ എഴുതുമ്പോഴോ ഫയലിൽ നിന്ന് വായിക്കുമ്പോഴോ, പ്രോഗ്രാം ഘടനയിൽ നിന്ന് ആവശ്യമായ വിവരങ്ങൾ നേടുന്നു. ഫയൽ പോയിൻ്റർ ഇനിപ്പറയുന്ന രീതിയിൽ നിർവചിച്ചിരിക്കുന്നു:

FILE *file_pointer;

FILE എന്ന ഘടനയുടെ പേര് പ്രോഗ്രാമിനോട് നിർവചിച്ചിരിക്കുന്ന വേരിയബിൾ ഒരു ഫയൽ ഘടനയിലേക്കുള്ള ഒരു പോയിൻ്ററാണെന്ന് പറയുന്നു. അനുബന്ധ വേരിയബിൾ നാമത്തിൽ ഒരു പോയിൻ്റർ സൃഷ്ടിക്കാൻ നക്ഷത്രചിഹ്നം നിർദ്ദേശിക്കുന്നു.

നിങ്ങൾ ഒരേ സമയം ഒന്നിലധികം ഫയലുകൾ ഉപയോഗിക്കാൻ പോകുകയാണെങ്കിൽ, അവയിൽ ഓരോന്നിനും നിങ്ങൾക്ക് പോയിൻ്ററുകൾ ആവശ്യമാണ്. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു ഫയലിൻ്റെ ഉള്ളടക്കം മറ്റൊന്നിലേക്ക് പകർത്തുന്ന ഒരു പ്രോഗ്രാമാണ് എഴുതുന്നതെങ്കിൽ, നിങ്ങൾക്ക് ഫയലുകളിലേക്ക് രണ്ട് പോയിൻ്ററുകൾ ആവശ്യമാണ്. ഡിസ്കിൽ നിന്ന് വിവരങ്ങൾ വായിക്കാനും പ്രിൻ്ററിൽ പ്രിൻ്റ് ചെയ്യാനും നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ രണ്ട് പോയിൻ്ററുകളും ആവശ്യമാണ്:

FILE *infile, *outfile;

ഒരു ഫയൽ എങ്ങനെ തുറക്കാം

പ്രോഗ്രാമും ഫയലും തമ്മിലുള്ള കണക്ഷൻ fopen() ഫംഗ്ഷൻ ഉപയോഗിച്ചാണ് സ്ഥാപിച്ചിരിക്കുന്നത്, ഇതിൻ്റെ വാക്യഘടന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നു. 3.

ഈ ഫംഗ്‌ഷൻ ഒരു പോയിൻ്ററിലേക്ക് ഒരു ഘടനയുടെ വിലാസം നൽകുന്നു. ഈ ഫംഗ്ഷൻ്റെ ആദ്യ പാരാമീറ്റർ ഫയൽ നാമമാണ്, അത് അനുസരിച്ച് വ്യക്തമാക്കണം


അരി. 3. fopen() ഫംഗ്‌ഷൻ്റെ വാക്യഘടന

ചില നിയമങ്ങൾ. ഉദാഹരണത്തിന്, MS-DOS ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ, ഒരു ഫയലിൻ്റെ പേരിൽ പരമാവധി എട്ട് പ്രതീകങ്ങൾ അടങ്ങിയിരിക്കാം, കൂടാതെ മൂന്ന് പ്രതീകങ്ങളിൽ കൂടാത്ത ഒരു നാമ വിപുലീകരണവും (വിപുലീകരണം ആവശ്യമായ ഘടകമല്ല). ഒരു ഡിസ്ക് ഫയലിലേക്കല്ല, പ്രിൻ്റിംഗ് ഉപകരണത്തിലേക്കാണ് വിവരങ്ങൾ ഔട്ട്പുട്ട് ചെയ്യേണ്ടതെങ്കിൽ, ഉദ്ധരണി ചിഹ്നങ്ങളിൽ ഫയൽ നാമമായി "PRN" ഉപയോഗിക്കുക. ഈ സാഹചര്യത്തിൽ, ഡാറ്റ സ്വയമേവ പ്രിൻ്ററിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യുന്നു.

ഫംഗ്ഷനിലേക്കുള്ള രണ്ടാമത്തെ പാരാമീറ്റർ ഫയൽ ആക്സസ് മോഡ് ആണ്, അതായത്, ഫയൽ ഉപയോഗിച്ച് ഉപയോക്താവ് എന്ത് പ്രവർത്തനങ്ങൾ നടത്താൻ ഉദ്ദേശിക്കുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഒരു സന്ദേശം. C, C++ എന്നിവയിൽ, ആക്സസ് മോഡ് നിർണ്ണയിക്കുന്ന പരാമീറ്ററും ഉദ്ധരണികളിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ സാധ്യമാണ്:

R - എന്തുചെയ്യുമെന്ന് സൂചിപ്പിക്കുന്നു വായനഒരു ഫയലിൽ നിന്ന് കമ്പ്യൂട്ടർ മെമ്മറിയിലേക്ക് വിവരങ്ങൾ. ഫയൽ ഇതിനകം ഡിസ്കിൽ നിലവിലില്ലെങ്കിൽ, പ്രോഗ്രാം ഒരു റൺടൈം പിശക് റിപ്പോർട്ട് ചെയ്യും.w - അത് എക്സിക്യൂട്ട് ചെയ്യുമെന്ന് സൂചിപ്പിക്കുന്നു റെക്കോർഡ്ഡിസ്കിലേക്ക് ഡാറ്റ അല്ലെങ്കിൽ പ്രിൻ്ററിലേക്ക് ഔട്ട്പുട്ട്. ഈ ഘട്ടത്തിൽ ഫയൽ നിലവിലില്ലെങ്കിൽ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം അത് സൃഷ്ടിക്കും. ഫയൽ ഇതിനകം ഡിസ്കിൽ നിലവിലുണ്ടെങ്കിൽ, അതിൽ എഴുതിയിരിക്കുന്ന എല്ലാ വിവരങ്ങളും നശിപ്പിക്കപ്പെടും.a - അത് സൂചിപ്പിക്കുന്നു. ചേർക്കുകഫയലിൻ്റെ അവസാനം വിവരങ്ങൾ. ഫയൽ നിലവിലില്ലെങ്കിൽ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം അത് സൃഷ്ടിക്കും. അത് നിലവിലുണ്ടെങ്കിൽ, നിലവിലെ ഉള്ളടക്കം നശിപ്പിക്കാതെ പുതിയ ഔട്ട്പുട്ട് ഫയലിൻ്റെ അവസാനം കൂട്ടിച്ചേർക്കും.

ഉദാഹരണത്തിന്, സിഡി ശേഖരങ്ങളുടെ ഒരു കാറ്റലോഗ് സംഭരിക്കുന്നതിന് CD.DAT എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾ ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കും:

FILE *cdfile;cdfile = fopen("CD.DAT", "w");

നിങ്ങളുടെ പ്രോഗ്രാമിന് ഒരു ഫയലിൽ എഴുതുന്നതിനുപകരം അതിൽ നിന്ന് വായിക്കണമെങ്കിൽ, ഇനിപ്പറയുന്ന നൊട്ടേഷൻ ഉപയോഗിക്കുക:

FILE *cdfile;cdfile = fopen("CD.DAT", "r");

ഫയലിൻ്റെ പേരും ആക്സസ് മോഡ് പ്രതീകവും ഇരട്ട ഉദ്ധരണികളിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട് എന്നത് ശ്രദ്ധിക്കുക. കാരണം അവ fopen() ലേക്ക് സ്ട്രിംഗുകളായി കൈമാറുന്നു. ഫയലിൻ്റെ പേര് കീബോർഡിൽ നിന്ന് ഒരു സ്ട്രിംഗ് വേരിയബിളിൻ്റെ മൂല്യമായി നൽകാം, തുടർന്ന് ആ വേരിയബിളിൻ്റെ പേര് ഉദ്ധരണികളില്ലാതെ ഒരു ആർഗ്യുമെൻ്റായി ഉപയോഗിക്കാം.

നിങ്ങളുടെ ശേഖരത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഒരു പ്രിൻ്ററിൽ പ്രിൻ്റ് ചെയ്യണമെങ്കിൽ, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങളുടെ ക്രമം ഉപയോഗിക്കുക:

FILE *cdfile;cdfile = fopen("PRN", "w");

പ്രിൻ്ററിലേക്കുള്ള വിവര ഔട്ട്പുട്ട് "w" ആക്സസ് മോഡിൽ മാത്രമേ സാധ്യമാകൂ എന്നത് ശ്രദ്ധിക്കുക.

C/C++ ഫയലുകളിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു

ഒരു പ്രത്യേക പോയിൻ്റർ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിലവിലുള്ള റീഡ് ആൻഡ് റൈറ്റ് സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ സി സംഭരിക്കുന്നു.

ഒരു ഫയലിൽ നിന്ന് വിവരങ്ങൾ വായിക്കുമ്പോൾ, ഡിസ്കിൽ നിന്ന് വായിക്കേണ്ട അടുത്ത ഡാറ്റ പോയിൻ്റർ വ്യക്തമാക്കുന്നു. "r" ആക്സസ് മോഡ് ഉപയോഗിച്ച് ആദ്യമായി ഒരു ഫയൽ തുറക്കുമ്പോൾ, ഫയലിൻ്റെ ആദ്യ പ്രതീകത്തിൽ പോയിൻ്റർ സ്ഥാപിക്കുന്നു. ഒരു റീഡ് ഓപ്പറേഷൻ നടത്തുമ്പോൾ, പോയിൻ്റർ വായിക്കേണ്ട അടുത്ത ഡാറ്റയിലേക്ക് നീങ്ങുന്നു. ചലന ഘട്ടത്തിൻ്റെ വലുപ്പം ഒരു സമയം വായിക്കുന്ന വിവരങ്ങളുടെ അളവിനെ ആശ്രയിച്ചിരിക്കുന്നു (ചിത്രം 4). ഒരു സമയം ഒരു പ്രതീകം മാത്രം വായിച്ചാൽ, പോയിൻ്റർ അടുത്ത പ്രതീകത്തിലേക്ക് നീങ്ങും; ഒരു ഘടന മുഴുവൻ വായിച്ചാൽ, പോയിൻ്റർ അടുത്ത ഘടനയിലേക്ക് നീങ്ങും. ഫയലിൽ നിന്ന് എല്ലാ വിവരങ്ങളും വായിച്ചുകഴിഞ്ഞാൽ, പോയിൻ്റർ ഒരു പ്രത്യേക കോഡിലേക്ക് പോകുന്നു ഫയലിൻ്റെ അവസാന പ്രതീകംഫയലിൻ്റെ അവസാന പ്രതീകത്തിൻ്റെ സാന്നിധ്യം യഥാർത്ഥത്തിൽ ആവശ്യമില്ല. ഫയലിൻ്റെ അവസാനത്തിലെത്തിയ ശേഷം വായന തുടരാൻ ശ്രമിക്കുന്നത് ഒരു റൺടൈം പിശകിന് കാരണമാകും.

ആക്സസ് മോഡ് "w" ഉപയോഗിച്ച് ഒരു ഫയൽ തുറക്കുകയാണെങ്കിൽ, ഫയലിൻ്റെ തുടക്കത്തിൽ പോയിൻ്ററും സ്ഥാപിച്ചിരിക്കുന്നു, അങ്ങനെ ആദ്യം നൽകിയ ഡാറ്റ ഫയലിൻ്റെ തുടക്കത്തിൽ സ്ഥാപിക്കും. ഒരു ഫയൽ അടയ്‌ക്കുമ്പോൾ, നൽകിയ ഡാറ്റ അറേയ്‌ക്ക് ശേഷം ഫയലിൻ്റെ അവസാന പ്രതീകം ചേർക്കും. "w" ആക്സസ് മോഡ് ഉപയോഗിച്ച് തുറക്കുന്ന സമയത്ത് ഫയൽ നിലവിലുണ്ടെങ്കിൽ, അതിൽ അടങ്ങിയിരിക്കുന്ന എല്ലാ ഡാറ്റയും തിരുത്തിയെഴുതുകയും റെക്കോർഡിംഗ് നടപടിക്രമം ഉപയോഗിച്ച് നൽകിയ പുതിയ വിവരങ്ങൾ "മുകളിൽ" എഴുതുകയും ചെയ്യും. നശിപ്പിക്കപ്പെടാനിടയില്ലാത്ത ഏതൊരു ഡാറ്റയും പുതിയ എൻഡ്-ഓഫ്-ഫയൽ പ്രതീകത്തിന് ശേഷം സ്ഥാപിക്കുന്നു, അതിനാൽ അടുത്ത തവണ ഫയലിൽ നിന്ന് ഡാറ്റ വായിക്കുമ്പോൾ അത് ആക്‌സസ് ചെയ്യാൻ കഴിയില്ല. അതിനാൽ, "w" ആക്സസ് മോഡ് ഉപയോഗിച്ച് നിലവിലുള്ള ഫയലിലേക്ക് ഡാറ്റ എഴുതാനുള്ള ഏതൊരു ശ്രമവും അതിൽ സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങളുടെ നാശത്തിന് കാരണമാകും. ഡാറ്റയൊന്നും എഴുതാതെ ഫയൽ തുറന്ന് അടച്ചാലും ഇത് സംഭവിക്കും.

ആക്സസ് മോഡ് "a" ഉപയോഗിച്ച് ഒരു ഫയൽ തുറക്കുകയാണെങ്കിൽ, പോയിൻ്റർ ഫയലിൻ്റെ അവസാന പ്രതീകത്തിൽ സ്ഥാപിക്കും. ഒരു ഫയലിലേക്ക് എഴുതിയ പുതിയ ഡാറ്റ നിലവിലുള്ള ഡാറ്റയ്ക്ക് ശേഷം സ്ഥാപിക്കുന്നു, തുടർന്ന് ഫയലിൻ്റെ അവസാന പ്രതീകം ചേർക്കുന്നു.

ഒരു ഫയൽ എങ്ങനെ അടയ്ക്കാം

ഒരു ഫയലിലേക്ക് എഴുതുകയോ അതിൽ നിന്ന് വായിക്കുകയോ ചെയ്ത ശേഷം, നിങ്ങൾ അത് അടയ്ക്കണം, അതായത് ഫയലും പ്രോഗ്രാമും തമ്മിലുള്ള ബന്ധം തകർക്കുക. നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്

Fclose(file_pointer);

ഫയൽ അടയ്ക്കുന്നതിലൂടെ, ബഫറിലെ എല്ലാ വിവരങ്ങളും യഥാർത്ഥത്തിൽ ഫയലിൽ എഴുതിയിട്ടുണ്ടെന്ന് ഞങ്ങൾക്ക് ഒരു ഗ്യാരണ്ടി ലഭിക്കും. ഫയൽ അടയ്‌ക്കുന്നതിന് മുമ്പ് പ്രോഗ്രാം എക്‌സിക്യൂഷൻ അവസാനിക്കുകയാണെങ്കിൽ, അത് ഡിസ്‌കിലേക്ക് മാറ്റാത്ത വിവരങ്ങളുടെ ചില ഭാഗം ബഫറിൽ നിലനിൽക്കും, അതിൻ്റെ ഫലമായി അത് നഷ്‌ടപ്പെടും. കൂടാതെ, ഫയലിൻ്റെ അവസാന പ്രതീകം ശരിയായി എഴുതപ്പെടില്ല, കൂടാതെ പ്രോഗ്രാമിന് അടുത്ത തവണ ഫയൽ ആക്സസ് ചെയ്യാൻ കഴിയില്ല.

ഒരു ഫയൽ ക്ലോസ് ചെയ്യുന്നത് പോയിൻ്ററിനെ സ്വതന്ത്രമാക്കുന്നു, അതിനുശേഷം അത് മറ്റൊരു ഫയലിനൊപ്പം ഉപയോഗിക്കാനും അല്ലെങ്കിൽ അതേ ഫയലിൽ മറ്റ് പ്രവർത്തനങ്ങൾ നടത്താനും കഴിയും. ഉദാഹരണമായി, നിങ്ങൾക്ക് ഒരു ഫയൽ സൃഷ്‌ടിക്കാനും അതിൽ ഡാറ്റ എഴുതാനും തുടർന്ന് വിവരങ്ങൾ ശരിയായി എഴുതിയിട്ടുണ്ടോയെന്ന് പരിശോധിക്കാനും ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഇത് ചെയ്യുന്നതിന്, പ്രോഗ്രാമിന് ലിസ്റ്റിംഗ് 1 ൽ കാണിച്ചിരിക്കുന്ന ഘടന ഉപയോഗിക്കാം.

ലിസ്റ്റിംഗ് 1. രണ്ട് പ്രവർത്തനങ്ങളിൽ ഒരു ഫയൽ പോയിൻ്റർ ഉപയോഗിക്കുന്നു.

FILE *cdfile;if((cdfile = fopen("CD.DAT", "w")) == NULL) ( ഇടുന്നു("ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല"); എക്സിറ്റ്(); )/* ഫയലിലേക്ക് എഴുതുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ ഇവിടെ പോകണം */fclose(cdfile);if((cdfile = fopen("CD.DAT", "r")) == NULL) ( ഇടുന്നു("ഫയൽ തുറക്കാൻ കഴിയില്ല"); എക്സിറ്റ്(); )/* ഈ സമയത്ത് നിങ്ങൾ ഫയലിൽ നിന്നുള്ള നിർദ്ദേശങ്ങൾ വായിക്കണം */fclose(cdfile);

ഇവിടെ ഫയൽ ആദ്യം "w" ആക്സസ് മോഡ് ഉപയോഗിച്ച് തുറക്കുന്നു, തുടർന്ന് ഡാറ്റ അതിൽ എഴുതുന്നു. രണ്ടാമത്തെ തവണ, "r" ആക്സസ് മോഡ് ഉപയോഗിച്ച് ഫയൽ തുറക്കുന്നു, ഇത് ഡാറ്റ വായിക്കാനും സ്ക്രീനിൽ പ്രദർശിപ്പിക്കാനും അനുവദിക്കുന്നു.

ഫംഗ്ഷൻ ഉപയോഗിച്ച് ബഫർ മായ്‌ക്കുന്നതിലൂടെ എല്ലാ ഡാറ്റയും ഒരു ഫയലിലേക്ക് എഴുതിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ ചില കംപൈലറുകൾ നിങ്ങളെ അനുവദിക്കുന്നു

ഫയൽ അടയ്ക്കാതെ തന്നെ ബഫർ മായ്‌ക്കാനും അതിലെ എല്ലാ ഡാറ്റയും ഡിസ്കിലേക്ക് എഴുതാനോ പ്രിൻ്ററിലേക്ക് അയയ്ക്കാനോ ഈ ഫംഗ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു.

ഇൻപുട്ട്, ഔട്ട്പുട്ട് പ്രവർത്തനങ്ങൾ

ഉപയോഗിച്ച ഫംഗ്‌ഷനെ ആശ്രയിച്ച് ഒരു ഫയലിലേക്കും പുറത്തേക്കും ഡാറ്റ കൈമാറാൻ നിരവധി മാർഗങ്ങളുണ്ട്:

ഒരു ഫയലിലേക്ക് ഡാറ്റയുടെ പ്രതീകം-ബൈ-കഥാപാത്രം എഴുതുക അല്ലെങ്കിൽ putc() അല്ലെങ്കിൽ fputc() ഫംഗ്ഷൻ ഉപയോഗിച്ച് പ്രിൻ്ററിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യുക;

getc() അല്ലെങ്കിൽ fgetc() ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്നുള്ള ഡാറ്റയുടെ ക്യാരക്‌ടർ-ബൈ-ക്യാരാക്റ്റർ റീഡിംഗ്;

ഒരു ഫയലിലേക്ക് വരി വരിയായി ഡാറ്റ എഴുതുക അല്ലെങ്കിൽ fputs() ഫംഗ്ഷൻ ഉപയോഗിച്ച് പ്രിൻ്ററിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യുക;

fgets() ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്നുള്ള ഡാറ്റയുടെ ലൈൻ-ബൈ-ലൈൻ റീഡിംഗ്;

· fprintf() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഡിസ്കിലേക്കോ പ്രിൻ്ററിലേക്കോ പ്രതീകങ്ങൾ, സ്ട്രിംഗുകൾ അല്ലെങ്കിൽ നമ്പറുകളുടെ ഫോർമാറ്റ് ചെയ്ത ഔട്ട്പുട്ട്;

fscanf() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്നുള്ള പ്രതീകങ്ങൾ, സ്ട്രിംഗുകൾ അല്ലെങ്കിൽ നമ്പറുകളുടെ ഫോർമാറ്റ് ചെയ്ത ഇൻപുട്ട്;

fwrite() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു മുഴുവൻ ഘടനയും എഴുതുക;

ഫ്രെഡ്() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു മുഴുവൻ ഘടനയും വായിക്കുന്നു.

ചിഹ്നങ്ങളുമായി പ്രവർത്തിക്കുന്നു

ഫയൽ ഓപ്പറേഷനുകളുടെ ഏറ്റവും അടിസ്ഥാന രൂപമാണ് പ്രതീകം അനുസരിച്ചുള്ള ഡാറ്റ കൈമാറ്റം. പ്രായോഗികമായി വിവരങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള പരക്കെ ഉപയോഗിക്കുന്ന രീതികളിൽ ഒന്നല്ലെങ്കിലും, ഫയലുകളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള അടിസ്ഥാന തത്വങ്ങൾ ഇത് നന്നായി ചിത്രീകരിക്കുന്നു. ചുവടെയുള്ള പ്രോഗ്രാം പ്രതീകം അനുസരിച്ച് ഫയലിലേക്ക് ഡാറ്റ എഴുതുകയും ഒരു കീ അമർത്തുന്നത് വരെ തുടരുകയും ചെയ്യുന്നു. നൽകുക:

/*fputc.c*/#include main() ( FILE *fp; char letter; if((fp = fopen("MYFILE","w"))==NULL) ( puts("ഫയൽ തുറക്കാൻ കഴിയില്ല") പുറത്തുകടക്കുക();

ആക്സസ് മോഡ് "w" ഉപയോഗിച്ച് ഫയൽ തുറക്കുന്നു. പ്രോഗ്രാം പ്രവർത്തിക്കുമ്പോൾ MYFILE എന്ന് പേരുള്ള ഒരു ഫയൽ നിലവിലില്ലെങ്കിൽ, അത് സൃഷ്ടിക്കപ്പെടും. do loop അക്ഷരങ്ങളുടെ ഒരു ക്രമം ഇൻപുട്ട് ചെയ്യുന്നതിന് getchar() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു, അത് putc() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിലേക്ക് എഴുതുന്നു. putc() എഴുതുന്നതിനുള്ള വാക്യഘടന ഇതാണ്:

Putc(char_variable, file_pointer);

ഇതേ ആർഗ്യുമെൻ്റുകൾക്കൊപ്പം fputc() ഫംഗ്‌ഷനും ഉപയോഗിക്കാം.

ഒരു കീ അമർത്തുന്നത് വരെ ലൂപ്പ് പ്രവർത്തിക്കുന്നു നൽകുക, അത് ഒരു ക്യാരേജ് റിട്ടേൺ (\r) കോഡ് നൽകുന്നു, അത് ഫയൽ അടയ്ക്കുന്നു.

സ്ട്രിംഗുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു

വ്യക്തിഗത പ്രതീകങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനുപകരം, നിങ്ങൾക്ക് ഒരു ഫയലിൽ നിന്നുള്ള മുഴുവൻ വരികളും വായിക്കാനും എഴുതാനും കഴിയും. fputs(), fgets() എന്നീ ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ചാണ് വരി-ബൈ-വരി എഴുത്തും വായനയും ചെയ്യുന്നത്.

fputs() ഫംഗ്‌ഷന് ഇനിപ്പറയുന്ന വാക്യഘടനയുണ്ട്:

Fputs(string_variable, file_pointer);

ഈ ഫംഗ്‌ഷൻ ഒരു ഫയലിലേക്ക് വരി വരിയായി ഡാറ്റ എഴുതുന്നു അല്ലെങ്കിൽ പ്രിൻ്ററിലേക്ക് ഔട്ട്‌പുട്ട് ചെയ്യുന്നു, പക്ഷേ ഒരു "ന്യൂലൈൻ" കോഡ് ചേർക്കുന്നില്ല. ഓരോ വരിയും ഒരു പ്രത്യേക വരിയായി ഡിസ്കിലേക്ക് എഴുതുന്നതിന് (അല്ലെങ്കിൽ ഒരു പ്രിൻ്ററിൽ അച്ചടിക്കാൻ) നിങ്ങൾ "പുതിയ ലൈൻ" കോഡ് സ്വമേധയാ നൽകണം. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന പ്രോഗ്രാം ഒരു നെയിംസ് ഫയൽ സൃഷ്ടിക്കുന്നു:

/*fputc.c*/#include main() ( FILE *fp; char flag; char name; if((fp = fopen("MYFILE","w"))==NULL) ( ഇടുന്നു("തുറക്കാനായില്ല ഫയൽ "); എക്സിറ്റ് (); ) ഫ്ലാഗ് = "y"; സമയത്ത്(പതാക != "n") ( ഇടുന്നു("ഒരു പേര് നൽകുക"); ലഭിക്കുന്നു(പേര്); fputs(പേര്, fp); fputs("\ n" ,fp); printf("മറ്റൊരു പേര് നൽകാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?"); ഫ്ലാഗ്=ഗെറ്റ്ചാർ(); പുട്ട്ചാർ("\n"); ) fclose(fp); )

പ്രോംപ്റ്റിൽ n നൽകുന്നതുവരെ while ലൂപ്പ് തുടരുന്നു. ഈ ലൂപ്പിൽ, gets() ഫംഗ്ഷൻ ഉപയോഗിച്ച് കീബോർഡിൽ നിന്ന് പേര് നൽകി, അതിനുശേഷം പേര് fputs() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഡിസ്കിലേക്ക് എഴുതുന്നു. അടുത്തതായി, "പുതിയ ലൈൻ" കോഡ് ഫയലിലേക്ക് എഴുതിയിരിക്കുന്നു, അവസാനം പ്രോഗ്രാം ഉപയോക്താവിനോട് പേരുകൾ നൽകുന്നത് തുടരണോ എന്ന് ചോദിക്കുന്നു.

നിങ്ങളുടെ കംപൈലറിന് strlen() ഫംഗ്‌ഷൻ ഉപയോഗിക്കാൻ കഴിയുമെങ്കിൽ, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇൻപുട്ട് നടപടിക്രമം കുറച്ച് ലളിതമാക്കാം:

Printf("ദയവായി ഒരു പേര് നൽകുക: ");gets(name);while(strlen(name) > 0) ( fputs(name, fp); fputs("\n", fp); printf("ദയവായി ഒരു പേര് നൽകുക : "); ലഭിക്കുന്നു(പേര്);)

നിങ്ങൾ കീബോർഡിൽ ടൈപ്പുചെയ്യുന്ന പ്രതീകങ്ങൾ സ്‌ട്രിംഗ് വേരിയബിൾ നാമത്തിലേക്ക് അസൈൻ ചെയ്‌തിരിക്കുന്നു, തുടർന്ന് സ്‌ട്രിംഗിൻ്റെ നീളം 0 ആണോ എന്ന് പരിശോധിക്കും. ആവശ്യപ്പെടുമ്പോൾ ഉടൻ തന്നെ എൻ്റർ അമർത്തുകയാണെങ്കിൽ, സ്‌ട്രിങ്ങിന് പൂജ്യത്തിൻ്റെ നീളം ഉണ്ടായിരിക്കുകയും ലൂപ്പ് എക്‌സിക്യൂട്ട് ചെയ്യുന്നത് നിർത്തുകയും ചെയ്യും. . അമർത്തുന്നതിന് മുമ്പ് എങ്കിൽ നൽകുകകുറഞ്ഞത് ഒരു പ്രതീകമെങ്കിലും നൽകുക, വരിയും "പുതിയ ലൈൻ" കോഡും ഡിസ്കിൽ എഴുതപ്പെടും.

സ്ട്രിംഗ് ഇൻപുട്ട് അൽഗോരിതം കൂടുതൽ ലളിതമാക്കാൻ ചില കംപൈലറുകൾ നിങ്ങളെ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, ഇതുപോലെ:

Printf("ദയവായി ഒരു പേര് നൽകുക: ");while(strlen(gets(name)) > 0) ( fputs(name, fp); fputs("\n", fp); printf("ദയവായി ഒരു പേര് നൽകുക: " );)

ലൈൻ ഇൻപുട്ട് ചെയ്യുന്നത് while കണ്ടീഷനിലാണ്.

ഒരു പ്രിൻ്ററിലേക്ക് ഒരു സ്ട്രിംഗ് പ്രിൻ്റ് ചെയ്യുന്നതിന്, അത് ഡിസ്കിലേക്ക് എഴുതുന്നതിന് പകരം "prn" എന്ന ഫയലിൻ്റെ പേര് ഉപയോഗിക്കുന്നു. ഒരു ഫയൽ തുറക്കാൻ, നിങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്:

എങ്കിൽ ((fp = fopen("prn", "w")) == NULL)

ഒരു പ്രിൻ്റ് പ്രോഗ്രാം സൃഷ്‌ടിക്കുന്നതിന്, വരിയുടെ നീളം 81 പ്രതീകങ്ങളായി സജ്ജീകരിച്ചിരിക്കുന്നു, അതിലൂടെ ഒരു കീ അമർത്തുന്നതിന് മുമ്പ് സ്‌ക്രീനിൻ്റെ മുഴുവൻ വീതിയിലും ലൈനിന് യോജിക്കാൻ കഴിയും. നൽകുക. ഒരു ലളിതമായ വേഡ് പ്രോസസർ എങ്ങനെ എഴുതാം എന്ന് കാണിക്കുന്ന ഒരു പ്രോഗ്രാമാണ് ലിസ്റ്റിംഗ് 2. ഒരു കീ അമർത്തുന്നത് വരെ ലൈൻ പ്രിൻ്ററിലേക്ക് അയയ്ക്കില്ല നൽകുക, ഇത് കീ ഉപയോഗിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു ബാക്ക്സ്പേസ്ശരിയായ ലൈൻ ഇൻപുട്ട് പിശകുകൾ.

ലിസ്റ്റിംഗ് 2. ഒരു പ്രിൻ്റിംഗ് ഉപകരണത്തിലേക്ക് ഒരു സ്ട്രിംഗ് ഔട്ട്പുട്ട് ചെയ്യുന്നതിനുള്ള പ്രോഗ്രാം.

/*wp.c*/#include "stdio.h"main() ( FILE *fp; char line; if ((fp = fopen("prn", "w")) == NULL) ( puts("Printer ജോലിക്ക് തയ്യാറല്ല"); എക്സിറ്റ്(); ) ഇടുന്നു("ടെക്സ്റ്റ് നൽകുക, ഓരോ വരിക്കും ശേഷം എൻ്റർ അമർത്തുക\n"); പുട്ട് ("ടൈപ്പിംഗ് നിർത്താൻ, ഒരു പുതിയ വരിയുടെ തുടക്കത്തിൽ എൻ്റർ അമർത്തുക\n"); ലഭിക്കുന്നു (ലൈൻ) ; while (strlen(line) > 0) ( fputs(ലൈൻ, fp); fputs("\n", fp); gets(line); ) fclose(fp); )

വായന വരികൾ

ഒരു ഫയലിൽ നിന്നുള്ള വരികൾ വായിക്കുന്നത് fgets() ഫംഗ്ഷൻ ഉപയോഗിച്ചാണ്. പ്രവർത്തന വാക്യഘടന:

Fgets(string_variable, length, file_pointer);

ദൈർഘ്യം ഒരു പ്രതീകം മൈനസ് ലെങ്ത് പാരാമീറ്ററിൽ വ്യക്തമാക്കിയ മൂല്യത്തേക്കാൾ ദൈർഘ്യം കവിയുന്നില്ലെങ്കിൽ, ഫംഗ്ഷൻ മുഴുവൻ സ്ട്രിംഗിലേക്കും പുതിയ ലൈൻ പ്രതീകത്തിലേക്ക് പ്രവേശിക്കുന്നു. നീളം പരാമീറ്റർ ഒരു പൂർണ്ണസംഖ്യ, അല്ലെങ്കിൽ ഒരു പൂർണ്ണസംഖ്യ സ്ഥിരാങ്കം അല്ലെങ്കിൽ വേരിയബിൾ ആണ്, ഒരു വരിയിൽ സാധ്യമായ പരമാവധി പ്രതീകങ്ങളുടെ എണ്ണം സൂചിപ്പിക്കുന്നു.

മുമ്പത്തെ ഉദാഹരണത്തിൽ സൃഷ്ടിച്ച ഫയലിൽ നിന്നുള്ള പേരുകൾ വായിക്കുന്ന ഒരു പ്രോഗ്രാം ചുവടെയുണ്ട്:

/*fgets.c"/#include "stdio.h"main() ( FILE *fp; char name; if ((fp = fopen("MYFILE", "r")) == NULL) ( puts("Inpossible ഫയൽ തുറക്കുക"); എക്സിറ്റ് (); ) while(fgets(name, 12, fp) != NULL) ( printf(name); ) fclose(fp); )

വായിക്കുന്ന പ്രതീകത്തിൻ്റെ മൂല്യം NULL ആകുന്നതുവരെ ഇൻപുട്ട് ഒരു സമയത്ത് ലൂപ്പിനുള്ളിൽ നടത്തുന്നു. പോയിൻ്റർ ഫയലിൻ്റെ അവസാനത്തിൽ എത്തിക്കഴിഞ്ഞാൽ, സ്ട്രിംഗ് വേരിയബിളിന് NULL മൂല്യം നൽകും. ഒരു ഫയൽ വരിയിൽ നിന്ന് വരിയായി വായിക്കുമ്പോൾ, ഫയലിൻ്റെ അവസാനം സൂചിപ്പിക്കാൻ NULL എപ്പോഴും ഉപയോഗിക്കുന്നു, പ്രതീകം അനുസരിച്ച് പ്രതീകം വായിക്കുമ്പോൾ EOF ഉപയോഗിക്കുന്നു.

നിങ്ങൾ ഏതെങ്കിലും ടെക്സ്റ്റ് ഫയൽ വായിക്കാൻ ഒരു പ്രോഗ്രാം എഴുതുകയാണെങ്കിൽ, ലെങ്ത് ആർഗ്യുമെൻ്റ് 80 എന്ന് വ്യക്തമാക്കുക.

ഫോർമാറ്റ് സ്‌പെസിഫയറുകൾ ഇല്ലാതെ ഒരു സ്ട്രിംഗ് വേരിയബിളിൻ്റെ ഉള്ളടക്കങ്ങൾ പ്രിൻ്റ് ചെയ്യുന്നതിന് ഈ ഉദാഹരണത്തിൽ printf() ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക. ഫയലിൽ നിന്ന് വായിക്കുന്ന ഓരോ വരിയിലും fputs("\n", fp) എന്നതിലെ ഫയലിലേക്ക് എഴുതിയ പുതിയ ലൈൻ കോഡ് ഉൾപ്പെടുന്നു; പ്രസ്താവന, കൂടാതെ printf() ഫംഗ്‌ഷൻ്റെ പാരാമീറ്ററുകളിൽ അധിക ന്യൂലൈൻ കോഡുകളൊന്നും ഉൾപ്പെടുത്തേണ്ടതില്ല.

ലിസ്റ്റിംഗ് 3. ഫോർമാറ്റ് ചെയ്ത ഔട്ട്പുട്ട്.

/*fprintf.c*/#include "stdio.h"main() ( FILE *fp; char name; int quantity; float cost; if ((fp = fopen("MYFILE", "w")) == NULL ) ( ഇടുന്നു("ഫയൽ തുറക്കാൻ കഴിയില്ല"); exit(); ) printf("ഉൽപ്പന്നത്തിൻ്റെ പേര് നൽകുക: "); gets(name); while (strlen(name) > 0) ( printf("ഉൽപ്പന്നം നൽകുക വില: ") ; scanf("%f", &cost); printf("ഉൽപ്പന്ന യൂണിറ്റുകളുടെ എണ്ണം നൽകുക: "); scanf("%d", &quantity); fprintf(fp, "%s %f %d\ n", പേര്, വില , അളവ്); printf ("ഉൽപ്പന്നത്തിൻ്റെ പേര് നൽകുക: "); ലഭിക്കുന്നു(പേര്); ) fclose(fp); )

ലൂപ്പിൻ്റെ അവസാന വരിയിൽ അടുത്ത പേര് നൽകിയിട്ടുണ്ടെന്ന് ദയവായി ശ്രദ്ധിക്കുക. ഒരു കീ അമർത്തി സൈക്കിൾ ആവർത്തിക്കുന്നത് നിർത്താൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു നൽകുക. ചില തുടക്കക്കാരായ പ്രോഗ്രാമർമാർ ഒരുപക്ഷേ ഇതുപോലെ ലൂപ്പ് എഴുതും:

ചെയ്യുക ( printf("ഉൽപ്പന്നത്തിൻ്റെ പേര് നൽകുക: "); gets(name); printf("വില നൽകുക: "); scanf("%f", &cost); printf("ഉൽപ്പന്ന യൂണിറ്റുകളുടെ എണ്ണം നൽകുക: ") ; scanf(" %d", &quantity); fprintf(fp, "%s %f %d\n", പേര്, ചെലവ്, അളവ്); )അതേസമയം (strlen(പേര്) > 0);

ലൂപ്പ് അവസാനിപ്പിക്കാൻ ഒരു കീ അമർത്തുന്നത് ഒഴികെ, ഈ പ്രോഗ്രാം നന്നായി പ്രവർത്തിക്കും നൽകുകമൂന്ന് തവണ: പേര് നൽകുമ്പോൾ ആദ്യ തവണയും ഉൽപ്പന്നത്തിൻ്റെ വിലയും അളവും നൽകാനുള്ള അഭ്യർത്ഥനയ്ക്ക് മറുപടിയായി രണ്ട് തവണ കൂടി.

while ലൂപ്പിനുള്ളിൽ, ഓരോ ഇനത്തിൻ്റെയും വിലയും അളവും സ്കാൻഫ്() ഫംഗ്ഷൻ ഉപയോഗിച്ച് നൽകുകയും നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് ഡിസ്കിലേക്ക് എഴുതുകയും ചെയ്യുന്നു.

Fprintf(fp, "%s %f %d\n", പേര്, വില, അളവ്);

ഓരോ വരിയുടെയും അവസാനം ഫയലിലേക്ക് പുതിയ ലൈൻ കോഡ് എഴുതിയിട്ടുണ്ടെന്ന് ശ്രദ്ധിക്കുക. MS-DOS ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ TYPE കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾ ഫയലിൻ്റെ ഉള്ളടക്കങ്ങൾ കാണുകയാണെങ്കിൽ, ഇൻവെൻ്ററി ലിസ്റ്റിൻ്റെയും സ്ക്രീനിലെയും ഓരോ വരിയും ഒരു പുതിയ വരിയിൽ ആരംഭിക്കും:

പുതിയ ലൈൻ കോഡ് ഡിസ്കിൽ എഴുതിയിരുന്നില്ലെങ്കിൽ, ടെക്സ്റ്റ് സ്ക്രീനിൽ ഒരു വരിയിൽ തുടർച്ചയായി പ്രിൻ്റ് ചെയ്യപ്പെടുകയും ഇതുപോലെ എന്തെങ്കിലും കാണപ്പെടുകയും ചെയ്യുമായിരുന്നു:

ഫ്ലോപ്പി ഡിസ്കുകൾ 1.120000 100ടേപ്പ് 7.340000 150കാട്രിഡ്ജ് 75.000000 3

ഒരു ഉൽപ്പന്നത്തിൻ്റെ യൂണിറ്റുകളുടെ എണ്ണവും അടുത്തതിൻ്റെ പേരും കാണിക്കുന്ന നമ്പറിന് ഇടയിൽ ഇടമില്ലെന്ന കാര്യം ശ്രദ്ധിക്കുക. ഈ റെക്കോർഡിംഗ് രീതി ഉപയോഗിച്ച് പോലും, നിങ്ങൾക്ക് ഈ ഫയലിൽ നിന്ന് എളുപ്പത്തിൽ വായിക്കാൻ കഴിയും, കാരണം കംപൈലറിന് ഒരു സംഖ്യാ മൂല്യത്തിൻ്റെ അവസാനവും ഒരു വരിയുടെ തുടക്കവും തമ്മിൽ വേർതിരിച്ചറിയാൻ കഴിയും, എന്നാൽ ഓരോ ഉൽപ്പന്ന നാമത്തിൻ്റെയും അവസാന മൂല്യം ഒരു വരി ആണെങ്കിൽ എന്ത് സംഭവിക്കും നിർമ്മാതാവിൻ്റെ പേര്? ഫയലിലെ വിവരങ്ങൾ ഇതുപോലെ കാണപ്പെടും:

ഫ്ലോപ്പി ഡിസ്കുകൾ 1.120000 മെമ്മറിക്സ് ടേപ്പ് 7.340000 Okaydata കാട്രിഡ്ജ് 75.000000 HP

തുടർന്ന്, ഒരു ഫയലിൽ നിന്ന് ഡാറ്റ വായിക്കുമ്പോൾ, പ്രോഗ്രാം അടുത്ത ഉൽപ്പന്നത്തെക്കുറിച്ചുള്ള ഡാറ്റയുടെ ആരംഭം മുമ്പത്തെ വിവരണത്തിൻ്റെ അവസാനത്തോട് കൂട്ടിച്ചേർക്കും. ഉദാഹരണത്തിന്, ആദ്യ ഉൽപ്പന്ന നാമത്തിലെ ഡാറ്റ ഇതുപോലെ കാണപ്പെടും:

ഫ്ലോപ്പി ഡിസ്കുകൾ 1.120000 മെമ്മറിക്സ് ടേപ്പ്

ഡിസ്കിലേക്ക് എഴുതിയ എല്ലാ ഡാറ്റയും, int അല്ലെങ്കിൽ float മൂല്യങ്ങൾ പോലും, ടെക്സ്റ്റ് പ്രതീകങ്ങളായി സൂക്ഷിക്കുന്നു. ഞങ്ങൾ ഇതിനെക്കുറിച്ച് കുറച്ച് കഴിഞ്ഞ് സംസാരിക്കും.

ലിസ്റ്റിംഗ് 4. ഒരു ഫയലിൽ നിന്ന് സമ്പന്നമായ വാചകം വായിക്കുന്നു.

/*fscanf.c*/#include "stdio.h"main() ( FILE *fp; char name; int quantity; float cost; if ((fp = fopen("MYFILE", "r")) == NULL ) ( ഇടുന്നു("ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല"); എക്സിറ്റ്(); ) അതേസമയം (fscanf(fp, "%s%f%d", പേര്, & ചിലവ്, & അളവ്) != EOF) ( printf("ഉൽപ്പന്ന നാമം: % s \n", പേര്); printf("വില: %.2f\n", ചിലവ്); printf("യൂണിറ്റുകളുടെ എണ്ണം: %d\n", അളവ്); ) fclose(fp); )

ഘടനകളുമായി പ്രവർത്തിക്കുന്നു

സ്കാൻഫ്() യുടെ പരിമിതികൾ മറികടക്കാനുള്ള ഒരു മാർഗ്ഗം, ഡാറ്റ ഘടകങ്ങളെ ഒരു ഘടനയിലേക്ക് സംയോജിപ്പിക്കുക എന്നതാണ്, അതുവഴി മുഴുവൻ ഘടനകളും പിന്നീട് ഇൻപുട്ടും ഔട്ട്പുട്ടും ആകും. fwrite() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഘടന ഡിസ്കിലേക്ക് എഴുതുകയും fread() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്ന് വായിക്കുകയും ചെയ്യാം.

fwrite() ഫംഗ്‌ഷൻ വാക്യഘടന ഇതാണ്:

Fwrite(&structure_variable, structure_size, number_of_structures, file_pointer);

ഒറ്റനോട്ടത്തിൽ, ഈ നിർദ്ദേശം അൽപ്പം ഭയപ്പെടുത്തുന്നതായി തോന്നുന്നു, പക്ഷേ വാസ്തവത്തിൽ ഇത് ഉപയോഗിക്കാൻ വളരെ എളുപ്പമാണ്:

· &structure_variable - ഞങ്ങൾ ഡിസ്കിലേക്ക് എഴുതാൻ ആഗ്രഹിക്കുന്ന വിവരങ്ങളുടെ ആരംഭ വിലാസം കംപൈലറോട് പറയുന്ന വിലാസം സ്വീകരിക്കുന്ന ഓപ്പറേറ്ററുള്ള ഒരു ഘടന വേരിയബിളിൻ്റെ പേര്;

· ഘടന_വലിപ്പം എന്നത് ഘടനയിലെ പ്രതീകങ്ങളുടെ എണ്ണമാണ്; നിങ്ങൾ ഇത് സ്വയം കണക്കാക്കേണ്ടതില്ല; നിങ്ങൾക്ക് ഇതുപോലെ എഴുതിയ ലൈബ്രറി ഫംഗ്ഷൻ sizeof() ഉപയോഗിക്കാം:

വലിപ്പം(ഘടന_വേരിയബിൾ)

ഇത് നിർദ്ദിഷ്ട ഘടനയുടെ വലുപ്പം യാന്ത്രികമായി നിർണ്ണയിക്കും;

· number_of_structures എന്നത് നമ്മൾ ഒരു സമയം എഴുതാൻ ആഗ്രഹിക്കുന്ന ഘടനകളുടെ എണ്ണം നിർണ്ണയിക്കുന്ന ഒരു പൂർണ്ണസംഖ്യയാണ്; നിങ്ങൾ ഘടനകളുടെ ഒരു നിര സൃഷ്‌ടിക്കുകയും ഒരു വലിയ ബ്ലോക്കിൽ എഴുതുകയും ചെയ്യുന്നില്ലെങ്കിൽ, നമ്പർ 1 എല്ലായ്പ്പോഴും ഇവിടെ വ്യക്തമാക്കിയിരിക്കണം;

· file_pointer - ഫയലിലേക്കുള്ള പോയിൻ്റർ.

ഒരു ഉദാഹരണമായി, നിങ്ങളുടെ സിഡി ശേഖരത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഡിസ്കിലേക്ക് ബേൺ ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഞങ്ങൾ നേരത്തെ വിശദമായി ചർച്ച ചെയ്ത സിഡി ഘടന ഉപയോഗിച്ച്, ഞങ്ങൾ നിർദ്ദേശം എഴുതുന്നു: fwrite(&disc, sizeof(disc), 1, fp);

ഈ നിർദ്ദേശത്തിൻ്റെ നിർവ്വഹണം ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നു. 5.

ഒരു സിഡി ഘടനയിലേക്ക് ഡാറ്റ നൽകുകയും അത് ഡിസ്കിലേക്ക് സംരക്ഷിക്കുകയും ചെയ്യുന്ന പ്രോഗ്രാം ലിസ്റ്റിംഗ് 12.5-ൽ കാണിച്ചിരിക്കുന്നു. സൃഷ്ടിക്കേണ്ട ഫയലിൻ്റെ പേര് നൽകാൻ gets() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ഫയലിൻ്റെ പേര് സംഭരിക്കുന്ന വേരിയബിൾ ഫയൽ തുറക്കാൻ fopen() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.

ഓരോ സിഡി ഘടനയെയും കുറിച്ചുള്ള വിവരങ്ങൾ കീബോർഡിൽ നിന്ന് നൽകിയിട്ടുണ്ട്, അതിനുശേഷം മുഴുവൻ ഘടനയും ഡിസ്കിലേക്ക് എഴുതപ്പെടും.



അരി. 5. സിഡി സ്ട്രക്ചർ റൈറ്റ് ഇൻസ്ട്രക്ഷനിലെ fwrite() ഫംഗ്ഷൻ്റെ വാക്യഘടന

ലിസ്റ്റിംഗ് 5. സിഡി ഘടന രേഖപ്പെടുത്തുന്നു.

/*fwrite.c*/#include "stdio.h"main() ( FILE *fp; struct CD (char name; char description; char category; float cost; int number; ) disc; char filename; printf("Enter നിങ്ങൾ സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്ന ഫയലിൻ്റെ പേര്: "); ലഭിക്കുന്നു(ഫയലിൻ്റെ പേര്); എങ്കിൽ ((fp = fopen(ഫയലിൻ്റെ പേര്, "w")) == NULL) ( printf("%s\n ഫയൽ തുറക്കാൻ കഴിയില്ല", ഫയലിൻ്റെ പേര്); എക്സിറ്റ് (); ) പുട്ടുകൾ ("ഡിസ്ക് വിവരങ്ങൾ നൽകുക\n"); printf ("ഡിസ്ക് നാമം നൽകുക: "); gets(disc.name); while (strlen(disc.name) > 0) ( printf( "വിവരണം നൽകുക: "); gets(disc.description); printf("വർഗ്ഗം നൽകുക: "); gets(disc.category); printf("വില നൽകുക: "); scanf("%f", &disc.cost) ; printf ("സെൽ നമ്പർ നൽകുക: "); scanf("%d", &disc.number); fwrite(&disc, sizeof(disc), 1, fp); printf("പേര് നൽകുക: "); ലഭിക്കുന്നു(ഡിസ്ക്. പേര്) ;) fclose(fp);)

വായന ഘടനകൾ

ഫ്രെഡ് (&സ്ട്രക്ചർ_വേരിയബിൾ, സ്ട്രക്ചർ_സൈസ്, സംഖ്യ_ഓഫ്_സ്ട്രക്ചറുകൾ, ഫയൽ_പോയിൻ്റർ);

ഫംഗ്‌ഷൻ നാമം ഒഴികെ, ഈ നിർദ്ദേശം fwrite() ഫംഗ്‌ഷനു തുല്യമാണ്. ഒരു ഫയലിൽ നിന്ന് സിഡി ഘടന വായിക്കുന്ന പ്രോഗ്രാം ലിസ്‌റ്റിംഗ് 6-ൽ കാണിച്ചിരിക്കുന്നു. ഡാറ്റ വായിക്കാൻ, അൽപ്പം ലൂപ്പ് ഉപയോഗിക്കുക:

അതേസമയം (fread(&disc, sizeof(disc), 1, fp) == 1)

fread() ഫംഗ്ഷൻ വിജയകരമായി വായിച്ച ഘടനകളുടെ എണ്ണത്തിന് അനുയോജ്യമായ ഒരു മൂല്യം നൽകുന്നു. ഫംഗ്‌ഷൻ ആർഗ്യുമെൻ്റിൽ നമ്മൾ ഒരു സമയത്ത് ഒരു ഘടന വായിക്കണമെന്ന് വ്യക്തമാക്കിയതിനാൽ, ഫംഗ്‌ഷൻ മൂല്യം 1 നൽകുന്നു. ഡിസ്‌കിൽ നിന്നുള്ള സ്ട്രക്‌ചറുകളുടെ റീഡിംഗ് വിജയകരമാകുന്നിടത്തോളം കാലം ലൂപ്പ് എക്‌സിക്യൂട്ട് ചെയ്യപ്പെടും. ഘടന വായിക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, ഉദാഹരണത്തിന് ഫയലിൻ്റെ അവസാനം എത്തിയതിനാൽ, ഫംഗ്ഷൻ 0 നൽകുകയും ലൂപ്പ് അവസാനിക്കുകയും ചെയ്യുന്നു.

ലിസ്റ്റിംഗ് 6. ഡിസ്കിൽ നിന്ന് സിഡി ഘടന വായിക്കുന്നു.

/*fread.c*/#include "stdio.h"main() ( FILE *fp; struct CD (char name; char description; char category; float cost; int number; ) disc; char filename; printf("Enter നിങ്ങൾ തുറക്കാൻ ആഗ്രഹിക്കുന്ന ഫയലിൻ്റെ പേര്: "); gets(ഫയലിൻ്റെ പേര്); എങ്കിൽ ((fp = fopen(ഫയൽ നാമം, "r")) == NULL) ( printf("%s\n ഫയൽ തുറക്കാൻ കഴിയില്ല", ഫയലിൻ്റെ പേര് ); എക്സിറ്റ് (); ) സമയത്ത് (ഫ്രെഡ്(&ഡിസ്ക്, സൈസ്ഓഫ്(ഡിസ്ക്), 1, എഫ്പി) == 1) (പുട്ട്(ഡിസ്ക്.നാമം); പുട്ട്ചാർ("\n"); പുട്ട്സ്(ഡിസ്ക്.വിവരണം); പുട്ട്ചാർ ("\ n"); പുട്ടുകൾ(disc.category); putchar("\n"); printf("%f", disc.cost); putchar("\n"); printf("%d", disc .നമ്പർ) ; ) fclose(fp); )

പട്ടികയിൽ 1 ഡാറ്റ നൽകുന്നതിനും പുറത്തുകടക്കുന്നതിനുമുള്ള വിവരിച്ച എല്ലാ രീതികളും ശേഖരിക്കുകയും ഡാറ്റ വായിക്കുകയോ എഴുതുകയോ ചെയ്യുന്നത് തുടരുന്നത് അസാധ്യമാണെങ്കിൽ ഓരോ ഫംഗ്ഷനും നൽകുന്ന മൂല്യങ്ങൾ കാണിക്കുന്നു.

പട്ടിക 1. ഒരു ഫയലിൽ നിന്നുള്ള ഇൻപുട്ടിനും ഔട്ട്പുട്ടിനുമുള്ള പ്രവർത്തനങ്ങൾ.

ഒരു ശ്രേണിയിലേക്ക് വായിക്കുന്നു

ഇതുവരെ കാണിച്ചിരിക്കുന്ന എല്ലാ ഉദാഹരണ പ്രോഗ്രാമുകളും ഒരു ഫയലിൽ നിന്നുള്ള ഡാറ്റ വായിക്കുകയും ഇൻപുട്ട് സ്ക്രീനിൽ പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു. എന്നിരുന്നാലും, നിങ്ങൾ ഡാറ്റ വേരിയബിളുകളായി വായിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് അവയിൽ എന്തെങ്കിലും പ്രവർത്തനങ്ങൾ നടത്താം, ഉദാഹരണത്തിന്, ഒരു അറേയിലേക്ക് എഴുതാൻ അവ ഉപയോഗിക്കുക.

ലിസ്റ്റിംഗ് 7 ഒരു പ്രോഗ്രാമിൻ്റെ വാചകം കാണിക്കുന്നു, അത് സിഡികളുടെ ഒരു ശേഖരത്തെക്കുറിച്ചുള്ള ഡാറ്റ അടങ്ങിയ ഒരു ഫയലിൽ നിന്നുള്ള വിവരങ്ങൾ സിഡി ഘടനകളുടെ ഒരു നിരയിലേക്ക് വായിക്കുന്നു (അവയിൽ 20-ൽ കൂടുതൽ ഇല്ലെന്ന് കരുതുക). ഒരു ഫയലിൽ നിന്ന് വായിക്കുന്ന ഓരോ ഘടനയും ഡിസ്ക് അറേയുടെ പ്രത്യേക ഘടകത്തിൽ സംഭരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ സൂചിക ഉപയോഗിക്കുന്നു. അടുത്ത ഘടന വായിച്ച് പ്രദർശിപ്പിച്ചതിന് ശേഷം, അടുത്ത ഡിസ്കിൻ്റെ വില ശേഖരണത്തിൻ്റെ മൊത്തം ചെലവ് പ്രതിഫലിപ്പിക്കുന്ന തുകയിലേക്ക് ചേർക്കുന്നു, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ നടപ്പിലാക്കുന്നതിലൂടെ സൂചികയും കൗണ്ടറും വർദ്ധിപ്പിക്കും:

ആകെ = ആകെ + disc.cost;index++;count++;

ശേഖരണത്തിൻ്റെ ആകെ ചെലവും സംഭവങ്ങളുടെ എണ്ണവും സംബന്ധിച്ച വിവരങ്ങളിൽ മാത്രം ഞങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, ഒരു അറേ ഉപയോഗിക്കാതെ തന്നെ ഡാറ്റ ഒരു ഘടന വേരിയബിളിലേക്ക് വായിക്കുകയും മൊത്തത്തിലുള്ള മൂല്യങ്ങൾ എണ്ണുകയും വേരിയബിളുകൾ എണ്ണുകയും ചെയ്യാം. എന്നിരുന്നാലും, ഡാറ്റ ഒരു അറേയിൽ വായിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് സ്‌ട്രക്‌ചറുകളിലേക്ക് അനിയന്ത്രിതമായി ആക്‌സസ് ചെയ്യാനും ഏത് വിവരവും പ്രിൻ്റ് ചെയ്യാനും കഴിയും.

നിങ്ങൾ യഥാർത്ഥത്തിൽ തുറക്കാൻ കഴിയുന്ന ഒരു ഫയൽ നാമം നൽകുന്നതുവരെ പ്രോഗ്രാം ഒരു ഫയൽ നാമത്തിനായുള്ള നിർദ്ദേശം ആവർത്തിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കുക.

ലിസ്റ്റിംഗ് 7. ഒരു ഘടനയെ ഒരു അറേയിലേക്ക് വായിക്കുന്നു.

/*rarray.c*/#include "stdio.h"main() ( FILE *fp; struct CD (char name; char description; char category; float cost; int number; ) disc; int index, count; float total ; എണ്ണം = 0; ആകെ = 0; ചാർ ഫയലിൻ്റെ പേര്; printf ("ഡാറ്റ ഫയലിൻ്റെ പേര് നൽകുക: "); ലഭിക്കുന്നത് (ഫയൽ നാമം); അതേസമയം ((fp = fopen(ഫയൽ നാമം, "r")) == NULL) ( printf(" ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല %s\n", ഫയൽനാമം); printf("ഡാറ്റ ഫയലിൻ്റെ പേര് നൽകുക: "); ഗെറ്റ്സ്(ഫയലിൻ്റെ പേര്); ) സൂചിക = 0; അതേസമയം (fread(&disc, sizeof(disc), 1, fp) = = 1) (puts(disc.name); putchar("\n"); puts(disc.description); putchar("\n"); puts(disc.category); putchar("\n"); printf ( "%f", disc.cost); putchar("\n"); printf("%d", disc.number); ആകെ = ആകെ + disc.cost; index++; count++; ) fclose(fp); printf ( "ശേഖരത്തിൻ്റെ ആകെ മൂല്യം %.2f\n" ആണ്, ആകെ); printf("ശേഖരത്തിൽ %.d ഡിസ്കുകൾ അടങ്ങിയിരിക്കുന്നു\n", എണ്ണം); )

ലിസ്റ്റിംഗ് 8. ഫയൽ ഉള്ളടക്കങ്ങൾ പകർത്തുന്നതിനുള്ള പ്രോഗ്രാം.

/*filecopy.c*/#include "stdio.h"main() ( FILE *fp1, *fp2; char infile, outfile; int letter; printf("വായിക്കാൻ ഫയലിൻ്റെ പേര് നൽകുക: "); gets(infile); if ((fp1 = fopen(infile, "r")) == NULL) ( printf("%s ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല", infile); exit(); ) printf("എഴുതാൻ ഫയലിൻ്റെ പേര് നൽകുക: ") ; ലഭിക്കുന്നു (ഔട്ട്‌ഫൈൽ); എങ്കിൽ ((fp2 = fopen(infile, "w")) == NULL) (printf("%s ഫയൽ തുറക്കാൻ കഴിയുന്നില്ല", outfile); fclose(fp1); exit(); ) ((അക്ഷരം = fgetc(fp1)) != EOF) (putchar(കത്ത്); fputc(അക്ഷരം, fp2); ) fclose(fp1); fclose(fp2); )

ആദ്യത്തെ ഫയൽ ആക്സസ് മോഡ് "r" ഉപയോഗിച്ച് തുറന്നതിനാൽ അതിൽ നിന്ന് ഡാറ്റ വായിക്കാനാകും. ഫയൽ തുറക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, പ്രോഗ്രാം അവസാനിക്കും. രണ്ടാമത്തെ ഫയൽ "w" ആക്സസ് മോഡ് ഉപയോഗിച്ച് തുറക്കുന്നു, ഇത് എഴുതാൻ നിങ്ങളെ അനുവദിക്കുന്നു


അരി. 6. fprintf() ഫംഗ്ഷൻ സംഖ്യാ മൂല്യങ്ങളെ ടെക്സ്റ്റ് പ്രതീകങ്ങളായി എഴുതുന്നു

അവൻ്റെ ഡാറ്റ. രണ്ടാമത്തെ ഫയൽ തുറക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, പ്രോഗ്രാം പുറത്തുകടക്കുന്നതിന് മുമ്പ് ആദ്യത്തെ ഫയൽ ആദ്യം അടച്ചിരിക്കും. ആദ്യത്തെ ഫയൽ, അത് വിജയകരമായി തുറന്നാൽ, പ്രോഗ്രാം പുറത്തുകടക്കുമ്പോൾ അത് കേടാകില്ലെന്ന് ഇത് ഞങ്ങൾക്ക് ഉറപ്പ് നൽകുന്നു.

fprintf() ഫംഗ്ഷൻ എല്ലാ ഡാറ്റയും ടെക്സ്റ്റായി എഴുതുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾ 34.23 എന്ന നമ്പർ ഡിസ്കിലേക്ക് എഴുതാൻ fprintf() ഉപയോഗിക്കുകയാണെങ്കിൽ, ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ അഞ്ച് പ്രതീകങ്ങൾ എഴുതപ്പെടും. 6. ഒരു ഫയലിൽ നിന്നുള്ള ഡാറ്റ വായിക്കാൻ fscanf() ഫംഗ്ഷൻ പിന്നീട് ഉപയോഗിക്കുകയാണെങ്കിൽ, പ്രതീകങ്ങൾ ഒരു സംഖ്യാ മൂല്യത്തിലേക്ക് പരിവർത്തനം ചെയ്യുകയും ഈ ഫോമിൽ ഒരു വേരിയബിളിലേക്ക് എഴുതുകയും ചെയ്യും.

fprintf() ഫംഗ്‌ഷൻ ഡാറ്റ ടെക്‌സ്‌റ്റായി എഴുതുന്നതിനാൽ, getc(), fgetc(), അല്ലെങ്കിൽ fgets() ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച് ഒരു ഫയലിൽ നിന്നുള്ള വായനയും ചെയ്യാം. എന്നിരുന്നാലും, ഈ ഫംഗ്‌ഷനുകൾ "പ്രിൻ്റ് ചെയ്യാവുന്ന" പ്രതീകങ്ങളുടെ രൂപത്തിൽ വിവരങ്ങൾ വായിക്കും. ഉദാഹരണത്തിന്, നിങ്ങൾ fgets() ഫംഗ്ഷൻ ഉപയോഗിക്കുകയാണെങ്കിൽ, അക്കങ്ങൾ ഒരു സ്ട്രിംഗിൻ്റെ ഭാഗമായ പ്രതീകങ്ങളായി വായിക്കപ്പെടും. fgets() അല്ലെങ്കിൽ fgetc() ഉപയോഗിച്ച് വായിച്ച ഡാറ്റ പ്രദർശിപ്പിക്കുകയോ അച്ചടിക്കുകയോ ചെയ്യുമ്പോൾ, വ്യക്തിഗത ഡാറ്റ ഇനങ്ങളിൽ നിങ്ങൾക്ക് ഗണിത പ്രവർത്തനങ്ങൾ നടത്താൻ കഴിയില്ല.

ബൈനറി ഫോർമാറ്റ്

ന്യൂമറിക് വേരിയബിളുകൾ ബൈനറി ഫോർമാറ്റിൽ സേവ് ചെയ്യാൻ fwrite() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ഈ രീതിയിൽ എഴുതിയ ഡാറ്റ ഡിസ്കിൽ മെമ്മറിയിൽ ഉള്ള അതേ സ്ഥലം എടുക്കും. TYPE കമാൻഡ് ഉപയോഗിച്ച് അത്തരമൊരു ഫയലിൻ്റെ ഉള്ളടക്കം നമ്മൾ കാണുകയാണെങ്കിൽ, സംഖ്യാ മൂല്യങ്ങളുടെ സ്ഥാനത്ത് അർത്ഥമില്ലാത്ത അക്ഷരങ്ങളും ഐക്കണുകളും കാണാം. ഫയലിൽ എഴുതിയ മൂല്യങ്ങൾക്ക് തുല്യമായ ASCII പ്രതീകങ്ങളാണ് ഇവ.

fwrite() ഉപയോഗിച്ച് എഴുതിയ ഒരു ഫയൽ വായിക്കാൻ, നിങ്ങൾ fread() ഫംഗ്ഷൻ ഉപയോഗിക്കണം. മുമ്പ് സംരക്ഷിച്ച ഡാറ്റയുമായി പൊരുത്തപ്പെടുന്ന ഘടനയുള്ള ഒരു ഘടനയിലേക്ക് ഡാറ്റ നൽകണം. ഘടനയ്ക്ക് വ്യത്യസ്തമായ പേരുണ്ടാകാം, ഘടനയിലെ അംഗങ്ങളുടെ പേരുകളും വ്യത്യാസപ്പെട്ടിരിക്കാം, എന്നാൽ രണ്ട് ഘടനകളിലെയും അംഗങ്ങളുടെ ക്രമം, തരങ്ങൾ, വലുപ്പങ്ങൾ എന്നിവ ഒന്നുതന്നെയായിരിക്കണം.

ഡാറ്റ പ്രിൻ്റ് ചെയ്യുക

ഒരു സാങ്കേതിക വീക്ഷണകോണിൽ നിന്ന്, ഏതെങ്കിലും ഔട്ട്പുട്ട് ഫംഗ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രിൻ്ററിലേക്ക് ഡാറ്റ ഔട്ട്പുട്ട് ചെയ്യാൻ കഴിയും: പ്രതീകം-കാരണം, വരി-ബൈ-ലൈൻ, ഫോർമാറ്റ് ചെയ്ത സ്ട്രിംഗുകൾ അല്ലെങ്കിൽ ഘടനകൾ. "prn" എന്ന ഫയലിൻ്റെ പേരും "w" എന്ന ആക്സസ് മോഡും വ്യക്തമാക്കുക എന്നതാണ് ആവശ്യമുള്ളത്.

എന്നിരുന്നാലും, fwrite() ഫംഗ്ഷൻ ഉപയോഗിച്ചുള്ള "ഘടനാപരമായ" പ്രിൻ്റിംഗ് പ്രായോഗികമായി ഉപയോഗിക്കുന്നില്ല, കാരണം സംഖ്യാ ഡാറ്റ ബൈനറി ഫോർമാറ്റിൽ നിഗൂഢ പ്രതീകങ്ങളായി അച്ചടിക്കും. പകരം, ലിസ്‌റ്റിംഗ് 9-ൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഘടനകൾ പ്രിൻ്റ് ചെയ്യാൻ fprintf() ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു. ഈ പ്രോഗ്രാം രണ്ട് ഫയലുകൾ തുറക്കുന്നു: ഡിസ്‌ക് ഫയൽ റീഡിനായി തുറന്നിരിക്കുന്നു, പ്രിൻ്റർ ഫയൽ ഔട്ട്‌പുട്ടിനായി തുറക്കുന്നു.

ലിസ്റ്റിംഗ് 9. ഒരു ഡിസ്ക് ഫയലിൻ്റെ ഉള്ളടക്കങ്ങൾ വായിക്കുകയും അച്ചടിക്കുകയും ചെയ്യുന്നു.

ഓരോ ഘടനയും fread() ഫംഗ്‌ഷൻ മുഖേന മൊത്തത്തിൽ നൽകപ്പെടുന്നു, അതിനുശേഷം ഘടനയിലെ വ്യക്തിഗത അംഗങ്ങൾ fprintf() ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് പ്രിൻ്റ് ചെയ്യുന്നു. fread() ഫംഗ്‌ഷന് സ്‌പെയ്‌സുകൾ ഉൾപ്പെടുന്ന സ്‌ട്രിംഗുകൾ വായിക്കാൻ കഴിയും, അതിനാൽ fscanf() ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നതാണ് നല്ലത്.

നിർദ്ദേശങ്ങൾ

Fprintf(ptr, "\n\n");

വ്യക്തിഗത സിഡി ഘടനകൾക്കിടയിൽ രണ്ട് ശൂന്യമായ വരികൾ ഔട്ട്പുട്ട് ചെയ്യുക.

പ്രോഗ്രാം ഡിസൈൻ

ഒരു ഡിസ്ക് ഫയലിൽ നിന്ന് എങ്ങനെ എഴുതാമെന്നും വായിക്കാമെന്നും അറിയുന്നത് സങ്കീർണ്ണമായ ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള സാധ്യത തുറക്കുന്നു. ഒരു ഡിസ്ക് ഫയലിൽ നിന്നുള്ള ഡാറ്റ എൻട്രി കാണിക്കുന്ന എല്ലാ പ്രോഗ്രാമുകളും മുഴുവൻ ഫയലും വായിക്കുന്നു. എന്നാൽ നിങ്ങൾ മറ്റേതെങ്കിലും രീതിയിൽ ഡാറ്റ കൈകാര്യം ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഒരു സാഹചര്യം നിങ്ങൾക്ക് ഊഹിക്കാവുന്നതാണ്.

ഉദാഹരണത്തിന്, ഒരു നിർദ്ദിഷ്ട എൻട്രിക്കായി നിങ്ങൾ ഒരു ഡിസ്ക് ഫയൽ സ്കാൻ ചെയ്യേണ്ടതുണ്ട്. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾ ആക്സസ് മോഡ് "r" ഉപയോഗിച്ച് ഫയൽ തുറക്കണം, തുടർന്ന് ഫയലിൽ ഏത് തരത്തിലുള്ള വിവരമാണ് എഴുതിയിരിക്കുന്നത് എന്നതിനെ ആശ്രയിച്ച് ഡാറ്റ, ഘടന അല്ലെങ്കിൽ വരി വരി വരി ക്രമമായി നൽകുന്നതിന് ഒരു ലൂപ്പ് ഉപയോഗിക്കുക. ലൂപ്പിൻ്റെ ഓരോ ആവർത്തന സമയത്തും, ഇൻപുട്ട് ഡാറ്റയുടെ മൂല്യങ്ങൾ അന്വേഷിക്കുന്ന മൂല്യങ്ങളുമായി താരതമ്യം ചെയ്യുന്നു. സ്ട്രിംഗ് മൂല്യങ്ങൾ പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ കംപൈലർ അനുവദിക്കുകയാണെങ്കിൽ strcmp() ഫംഗ്ഷൻ ഉപയോഗിക്കുക. ആവശ്യമായ ഡാറ്റ കണ്ടെത്തിക്കഴിഞ്ഞാൽ, അത് സ്ക്രീനിൽ പ്രദർശിപ്പിക്കും, അതിനുശേഷം ഫയൽ അടച്ചിരിക്കും.

കമ്പ്യൂട്ടർ ഘടന (FS)? മിക്കവാറും എല്ലാ വലിയ കമ്പനികൾക്കും അത്തരം യന്ത്രങ്ങളുണ്ട്, സാധാരണ ഉപഭോക്താക്കളെ പരാമർശിക്കേണ്ടതില്ല. ഇന്ന്, ഓരോ മൂന്നാമത്തെ അല്ലെങ്കിൽ രണ്ടാമത്തെ കുടുംബത്തിനും തീർച്ചയായും അത്തരം ഉപകരണങ്ങൾ ഉണ്ട്, ഒരു പകർപ്പിൽ പോലും ഇല്ല.

നമ്മൾ യഥാർത്ഥത്തിൽ എന്താണ് സംസാരിക്കുന്നതെന്ന് യുവതലമുറയ്ക്ക് ഊഹിക്കാൻ കഴിയും. എന്നാൽ മറ്റ് സാങ്കേതികവിദ്യകളാൽ ചുറ്റപ്പെട്ട യൗവനം പ്രായമായവർക്ക് അറിയില്ലായിരിക്കാം. അതിനിടയിൽ അവരും കമ്പ്യൂട്ടറിൽ താൽപര്യം കാണിക്കാൻ തുടങ്ങി.

ഫയൽ നിർവ്വചനം

ഏതൊരു കമ്പ്യൂട്ടറിൻ്റെയും പ്രവർത്തനം നിയന്ത്രിക്കുന്നത് ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റമാണ്, അതില്ലാതെ അത് ഉദ്ദേശിച്ച ആവശ്യത്തിനായി ഉപയോഗിക്കുന്നത് അസാധ്യമാണ്. ഒരു ഫയൽ സിസ്റ്റം എന്താണെന്ന് മനസിലാക്കാൻ, മറ്റൊരു പദത്തിൻ്റെ സാരാംശം മനസ്സിലാക്കേണ്ടത് ആവശ്യമാണ് - ഒരു ഫയൽ. ഇംഗ്ലീഷിൽ, ഫയൽ എന്ന പദം "ഫോൾഡർ" എന്ന് വിവർത്തനം ചെയ്യപ്പെടുന്നു, കൂടാതെ ഡിസ്കിലോ മറ്റേതെങ്കിലും സ്റ്റോറേജ് മീഡിയത്തിലോ പേരിട്ടിരിക്കുന്ന ഡാറ്റ ഏരിയ എന്നാണ് അർത്ഥമാക്കുന്നത്. നിങ്ങൾക്ക് ഒരു ഫയലിൻ്റെ ഇനിപ്പറയുന്ന നിർവചനവും നൽകാം: ഇത് ഒരു നിശ്ചിത എണ്ണം ബൈറ്റുകളുടെ ഒരു ശ്രേണിയാണ്, അതിൻ്റെ ദൈർഘ്യം ഏകപക്ഷീയമാണ്.

ഒരു പേഴ്‌സണൽ കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ ഘടന ഏറ്റവും പര്യാപ്തമായി എങ്ങനെ മനസ്സിലാക്കാം, ഏത് ഡാറ്റയെക്കുറിച്ചാണ് നമ്മൾ സംസാരിക്കുന്നത്? സാധാരണഗതിയിൽ, സംഭരിച്ചതോ പ്രോസസ്സ് ചെയ്യുന്നതോ ആയ ഏതൊരു വിവരവും:

  • ഇലക്ട്രോണിക് രേഖകൾ;
  • ചിത്രങ്ങൾ;
  • സോഫ്റ്റ്വെയർ;
  • സംഗീത രചനകൾ;
  • വീഡിയോ ഉള്ളടക്കവും മറ്റും.

എന്നിരുന്നാലും, ഈ വിവരങ്ങളെല്ലാം എങ്ങനെയെങ്കിലും ഓർഗനൈസുചെയ്യേണ്ടതുണ്ട്, ഇത് ഉപയോക്താവിൻ്റെ സൗകര്യാർത്ഥം ചെയ്യുന്നു. എന്നാൽ ഇത് ഫയലുകൾക്ക് മാത്രം ബാധകമല്ല. ഉദാഹരണത്തിന്, നമ്മൾ എല്ലാവരും ഷൂസ് വസ്ത്രങ്ങളിൽ നിന്ന് പ്രത്യേകം സൂക്ഷിക്കുന്നു. പലചരക്ക് സാധനങ്ങൾക്കും ഇത് ബാധകമാണ്, കാരണം ആരും അവരുടെ അടുത്ത് ഷൂസ് സൂക്ഷിക്കുന്നില്ലേ?! അതിനാൽ, ഞങ്ങൾ രണ്ട് തെളിയിക്കപ്പെട്ട രീതികൾ അവലംബിക്കുന്നു:

  • അടുക്കുന്നു;
  • ഗ്രൂപ്പിംഗ്.

ഫയലുകളെ സംബന്ധിച്ചിടത്തോളം, രീതി 2 ഇവിടെ ഉപയോഗിക്കുന്നു. ഇതിന് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഉത്തരവാദിയാണ്. എന്നാൽ ഇത് ഒരു ഫയൽ സിസ്റ്റത്തിലൂടെയോ ഘടനയിലൂടെയോ പ്രവർത്തിക്കുന്നു.

ഫയൽ സിസ്റ്റം എന്നതുകൊണ്ട് നിങ്ങൾ എന്താണ് അർത്ഥമാക്കുന്നത്?

അടിസ്ഥാനപരമായി, ഫയൽ സിസ്റ്റം ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ഭാഗമാണ്. ഡിജിറ്റൽ വിവരങ്ങൾ ഉപയോഗിച്ച് വിവിധ പ്രവർത്തനങ്ങൾ നടത്താൻ കഴിയുന്നത് ഇതിന് നന്ദി: ഫയലുകൾക്ക് പേരുകൾ നൽകുക അല്ലെങ്കിൽ അവയുടെ പേര് മാറ്റുക, അതുപോലെ അവ ഇല്ലാതാക്കുക, നീക്കുക, മറ്റ് പ്രവർത്തനങ്ങൾ ചെയ്യുക. ഒരു കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ ഘടന എന്താണെന്നതിൻ്റെ സാരാംശം ഇതാണ്. ഈ ചോദ്യത്തിനുള്ള ഉത്തരം നിങ്ങൾ ചുവടെ കണ്ടെത്തും.

ചിലപ്പോൾ, ഏതെങ്കിലും തരത്തിലുള്ള സോഫ്റ്റ്വെയർ പരാജയം കാരണം, വിവരങ്ങൾ നഷ്ടപ്പെട്ടേക്കാം, തുടർന്ന് ഈ റിസോഴ്സ് അത് പുനഃസ്ഥാപിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ലളിതമായി പറഞ്ഞാൽ, ഡിജിറ്റൽ ഡാറ്റയുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രധാന ഉപകരണമായി ഒരു ഫയൽ ഘടന അല്ലെങ്കിൽ ഒരു സിസ്റ്റം പ്രവർത്തിക്കുന്നു.

ഫയലുകൾ ഗ്രൂപ്പുചെയ്യുന്നതിന്, ഡയറക്ടറികൾ എന്ന് വിളിക്കപ്പെടുന്നവ സൃഷ്ടിക്കപ്പെടുന്നു, അവയെ ഫോൾഡറുകൾ എന്ന് വിളിക്കുന്നു. ഇവ ഒരുതരം കണ്ടെയ്‌നറുകളാണ്, അതിനുള്ളിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ വിവരങ്ങളും മറ്റ് ഡയറക്ടറികളും സ്ഥിതിചെയ്യുന്നു. ഫയൽ സിസ്റ്റം വഴി തന്നെ അവ സൃഷ്ടിക്കപ്പെടുന്നു.

ഒരു ഫയലിൽ (തുറക്കുക, നീക്കുക മുതലായവ) എന്തെങ്കിലും പ്രവർത്തനം നടത്തേണ്ടത് ആവശ്യമാണെങ്കിൽ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഫയൽ സിസ്റ്റത്തിലേക്ക് പ്രവേശിക്കുന്നു. ആവശ്യമായ കൃത്രിമങ്ങൾ നടത്തുന്നത് രണ്ടാമത്തേതാണ്. ഇപ്പോൾ നിങ്ങൾക്ക് ഫയൽ സിസ്റ്റത്തിൻ്റെ കൂടുതൽ മനസ്സിലാക്കാവുന്ന നിർവചനം സൃഷ്ടിക്കാൻ കഴിയും. ചില മാധ്യമങ്ങളിൽ ഡാറ്റ സംഭരിക്കുന്നതിനുള്ള സംഘടനാ പ്രക്രിയയാണിത്.

എന്നിരുന്നാലും, നിങ്ങൾ ഒരു പുതിയ ഹാർഡ് ഡ്രൈവ് വാങ്ങുമ്പോൾ, നിങ്ങൾക്ക് അതിൽ ഒരു വിവരവും ഉടൻ എഴുതാൻ കഴിയില്ല. കമ്പ്യൂട്ടർ ഫയൽ സിസ്റ്റത്തിൻ്റെ ഘടന തന്നെ കാണുന്നില്ല എന്നതാണ് വസ്തുത; ഫോർമാറ്റിംഗ് പ്രക്രിയയ്ക്ക് ശേഷമാണ് ഇത് സൃഷ്ടിക്കുന്നത്. വഴിയിൽ, മീഡിയയിൽ ഇതിനകം ഫയലുകൾ ഉണ്ടെങ്കിൽ, ഈ നടപടിക്രമം എല്ലാം പൂർണ്ണമായും ഇല്ലാതാക്കുന്നു, അതിനാൽ നിങ്ങൾ ശ്രദ്ധിക്കേണ്ടതുണ്ട്.

എഫ്എസ് പ്രവർത്തനം

ഫയൽ സിസ്റ്റം നിരവധി ഉപയോഗപ്രദമായ പ്രവർത്തനങ്ങൾ ചെയ്യുന്നു:

  • ഫയലിൻ്റെ സ്ഥാനം, അതിൻ്റെ പേര്, ഫോർമാറ്റ്, വലുപ്പം, പാരാമീറ്ററുകൾ എന്നിവ നിർണ്ണയിക്കാൻ കഴിയും.
  • മാധ്യമത്തിൽ വിവരങ്ങൾ സംഭരിക്കുന്ന ക്രമം നിർണ്ണയിക്കുന്നു.
  • സേവന വിവരങ്ങളുടെ സംഭരണം (വികലമായ ഡിസ്ക് ഏരിയകൾ).
  • ഒരു ഡയറക്ടറിയിലെ ഫയലുകളുടെ എണ്ണം നിർണ്ണയിക്കുന്നു.
  • ഫയലുകളുടെയും ഡയറക്‌ടറിയുടെയും പേരുകൾക്കായുള്ള പരമാവധി ദൈർഘ്യം നിർവ്വചിക്കുന്നു.
  • സാധ്യമായ പവർ പരാജയങ്ങൾക്കും ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ പിശകുകൾക്കും സിസ്റ്റം സ്ഥിരതയുടെ ഓർഗനൈസേഷൻ.
  • ഡാറ്റ സംഭരണത്തിൻ്റെ സുരക്ഷ നിർണ്ണയിക്കുകയും അതിലേക്ക് ദ്രുത പ്രവേശനം നൽകുകയും ചെയ്യുന്നു.

പ്രാഥമികമായി ഹാർഡ് ഡ്രൈവുകൾ വിവരങ്ങൾ സംഭരിക്കുന്നതിന് ഉപയോഗിക്കുന്നതിനാൽ, ഓർഗനൈസേഷണൽ ഓർഡർ അവയുടെ പാർട്ടീഷനുകളുമായി (വോള്യങ്ങൾ) കൃത്യമായി നിർണ്ണയിക്കപ്പെടുന്നു.

അധികാരശ്രേണി

ഒരു കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ ഘടന ഒരു മരം പോലെ കാണപ്പെടുന്നു. ഒരു കമ്പ്യൂട്ടറിൽ, അതായത് ഒരു ഹാർഡ് ഡ്രൈവിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ വിവരങ്ങളും ഒരു ശ്രേണിപരമായ ഘടനയോട് സാമ്യമുള്ളതായി ശ്രദ്ധിക്കുന്ന ഒരു ഉപയോക്താവ് ശ്രദ്ധിച്ചേക്കാം.

അതായത്, ഒരു ഡയറക്‌ടറിക്കുള്ളിൽ മറ്റൊന്ന് ഉണ്ടായിരിക്കാം, അതിനുള്ളിൽ മറ്റൊന്ന് ഉണ്ട്, അങ്ങനെ പലതും. വർക്ക് ഓർഡർ സംഘടിപ്പിക്കാൻ ഇതെല്ലാം നിങ്ങളെ അനുവദിക്കുന്നു, എവിടെയാണെന്ന് ഉപയോക്താക്കൾക്ക് അറിയാം.

മറ്റുള്ളവയുടെ ഉള്ളിൽ സ്ഥിതി ചെയ്യുന്ന ഡയറക്‌ടറികൾ യഥാർത്ഥത്തിൽ ഒരേ ഫോൾഡറുകളാണ്, അവയ്ക്ക് പേരുകൾ നൽകാനും കഴിയും. അവസാനത്തെ മൂന്ന് (അല്ലെങ്കിൽ കൂടുതൽ) അക്ഷരങ്ങൾ അവർ മാത്രം എഴുതുന്നില്ല. ഇത് സാധാരണയായി ഫയലുകൾക്ക് സാധാരണമാണ്, ഈ പേര് വിപുലീകരണം അവയുടെ തരം നിർണ്ണയിക്കുന്നു. ഫോൾഡറിൽ വിവിധ തരത്തിലുള്ള ഡാറ്റ അടങ്ങിയിരിക്കുന്നു, അതിനാൽ അതിൻ്റെ പേര് വികസിപ്പിക്കേണ്ട ആവശ്യമില്ല.

തീർച്ചയായും, ഇത് ചെയ്യാൻ ആരും നിങ്ങളെ വിലക്കില്ല, പക്ഷേ അങ്ങനെ ചെയ്യുന്നതിൽ അർത്ഥമില്ല. കൂടാതെ, exe മൂല്യമുള്ള ഒരു ഫോൾഡർ, ഉദാഹരണത്തിന്, "Movies.exe" മിക്ക കേസുകളിലും ഒരു വൈറസിൻ്റെ സാന്നിധ്യം സൂചിപ്പിക്കുന്നു - ഈ സാഹചര്യത്തിൽ അത് തുറക്കാൻ ശുപാർശ ചെയ്യുന്നില്ല.

ഫയൽ ആട്രിബ്യൂട്ടുകൾ

ഒരു വ്യക്തിഗത കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ ഘടനയിൽ പ്രവർത്തിക്കുന്നത് എളുപ്പമാക്കുന്നതിന്, ആട്രിബ്യൂട്ടുകൾ എന്ന് വിളിക്കപ്പെടുന്ന പ്രത്യേക പാരാമീറ്ററുകൾ നൽകിയിരിക്കുന്നു. അതായത്, ഡാറ്റ കാണുന്നതിനും എഡിറ്റുചെയ്യുന്നതിനുമുള്ള നിയമങ്ങൾ നിർവചിക്കുന്ന വ്യവസ്ഥകളാണ് ഇവ. ഇതിനെ ആശ്രയിച്ച്, 4 തരം പ്രധാന ആട്രിബ്യൂട്ടുകൾ ഉണ്ട്:

  • വായിക്കാൻ മാത്രം - വായിക്കാൻ മാത്രം (R).
  • സിസ്റ്റം - സിസ്റ്റം (എസ്).
  • മറഞ്ഞിരിക്കുന്നു - മറച്ചിരിക്കുന്നു (H).
  • ആർക്കൈവ് - ആർക്കൈവ് (എ).

പരാമീറ്റർആർ- അതിൻ്റെ അർത്ഥം അതിൻ്റെ റഷ്യൻ നാമത്തിൽ നിന്ന് മനസ്സിലാക്കാം. അതായത്, ഇത് എഡിറ്റിംഗ് മോഡിന് ബാധകമാണ്: ഒരു ഫയലിനായി അത്തരമൊരു ആട്രിബ്യൂട്ട് സജീവമാക്കിയാൽ, അത് മാറ്റാനുള്ള ശ്രമങ്ങൾ വിജയിക്കില്ല. നശിപ്പിക്കുന്നതും അസാധ്യമാണ്. അതിനാൽ, ഈ നെറ്റ്‌വർക്കിലെ ഭൂരിഭാഗം ഉപയോക്താക്കൾക്കും ഡാറ്റയിലേക്ക് ആക്‌സസ് ഉള്ള ലോക്കൽ നെറ്റ്‌വർക്കുകൾക്ക് ഈ പരാമീറ്റർ പ്രസക്തമാണ്.

ആട്രിബ്യൂട്ട്എസ്ഫയലുകൾ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റേതാണെന്ന് സൂചിപ്പിക്കുന്നു, സ്ഥിരമായ പ്രവർത്തനത്തിന് അവയുടെ സാന്നിധ്യം ആവശ്യമാണ്. അതിനാൽ, നിങ്ങൾ അത്തരം ഡാറ്റ ഇല്ലാതാക്കാനോ നീക്കാനോ ശ്രമിക്കുകയാണെങ്കിൽ (അത് അഭികാമ്യമല്ല), ഉപയോക്താവ് ശരിക്കും പ്രവർത്തനം നടത്താൻ ആഗ്രഹിക്കുന്നുണ്ടോ എന്ന് സിസ്റ്റം ചോദിക്കും. എന്നിരുന്നാലും, കമ്പ്യൂട്ടറിൽ വിവരങ്ങൾ സംഭരിക്കുന്നതിനുള്ള ഫയൽ ഘടനയിൽ മോശം സ്വാധീനം ചെലുത്തുന്ന തരത്തിൽ ചില വൈറസുകൾക്ക് സ്വയം മറയ്ക്കാൻ കഴിയും.

പരാമീറ്റർഎച്ച്സജീവമാകുമ്പോൾ, ഫയലുകൾ കാഴ്ചയിൽ നിന്ന് മറയ്ക്കുന്നു. ആകസ്മികമായി ഇല്ലാതാക്കാൻ കഴിയുന്ന ഏറ്റവും പ്രധാനപ്പെട്ട സിസ്റ്റം ഡാറ്റയ്ക്ക് ഇത് ശരിയാണ്.

ആട്രിബ്യൂട്ട്ഫയൽ കംപ്രസ് ചെയ്തതായി സൂചിപ്പിക്കുന്നു.

ഫയൽ സിസ്റ്റത്തിൻ്റെ തരങ്ങൾ

നിരവധി തരം ഫയൽ സിസ്റ്റങ്ങൾ ഉണ്ട്, അവയ്ക്കിടയിൽ ശരാശരി ഉപയോക്താവിന് ദൃശ്യമായ വ്യത്യാസങ്ങൾ കണ്ടെത്താനാവില്ല. അതേസമയം, ഓരോ ഇനത്തിനും അതിൻ്റേതായ സവിശേഷതകളുണ്ട്. ഫയൽ സിസ്റ്റങ്ങളെ അവയുടെ ഉദ്ദേശ്യമനുസരിച്ച് തിരിച്ചിരിക്കുന്നു:

  • ഹാർഡ് ഡ്രൈവുകൾക്കായി;
  • കാന്തിക മാധ്യമങ്ങൾക്ക്;
  • ഒപ്റ്റിക്കൽ മീഡിയയ്ക്ക്;
  • ഒരു വെർച്വൽ പരിതസ്ഥിതിക്ക്;
  • ശൃംഖല.

ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്ന ഫയൽ സിസ്റ്റങ്ങൾ ഇവയാണ്:

  • എക്സ്ഫാറ്റ്.
  • NTFS.

അവയിൽ, ഇതിനകം കാലഹരണപ്പെട്ടവയുണ്ട്, മറ്റുള്ളവ ഇപ്പോഴും ഉപയോഗത്തിലുണ്ട്. എന്നിരുന്നാലും, ഓരോ തരത്തിനും അതിൻ്റേതായ ഗുണങ്ങളും ദോഷങ്ങളുമുണ്ട്. അവരെ കുറച്ചുകൂടി വിശദമായി നോക്കുന്നത് മൂല്യവത്താണ്.

EFS

ഇത് പൂർണ്ണമായി ഇതുപോലെ തോന്നുന്നു: ഫയൽ സിസ്റ്റം എൻക്രിപ്റ്റുചെയ്യുന്നു. ഒരു പേഴ്സണൽ കമ്പ്യൂട്ടർ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ഈ ഫയൽ ഘടന ഏറ്റവും അഭികാമ്യമാണ്, കാരണം എല്ലാ ഡാറ്റയും എൻക്രിപ്റ്റ് ചെയ്ത രൂപത്തിൽ സ്ഥിതിചെയ്യുന്നു. ഇക്കാരണത്താൽ, ഈ തരം വ്യാപകമാണ് കൂടാതെ മുഴുവൻ വിൻഡോസ് കുടുംബത്തിൻ്റെയും ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ പ്രവർത്തിക്കുന്നു.

എൻക്രിപ്ഷൻ സജ്ജീകരിക്കാൻ എളുപ്പമാണ്. ഇത് ചെയ്യുന്നതിന്, ഫയൽ പ്രോപ്പർട്ടികളിലേക്ക് പോകുക, "മറ്റ്" ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുക, "ഡാറ്റ പരിരക്ഷിക്കാൻ ഉള്ളടക്കങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്യുക" ഇനം കണ്ടെത്തി അതിനടുത്തുള്ള ബോക്സ് ചെക്കുചെയ്യുക. അതിനുശേഷം, "കുറിപ്പ്", "ശരി" എന്നിവ ക്ലിക്കുചെയ്യുക. കൂടാതെ, എൻക്രിപ്റ്റുചെയ്‌ത ഫയലിലേക്ക് ആർക്കൊക്കെ ആക്‌സസ്സ് അനുവദിച്ചിട്ടുണ്ടെന്ന് നിങ്ങൾക്ക് വ്യക്തമാക്കാം.

യൂണിവേഴ്സൽ ഡിസ്ക് ഫോർമാറ്റ് അല്ലെങ്കിൽ യു.ഡി.എഫ്

ഈ ഫയൽ സിസ്റ്റം സ്റ്റോറേജ് മീഡിയയ്ക്കായി രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്, പ്രത്യേകിച്ച് ഒപ്റ്റിക്കൽ ഡിസ്കുകൾ. Windows XP-യും പഴയ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും പിന്തുണയ്ക്കുന്നു. ഇതിന് അതിൻ്റേതായ സവിശേഷതകളുണ്ട്: ഫയലിൻ്റെ പേരിൻ്റെ ദൈർഘ്യം 255 പ്രതീകങ്ങൾ (ASCII എൻകോഡിംഗ്) അല്ലെങ്കിൽ 127 (യൂണികോഡ് എൻകോഡിംഗ്) കവിയരുത്.

കേസിനെ സംബന്ധിച്ചിടത്തോളം, ഇത് താഴ്ന്നതോ മുകളിലോ ആകാം. പരമാവധി പാത്ത് ദൈർഘ്യം 1023 പ്രതീകങ്ങളാണ്.

എക്സ്ഫാറ്റ്

എന്താണ് EXFAT കമ്പ്യൂട്ടർ ഫയൽ ഘടന? ഇത് പ്രധാനമായും പോർട്ടബിൾ സ്റ്റോറേജ് ഉപകരണങ്ങൾക്ക് (ഫ്ലാഷ് ഡ്രൈവുകൾ) ഉപയോഗിക്കുന്നു. ഇത് വിൻഡോസിനും ലിനക്സിനും ഇടയിലുള്ള ഒരുതരം ഇടനിലക്കാരനാണ്, ഇത് ഒരു സിസ്റ്റത്തിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ഫയലുകൾ പരിവർത്തനം ചെയ്യുന്നതിന് ഉത്തരവാദിയാണ്. Windows Vista, Windows 7 എന്നിവയിൽ, നിങ്ങൾക്ക് ഒരു സാധാരണ ഉപകരണം ഉപയോഗിച്ച് ഡ്രൈവുകൾ ഫോർമാറ്റ് ചെയ്യാൻ കഴിയും.

EXT

ഈ ഫയൽ സിസ്റ്റം ലിനക്സ് കേർണലിനെ അടിസ്ഥാനമാക്കിയുള്ള ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കായി പ്രത്യേകം വികസിപ്പിച്ചതാണ്. ആദ്യ സംഭവവികാസങ്ങൾ 1992 ൽ ഉപയോക്താക്കൾക്ക് അവതരിപ്പിച്ചു. ഇന്ന് നിരവധി പതിപ്പുകൾ ഉണ്ട്:

  • ext2;
  • ext3;
  • ext3cow;
  • ext4.

ഏറ്റവും പുതിയ സിസ്റ്റം ഏറ്റവും പുരോഗമിച്ചതും പുതിയതും അതിനാൽ പ്രസക്തവുമാണ്. ആധുനിക ലിനക്സ് വിതരണങ്ങൾ ext4 ഉപയോഗിക്കുന്നു. ഒരു കമ്പ്യൂട്ടറിൻ്റെ ഫയൽ ഘടന എന്താണെന്ന് നിങ്ങൾക്ക് മനസിലാക്കാൻ കഴിയും, മറ്റ്, കൂടുതൽ അറിയപ്പെടുന്ന സിസ്റ്റങ്ങളുടെ ഉദാഹരണം ഉപയോഗിച്ച്, അത് ചുവടെ ചർച്ചചെയ്യും.

കൊഴുപ്പ്

ഇപ്പോൾ FAT ഉൾപ്പെടെയുള്ള തിരിച്ചറിയാവുന്ന സംവിധാനങ്ങളുടെ ഊഴമാണ്. കഴിഞ്ഞ നൂറ്റാണ്ടിൻ്റെ അവസാനത്തിലാണ് ഈ സംവിധാനം സൃഷ്ടിക്കപ്പെട്ടത്, ബിൽ ഗേറ്റ്സും മാർക്ക് മക്ഡൊണാൾഡും അതിൻ്റെ വികസനത്തിന് ഉത്തരവാദികളായിരുന്നു. അതിൻ്റെ ലാളിത്യം കാരണം, ഇന്ന് പല ഫ്ലാഷ് ഡ്രൈവുകളിലും ഇത് ഉപയോഗിക്കുന്നു.

അതിൽ നിരവധി ഇനങ്ങൾ ഉണ്ട്:

  • FAT12.
  • FAT16.
  • FAT32.

ബിറ്റ് കപ്പാസിറ്റിയുടെ കാര്യത്തിൽ അവ പരസ്പരം വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, അതായത്, ഒരു ക്ലസ്റ്റർ സംഭരിക്കാൻ അനുവദിച്ചിരിക്കുന്ന ബിറ്റുകളുടെ എണ്ണം. അതനുസരിച്ച്, ഉയർന്ന ബിറ്റ് ഡെപ്ത്, FAT സിസ്റ്റത്തിന് പിന്തുണയ്ക്കാൻ കഴിയുന്ന വലിയ വോളിയം. ഇതിൻ്റെ ആദ്യ പതിപ്പ് ആധുനിക മാനദണ്ഡങ്ങൾക്കനുസൃതമായി ചെറിയ അളവിലുള്ള ഡാറ്റയെ പിന്തുണയ്‌ക്കുന്നു - 2 ജിബി മാത്രം. അതനുസരിച്ച്, വലിയ വോള്യങ്ങളുള്ള പാർട്ടീഷനുകൾക്കോ ​​ഡിസ്കുകൾക്കോ ​​ഇത് അനുയോജ്യമല്ല, അതിനാൽ പെട്ടെന്ന് കാലഹരണപ്പെട്ടു.

FAT32 നെ സംബന്ധിച്ചിടത്തോളം, ഞങ്ങൾ 127 ജിഗാബൈറ്റുകളെക്കുറിച്ചാണ് സംസാരിക്കുന്നത്, ഇത് ഒരു ഡിസ്കിനുള്ള പരമാവധി വലുപ്പമാണ്. നിലവിൽ, മിക്ക കേസുകളിലും, ഇത് കൃത്യമായി ഉപയോഗിക്കുന്നു.

NTFS

NTFS കമ്പ്യൂട്ടർ ഫയൽ ഘടന എന്താണ്? വിൻഡോസ് സീരീസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ നിന്ന് നമുക്ക് അറിയാവുന്ന മൈക്രോസോഫ്റ്റ് വികസിപ്പിക്കാൻ തുടങ്ങിയ ഇന്നത്തെ ഏറ്റവും ജനപ്രിയമായ സിസ്റ്റമാണിത്. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പരാജയപ്പെടുകയാണെങ്കിൽ, എല്ലാ ഡാറ്റയും സംരക്ഷിക്കപ്പെടും എന്നതാണ് ഇതിൻ്റെ പ്രധാന ഗുണം, കാരണം ഈ തരം സ്വയം സുഖപ്പെടുത്താൻ പ്രാപ്തമാണ്.

മറ്റൊരു സവിശേഷത കൂടിയുണ്ട് - അതിൻ്റെ ഘടന ഒരു പ്രത്യേക പട്ടികയുടെ രൂപത്തിൽ അവതരിപ്പിച്ചിരിക്കുന്നു. രജിസ്ട്രിയിലെ ആദ്യത്തെ 16 ഡാറ്റ ഫയൽ സിസ്റ്റം തന്നെയാണ്. ഓരോ ബൈറ്റും ഒരുതരം പട്ടികയാണ്, അതിൽ MFT വിപുലീകരണത്തോടുകൂടിയ ഒരു മിറർ ഫയലും വിവരങ്ങൾ വീണ്ടെടുക്കുന്ന സാഹചര്യത്തിൽ ആവശ്യമായ രജിസ്ട്രേഷൻ ഡാറ്റയും അടങ്ങിയിരിക്കുന്നു. അവയ്‌ക്ക് പുറമേ, ഹാർഡ് ഡ്രൈവിൽ സംരക്ഷിച്ചിരിക്കുന്ന അതിൻ്റെ ഡാറ്റയ്‌ക്കൊപ്പം ഫയലിനെക്കുറിച്ചുള്ള വിവരങ്ങളും ഉണ്ട്.

1993-ൽ വിൻഡോസ് NT 3.1-ൻ്റെ റിലീസിനൊപ്പം NTFS ആദ്യമായി അവതരിപ്പിച്ചു. ഞങ്ങൾ അതിനെ മറ്റൊരു ഇനവുമായി താരതമ്യം ചെയ്താൽ - FAT, ഗണ്യമായ എണ്ണം മെച്ചപ്പെടുത്തലുകൾ ഇവിടെ കാണാം. ഉദാഹരണത്തിന്, ഒരു ഹാർഡ് ഡ്രൈവിൻ്റെ അല്ലെങ്കിൽ അതിൻ്റെ പാർട്ടീഷനുകളുടെ വലുപ്പത്തിൽ ഇപ്പോൾ ഫലത്തിൽ യാതൊരു നിയന്ത്രണവുമില്ല. ചില ഉപയോഗപ്രദമായ ഫംഗ്ഷനുകളും ഇപ്പോൾ പിന്തുണയ്ക്കുന്നു: ഹാർഡ് ലിങ്കുകൾ, എൻക്രിപ്ഷൻ, കംപ്രഷൻ.

ഒടുവിൽ

ഇപ്പോൾ, കമ്പ്യൂട്ടർ ഫയൽ ഘടന എന്താണെന്നതിൻ്റെ നിർവചനം അറിയുന്നതിലൂടെ, ഏതൊരു ഉപയോക്താവിനും തനിക്ക് ഏറ്റവും അനുയോജ്യമായ ഉചിതമായ ഓപ്ഷൻ തിരഞ്ഞെടുക്കാൻ കഴിയും. വിവരിച്ച ഓരോ സിസ്റ്റത്തിനും അതിൻ്റേതായ സവിശേഷതകളുണ്ട്, അത് അവയിൽ ചിലതിൻ്റെ ഭാവി വിധി നിർണ്ണയിച്ചു.

ചിലത് ഇപ്പോൾ ഉപയോഗിക്കില്ല. ഡാറ്റയുടെ അളവ് നിരന്തരം വർദ്ധിച്ചുകൊണ്ടിരിക്കുന്നതാണ് ഇതിന് പ്രധാനമായും കാരണം. മുമ്പ് 80-100 ജിബി മതിയായിരുന്നുവെങ്കിൽ, ഇപ്പോൾ ഇത് ഒരു ചെറിയ തുകയാണ്. ഇപ്പോൾ എണ്ണം ടെറാബൈറ്റിലാണ്.

അവലോകന പ്രഭാഷണത്തിനുള്ള മെറ്റീരിയൽ. നമ്പർ 33

സ്പെഷ്യാലിറ്റി വിദ്യാർത്ഥികൾക്ക്

"വിവര സാങ്കേതിക സോഫ്റ്റ്‌വെയർ"

കംപ്യൂട്ടർ സയൻസ് വിഭാഗത്തിലെ അസോസിയേറ്റ് പ്രൊഫസർ പി.എച്ച്.ഡി. ലിവക് ഇ.എൻ.

ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റങ്ങൾ

അടിസ്ഥാന ആശയങ്ങൾ, വസ്തുതകൾ

ഉദ്ദേശം. ഫയൽ സിസ്റ്റങ്ങളുടെ സവിശേഷതകൾകൊഴുപ്പ്VFATകൊഴുപ്പ് 32,എച്ച്പിഎഫ്എസ്NTFS. ഫയൽ സിസ്റ്റങ്ങൾ UNIX OS (s5, ufs), Linux OS Ext2FS. ഡിസ്കിൻ്റെ സിസ്റ്റം ഏരിയകൾ (പാർട്ടീഷൻ, വോളിയം). ഫയൽ പ്ലെയ്‌സ്‌മെൻ്റിൻ്റെയും ഫയൽ ലൊക്കേഷൻ വിവരങ്ങളുടെ സംഭരണത്തിൻ്റെയും തത്വങ്ങൾ. കാറ്റലോഗുകളുടെ ഓർഗനൈസേഷൻ. ഫയലുകളിലേക്കും ഡയറക്‌ടറികളിലേക്കും ആക്‌സസ്സ് നിയന്ത്രിക്കുന്നു.

കഴിവുകൾ

കമ്പ്യൂട്ടർ വിവരങ്ങൾ (ഫയലുകളും ഡയറക്ടറികളും) പരിരക്ഷിക്കുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനും ഫയൽ സിസ്റ്റം ഘടനയെക്കുറിച്ചുള്ള അറിവ് ഉപയോഗിക്കുന്നു. ഫയലുകളിലേക്കുള്ള ആക്സസ് നിയന്ത്രണത്തിൻ്റെ ഓർഗനൈസേഷൻ.

ഫയൽ സിസ്റ്റങ്ങൾ. ഫയൽ സിസ്റ്റം ഘടന

ഡിസ്കിലെ ഡാറ്റ ഫയലുകളുടെ രൂപത്തിൽ സൂക്ഷിക്കുന്നു. ഒരു ഡിസ്കിൻ്റെ പേരുള്ള ഭാഗമാണ് ഫയൽ.

ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റങ്ങൾ ഫയലുകൾ കൈകാര്യം ചെയ്യാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്.

ഫയലുകളിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റ ലോജിക്കൽ തലത്തിൽ കൈകാര്യം ചെയ്യാനുള്ള കഴിവ് ഫയൽ സിസ്റ്റം നൽകുന്നു. ഏത് സ്റ്റോറേജ് മീഡിയത്തിലും ഡാറ്റ ക്രമീകരിക്കുന്ന രീതി നിർണ്ണയിക്കുന്നത് ഫയൽ സിസ്റ്റമാണ്.

അങ്ങനെ, ഫയൽ സിസ്റ്റം ഫയൽ വിവരങ്ങൾ സൃഷ്ടിക്കുന്നതിനും നശിപ്പിക്കുന്നതിനും ഓർഗനൈസുചെയ്യുന്നതിനും വായിക്കുന്നതിനും എഴുതുന്നതിനും പരിഷ്‌ക്കരിക്കുന്നതിനും നീക്കുന്നതിനും അതുപോലെ ഫയലുകളിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കുന്നതിനും ഫയലുകൾ ഉപയോഗിക്കുന്ന ഉറവിടങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിനും ഉത്തരവാദിത്തമുള്ള ഒരു കൂട്ടം സ്പെസിഫിക്കേഷനുകളും അവയുടെ അനുബന്ധ സോഫ്‌റ്റ്‌വെയറുമാണ്.

മിക്ക ആധുനിക ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലെയും പ്രധാന ഉപസിസ്റ്റമാണ് ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റം.

ഒരു ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റം ഉപയോഗിക്കുന്നു

എല്ലാ സിസ്റ്റം പ്രോസസ്സിംഗ് പ്രോഗ്രാമുകളും ഡാറ്റ ഉപയോഗിച്ച് ബന്ധിപ്പിച്ചിരിക്കുന്നു;

· ഡിസ്ക് സ്പേസ്, ഡാറ്റ മാനേജ്മെൻ്റ് എന്നിവയുടെ കേന്ദ്രീകൃത വിതരണത്തിൻ്റെ പ്രശ്നങ്ങൾ പരിഹരിക്കപ്പെടുന്നു;

· ഉപയോക്താവിന് ഫയലുകളിൽ പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനുള്ള അവസരങ്ങൾ (സൃഷ്ടി, മുതലായവ), ഫയലുകളും വിവിധ ഉപകരണങ്ങളും തമ്മിൽ ഡാറ്റ കൈമാറ്റം ചെയ്യാനും അനധികൃത ആക്‌സസ്സിൽ നിന്ന് ഫയലുകളെ സംരക്ഷിക്കാനും അവസരങ്ങൾ നൽകുന്നു.

ചില ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്ക് ഒന്നിലധികം ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റങ്ങൾ ഉണ്ടായിരിക്കാം, അവയ്ക്ക് ഒന്നിലധികം ഫയൽ സിസ്റ്റങ്ങൾ കൈകാര്യം ചെയ്യാനുള്ള കഴിവ് നൽകുന്നു.

ഒരു ഫയൽ സിസ്റ്റവും ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റവും തമ്മിൽ വേർതിരിച്ചറിയാൻ ശ്രമിക്കാം.

"ഫയൽ സിസ്റ്റം" എന്ന പദം ഫയലുകളിൽ ക്രമീകരിച്ചിരിക്കുന്ന ഡാറ്റയിലേക്കുള്ള ആക്സസ് തത്വങ്ങളെ നിർവചിക്കുന്നു.

കാലാവധി "ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റം"ഫയൽ സിസ്റ്റത്തിൻ്റെ ഒരു പ്രത്യേക നിർവ്വഹണത്തെ സൂചിപ്പിക്കുന്നു, അതായത്. ഒരു നിർദ്ദിഷ്‌ട OS-ലെ ഫയലുകൾക്കൊപ്പം ജോലി നൽകുന്ന സോഫ്റ്റ്‌വെയർ മൊഡ്യൂളുകളുടെ ഒരു കൂട്ടമാണിത്.

അതിനാൽ, ചില ഫയൽ സിസ്റ്റത്തിന് അനുസൃതമായി ഓർഗനൈസുചെയ്‌ത ഫയലുകളിൽ പ്രവർത്തിക്കാൻ, ഓരോ OS-നും അനുയോജ്യമായ ഒരു ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റം വികസിപ്പിക്കണം. ഈ യുവി സംവിധാനം രൂപകല്പന ചെയ്തിരിക്കുന്ന ഒഎസിൽ മാത്രമേ പ്രവർത്തിക്കൂ.

Windows OS കുടുംബത്തിന്, പ്രധാനമായും ഉപയോഗിക്കുന്ന ഫയൽ സിസ്റ്റങ്ങൾ ഇവയാണ്: VFAT, FAT 32, NTFS.

ഈ ഫയൽ സിസ്റ്റങ്ങളുടെ ഘടന നോക്കാം.

ഫയൽ സിസ്റ്റത്തിൽ കൊഴുപ്പ് ഏതൊരു ലോജിക്കൽ ഡ്രൈവിൻ്റെയും ഡിസ്ക് സ്പേസ് രണ്ട് മേഖലകളായി തിരിച്ചിരിക്കുന്നു:

സിസ്റ്റം ഏരിയ കൂടാതെ

· ഡാറ്റ ഏരിയ.

സിസ്റ്റം ഏരിയ ഫോർമാറ്റിംഗ് സമയത്ത് സൃഷ്ടിക്കുകയും ആരംഭിക്കുകയും ചെയ്യുന്നു, തുടർന്ന് ഫയൽ ഘടന കൈകാര്യം ചെയ്യുമ്പോൾ അപ്ഡേറ്റ് ചെയ്യുന്നു.

സിസ്റ്റം ഏരിയയിൽ ഇനിപ്പറയുന്ന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ബൂട്ട് റെക്കോർഡ് (ബൂട്ട് റെക്കോർഡ്) അടങ്ങുന്ന ബൂട്ട് സെക്ടർ;

· സംവരണ മേഖലകൾ (അവ നിലവിലില്ലായിരിക്കാം);

· ഫയൽ അലോക്കേഷൻ പട്ടികകൾ (FAT, ഫയൽ അലോക്കേഷൻ ടേബിൾ);

· റൂട്ട് ഡയറക്ടറി (റൂട്ട്).

ഈ ഘടകങ്ങൾ ഒന്നിനുപുറകെ ഒന്നായി ഡിസ്കിൽ സ്ഥിതിചെയ്യുന്നു.

ഡാറ്റ ഏരിയ റൂട്ട് ഒന്നിന് കീഴിലുള്ള ഫയലുകളും ഡയറക്ടറികളും അടങ്ങിയിരിക്കുന്നു.

ഡാറ്റ ഏരിയയെ ക്ലസ്റ്ററുകൾ എന്ന് വിളിക്കപ്പെടുന്നവയായി തിരിച്ചിരിക്കുന്നു. ഒരു ഡാറ്റ ഏരിയയുടെ ഒന്നോ അതിലധികമോ അടുത്തുള്ള സെക്ടറുകളാണ് ക്ലസ്റ്റർ. മറുവശത്ത്, ഒരു ഫയലിന് അനുവദിച്ചിട്ടുള്ള ഡിസ്ക് മെമ്മറിയുടെ ഏറ്റവും കുറഞ്ഞ വിലാസ യൂണിറ്റാണ് ക്ലസ്റ്റർ. ആ. ഒരു ഫയലോ ഡയറക്ടറിയോ ക്ലസ്റ്ററുകളുടെ ഒരു പൂർണ്ണസംഖ്യ ഉൾക്കൊള്ളുന്നു. ഡിസ്കിലേക്ക് ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുന്നതിനും എഴുതുന്നതിനും, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം അതിനായി നിരവധി സ്വതന്ത്ര ഡിസ്ക് ക്ലസ്റ്ററുകൾ അനുവദിക്കുന്നു. ഈ ക്ലസ്റ്ററുകൾ പരസ്പരം പിന്തുടരേണ്ടതില്ല. ഓരോ ഫയലിനും, ആ ഫയലിലേക്ക് അസൈൻ ചെയ്‌തിരിക്കുന്ന എല്ലാ ക്ലസ്റ്റർ നമ്പറുകളുടെയും ഒരു ലിസ്റ്റ് സംഭരിച്ചിരിക്കുന്നു.

സെക്ടറുകൾ ഉപയോഗിക്കുന്നതിന് പകരം ഡാറ്റ ഏരിയയെ ക്ലസ്റ്ററുകളായി വിഭജിക്കുന്നത് നിങ്ങളെ അനുവദിക്കുന്നു:

· FAT പട്ടികയുടെ വലിപ്പം കുറയ്ക്കുക;

· ഫയൽ വിഘടനം കുറയ്ക്കുക;

· ഫയൽ ശൃംഖലകളുടെ ദൈർഘ്യം കുറയുന്നു Þ ഫയൽ ആക്സസ് വേഗത്തിലാക്കുന്നു.

എന്നിരുന്നാലും, വളരെ വലിയ ഒരു ക്ലസ്റ്റർ വലുപ്പം ഡാറ്റ ഏരിയയുടെ കാര്യക്ഷമമല്ലാത്ത ഉപയോഗത്തിലേക്ക് നയിക്കുന്നു, പ്രത്യേകിച്ചും ധാരാളം ചെറിയ ഫയലുകളുടെ കാര്യത്തിൽ (എല്ലാത്തിനുമുപരി, ഓരോ ഫയലിനും ശരാശരി പകുതി ക്ലസ്റ്റർ നഷ്ടപ്പെടും).

ആധുനിക ഫയൽ സിസ്റ്റങ്ങളിൽ (FAT 32, HPFS, NTFS) ക്ലസ്റ്റർ വലുപ്പം (പരമാവധി 4 KB) പരിമിതപ്പെടുത്തി ഈ പ്രശ്നം പരിഹരിക്കുന്നു.

ഡാറ്റ ഏരിയ മാപ്പ് ആണ് ടി ഫയൽ അലോക്കേഷൻ പട്ടിക (ഫയൽ അലോക്കേഷൻ ടേബിൾ - FAT) FAT ടേബിളിൻ്റെ ഓരോ ഘടകവും (12, 16 അല്ലെങ്കിൽ 32 ബിറ്റുകൾ) ഒരു ഡിസ്ക് ക്ലസ്റ്ററുമായി യോജിക്കുകയും അതിൻ്റെ അവസ്ഥയെ വിശേഷിപ്പിക്കുകയും ചെയ്യുന്നു: ഫ്രീ, തിരക്കുള്ള അല്ലെങ്കിൽ മോശം ക്ലസ്റ്റർ.

· ഒരു ഫയലിലേക്ക് ഒരു ക്ലസ്റ്റർ അനുവദിച്ചിട്ടുണ്ടെങ്കിൽ (അതായത്, തിരക്കിലാണ്), അപ്പോൾ അനുബന്ധ FAT ഘടകത്തിൽ ഫയലിൻ്റെ അടുത്ത ക്ലസ്റ്ററിൻ്റെ നമ്പർ അടങ്ങിയിരിക്കുന്നു;

· ഫയലിൻ്റെ അവസാന ക്ലസ്റ്റർ FF8h - FFFh (FFF8h - FFFFh) ശ്രേണിയിൽ ഒരു നമ്പർ ഉപയോഗിച്ച് അടയാളപ്പെടുത്തിയിരിക്കുന്നു;

· ക്ലസ്റ്റർ സ്വതന്ത്രമാണെങ്കിൽ, അതിൽ പൂജ്യം മൂല്യം 000h (0000h) അടങ്ങിയിരിക്കുന്നു;

· ഉപയോഗശൂന്യമായ (പരാജയപ്പെട്ട) ഒരു ക്ലസ്റ്റർ FF7h (FFF7h) എന്ന സംഖ്യയിൽ അടയാളപ്പെടുത്തിയിരിക്കുന്നു.

അങ്ങനെ, FAT പട്ടികയിൽ, ഒരേ ഫയലിൽ ഉൾപ്പെടുന്ന ക്ലസ്റ്ററുകൾ ചങ്ങലകളിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു.

ലോജിക്കൽ ഡിസ്കിൻ്റെ ബൂട്ട് റെക്കോർഡിന് ശേഷം ഫയൽ അലോക്കേഷൻ ടേബിൾ സൂക്ഷിക്കുന്നു; അതിൻ്റെ കൃത്യമായ സ്ഥാനം ബൂട്ട് സെക്ടറിലെ ഒരു പ്രത്യേക ഫീൽഡിൽ വിവരിച്ചിരിക്കുന്നു.

പരസ്പരം പിന്തുടരുന്ന രണ്ട് സമാന പകർപ്പുകളിലാണ് ഇത് സംഭരിച്ചിരിക്കുന്നത്. പട്ടികയുടെ ആദ്യ പകർപ്പ് നശിച്ചാൽ, രണ്ടാമത്തേത് ഉപയോഗിക്കുന്നു.

ഡിസ്ക് ആക്‌സസ് സമയത്ത് FAT വളരെ തീവ്രമായി ഉപയോഗിക്കുന്നതിനാൽ, ഇത് സാധാരണയായി റാമിലേക്ക് (I/O ബഫറുകളിലേക്കോ കാഷെയിലേക്കോ) ലോഡുചെയ്യുകയും കഴിയുന്നിടത്തോളം അവിടെ തുടരുകയും ചെയ്യുന്നു.

ഫയലുകളുടെ മന്ദഗതിയിലുള്ള പ്രോസസ്സിംഗ് ആണ് FAT ൻ്റെ പ്രധാന പോരായ്മ. ഒരു ഫയൽ സൃഷ്ടിക്കുമ്പോൾ, ആദ്യത്തെ സൗജന്യ ക്ലസ്റ്റർ അനുവദിക്കുന്നതാണ് നിയമം. ഇത് ഡിസ്ക് ഫ്രാഗ്മെൻ്റേഷനിലേക്കും സങ്കീർണ്ണമായ ഫയൽ ശൃംഖലയിലേക്കും നയിക്കുന്നു. ഇത് ഫയലുകളുമായുള്ള മന്ദഗതിയിലുള്ള പ്രവർത്തനത്തിന് കാരണമാകുന്നു.

FAT പട്ടിക കാണാനും എഡിറ്റ് ചെയ്യാനും നിങ്ങൾക്ക് ഉപയോഗിക്കാം യൂട്ടിലിറ്റിഡിസ്ക്എഡിറ്റർ.

ഫയലിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ റൂട്ട് ഡയറക്ടറി എന്ന മറ്റൊരു ഘടനയിൽ സംഭരിച്ചിരിക്കുന്നു. ഓരോ ലോജിക്കൽ ഡ്രൈവിനും അതിൻ്റേതായ റൂട്ട് ഡയറക്ടറി (ROOT) ഉണ്ട്.

റൂട്ട് ഡയറക്ടറി ഫയലുകളും മറ്റ് ഡയറക്ടറികളും വിവരിക്കുന്നു. ഒരു ഡയറക്‌ടറി ഘടകം ഒരു ഫയൽ ഡിസ്‌ക്രിപ്‌റ്ററാണ്.

ഓരോ ഫയലും ഡയറക്‌ടറി ഡിസ്ക്രിപ്റ്ററും അത് ഉൾക്കൊള്ളുന്നു

· പേര്

· വിപുലീകരണം

സൃഷ്ടിച്ച തീയതി അല്ലെങ്കിൽ അവസാനത്തെ പരിഷ്ക്കരണം

· സൃഷ്ടിക്കപ്പെട്ട സമയം അല്ലെങ്കിൽ അവസാനത്തെ പരിഷ്ക്കരണം

ആട്രിബ്യൂട്ടുകൾ (ആർക്കൈവ്, ഡയറക്ടറി ആട്രിബ്യൂട്ട്, വോളിയം ആട്രിബ്യൂട്ട്, സിസ്റ്റം, മറച്ചത്, വായിക്കാൻ മാത്രം)

· ഫയൽ ദൈർഘ്യം (ഒരു ഡയറക്‌ടറിക്ക് - 0)

· ഉപയോഗിക്കാത്ത റിസർവ്ഡ് ഫീൽഡ്

ഒരു ഫയലിലേക്കോ ഡയറക്ടറിയിലേക്കോ അനുവദിച്ചിരിക്കുന്ന ക്ലസ്റ്ററുകളുടെ ശൃംഖലയിലെ ആദ്യ ക്ലസ്റ്ററിൻ്റെ എണ്ണം; ഈ നമ്പർ ലഭിച്ച ശേഷം, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, FAT പട്ടികയെ പരാമർശിച്ച്, ഫയലിൻ്റെ മറ്റെല്ലാ ക്ലസ്റ്റർ നമ്പറുകളും കണ്ടെത്തുന്നു.

അതിനാൽ, ഉപയോക്താവ് നിർവ്വഹണത്തിനായി ഫയൽ സമാരംഭിക്കുന്നു. നിലവിലെ ഡയറക്‌ടറിയിലെ ഫയലുകളുടെ വിവരണങ്ങൾ നോക്കി ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ആവശ്യമുള്ള പേരുള്ള ഒരു ഫയലിനായി തിരയുന്നു. നിലവിലെ ഡയറക്‌ടറിയിൽ ആവശ്യമായ ഘടകം കണ്ടെത്തുമ്പോൾ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഈ ഫയലിൻ്റെ ആദ്യ ക്ലസ്റ്റർ നമ്പർ വായിക്കുന്നു, തുടർന്ന് ശേഷിക്കുന്ന ക്ലസ്റ്റർ നമ്പറുകൾ നിർണ്ണയിക്കാൻ FAT പട്ടിക ഉപയോഗിക്കുന്നു. ഈ ക്ലസ്റ്ററുകളിൽ നിന്നുള്ള ഡാറ്റ റാമിലേക്ക് റീഡ് ചെയ്യുന്നു, തുടർച്ചയായ ഒരു വിഭാഗത്തിലേക്ക് സംയോജിപ്പിക്കുന്നു. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഫയലിലേക്ക് നിയന്ത്രണം കൈമാറുന്നു, പ്രോഗ്രാം പ്രവർത്തിക്കാൻ തുടങ്ങുന്നു.

റൂട്ട് ഡയറക്‌ടറി കാണാനും എഡിറ്റ് ചെയ്യാനും നിങ്ങൾക്കും ഉപയോഗിക്കാം യൂട്ടിലിറ്റിഡിസ്ക്എഡിറ്റർ.

ഫയൽ സിസ്റ്റം VFAT

VFAT (വെർച്വൽ FAT) ഫയൽ സിസ്റ്റം ആദ്യം വിൻഡോസ് വർക്ക്ഗ്രൂപ്പുകൾ 3.11-ൽ പ്രത്യക്ഷപ്പെട്ടു, കൂടാതെ സംരക്ഷിത മോഡ് ഫയൽ I/O-യ്‌ക്കായി രൂപകൽപ്പന ചെയ്‌തതാണ്.

ഈ ഫയൽ സിസ്റ്റം വിൻഡോസ് 95 ൽ ഉപയോഗിക്കുന്നു.

ഇത് Windows NT 4-ലും പിന്തുണയ്ക്കുന്നു.

വിൻഡോസ് 95-ൻ്റെ നേറ്റീവ് 32-ബിറ്റ് ഫയൽ സിസ്റ്റമാണ് VFAT. ഇത് നിയന്ത്രിക്കുന്നത് VFAT .VXD ഡ്രൈവറാണ്.

VFAT എല്ലാ ഫയൽ പ്രവർത്തനങ്ങൾക്കും 32-ബിറ്റ് കോഡ് ഉപയോഗിക്കുന്നു കൂടാതെ 32-ബിറ്റ് പരിരക്ഷിത മോഡ് ഡ്രൈവറുകൾ ഉപയോഗിക്കാനും കഴിയും.

പക്ഷേ, ഫയൽ അലോക്കേഷൻ ടേബിൾ എൻട്രികൾ 12- അല്ലെങ്കിൽ 16-ബിറ്റ് ആയി തുടരുന്നു, അതിനാൽ ഡിസ്കും അതേ ഡാറ്റാ ഘടന (FAT) ഉപയോഗിക്കുന്നു. ആ. എഫ് പട്ടിക ഫോർമാറ്റ്VFAT തന്നെയാണ്, FAT ഫോർമാറ്റ് പോലെ.

"8.3" പേരുകൾക്കൊപ്പം VFAT നീണ്ട ഫയൽ നാമങ്ങൾ പിന്തുണയ്ക്കുന്നു. (നീണ്ട പേരുകൾക്കുള്ള പിന്തുണയുള്ള VFAT പലപ്പോഴും FAT ആണെന്ന് പറയപ്പെടുന്നു).

വലിയ ലോജിക്കൽ ഡിസ്കിൻ്റെ വലിപ്പവും ലോജിക്കൽ ഡിസ്കിൻ്റെ തന്നെ വലിപ്പത്തിലുള്ള നിയന്ത്രണങ്ങളും ഉള്ള വലിയ ക്ലസ്റ്ററിംഗ് നഷ്ടമാണ് VFAT ൻ്റെ പ്രധാന പോരായ്മ.

ഫയൽ സിസ്റ്റം കൊഴുപ്പ് 32

FAT ടേബിൾ ഉപയോഗിക്കുന്നതിനുള്ള ആശയത്തിൻ്റെ ഒരു പുതിയ നിർവ്വഹണമാണിത്.

FAT 32 പൂർണ്ണമായും സ്വയം ഉൾക്കൊള്ളുന്ന 32-ബിറ്റ് ഫയൽ സിസ്റ്റമാണ്.

ആദ്യം ഉപയോഗിച്ചത് Windows OSR 2 (OEM സർവീസ് റിലീസ് 2).

നിലവിൽ, Windows 98, Windows ME എന്നിവയിൽ FAT 32 ഉപയോഗിക്കുന്നു.

മുമ്പത്തെ FAT നടപ്പിലാക്കലുകളേക്കാൾ നിരവധി മെച്ചപ്പെടുത്തലുകളും കൂട്ടിച്ചേർക്കലുകളും ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

1. ചെറിയ ക്ലസ്റ്ററുകൾ (4 കെബി) ഉപയോഗിക്കുന്നതിനാൽ ഡിസ്ക് സ്പേസ് കൂടുതൽ കാര്യക്ഷമമായി ഉപയോഗിക്കുന്നു - ഇത് 15% വരെ ലാഭിക്കുമെന്ന് കണക്കാക്കപ്പെടുന്നു.

2. നിർണായക ഡാറ്റാ ഘടനകളുടെ പകർപ്പുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു വിപുലീകൃത ബൂട്ട് റെക്കോർഡ് ഉണ്ട് Þ ഡിസ്ക് ഘടനകൾക്ക് കേടുപാടുകൾ വരുത്തുന്നതിന് ഡിസ്കിൻ്റെ പ്രതിരോധം വർദ്ധിപ്പിക്കുന്നു

3. സ്റ്റാൻഡേർഡ് ഒന്നിന് പകരം FAT ബാക്കപ്പ് ഉപയോഗിക്കാം.

4. റൂട്ട് ഡയറക്‌ടറി നീക്കാൻ കഴിയും, മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, റൂട്ട് ഡയറക്‌ടറി ഏത് സ്ഥലത്തും ആകാം Þ റൂട്ട് ഡയറക്‌ടറിയുടെ വലുപ്പത്തിലുള്ള പരിമിതി നീക്കം ചെയ്യുന്നു (512 ഘടകങ്ങൾ, കാരണം ROOT ഒരു ക്ലസ്റ്ററിനെ ഉൾക്കൊള്ളണം).

5. മെച്ചപ്പെട്ട റൂട്ട് ഡയറക്ടറി ഘടന

അധിക ഫീൽഡുകൾ പ്രത്യക്ഷപ്പെട്ടു, ഉദാഹരണത്തിന്, സൃഷ്ടിച്ച സമയം, സൃഷ്ടിച്ച തീയതി, അവസാന ആക്സസ് തീയതി, ചെക്ക്സം

ദൈർഘ്യമേറിയ ഫയൽ നാമത്തിന് ഇനിയും ഒന്നിലധികം ഹാൻഡിലുകൾ ഉണ്ട്.

ഫയൽ സിസ്റ്റം എച്ച്പിഎഫ്എസ്

HPFS (ഹൈ പെർഫോമൻസ് ഫയൽ സിസ്റ്റം) ഒരു ഉയർന്ന പെർഫോമൻസ് ഫയൽ സിസ്റ്റമാണ്.

HPFS ആദ്യം OS/2 1.2, LAN മാനേജർ എന്നിവയിൽ പ്രത്യക്ഷപ്പെട്ടു.

ലിസ്റ്റ് ചെയ്യാം HPFS-ൻ്റെ പ്രധാന സവിശേഷതകൾ.

· പ്രധാന വ്യത്യാസം ഡിസ്കിൽ ഫയലുകൾ സ്ഥാപിക്കുന്നതിനുള്ള അടിസ്ഥാന തത്വങ്ങളും ഫയലുകളുടെ സ്ഥാനം സംബന്ധിച്ച വിവരങ്ങൾ സംഭരിക്കുന്നതിനുള്ള തത്വങ്ങളുമാണ്. ഈ തത്വങ്ങൾക്ക് നന്ദി, HPFS ഉണ്ട് ഉയർന്ന പ്രകടനവും തെറ്റ് സഹിഷ്ണുതയും വിശ്വസനീയമാണ്ഫയൽ സിസ്റ്റം.

· HPFS-ൽ ഡിസ്ക് സ്പേസ് അനുവദിച്ചിരിക്കുന്നത് ക്ലസ്റ്ററുകളിലല്ല (FAT പോലെ) ബ്ലോക്കുകൾ.ആധുനിക നിർവ്വഹണത്തിൽ, ബ്ലോക്ക് വലുപ്പം ഒരു സെക്ടറിന് തുല്യമായി എടുക്കുന്നു, എന്നാൽ തത്വത്തിൽ ഇത് വ്യത്യസ്ത വലുപ്പത്തിലായിരിക്കാം. (വാസ്തവത്തിൽ, ഒരു ബ്ലോക്ക് ഒരു ക്ലസ്റ്ററാണ്, ഒരു ക്ലസ്റ്റർ മാത്രമേ എല്ലായ്പ്പോഴും ഒരു സെക്ടറിന് തുല്യമാണ്). അത്തരം ചെറിയ ബ്ലോക്കുകളിൽ ഫയലുകൾ സ്ഥാപിക്കുന്നത് അനുവദിക്കുന്നു ഡിസ്ക് സ്പേസ് കൂടുതൽ കാര്യക്ഷമമായി ഉപയോഗിക്കുക, ഫ്രീ സ്‌പെയ്‌സിൻ്റെ ഓവർഹെഡ് ഒരു ഫയലിന് ശരാശരി (അര സെക്ടർ) 256 ബൈറ്റുകൾ മാത്രമായതിനാൽ. ക്ലസ്റ്റർ വലിപ്പം കൂടുന്തോറും ഡിസ്കിൻ്റെ ഇടം പാഴാകുമെന്ന് ഓർമ്മിക്കുക.

· HPFS സിസ്റ്റം തുടർച്ചയായ ബ്ലോക്കുകളിൽ ഫയൽ ക്രമീകരിക്കാൻ ശ്രമിക്കുന്നു, അല്ലെങ്കിൽ, ഇത് സാധ്യമല്ലെങ്കിൽ, അത് ഡിസ്കിൽ സ്ഥാപിക്കുക. പരിധികൾഫയലിൻ്റെ (ശകലങ്ങൾ) ഭൗതികമായി പരസ്പരം കഴിയുന്നത്ര അടുത്തായിരുന്നു. ഈ സമീപനം അനിവാര്യമാണ് തല പൊസിഷനിംഗ് സമയം എഴുത്ത്/വായന കുറയ്ക്കുന്നുഹാർഡ് ഡ്രൈവും കാത്തിരിപ്പ് സമയവും (ആവശ്യമുള്ള ട്രാക്കിൽ റീഡ്/റൈറ്റ് ഹെഡ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള കാലതാമസം). ഒരു FAT ഫയലിൽ ആദ്യത്തെ ഫ്രീ ക്ലസ്റ്റർ ലളിതമായി അനുവദിച്ചിട്ടുണ്ടെന്ന് നമുക്ക് ഓർക്കാം.

വിസ്താരം(വിസ്താരം) - ഡിസ്കിൻ്റെ അടുത്തുള്ള സെക്ടറുകളിൽ സ്ഥിതിചെയ്യുന്ന ഫയൽ ശകലങ്ങൾ. ഒരു ഫയലിന് അത് വിഘടിച്ചിട്ടില്ലെങ്കിൽ ഒരു പരിധിയെങ്കിലും ഉണ്ടായിരിക്കും, അല്ലാത്തപക്ഷം ഒന്നിലധികം അളവുകൾ.

· ഉപയോഗിച്ചത് രീതിഫയലുകളുടെ ലൊക്കേഷനെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംഭരിക്കുന്നതിനും തിരയുന്നതിനുമുള്ള സമതുലിതമായ ബൈനറി മരങ്ങൾ (ഡയറക്‌ടറികൾ ഡിസ്കിൻ്റെ മധ്യഭാഗത്ത് സംഭരിച്ചിരിക്കുന്നു, കൂടാതെ, ഡയറക്‌ടറികളുടെ സ്വയമേവ തരംതിരിക്കൽ നൽകിയിട്ടുണ്ട്), ഇത് അത്യാവശ്യമാണ് ഉത്പാദനക്ഷമത വർദ്ധിപ്പിക്കുന്നു HPFS (വേഴ്സസ്. FAT).

· HPFS അനുവദിക്കുന്ന പ്രത്യേക വിപുലീകൃത ഫയൽ ആട്രിബ്യൂട്ടുകൾ നൽകുന്നു ഫയലുകളിലേക്കും ഡയറക്ടറികളിലേക്കും ആക്സസ് നിയന്ത്രിക്കുക.

വിപുലീകരിച്ച ആട്രിബ്യൂട്ടുകൾ (വിപുലീകരിച്ച ആട്രിബ്യൂട്ടുകൾ, EAs ) ഫയലിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ സംഭരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ഓരോ ഫയലും അതിൻ്റെ തനതായ ഗ്രാഫിക് (ഐക്കൺ), ഫയൽ വിവരണം, അഭിപ്രായം, ഫയൽ ഉടമയുടെ വിവരങ്ങൾ മുതലായവയുമായി ബന്ധപ്പെടുത്താവുന്നതാണ്.

C HPFS പാർട്ടീഷൻ ഘടന


HPFS ഇൻസ്റ്റാൾ ചെയ്ത പാർട്ടീഷൻ്റെ തുടക്കത്തിൽ മൂന്ന് ഉണ്ട് ബ്ലോക്ക് നിയന്ത്രണങ്ങൾ:

ബൂട്ട് ബ്ലോക്ക്

അധിക ബ്ലോക്ക് (സൂപ്പർ ബ്ലോക്ക്) കൂടാതെ

· സ്പെയർ (ബാക്കപ്പ്) ബ്ലോക്ക് (സ്പെയർ ബ്ലോക്ക്).

അവർ 18 മേഖലകൾ ഉൾക്കൊള്ളുന്നു.

HPFS-ൽ ശേഷിക്കുന്ന എല്ലാ ഡിസ്ക് സ്ഥലങ്ങളും അടുത്തുള്ള സെക്ടറുകളിൽ നിന്ന് ഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു - വരകൾ(ബാൻഡ് - സ്ട്രിപ്പ്, ടേപ്പ്). ഓരോ സ്ട്രിപ്പും 8 MB ഡിസ്ക് സ്പേസ് എടുക്കുന്നു.

ഓരോ സ്ട്രിപ്പിനും അതിൻ്റേതായ ഉണ്ട് സെക്ടർ അലോക്കേഷൻ ബിറ്റ്മാപ്പ്. തന്നിരിക്കുന്ന ബാൻഡിൻ്റെ ഏതൊക്കെ മേഖലകളാണ് അധിനിവേശമുള്ളതെന്നും ഏതൊക്കെ സൗജന്യമാണെന്നും ബിറ്റ്മാപ്പ് കാണിക്കുന്നു. ഒരു ഡാറ്റാ സ്ട്രിപ്പിൻ്റെ ഓരോ സെക്ടറും അതിൻ്റെ ബിറ്റ്മാപ്പിലെ ഒരു ബിറ്റുമായി യോജിക്കുന്നു. ബിറ്റ് = 1 ആണെങ്കിൽ, സെക്ടർ തിരക്കിലാണ്, 0 ആണെങ്കിൽ, അത് സൗജന്യമാണ്.

രണ്ട് പാതകളുടെ ബിറ്റ്മാപ്പുകൾ ഡിസ്കിൽ വശങ്ങളിലായി സ്ഥിതിചെയ്യുന്നു, അതുപോലെ തന്നെ പാതകളും. അതായത്, വരകളുടെയും കാർഡുകളുടെയും ക്രമം ചിത്രത്തിൽ കാണുന്നത് പോലെയാണ്.

എന്നിവയുമായി താരതമ്യം ചെയ്യുകകൊഴുപ്പ്. മുഴുവൻ ഡിസ്കിനും (FAT പട്ടിക) ഒരു "ബിറ്റ് മാപ്പ്" മാത്രമേയുള്ളൂ. ഇത് ഉപയോഗിച്ച് പ്രവർത്തിക്കാൻ, നിങ്ങൾ ശരാശരി പകുതി ഡിസ്കിലുടനീളം റീഡ് / റൈറ്റ് ഹെഡ്സ് നീക്കേണ്ടതുണ്ട്.

ഒരു ഹാർഡ് ഡിസ്കിൻ്റെ റീഡ്/റൈറ്റ് ഹെഡ്സ് സ്ഥാപിക്കുന്ന സമയം കുറയ്ക്കുന്നതിനാണ് HPFS-ൽ ഡിസ്കിനെ സ്ട്രൈപ്പുകളായി തിരിച്ചിരിക്കുന്നത്.

നമുക്ക് പരിഗണിക്കാം നിയന്ത്രണ ബ്ലോക്കുകൾ.

ബൂട്ട് ബ്ലോക്ക് (ബൂട്ട്തടയുക)

വോളിയം നാമം, അതിൻ്റെ സീരിയൽ നമ്പർ, ബയോസ് പാരാമീറ്റർ ബ്ലോക്ക്, ബൂട്ട് പ്രോഗ്രാം എന്നിവ അടങ്ങിയിരിക്കുന്നു.

ബൂട്ട്സ്ട്രാപ്പ് പ്രോഗ്രാം ഫയൽ കണ്ടെത്തുന്നു OS 2 LDR , ഇത് മെമ്മറിയിലേക്ക് വായിക്കുകയും ഈ OS ബൂട്ട് പ്രോഗ്രാമിലേക്ക് നിയന്ത്രണം കൈമാറുകയും ചെയ്യുന്നു, അത് ഡിസ്കിൽ നിന്ന് മെമ്മറിയിലേക്ക് OS/2 കേർണൽ ലോഡ് ചെയ്യുന്നു - OS 2 KRNL. ഇതിനകം OS 2 KRIML ഫയലിൽ നിന്നുള്ള വിവരങ്ങൾ ഉപയോഗിക്കുന്നുകോൺഫിഗറേഷൻ. എസ്.വൈ.എസ് ആവശ്യമായ മറ്റെല്ലാ പ്രോഗ്രാം മൊഡ്യൂളുകളും ഡാറ്റ ബ്ലോക്കുകളും മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്യുന്നു.

0 മുതൽ 15 വരെയുള്ള സെക്ടറുകളിലാണ് ബൂട്ട് ബ്ലോക്ക് സ്ഥിതി ചെയ്യുന്നത്.

സൂപ്പർതടയുക(സൂപ്പർ ബ്ലോക്ക്)

അടങ്ങിയിരിക്കുന്നു

· ബിറ്റ്മാപ്പുകളുടെ ഒരു ലിസ്റ്റിലേക്കുള്ള പോയിൻ്റർ (ബിറ്റ്മാപ്പ് ബ്ലോക്ക് ലിസ്റ്റ്). ഫ്രീ സെക്ടറുകൾ കണ്ടുപിടിക്കാൻ ഉപയോഗിക്കുന്ന ബിറ്റ്മാപ്പുകൾ അടങ്ങുന്ന ഡിസ്കിലെ എല്ലാ ബ്ലോക്കുകളും ഈ ലിസ്റ്റ് ലിസ്റ്റ് ചെയ്യുന്നു;

· വികലമായ ബ്ലോക്കുകളുടെ ലിസ്റ്റിലേക്കുള്ള പോയിൻ്റർ (മോശമായ ബ്ലോക്ക് ലിസ്റ്റ്). സിസ്റ്റം ഒരു കേടായ ബ്ലോക്ക് കണ്ടെത്തുമ്പോൾ, അത് ഈ ലിസ്റ്റിലേക്ക് ചേർക്കുന്നു, വിവരങ്ങൾ സംഭരിക്കാൻ ഇനി ഉപയോഗിക്കില്ല;

· ഡയറക്ടറി ബാൻഡിലേക്കുള്ള പോയിൻ്റർ

· റൂട്ട് ഡയറക്ടറിയുടെ ഫയൽ നോഡിലേക്കുള്ള (F-node) പോയിൻ്റർ,

CHKDSK പാർട്ടീഷൻ്റെ അവസാന സ്കാൻ തീയതി;

സ്ട്രൈപ്പ് വലുപ്പത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ (നിലവിലെ HPFS നടപ്പിലാക്കലിൽ - 8 MB).

സെക്ടർ 16ലാണ് സൂപ്പർ ബ്ലോക്ക് സ്ഥിതി ചെയ്യുന്നത്.

സ്പെയർതടയുക(സ്പെയർ ബ്ലോക്ക്)

അടങ്ങിയിരിക്കുന്നു

· എമർജൻസി റീപ്ലേസ്‌മെൻ്റ് മാപ്പിലേക്കുള്ള പോയിൻ്റർ (hotfix മാപ്പ് അല്ലെങ്കിൽ hotfix -reaas);

· സൗജന്യ സ്പെയർ ബ്ലോക്കുകളുടെ ലിസ്റ്റിലേക്കുള്ള പോയിൻ്റർ (ഡയറക്ടറി എമർജൻസി ഫ്രീ ബ്ലോക്ക് ലിസ്റ്റ്);

നിരവധി സിസ്റ്റം ഫ്ലാഗുകളും ഡിസ്ക്രിപ്റ്ററുകളും.

ഈ ബ്ലോക്ക് ഡിസ്കിൻ്റെ സെക്ടർ 17 ൽ സ്ഥിതിചെയ്യുന്നു.

ബാക്കപ്പ് ബ്ലോക്ക് HPFS ഫയൽ സിസ്റ്റത്തിന് ഉയർന്ന പിഴവ് സഹിഷ്ണുത നൽകുന്നു കൂടാതെ ഡിസ്കിലെ കേടായ ഡാറ്റ വീണ്ടെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

ഫയൽ പ്ലേസ്മെൻ്റ് തത്വം

വിസ്താരം(വിസ്താരം) - ഡിസ്കിൻ്റെ അടുത്തുള്ള സെക്ടറുകളിൽ സ്ഥിതിചെയ്യുന്ന ഫയൽ ശകലങ്ങൾ. ഒരു ഫയലിന് അത് വിഘടിച്ചിട്ടില്ലെങ്കിൽ ഒരു പരിധിയെങ്കിലും ഉണ്ടായിരിക്കും, അല്ലാത്തപക്ഷം ഒന്നിലധികം അളവുകൾ.

ഒരു ഹാർഡ് ഡിസ്കിൻ്റെ റീഡ്/റൈറ്റ് ഹെഡ്സ് സ്ഥാപിക്കാൻ എടുക്കുന്ന സമയം കുറയ്ക്കുന്നതിന്, HPFS സിസ്റ്റം ശ്രമിക്കുന്നത്

1) ഫയൽ അടുത്തുള്ള ബ്ലോക്കുകളിൽ സ്ഥാപിക്കുക;

2) ഇത് സാധ്യമല്ലെങ്കിൽ, വിഘടിച്ച ഫയലിൻ്റെ പരിധികൾ പരസ്പരം കഴിയുന്നത്ര അടുത്ത് വയ്ക്കുക,

ഇത് ചെയ്യുന്നതിന്, HPFS സ്ഥിതിവിവരക്കണക്കുകൾ ഉപയോഗിക്കുന്നു കൂടാതെ വളരുന്ന ഫയലുകളുടെ അവസാനത്തിൽ കുറഞ്ഞത് 4 കിലോബൈറ്റ് സ്ഥലമെങ്കിലും സോപാധികമായി റിസർവ് ചെയ്യാൻ ശ്രമിക്കുന്നു.

ഫയൽ ലൊക്കേഷൻ വിവരങ്ങൾ സംഭരിക്കുന്നതിനുള്ള തത്വങ്ങൾ

ഡിസ്കിലെ ഓരോ ഫയലിനും ഡയറക്ടറിക്കും അതിൻ്റേതായ ഉണ്ട് ഫയൽ നോഡ് എഫ്-നോഡ്. ഒരു ഫയലിൻ്റെ സ്ഥാനത്തെക്കുറിച്ചും അതിൻ്റെ വിപുലമായ ആട്രിബ്യൂട്ടുകളെക്കുറിച്ചും ഉള്ള വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു ഘടനയാണിത്.

ഓരോ എഫ്-നോഡും ഉൾക്കൊള്ളുന്നു ഒരു മേഖലകൂടാതെ എല്ലായ്‌പ്പോഴും അതിൻ്റെ ഫയലിനോ ഡയറക്‌ടറിക്കോ അടുത്തായി സ്ഥിതിചെയ്യുന്നു (സാധാരണയായി ഫയലിനോ ഡയറക്‌ടറിക്കോ തൊട്ടുമുമ്പ്). എഫ്-നോഡ് ഒബ്‌ജക്‌റ്റിൽ അടങ്ങിയിരിക്കുന്നു

· നീളം,

ഫയലിൻ്റെ പേരിൻ്റെ ആദ്യ 15 പ്രതീകങ്ങൾ,

· പ്രത്യേക സേവന വിവരങ്ങൾ,

· ഫയൽ ആക്സസ് സംബന്ധിച്ച സ്ഥിതിവിവരക്കണക്കുകൾ,

· വിപുലീകരിച്ച ഫയൽ ആട്രിബ്യൂട്ടുകൾ,

· ആക്സസ് അവകാശങ്ങളുടെ ഒരു ലിസ്റ്റ് (അല്ലെങ്കിൽ ഈ ലിസ്റ്റിൻ്റെ ഒരു ഭാഗം മാത്രം, അത് വളരെ വലുതാണെങ്കിൽ); വിപുലീകൃത ആട്രിബ്യൂട്ടുകൾ ഫയൽ നോഡിന് വളരെ വലുതാണെങ്കിൽ, അവയിലേക്കുള്ള ഒരു പോയിൻ്റർ അതിൽ എഴുതിയിരിക്കുന്നു.

ഫയലിൻ്റെ സ്ഥാനം, കീഴ്വഴക്കം മുതലായവയെക്കുറിച്ചുള്ള അനുബന്ധ വിവരങ്ങൾ.

ഫയൽ അടുത്തടുത്താണെങ്കിൽ, ഡിസ്കിലെ അതിൻ്റെ സ്ഥാനം രണ്ട് 32-ബിറ്റ് നമ്പറുകളാൽ വിവരിക്കുന്നു. ആദ്യത്തെ നമ്പർ ഫയലിൻ്റെ ആദ്യ ബ്ലോക്കിലേക്കുള്ള ഒരു പോയിൻ്ററാണ്, രണ്ടാമത്തേത് വ്യാപ്തി നീളം (ഫയലിൽ ഉൾപ്പെടുന്ന തുടർച്ചയായ ബ്ലോക്കുകളുടെ എണ്ണം).

ഒരു ഫയൽ വിഘടിച്ചതാണെങ്കിൽ, അതിൻ്റെ വ്യാപ്തികളുടെ സ്ഥാനം 32-ബിറ്റ് നമ്പറുകളുടെ അധിക ജോഡികളാൽ ഫയൽ നോഡിൽ വിവരിച്ചിരിക്കുന്നു.

ഒരു ഫയൽ നോഡിൽ ഒരു ഫയലിൻ്റെ എട്ട് വ്യാപ്തികളെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കാം. ഒരു ഫയലിന് കൂടുതൽ വ്യാപ്തികൾ ഉണ്ടെങ്കിൽ, ഒരു അലോക്കേഷൻ ബ്ലോക്കിലേക്കുള്ള ഒരു പോയിൻ്റർ അതിൻ്റെ ഫയൽ നോഡിലേക്ക് എഴുതുന്നു, അതിൽ 40 പോയിൻ്ററുകൾ വരെ അല്ലെങ്കിൽ ഒരു ഡയറക്ടറി ട്രീ ബ്ലോക്കിന് സമാനമായി മറ്റ് അലോക്കേഷൻ ബ്ലോക്കുകളിലേക്ക് അടങ്ങിയിരിക്കാം.

ഡയറക്ടറി ഘടനയും സ്ഥാനവും

ഡയറക്ടറികൾ സൂക്ഷിക്കാൻ ഉപയോഗിക്കുന്നു ഡിസ്കിൻ്റെ മധ്യഭാഗത്ത് സ്ഥിതി ചെയ്യുന്ന സ്ട്രിപ്പ്.

ഈ സ്ട്രിപ്പ് എന്ന് വിളിക്കുന്നു ഡയറക്ടറിബാൻഡ്.

ഇത് പൂർണ്ണമായും നിറഞ്ഞിട്ടുണ്ടെങ്കിൽ, HPFS മറ്റ് സ്ട്രൈപ്പുകളിൽ ഫയൽ ഡയറക്ടറികൾ സ്ഥാപിക്കാൻ തുടങ്ങുന്നു.

ഈ വിവര ഘടന ഡിസ്കിൻ്റെ മധ്യത്തിൽ സ്ഥാപിക്കുന്നത് ശരാശരി വായന/എഴുത്ത് തല പൊസിഷനിംഗ് സമയം ഗണ്യമായി കുറയ്ക്കുന്നു.

എന്നിരുന്നാലും, HPFS പ്രകടനത്തിന് (ഒരു ലോജിക്കൽ ഡിസ്കിൻ്റെ മധ്യത്തിൽ ഡയറക്‌ടറി ബാൻഡ് സ്ഥാപിക്കുന്നതുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ) ഗണ്യമായി വലിയ സംഭാവന നൽകുന്നത് രീതിഫയലുകളുടെ സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംഭരിക്കുന്നതിനും വീണ്ടെടുക്കുന്നതിനുമുള്ള സമതുലിതമായ ബൈനറി മരങ്ങൾ.

ഫയൽ സിസ്റ്റത്തിൽ അത് ഓർക്കുകകൊഴുപ്പ് ഡയറക്‌ടറിക്ക് ഒരു രേഖീയ ഘടനയുണ്ട്, ഒരു പ്രത്യേക രീതിയിൽ ഓർഡർ ചെയ്തിട്ടില്ല, അതിനാൽ ഒരു ഫയലിനായി തിരയുമ്പോൾ നിങ്ങൾ ആദ്യം മുതൽ തന്നെ അത് തുടർച്ചയായി നോക്കേണ്ടതുണ്ട്.

HPFS-ൽ, ഡയറക്ടറി ഘടനയാണ് അക്ഷരമാലാക്രമത്തിൽ ക്രമീകരിച്ചിരിക്കുന്ന എൻട്രികളുള്ള സമതുലിതമായ വൃക്ഷം.

മരത്തിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഓരോ എൻട്രിയും അടങ്ങിയിരിക്കുന്നു

· ഫയൽ ആട്രിബ്യൂട്ടുകൾ,

· അനുബന്ധ ഫയൽ നോഡിലേക്കുള്ള പോയിൻ്റർ,

ഫയൽ സൃഷ്‌ടിച്ച സമയത്തെയും തീയതിയെയും കുറിച്ചുള്ള വിവരങ്ങൾ, അവസാന അപ്‌ഡേറ്റിൻ്റെയും ആക്‌സസിൻ്റെയും സമയവും തീയതിയും,

വിപുലീകൃത ആട്രിബ്യൂട്ടുകൾ അടങ്ങിയ ഡാറ്റയുടെ ദൈർഘ്യം,

· ഫയൽ ആക്സസ് കൗണ്ടർ,

ഫയലിൻ്റെ പേരിൻ്റെ ദൈർഘ്യം

· പേര് തന്നെ,

· കൂടാതെ മറ്റ് വിവരങ്ങളും.

ഒരു ഡയറക്ടറിയിൽ ഒരു ഫയലിനായി തിരയുമ്പോൾ HPFS ഫയൽ സിസ്റ്റം ബൈനറി ട്രീയുടെ ആവശ്യമായ ശാഖകൾ മാത്രം നോക്കുന്നു. ഈ രീതി ഒരു ഡയറക്‌ടറിയിലെ എല്ലാ എൻട്രികളും തുടർച്ചയായി വായിക്കുന്നതിനേക്കാൾ പലമടങ്ങ് കാര്യക്ഷമമാണ്, ഇത് FAT സിസ്റ്റത്തിൻ്റെ കാര്യമാണ്.

നിലവിലെ HPFS നടപ്പിലാക്കലിൽ ഏതൊക്കെ ഡയറക്ടറികൾ അനുവദിച്ചിരിക്കുന്നു എന്നതിൻ്റെ അടിസ്ഥാനത്തിൽ ഓരോ ബ്ലോക്കിൻ്റെയും വലുപ്പം 2 KB ആണ്. ഫയലിനെ വിവരിക്കുന്ന എൻട്രിയുടെ വലുപ്പം ഫയലിൻ്റെ പേരിൻ്റെ വലുപ്പത്തെ ആശ്രയിച്ചിരിക്കുന്നു. ഒരു പേര് 13 ബൈറ്റുകൾ ആണെങ്കിൽ (8.3 ഫോർമാറ്റിന്), 2 KB ബ്ലോക്കിന് 40 ഫയൽ ഡിസ്ക്രിപ്റ്ററുകൾ വരെ സൂക്ഷിക്കാനാകും. ഒരു ലിസ്റ്റിലൂടെ ബ്ലോക്കുകൾ പരസ്പരം ബന്ധിപ്പിച്ചിരിക്കുന്നു.

പ്രശ്നങ്ങൾ

ഫയലുകൾ പുനർനാമകരണം ചെയ്യുമ്പോൾ, ട്രീ റീബാലൻസിങ് എന്ന് വിളിക്കപ്പെടാം. ഒരു ഫയൽ സൃഷ്‌ടിക്കുകയോ പേരുമാറ്റുകയോ മായ്‌ക്കുകയോ ചെയ്‌താൽ ഫലമുണ്ടാകാം കാസ്കേഡിംഗ് ഡയറക്ടറി ബ്ലോക്കുകൾ. യഥാർത്ഥത്തിൽ, ഫയലിൻ്റെ വലുപ്പം വളർന്നിട്ടില്ലെങ്കിലും ഡിസ്ക് സ്ഥലത്തിൻ്റെ അഭാവം മൂലം ഒരു പേരുമാറ്റം പരാജയപ്പെടാം. ഈ ദുരന്തം ഒഴിവാക്കുന്നതിന്, ഒരു ദുരന്തമുണ്ടായാൽ ഉപയോഗിക്കാവുന്ന ഒരു ചെറിയ സ്വതന്ത്ര ബ്ലോക്കുകളുടെ ഒരു കുളം HPFS പരിപാലിക്കുന്നു. ഈ പ്രവർത്തനത്തിന് ഒരു പൂർണ്ണ ഡിസ്കിൽ അധിക ബ്ലോക്കുകൾ അനുവദിക്കേണ്ടി വന്നേക്കാം. സ്വതന്ത്ര ബ്ലോക്കുകളുടെ ഈ പൂളിലേക്കുള്ള ഒരു പോയിൻ്റർ SpareBlock-ൽ സംഭരിച്ചിരിക്കുന്നു.

ഫയലുകളും ഡയറക്ടറികളും ഡിസ്കിൽ സ്ഥാപിക്കുന്നതിനുള്ള തത്വങ്ങൾഎച്ച്പിഎഫ്എസ്:

· ഫയലുകളുടെ ലൊക്കേഷനെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഡിസ്കിലുടനീളം ചിതറിക്കിടക്കുന്നു, ഓരോ നിർദ്ദിഷ്ട ഫയലിൻ്റെയും രേഖകൾ അടുത്തുള്ള സെക്ടറുകളിൽ (സാധ്യമെങ്കിൽ) സ്ഥിതി ചെയ്യുന്നതും അവയുടെ സ്ഥാനത്തെക്കുറിച്ചുള്ള ഡാറ്റയ്ക്ക് സമീപവുമാണ്;

· ഡയറക്‌ടറികൾ ഡിസ്ക് സ്ഥലത്തിൻ്റെ മധ്യത്തിലാണ് സ്ഥിതി ചെയ്യുന്നത്;

· ഡയറക്‌ടറികൾ അക്ഷരമാലാക്രമത്തിൽ ക്രമീകരിച്ചിരിക്കുന്ന എൻട്രികളുള്ള ഒരു ബൈനറി ബാലൻസ്ഡ് ട്രീ ആയി സംഭരിക്കുന്നു.

HPFS-ലെ ഡാറ്റ സംഭരണത്തിൻ്റെ വിശ്വാസ്യത

ഡിസ്കിലേക്ക് വിവരങ്ങൾ എഴുതുമ്പോൾ സംഭവിക്കുന്ന പിശകുകൾ തിരുത്താനുള്ള ഒരു മാർഗം ഏതൊരു ഫയൽ സിസ്റ്റത്തിനും ഉണ്ടായിരിക്കണം. HPFS സിസ്റ്റം ഇതിനായി ഉപയോഗിക്കുന്നു അടിയന്തിര മാറ്റിസ്ഥാപിക്കൽ സംവിധാനം ( ഹോട്ട്ഫിക്സ്).

ഡിസ്കിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ HPFS ഫയൽ സിസ്റ്റം ഒരു പ്രശ്നം നേരിടുന്നുണ്ടെങ്കിൽ, അത് ഒരു പിശക് സന്ദേശം പ്രദർശിപ്പിക്കുന്നു. ഈ സംഭവവികാസത്തിനായി മുൻകൂട്ടി റിസർവ് ചെയ്തിട്ടുള്ള ഒരു സ്പെയർ സെക്ടറിൽ തകരാറുള്ള സെക്ടറിലേക്ക് എഴുതേണ്ട വിവരങ്ങൾ HPFS സംഭരിക്കുന്നു. സൗജന്യ സ്പെയർ ബ്ലോക്കുകളുടെ ലിസ്റ്റ് HPFS സ്പെയർ ബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്നു. ഒരു സാധാരണ ബ്ലോക്കിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ ഒരു പിശക് കണ്ടെത്തിയാൽ, HPFS സൗജന്യ സ്പെയർ ബ്ലോക്കുകളിൽ ഒന്ന് തിരഞ്ഞെടുത്ത് ഡാറ്റ അവിടെ സംഭരിക്കുന്നു. ഫയൽ സിസ്റ്റം പിന്നീട് അപ്ഡേറ്റ് ചെയ്യുന്നു റിസർവ് യൂണിറ്റിലെ എമർജൻസി റീപ്ലേസ്‌മെൻ്റ് കാർഡ്.

ഈ മാപ്പ് ഇരട്ട വാക്കുകളുടെ ജോഡികളാണ്, അവയിൽ ഓരോന്നും 32-ബിറ്റ് സെക്ടർ നമ്പറാണ്.

ആദ്യത്തെ സംഖ്യ വികലമായ മേഖലയെ സൂചിപ്പിക്കുന്നു, രണ്ടാമത്തേത് അത് മാറ്റിസ്ഥാപിക്കാൻ തിരഞ്ഞെടുത്ത ലഭ്യമായ സ്പെയർ സെക്ടറുകളിലെ സെക്ടറിനെ സൂചിപ്പിക്കുന്നു.

വികലമായ സെക്‌ടറിനെ ഒരു സ്പെയർ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിച്ച ശേഷം, എമർജൻസി റീപ്ലേസ്‌മെൻ്റ് മാപ്പ് ഡിസ്‌കിലേക്ക് എഴുതുന്നു, കൂടാതെ ഒരു ഡിസ്‌ക് റൈറ്റ് പിശക് സംഭവിച്ചതായി ഉപയോക്താവിനെ അറിയിക്കുന്ന ഒരു പോപ്പ്-അപ്പ് വിൻഡോ സ്ക്രീനിൽ ദൃശ്യമാകുന്നു. ഓരോ തവണയും സിസ്റ്റം ഒരു ഡിസ്ക് സെക്ടർ എഴുതുകയോ വായിക്കുകയോ ചെയ്യുമ്പോൾ, അത് വീണ്ടെടുക്കൽ മാപ്പിലേക്ക് നോക്കുകയും എല്ലാ മോശം സെക്ടർ നമ്പറുകളും അനുബന്ധ ഡാറ്റ ഉപയോഗിച്ച് സ്പെയർ സെക്ടർ നമ്പറുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു.

ഈ സംഖ്യാ വിവർത്തനം സിസ്റ്റം പ്രകടനത്തെ കാര്യമായി ബാധിക്കുന്നില്ല എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്, കാരണം ഇത് ഡിസ്കിലേക്ക് ഫിസിക്കൽ ആക്സസ് ചെയ്യുമ്പോൾ മാത്രമേ പ്രവർത്തിക്കൂ, ഡിസ്ക് കാഷെയിൽ നിന്ന് ഡാറ്റ വായിക്കുമ്പോൾ അല്ല.

ഫയൽ സിസ്റ്റം NTFS

NTFS (ന്യൂ ടെക്‌നോളജി ഫയൽ സിസ്റ്റം) ഫയൽ സിസ്റ്റത്തിൽ മറ്റ് ഫയൽ സിസ്റ്റങ്ങളിൽ നിന്ന് വ്യത്യസ്തമാക്കുന്ന നിരവധി കാര്യമായ മെച്ചപ്പെടുത്തലുകളും മാറ്റങ്ങളും അടങ്ങിയിരിക്കുന്നു.

അപൂർവമായ ഒഴിവാക്കലുകളോടെ എന്നത് ശ്രദ്ധിക്കുക NTFS പാർട്ടീഷനുകൾ നേരിട്ട് പ്രവർത്തിക്കാൻ മാത്രമേ കഴിയൂവിൻഡോസ്എൻ.ടി.നിരവധി OS-കൾക്കായി NTFS വോള്യങ്ങളിൽ നിന്ന് ഫയലുകൾ വായിക്കുന്നതിന് ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റങ്ങളുടെ അനുബന്ധമായ നടപ്പാക്കലുകൾ ഉണ്ടെങ്കിലും.

എന്നിരുന്നാലും, Windows NT-ന് പുറത്ത് NTFS-ൽ പ്രവർത്തിക്കുന്നതിന് പൂർണ്ണമായ നടപ്പാക്കലുകളൊന്നുമില്ല.

വ്യാപകമായി ഉപയോഗിക്കുന്ന Windows 98, Windows Millennium Edition ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ NTFS പിന്തുണയ്ക്കുന്നില്ല.

പ്രധാന സവിശേഷതകൾNT FS

· വലിയ ഡിസ്കുകളിലെ ജോലി കാര്യക്ഷമമായി സംഭവിക്കുന്നു (FAT നേക്കാൾ കൂടുതൽ കാര്യക്ഷമമായി);

· ഫയലുകളിലേക്കും ഡയറക്‌ടറികളിലേക്കും ആക്‌സസ്സ് നിയന്ത്രിക്കുന്നതിനുള്ള ടൂളുകൾ ഉണ്ട് Þ ഫയലുകൾക്കും ഡയറക്ടറികൾക്കും NTFS പാർട്ടീഷനുകൾ പ്രാദേശിക സുരക്ഷ നൽകുന്നു;

· ഒരു ഇടപാട് സംവിധാനം ഏർപ്പെടുത്തിയിട്ടുണ്ട് ലോഗിംഗ്ഫയൽ പ്രവർത്തനങ്ങൾ Þ വിശ്വാസ്യതയിൽ ഗണ്യമായ വർദ്ധനവ്;

പരമാവധി ഡിസ്ക് സെക്ടറുകൾ കൂടാതെ/അല്ലെങ്കിൽ ക്ലസ്റ്ററുകൾക്കുള്ള നിരവധി നിയന്ത്രണങ്ങൾ നീക്കം ചെയ്തു;

FAT, HPFS ഫയൽ സിസ്റ്റങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായി, NTFS-ലെ ഒരു ഫയൽ നാമത്തിൽ, ദേശീയ അക്ഷരമാലകളുടെ മുഴുവൻ സെറ്റ് ഉൾപ്പെടെ ഏത് പ്രതീകങ്ങളും അടങ്ങിയിരിക്കാം, കാരണം ഡാറ്റ യുണിക്കോഡിൽ പ്രതിനിധീകരിക്കുന്നു - 65535 വ്യത്യസ്ത പ്രതീകങ്ങൾ നൽകുന്ന 16-ബിറ്റ് പ്രാതിനിധ്യം. NTFS-ലെ ഒരു ഫയൽ നാമത്തിൻ്റെ പരമാവധി ദൈർഘ്യം 255 പ്രതീകങ്ങളാണ്.

· NTFS-ന് ബിൽറ്റ്-ഇൻ കംപ്രഷൻ കഴിവുകൾ ഉണ്ട്, അത് നിങ്ങൾക്ക് വ്യക്തിഗത ഫയലുകൾ, മുഴുവൻ ഡയറക്‌ടറികൾ, വോള്യങ്ങൾ എന്നിവയിൽ പോലും പ്രയോഗിക്കാൻ കഴിയും (പിന്നീട് അവ പഴയപടിയാക്കുകയോ നിങ്ങൾ ആഗ്രഹിക്കുന്നതുപോലെ അസൈൻ ചെയ്യുകയോ ചെയ്യുക).

NTFS ഫയൽ സിസ്റ്റത്തോടുകൂടിയ വോളിയം ഘടന

ഒരു NTFS പാർട്ടീഷനെ ഒരു വോള്യം (വോളിയം) എന്ന് വിളിക്കുന്നു. സാധ്യമായ പരമാവധി വോളിയം വലുപ്പവും (ഫയൽ വലുപ്പവും) 16 EB ആണ് (എക്സാബൈറ്റ് 2**64).

മറ്റ് സിസ്റ്റങ്ങളെപ്പോലെ, NTFS ഒരു വോള്യത്തിൻ്റെ ഡിസ്ക് സ്പേസിനെ ക്ലസ്റ്ററുകളായി വിഭജിക്കുന്നു - ഡാറ്റാ യൂണിറ്റുകളായി സംബോധന ചെയ്യപ്പെടുന്ന ഡാറ്റയുടെ ബ്ലോക്കുകൾ. 512 ബൈറ്റുകൾ മുതൽ 64 KB വരെയുള്ള ക്ലസ്റ്റർ വലുപ്പങ്ങളെ NTFS പിന്തുണയ്ക്കുന്നു; 2 അല്ലെങ്കിൽ 4 KB വലിപ്പമുള്ള ഒരു ക്ലസ്റ്ററാണ് സ്റ്റാൻഡേർഡ്.

NTFS ലെ എല്ലാ ഡിസ്ക് സ്ഥലവും രണ്ട് അസമമായ ഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു.


ഡിസ്കിൻ്റെ ആദ്യത്തെ 12% MFT സോൺ എന്ന് വിളിക്കപ്പെടുന്നവയ്ക്ക് അനുവദിച്ചിരിക്കുന്നു - പ്രധാന സേവനത്തിന് കൈവശം വയ്ക്കാൻ കഴിയുന്ന ഇടം മെറ്റാഫൈൽഎം.എഫ്.ടി.

ഈ ഏരിയയിലേക്ക് ഒരു ഡാറ്റയും എഴുതാൻ സാധ്യമല്ല. MFT സോൺ എല്ലായ്പ്പോഴും ശൂന്യമായി സൂക്ഷിക്കുന്നു - സാധ്യമെങ്കിൽ, MFT ഫയൽ വളരുമ്പോൾ അത് ശിഥിലമാകാതിരിക്കാനാണ് ഇത് ചെയ്യുന്നത്.

ശേഷിക്കുന്ന 88% വോളിയം സാധാരണ ഫയൽ സംഭരണ ​​സ്ഥലമാണ്.

MFT(മാസ്റ്റർഫയൽമേശ -പൊതുവായ ഫയൽ പട്ടിക) പ്രധാനമായും ഡിസ്കിലുള്ള മറ്റെല്ലാ ഫയലുകളുടെയും ഡയറക്ടറിയാണ്. ഫയലുകളുടെ സ്ഥാനം നിർണ്ണയിക്കുന്നതിനാണ് ഇത് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.

എംഎഫ്‌ടിയിൽ നിശ്ചിത വലുപ്പത്തിലുള്ള റെക്കോർഡുകൾ അടങ്ങിയിരിക്കുന്നു. വോളിയം ഫോർമാറ്റ് ചെയ്യുമ്പോൾ MFT റെക്കോർഡ് വലുപ്പം (കുറഞ്ഞത് 1 KB, പരമാവധി 4 KB) നിർണ്ണയിക്കപ്പെടുന്നു.

ഓരോ എൻട്രിയും ഒരു ഫയലുമായി യോജിക്കുന്നു.

ആദ്യത്തെ 16 എൻട്രികൾ സേവന സ്വഭാവമുള്ളവയാണ്, അവ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് ലഭ്യമല്ല - അവയെ വിളിക്കുന്നു മെറ്റാഫൈലുകൾ,കൂടാതെ ആദ്യത്തെ മെറ്റാഫൈൽ MFT തന്നെയാണ്.

ഈ ആദ്യത്തെ 16 MFT മൂലകങ്ങൾ ഡിസ്കിൻ്റെ ഏക ഭാഗമാണ്, അത് കർശനമായി നിശ്ചിത സ്ഥാനമാണ്. ഈ 16 എൻട്രികളുടെ ഒരു പകർപ്പ് വിശ്വാസ്യതയ്ക്കായി വോളിയത്തിൻ്റെ മധ്യത്തിൽ സൂക്ഷിച്ചിരിക്കുന്നു.

MFT ഫയലിൻ്റെ ശേഷിക്കുന്ന ഭാഗങ്ങൾ മറ്റേതൊരു ഫയലിനെയും പോലെ ഡിസ്കിലെ അനിയന്ത്രിതമായ സ്ഥലങ്ങളിൽ സ്ഥിതിചെയ്യാം.

മെറ്റാഫയലുകൾ ഒരു സേവന സ്വഭാവമുള്ളവയാണ് - അവ ഓരോന്നും സിസ്റ്റത്തിൻ്റെ പ്രവർത്തനത്തിൻ്റെ ചില വശങ്ങൾക്ക് ഉത്തരവാദികളാണ്. NTFS വോള്യത്തിൻ്റെ റൂട്ട് ഡയറക്ടറിയിലാണ് മെറ്റാഫയലുകൾ സ്ഥിതി ചെയ്യുന്നത്. അവയെല്ലാം ആരംഭിക്കുന്നത് "$" എന്ന പേരിൻ്റെ ചിഹ്നത്തിലാണ്, എന്നിരുന്നാലും സ്റ്റാൻഡേർഡ് മാർഗങ്ങൾ ഉപയോഗിച്ച് അവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ നേടുന്നത് ബുദ്ധിമുട്ടാണ്. പട്ടികയിൽ പ്രധാന മെറ്റാഫൈലുകളും അവയുടെ ഉദ്ദേശ്യവും നൽകിയിരിക്കുന്നു.

മെറ്റാഫയലിൻ്റെ പേര്

മെറ്റാഫൈലിൻ്റെ ഉദ്ദേശ്യം

$MFT

മാസ്റ്റർ ഫയൽ ടേബിൾ തന്നെ

$MFTmirr

വോളിയത്തിൻ്റെ മധ്യത്തിൽ സ്ഥാപിച്ചിട്ടുള്ള ആദ്യത്തെ 16 MFT എൻട്രികളുടെ ഒരു പകർപ്പ്

$LogFile

പിന്തുണ ഫയൽ ലോഗിംഗ്

$വോളിയം

സേവന വിവരം - വോളിയം ലേബൽ, ഫയൽ സിസ്റ്റം പതിപ്പ് മുതലായവ.

$AttrDef

വോളിയത്തിലെ സ്റ്റാൻഡേർഡ് ഫയൽ ആട്രിബ്യൂട്ടുകളുടെ ലിസ്റ്റ്

റൂട്ട് ഡയറക്ടറി

$ബിറ്റ്മാപ്പ്

വോളിയം ഫ്രീ സ്പേസ് മാപ്പ്

$ബൂട്ട്

ബൂട്ട് സെക്ടർ (പാർട്ടീഷൻ ബൂട്ട് ചെയ്യാവുന്നതാണെങ്കിൽ)

$ക്വോട്ട

ഡിസ്ക് സ്പേസ് ഉപയോഗിക്കുന്നതിനുള്ള ഉപയോക്തൃ അവകാശങ്ങൾ രേഖപ്പെടുത്തുന്ന ഒരു ഫയൽ (ഈ ഫയൽ പ്രവർത്തിക്കാൻ തുടങ്ങിയിട്ടേയുള്ളൂ NTFS 5.0 ഉള്ള വിൻഡോസ് 2000)

$Upcase

ഫയൽ - ഫയൽ നാമങ്ങളിലെ വലിയക്ഷരങ്ങളും ചെറിയക്ഷരങ്ങളും തമ്മിലുള്ള കത്തിടപാടുകളുടെ പട്ടിക. NTFS-ൽ, ഫയൽ നാമങ്ങൾ എഴുതിയിരിക്കുന്നുയൂണികോഡ് (ഇത് 65 ആയിരം വ്യത്യസ്ത ചിഹ്നങ്ങളാണ്) കൂടാതെ ഈ കേസിൽ വലുതും ചെറുതുമായ തുല്യതകൾക്കായി തിരയുന്നത് നിസ്സാരമല്ലാത്ത ഒരു ജോലിയാണ്

അനുബന്ധ MFT റെക്കോർഡ് ഫയലിനെക്കുറിച്ചുള്ള എല്ലാ വിവരങ്ങളും സംഭരിക്കുന്നു:

· ഫയലിന്റെ പേര്,

· വലിപ്പം;

· ഫയൽ ആട്രിബ്യൂട്ടുകൾ;

· വ്യക്തിഗത ശകലങ്ങളുടെ ഡിസ്കിലെ സ്ഥാനം മുതലായവ.

വിവരങ്ങൾക്ക് ഒരു MFT റെക്കോർഡ് പര്യാപ്തമല്ലെങ്കിൽ, നിരവധി റെക്കോർഡുകൾ ഉപയോഗിക്കുന്നു, തുടർച്ചയായി ആവശ്യമില്ല.

ഫയൽ വളരെ വലുതല്ലെങ്കിൽ, ഫയൽ ഡാറ്റ നേരിട്ട് MFT-യിൽ, ഒരു MFT റെക്കോർഡിനുള്ളിൽ പ്രധാന ഡാറ്റയിൽ നിന്ന് ശേഷിക്കുന്ന സ്ഥലത്ത് സൂക്ഷിക്കുന്നു.

ഒരു NTFS വോള്യത്തിലെ ഒരു ഫയൽ തിരിച്ചറിയുന്നത് വിളിക്കപ്പെടുന്നവയാണ് ഫയൽ ലിങ്ക്(ഫയൽ റഫറൻസ്), ഇത് 64-ബിറ്റ് നമ്പറായി പ്രതിനിധീകരിക്കുന്നു.

MFT-യിലെ റെക്കോർഡ് നമ്പറുമായി പൊരുത്തപ്പെടുന്ന ഫയൽ നമ്പർ,

· സീക്വൻസ് നമ്പറുകളും. NTFS ഫയൽ സിസ്റ്റത്തെ ഇൻ്റേണൽ ഇൻ്റഗ്രിറ്റി ചെക്കുകൾ നടത്താൻ അനുവദിക്കുന്ന, MFT-ൽ നൽകിയിരിക്കുന്ന നമ്പർ വീണ്ടും ഉപയോഗിക്കുമ്പോഴെല്ലാം ഈ നമ്പർ വർദ്ധിപ്പിക്കും.

NTFS-ലെ ഓരോ ഫയലും പ്രതിനിധീകരിക്കുന്നു അരുവികൾ(സ്ട്രീമുകൾ), അതായത്, ഇതിന് “വെറും ഡാറ്റ” ഇല്ല, പക്ഷേ സ്ട്രീമുകൾ ഉണ്ട്.

സ്ട്രീമുകളിൽ ഒന്ന് ഫയൽ ഡാറ്റയാണ്.

മിക്ക ഫയൽ ആട്രിബ്യൂട്ടുകളും സ്ട്രീമുകളാണ്.

അതിനാൽ, ഫയലിന് ഒരു അടിസ്ഥാന എൻ്റിറ്റി മാത്രമേയുള്ളൂ - MFT-യിലെ നമ്പർ, അതിൻ്റെ സ്ട്രീമുകൾ ഉൾപ്പെടെ മറ്റെല്ലാം ഓപ്ഷണൽ ആണ്.

ഈ സമീപനം ഫലപ്രദമായി ഉപയോഗിക്കാൻ കഴിയും - ഉദാഹരണത്തിന്, ഒരു ഫയലിലേക്ക് ഏതെങ്കിലും ഡാറ്റ എഴുതി നിങ്ങൾക്ക് മറ്റൊരു സ്ട്രീം "അറ്റാച്ചുചെയ്യാൻ" കഴിയും.

ഒരു NTFS വോള്യത്തിലെ ഫയലുകൾക്കും ഡയറക്‌ടറികൾക്കുമുള്ള സ്റ്റാൻഡേർഡ് ആട്രിബ്യൂട്ടുകൾക്ക് നിശ്ചിത പേരുകളും ടൈപ്പ് കോഡുകളും ഉണ്ട്.

കാറ്റലോഗ് NTFS എന്നത് മറ്റ് ഫയലുകളിലേക്കും ഡയറക്ടറികളിലേക്കും ലിങ്കുകൾ സംഭരിക്കുന്ന ഒരു പ്രത്യേക ഫയലാണ്.

കാറ്റലോഗ് ഫയൽ ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു, അവയിൽ ഓരോന്നും അടങ്ങിയിരിക്കുന്നു

· ഫയലിന്റെ പേര്,

അടിസ്ഥാന ആട്രിബ്യൂട്ടുകളും

MFT മെറ്റാഫൈലിൻ്റെ തുടക്കം മുതൽ അതിലേക്കുള്ള ഒരു പ്രത്യേക ലിങ്ക് ഒഴികെ, ഡിസ്കിൻ്റെ റൂട്ട് ഡയറക്ടറി സാധാരണ ഡയറക്ടറികളിൽ നിന്ന് വ്യത്യസ്തമല്ല.

ആന്തരിക ഡയറക്ടറി ഘടന HPFS പോലെയുള്ള ഒരു ബൈനറി ട്രീ ആണ്.

റൂട്ട്, റൂട്ട് ഇതര ഡയറക്‌ടറികളിലെ ഫയലുകളുടെ എണ്ണം പരിമിതമല്ല.

NTFS ഫയൽ സിസ്റ്റം NT സെക്യൂരിറ്റി ഒബ്‌ജക്റ്റ് മോഡലിനെ പിന്തുണയ്‌ക്കുന്നു: NTFS ഡയറക്‌ടറികളെയും ഫയലുകളെയും വ്യത്യസ്‌ത തരം ഒബ്‌ജക്‌റ്റുകളായി കണക്കാക്കുകയും ഓരോ തരത്തിനും പ്രത്യേകം (ഓവർലാപ്പുചെയ്യുന്നുണ്ടെങ്കിലും) അനുമതികളുടെ ലിസ്റ്റുകൾ പരിപാലിക്കുകയും ചെയ്യുന്നു.

NTFS ഫയൽ-ലെവൽ സുരക്ഷ നൽകുന്നു; വോള്യങ്ങൾ, ഡയറക്‌ടറികൾ, ഫയലുകൾ എന്നിവയിലേക്കുള്ള ആക്‌സസ് അവകാശങ്ങൾ ഉപയോക്തൃ അക്കൗണ്ടിനെയും ഉപയോക്താവ് ഉൾപ്പെടുന്ന ഗ്രൂപ്പുകളെയും ആശ്രയിച്ചിരിക്കും എന്നാണ് ഇതിനർത്ഥം. ഓരോ തവണയും ഒരു ഉപയോക്താവ് ഫയൽ സിസ്റ്റം ഒബ്‌ജക്‌റ്റ് ആക്‌സസ് ചെയ്യുമ്പോൾ, അവൻ്റെ ആക്‌സസ് അവകാശങ്ങൾ ആ ഒബ്‌ജക്‌റ്റിൻ്റെ അനുമതി പട്ടികയ്‌ക്കെതിരെ പരിശോധിക്കും. ഉപയോക്താവിന് മതിയായ അവകാശങ്ങൾ ഉണ്ടെങ്കിൽ, അവൻ്റെ അഭ്യർത്ഥന അനുവദിച്ചിരിക്കുന്നു; അല്ലാത്തപക്ഷം അപേക്ഷ നിരസിക്കപ്പെടും. NT കമ്പ്യൂട്ടറുകളിലെ പ്രാദേശിക ഉപയോക്തൃ രജിസ്ട്രേഷനും റിമോട്ട് നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനകൾക്കും ഈ സുരക്ഷാ മോഡൽ ബാധകമാണ്.

NTFS സിസ്റ്റത്തിന് ചില സ്വയം-രോഗശാന്തി കഴിവുകളുണ്ട്. ഒരു പ്രത്യേക സിസ്റ്റം ലോഗിൽ ഫയൽ റൈറ്റ് ഓപ്പറേഷനുകൾ റീപ്ലേ ചെയ്യാൻ അനുവദിക്കുന്ന ട്രാൻസാക്ഷൻ ലോഗിംഗ് ഉൾപ്പെടെ, സിസ്റ്റം ഇൻ്റഗ്രിറ്റി പരിശോധിക്കുന്നതിനുള്ള വിവിധ സംവിധാനങ്ങളെ NTFS പിന്തുണയ്ക്കുന്നു.

ചെയ്തത് ലോഗിംഗ്ഫയൽ പ്രവർത്തനങ്ങൾ, ഫയൽ മാനേജ്മെൻ്റ് സിസ്റ്റം ഒരു പ്രത്യേക സേവന ഫയലിൽ സംഭവിക്കുന്ന മാറ്റങ്ങൾ രേഖപ്പെടുത്തുന്നു. ഫയൽ ഘടന മാറ്റുന്നതുമായി ബന്ധപ്പെട്ട ഒരു പ്രവർത്തനത്തിൻ്റെ തുടക്കത്തിൽ, ഒരു അനുബന്ധ കുറിപ്പ് ഉണ്ടാക്കുന്നു. ഫയൽ പ്രവർത്തനങ്ങളിൽ എന്തെങ്കിലും തകരാർ സംഭവിക്കുകയാണെങ്കിൽ, പ്രസ്തുത പ്രവർത്തന ആരംഭ അടയാളം അപൂർണ്ണമായി സൂചിപ്പിക്കും. മെഷീൻ റീബൂട്ട് ചെയ്തതിന് ശേഷം നിങ്ങൾ ഒരു ഫയൽ സിസ്റ്റം ഇൻ്റഗ്രിറ്റി പരിശോധന നടത്തുമ്പോൾ, ഈ തീർച്ചപ്പെടുത്താത്ത പ്രവർത്തനങ്ങൾ റദ്ദാക്കുകയും ഫയലുകൾ അവയുടെ യഥാർത്ഥ അവസ്ഥയിലേക്ക് പുനഃസ്ഥാപിക്കുകയും ചെയ്യും. ഫയലുകളിൽ ഡാറ്റ മാറ്റുന്നതിനുള്ള പ്രവർത്തനം സാധാരണഗതിയിൽ പൂർത്തിയാകുകയാണെങ്കിൽ, ഈ സേവന ലോഗിംഗ് സപ്പോർട്ട് ഫയലിൽ തന്നെ പ്രവർത്തനം പൂർത്തിയായതായി അടയാളപ്പെടുത്തുന്നു.

ഫയൽ സിസ്റ്റത്തിൻ്റെ പ്രധാന പോരായ്മNTFS- സേവന ഡാറ്റ ധാരാളം സ്ഥലം എടുക്കുന്നു (ഉദാഹരണത്തിന്, ഓരോ ഡയറക്‌ടറി ഘടകവും 2 KB എടുക്കുന്നു) - ചെറിയ പാർട്ടീഷനുകൾക്ക്, സേവന ഡാറ്റയ്ക്ക് മീഡിയ വോള്യത്തിൻ്റെ 25% വരെ ഉൾക്കൊള്ളാൻ കഴിയും.

Þ ഫ്ലോപ്പി ഡിസ്കുകൾ ഫോർമാറ്റ് ചെയ്യാൻ NTFS ഉപയോഗിക്കാനാവില്ല. 100 MB-യിൽ താഴെയുള്ള പാർട്ടീഷനുകൾ ഫോർമാറ്റ് ചെയ്യാൻ നിങ്ങൾ ഇത് ഉപയോഗിക്കരുത്.

OS ഫയൽ സിസ്റ്റം UNIX

UNIX ലോകത്ത്, സ്വന്തം ബാഹ്യ മെമ്മറി ഘടനയുള്ള വിവിധ തരം ഫയൽ സിസ്റ്റങ്ങളുണ്ട്. പരമ്പരാഗത UNIX സിസ്റ്റം V (s5) ഫയൽ സിസ്റ്റവും UNIX BSD ഫാമിലി ഫയൽ സിസ്റ്റവും (ufs) ആണ് ഏറ്റവും അറിയപ്പെടുന്നത്.

s 5 പരിഗണിക്കുക.

UNIX സിസ്റ്റത്തിലെ ഒരു ഫയൽ റാൻഡം ആക്സസ് പ്രതീകങ്ങളുടെ ഒരു ശേഖരമാണ്.

ഫയലിന് ഉപയോക്താവ് അടിച്ചേൽപ്പിക്കുന്ന ഒരു ഘടനയുണ്ട്.

Unix ഫയൽ സിസ്റ്റം ഒരു ശ്രേണിയിലുള്ള, മൾട്ടി-യൂസർ ഫയൽ സിസ്റ്റമാണ്.

ഫയൽ സിസ്റ്റത്തിന് ഒരു ട്രീ ഘടനയുണ്ട്. ട്രീയുടെ വെർട്ടീസുകൾ (ഇൻ്റർമീഡിയറ്റ് നോഡുകൾ) മറ്റ് ഡയറക്‌ടറികളിലേക്കോ ഫയലുകളിലേക്കോ ഉള്ള ലിങ്കുകളുള്ള ഡയറക്‌ടറികളാണ്. മരത്തിൻ്റെ ഇലകൾ ഫയലുകളുമായോ ശൂന്യമായ ഡയറക്ടറികളുമായോ യോജിക്കുന്നു.

അഭിപ്രായം.യഥാർത്ഥത്തിൽ, Unix ഫയൽ സിസ്റ്റം ട്രീ അടിസ്ഥാനമാക്കിയുള്ളതല്ല. സംയോജിപ്പിക്കാൻ സാധിക്കുമെന്നതിനാൽ, ഒരു വൃക്ഷത്തിൻ്റെ രൂപത്തിൽ ശ്രേണിയെ ലംഘിക്കാൻ സിസ്റ്റത്തിന് സാധ്യതയുണ്ട് എന്നതാണ് വസ്തുത. ഒരേ ഫയൽ ഉള്ളടക്കമുള്ള ഒന്നിലധികം പേരുകൾ.

ഡിസ്ക് ഘടന

ഡിസ്ക് ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു. mkfs കമാൻഡ് ഉപയോഗിച്ച് ഫയൽ സിസ്റ്റം ഫോർമാറ്റ് ചെയ്യുമ്പോൾ ഡാറ്റ ബ്ലോക്ക് വലുപ്പം നിർണ്ണയിക്കപ്പെടുന്നു, ഇത് 512, 1024, 2048, 4096 അല്ലെങ്കിൽ 8192 ബൈറ്റുകളായി സജ്ജമാക്കാം.

ഞങ്ങൾ 512 ബൈറ്റുകൾ (സെക്ടർ വലുപ്പം) കണക്കാക്കുന്നു.

ഡിസ്ക് സ്പേസ് ഇനിപ്പറയുന്ന മേഖലകളായി തിരിച്ചിരിക്കുന്നു (ചിത്രം കാണുക):

· ലോഡിംഗ് ബ്ലോക്ക്;

· നിയന്ത്രണം സൂപ്പർബ്ലോക്ക്;

· ഐ-നോഡുകളുടെ നിര;

· ഫയലുകളുടെ ഉള്ളടക്കം (ഡാറ്റ) സംഭരിക്കുന്നതിനുള്ള ഏരിയ;

· ഒരു കൂട്ടം സ്വതന്ത്ര ബ്ലോക്കുകൾ (ഒരു ലിസ്റ്റിലേക്ക് ലിങ്ക് ചെയ്തിരിക്കുന്നു);

ബൂട്ട് ബ്ലോക്ക്

സൂപ്പർബ്ലോക്ക്

ഞാൻ - നോഡ്

. . .

ഞാൻ - നോഡ്

അഭിപ്രായം. UFS ഫയൽ സിസ്റ്റത്തിനായി - ഇതെല്ലാം ഒരു കൂട്ടം സിലിണ്ടറുകൾക്കായി ആവർത്തിക്കുന്നു (ബൂട്ട് ബ്ലോക്ക് ഒഴികെ) + സിലിണ്ടറുകളുടെ ഗ്രൂപ്പിനെ വിവരിക്കാൻ ഒരു പ്രത്യേക ഏരിയ അനുവദിച്ചിരിക്കുന്നു.

ബൂട്ട് ബ്ലോക്ക്

ബ്ലോക്ക് നമ്പർ 0 ലാണ് ബ്ലോക്ക് സ്ഥിതി ചെയ്യുന്നത്. (സിസ്റ്റം ഡിവൈസ് ബ്ലോക്ക് സീറോയിൽ ഈ ബ്ലോക്കിൻ്റെ സ്ഥാനം നിർണ്ണയിക്കുന്നത് ഹാർഡ്‌വെയറാണ്, കാരണം ഹാർഡ്‌വെയർ ബൂട്ട് ലോഡർ എപ്പോഴും സിസ്റ്റം ഡിവൈസ് ബ്ലോക്ക് സീറോയിലേക്ക് പ്രവേശിക്കുന്നു. ഹാർഡ്‌വെയറിനെ ആശ്രയിക്കുന്ന ഫയൽ സിസ്റ്റത്തിൻ്റെ അവസാന ഘടകമാണിത്.)

തുടക്കത്തിൽ UNIX OS സമാരംഭിക്കുന്നതിന് ഉപയോഗിക്കുന്ന ഒരു പ്രൊമോഷൻ പ്രോഗ്രാം ബൂട്ട് ബ്ലോക്കിൽ അടങ്ങിയിരിക്കുന്നു. എസ് 5 ഫയൽ സിസ്റ്റങ്ങളിൽ, റൂട്ട് ഫയൽ സിസ്റ്റത്തിൻ്റെ ബൂട്ട് ബ്ലോക്ക് മാത്രമാണ് യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്നത്. അധിക ഫയൽ സിസ്റ്റങ്ങളിൽ, ഈ ഏരിയ നിലവിലുണ്ട്, പക്ഷേ ഉപയോഗിക്കാറില്ല.

സൂപ്പർബ്ലോക്ക്

ഫയൽ സിസ്റ്റത്തിൻ്റെ അവസ്ഥയെക്കുറിച്ചുള്ള പ്രവർത്തന വിവരങ്ങളും ഫയൽ സിസ്റ്റം ക്രമീകരണങ്ങളെക്കുറിച്ചുള്ള ഡാറ്റയും ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

പ്രത്യേകിച്ചും, സൂപ്പർബ്ലോക്കിൽ ഇനിപ്പറയുന്ന വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു

· ഐ-നോഡുകളുടെ എണ്ണം (ഇൻഡക്സ് ഡിസ്ക്രിപ്റ്ററുകൾ);

· പാർട്ടീഷൻ വലിപ്പം ???;

· സ്വതന്ത്ര ബ്ലോക്കുകളുടെ പട്ടിക;

· സൗജന്യ ഐ-നോഡുകളുടെ പട്ടിക;

· മറ്റ്.

നമുക്ക് ശ്രദ്ധിക്കാം! ഡിസ്കിലെ ഫ്രീ സ്പേസ് ആണ് സ്വതന്ത്ര ബ്ലോക്കുകളുടെ ലിങ്ക് ചെയ്ത ലിസ്റ്റ്. ഈ ലിസ്റ്റ് ഒരു സൂപ്പർ ബ്ലോക്കിൽ സൂക്ഷിച്ചിരിക്കുന്നു.

ലിസ്റ്റ് ഘടകങ്ങൾ 50 ഘടകങ്ങളുടെ അറേകളാണ് (ബ്ലോക്ക് = 512 ബൈറ്റുകൾ ആണെങ്കിൽ, എലമെൻ്റ് = 16 ബിറ്റുകൾ):

· അറേ ഘടകങ്ങൾ നമ്പർ 1-48-ൽ 2 മുതൽ 49 വരെയുള്ള ഫയൽ ബ്ലോക്ക് സ്‌പെയ്‌സിൻ്റെ ഫ്രീ ബ്ലോക്കുകളുടെ സംഖ്യകൾ അടങ്ങിയിരിക്കുന്നു.

· ഘടകം #0 ലിസ്റ്റിൻ്റെ തുടർച്ചയിലേക്കുള്ള ഒരു പോയിൻ്റർ അടങ്ങിയിരിക്കുന്നു, കൂടാതെ

· അവസാന ഘടകത്തിൽ (നമ്പർ 49) അറേയിലെ ഒരു സ്വതന്ത്ര ഘടകത്തിലേക്കുള്ള ഒരു പോയിൻ്റർ അടങ്ങിയിരിക്കുന്നു.

ഒരു ഫയൽ വികസിപ്പിക്കുന്നതിന് ചില പ്രോസസ്സുകൾക്ക് ഒരു ഫ്രീ ബ്ലോക്ക് ആവശ്യമാണെങ്കിൽ, സിസ്റ്റം ഒരു പോയിൻ്റർ ഉപയോഗിച്ച് ഒരു അറേ എലമെൻ്റ് തിരഞ്ഞെടുക്കുന്നു (ഒരു ഫ്രീ എലമെൻ്റിലേക്ക്), ഈ എലമെൻ്റിൽ സംഭരിച്ചിരിക്കുന്ന നമ്പർ ഉള്ള ബ്ലോക്ക് ഫയലിന് നൽകും. ഫയൽ കുറയുകയാണെങ്കിൽ, സ്വതന്ത്രമായ സംഖ്യകൾ ഫ്രീ ബ്ലോക്കുകളുടെ അറേയിലേക്ക് ചേർക്കുകയും ഫ്രീ എലമെൻ്റിലേക്കുള്ള പോയിൻ്റർ ക്രമീകരിക്കുകയും ചെയ്യുന്നു.

അറേ വലുപ്പം 50 ഘടകങ്ങളായതിനാൽ, രണ്ട് നിർണായക സാഹചര്യങ്ങൾ സാധ്യമാണ്:

1. ഞങ്ങൾ ഫയലുകളുടെ ബ്ലോക്കുകൾ സ്വതന്ത്രമാക്കുമ്പോൾ, എന്നാൽ അവയ്ക്ക് ഈ അറേയിൽ ഉൾക്കൊള്ളാൻ കഴിയില്ല. ഈ സാഹചര്യത്തിൽ, ഫയൽ സിസ്റ്റത്തിൽ നിന്ന് ഒരു ഫ്രീ ബ്ലോക്ക് തിരഞ്ഞെടുക്കുകയും പൂർണ്ണമായും പൂരിപ്പിച്ച ഫ്രീ ബ്ലോക്കുകളുടെ അറേ ഈ ബ്ലോക്കിലേക്ക് പകർത്തുകയും ചെയ്യുന്നു, അതിനുശേഷം ഫ്രീ എലമെൻ്റിലേക്കുള്ള പോയിൻ്ററിൻ്റെ മൂല്യം പുനഃസജ്ജമാക്കുന്നു, കൂടാതെ സൂപ്പർബ്ലോക്കിൽ സ്ഥിതി ചെയ്യുന്ന അറേയുടെ പൂജ്യം മൂലകത്തിൽ, അറേയുടെ ഉള്ളടക്കങ്ങൾ പകർത്താൻ സിസ്റ്റം തിരഞ്ഞെടുത്ത ബ്ലോക്കിൻ്റെ എണ്ണം അടങ്ങിയിരിക്കുന്നു.. ഈ നിമിഷം, സ്വതന്ത്ര ബ്ലോക്കുകളുടെ പട്ടികയുടെ ഒരു പുതിയ ഘടകം സൃഷ്ടിക്കപ്പെടുന്നു (ഓരോന്നിനും 50 ഘടകങ്ങൾ).

2. ഫ്രീ ബ്ലോക്കുകളുടെ അറേയിലെ മൂലകങ്ങളുടെ ഉള്ളടക്കം തീർന്നിരിക്കുമ്പോൾ (ഈ സാഹചര്യത്തിൽ, അറേയുടെ പൂജ്യം മൂലകം പൂജ്യമാണ്). ഈ ഘടകം പൂജ്യത്തിന് തുല്യമല്ലെങ്കിൽ, അതിൻ്റെ തുടർച്ചയുണ്ടെന്നാണ് ഇതിനർത്ഥം. അറേ. ഈ തുടർച്ച റാമിലെ സൂപ്പർബ്ലോക്കിൻ്റെ ഒരു പകർപ്പായി വായിക്കുന്നു.

സൗജന്യ പട്ടികi-നോഡുകൾ. 100 ഘടകങ്ങൾ അടങ്ങുന്ന ഒരു ബഫറാണിത്. ഇപ്പോൾ സൗജന്യമായ 100 ഐ-നോഡുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

സൂപ്പർബ്ലോക്ക് എല്ലായ്പ്പോഴും റാമിലാണ്

Þ എല്ലാ പ്രവർത്തനങ്ങളും (ബ്ലോക്കുകളും ഐ-നോഡുകളും റിലീസ് ചെയ്യുന്നതും കൈവശപ്പെടുത്തുന്നതും റാമിൽ സംഭവിക്കുന്നു Þ ഡിസ്ക് എക്സ്ചേഞ്ചുകൾ കുറയ്ക്കുന്നു.

പക്ഷേ!സൂപ്പർബ്ലോക്കിലെ ഉള്ളടക്കങ്ങൾ ഡിസ്കിൽ എഴുതാതിരിക്കുകയും പവർ ഓഫ് ചെയ്യുകയും ചെയ്താൽ, പ്രശ്നങ്ങൾ ഉണ്ടാകും (ഫയൽ സിസ്റ്റത്തിൻ്റെ യഥാർത്ഥ അവസ്ഥയും സൂപ്പർബ്ലോക്കിലെ ഉള്ളടക്കവും തമ്മിലുള്ള പൊരുത്തക്കേട്). എന്നാൽ സിസ്റ്റം ഉപകരണങ്ങളുടെ വിശ്വാസ്യതയ്ക്ക് ഇത് ഇതിനകം തന്നെ ആവശ്യമാണ്.

അഭിപ്രായം. സ്ഥിരത മെച്ചപ്പെടുത്തുന്നതിനായി സൂപ്പർബ്ലോക്കിൻ്റെ ഒന്നിലധികം പകർപ്പുകൾ (സിലിണ്ടർ ഗ്രൂപ്പിന് ഒരു പകർപ്പ്) UFS ഫയൽ സിസ്റ്റങ്ങൾ പിന്തുണയ്ക്കുന്നു.

ഇനോഡ് ഏരിയ

ഇത് ഫയൽ വിവരണങ്ങളുടെ ഒരു നിരയാണ് ഐ-നോഡുകൾ (ഞാൻ-നോഡ്).(64 ബൈറ്റ്?)

ഒരു ഫയലിൻ്റെ ഓരോ സൂചിക വിവരണത്തിലും (ഐ-നോഡ്) അടങ്ങിയിരിക്കുന്നു:

· ഫയൽ തരം (ഫയൽ/ഡയറക്‌ടറി/പ്രത്യേക ഫയൽ/ഫിഫോ/സോക്കറ്റ്)

· ആട്രിബ്യൂട്ടുകൾ (ആക്സസ് അവകാശങ്ങൾ) - 10

ഫയൽ ഉടമ ഐഡി

· ഫയൽ ഉടമയുടെ ഗ്രൂപ്പ് ഐഡി

· ഫയൽ സൃഷ്ടിക്കുന്ന സമയം

ഫയൽ പരിഷ്ക്കരണ സമയം

ഫയലിലേക്കുള്ള അവസാന ആക്സസ് സമയം

· ഫയൽ നീളം

വിവിധ ഡയറക്‌ടറികളിൽ നിന്നുള്ള ഒരു ഐ-നോഡിലേക്കുള്ള ലിങ്കുകളുടെ എണ്ണം

ഫയൽ ബ്ലോക്ക് വിലാസങ്ങൾ

!കുറിപ്പ്. ഇവിടെ ഫയലിൻ്റെ പേരൊന്നുമില്ല

ഇത് എങ്ങനെ സംഘടിപ്പിക്കപ്പെടുന്നുവെന്ന് നമുക്ക് സൂക്ഷ്മമായി പരിശോധിക്കാം ബ്ലോക്ക് വിലാസം, അതിൽ ഫയൽ സ്ഥിതിചെയ്യുന്നു. അതിനാൽ, വിലാസ ഫീൽഡിൽ ഫയലിൻ്റെ ആദ്യത്തെ 10 ബ്ലോക്കുകളുടെ നമ്പറുകൾ ഉണ്ട്.

ഫയൽ പത്ത് ബ്ലോക്കുകൾ കവിയുന്നുവെങ്കിൽ, ഇനിപ്പറയുന്ന സംവിധാനം പ്രവർത്തിക്കാൻ തുടങ്ങുന്നു: ഫീൽഡിൻ്റെ 11-ാമത്തെ ഘടകത്തിൽ ബ്ലോക്ക് നമ്പർ അടങ്ങിയിരിക്കുന്നു, അതിൽ ഈ ഫയലിൻ്റെ ബ്ലോക്കുകളിലേക്കുള്ള 128 (256) ലിങ്കുകൾ അടങ്ങിയിരിക്കുന്നു. ഫയൽ ഇതിലും വലുതാണെങ്കിൽ, ഫീൽഡിൻ്റെ 12-ാമത്തെ ഘടകം ഉപയോഗിക്കുന്നു - അതിൽ ബ്ലോക്ക് നമ്പർ അടങ്ങിയിരിക്കുന്നു, അതിൽ 128(256) ബ്ലോക്ക് നമ്പറുകൾ അടങ്ങിയിരിക്കുന്നു, അവിടെ ഓരോ ബ്ലോക്കിലും 128(256) ഫയൽ സിസ്റ്റം ബ്ലോക്ക് നമ്പറുകൾ അടങ്ങിയിരിക്കുന്നു. ഫയൽ ഇതിലും വലുതാണെങ്കിൽ, 13-ാമത്തെ ഘടകം ഉപയോഗിക്കുന്നു - അവിടെ ലിസ്റ്റിൻ്റെ നെസ്റ്റിംഗ് ഡെപ്ത് മറ്റൊന്ന് വർദ്ധിപ്പിക്കും.

ഇതുവഴി നമുക്ക് വലിപ്പമുള്ള ഒരു ഫയൽ ലഭിക്കും (10+128+128 2 +128 3)*512.

ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ പ്രതിനിധീകരിക്കാം:

ഫയലിൻ്റെ ആദ്യ ബ്ലോക്കിൻ്റെ വിലാസം

ഫയലിൻ്റെ രണ്ടാം ബ്ലോക്കിൻ്റെ വിലാസം

ഫയലിൻ്റെ പത്താം ബ്ലോക്കിൻ്റെ വിലാസം

പരോക്ഷ വിലാസം ബ്ലോക്ക് വിലാസം (256 ബ്ലോക്ക് വിലാസങ്ങളുള്ള ബ്ലോക്ക്)

രണ്ടാമത്തെ പരോക്ഷ വിലാസ ബ്ലോക്കിൻ്റെ വിലാസം (വിലാസങ്ങളുള്ള 256 വിലാസ ബ്ലോക്കുകളുള്ള ബ്ലോക്ക്)

മൂന്നാമത്തെ പരോക്ഷ വിലാസ ബ്ലോക്കിൻ്റെ വിലാസം (ബ്ലോക്കുകളുടെ വിലാസങ്ങളുള്ള ബ്ലോക്കുകളുടെ വിലാസങ്ങളുള്ള വിലാസങ്ങളുള്ള ബ്ലോക്കുകളുടെ വിലാസം)

ഫയൽ സംരക്ഷണം

ഇനി നമുക്ക് ഉടമയും ഗ്രൂപ്പ് ഐഡികളും സുരക്ഷാ ബിറ്റുകളും നോക്കാം.

Unix OS-ൽ ഇത് ഉപയോഗിക്കുന്നു ത്രിതല ഉപയോക്തൃ ശ്രേണി:

ആദ്യ ലെവൽ എല്ലാ ഉപയോക്താക്കളുമാണ്.

രണ്ടാമത്തെ ലെവൽ ഉപയോക്തൃ ഗ്രൂപ്പുകളാണ്. (എല്ലാ ഉപയോക്താക്കളെയും ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു.

മൂന്നാമത്തെ ലെവൽ ഒരു നിർദ്ദിഷ്ട ഉപയോക്താവാണ് (ഗ്രൂപ്പുകൾ യഥാർത്ഥ ഉപയോക്താക്കളെ ഉൾക്കൊള്ളുന്നു). ഉപയോക്താക്കളുടെ ഈ ത്രിതല ഓർഗനൈസേഷൻ കാരണം, ഓരോ ഫയലിനും മൂന്ന് ആട്രിബ്യൂട്ടുകൾ ഉണ്ട്:

1) ഫയലിൻ്റെ ഉടമ. ഈ ആട്രിബ്യൂട്ട് ഒരു നിർദ്ദിഷ്ട ഉപയോക്താവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, ഫയലിൻ്റെ ഉടമയായി സിസ്റ്റം സ്വയമേവ നിയോഗിക്കപ്പെടുന്നു. ഒരു ഫയൽ സൃഷ്‌ടിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് സ്ഥിരസ്ഥിതി ഉടമയാകാം, കൂടാതെ ഒരു ഫയലിൻ്റെ ഉടമയെ മാറ്റാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു കമാൻഡും ഉണ്ട്.

2) ഫയൽ ആക്സസ് സംരക്ഷണം. ഓരോ ഫയലിലേക്കുള്ള ആക്‌സസ് മൂന്ന് വിഭാഗങ്ങളായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു:

· ഉടമയുടെ അവകാശങ്ങൾ (ഉടമയ്ക്ക് ഈ ഫയൽ ഉപയോഗിച്ച് എന്തുചെയ്യാൻ കഴിയും, പൊതുവായ സാഹചര്യത്തിൽ - എല്ലാം ആവശ്യമില്ല);

· ഫയൽ ഉടമ ഉൾപ്പെടുന്ന ഗ്രൂപ്പിൻ്റെ അവകാശങ്ങൾ. ഉടമയെ ഇവിടെ ഉൾപ്പെടുത്തിയിട്ടില്ല (ഉദാഹരണത്തിന്, ഒരു ഫയൽ ഉടമയ്ക്ക് റീഡ്-ലോക്ക് ചെയ്യാൻ കഴിയും, എന്നാൽ മറ്റെല്ലാ ഗ്രൂപ്പ് അംഗങ്ങൾക്കും ഫയലിൽ നിന്ന് സ്വതന്ത്രമായി വായിക്കാൻ കഴിയും;

· സിസ്റ്റത്തിൻ്റെ മറ്റെല്ലാ ഉപയോക്താക്കളും;

ഈ മൂന്ന് വിഭാഗങ്ങൾക്കായി, മൂന്ന് പ്രവർത്തനങ്ങൾ നിയന്ത്രിക്കപ്പെടുന്നു: ഒരു ഫയലിൽ നിന്ന് വായിക്കുക, ഒരു ഫയലിലേക്ക് എഴുതുക, ഒരു ഫയൽ എക്സിക്യൂട്ട് ചെയ്യുക (യഥാക്രമം R, W, X സിസ്റ്റത്തിൻ്റെ മെമ്മോണിക്സിൽ). ഈ മൂന്ന് വിഭാഗങ്ങളിലുള്ള ഓരോ ഫയലും ഏത് ഉപയോക്താവിന് വായിക്കാൻ കഴിയും, ഏതാണ് എഴുതാൻ കഴിയുക, ആർക്കൊക്കെ ഒരു പ്രോസസ് ആയി പ്രവർത്തിപ്പിക്കാനാകും എന്ന് നിർവ്വചിക്കുന്നു.

ഡയറക്ടറി ഓർഗനൈസേഷൻ

OS വീക്ഷണകോണിൽ നിന്ന്, ഡയറക്‌ടറിയിൽ ഉൾപ്പെടുന്ന എല്ലാ ഫയലുകളെയും കുറിച്ചുള്ള ഡാറ്റ അടങ്ങുന്ന ഒരു സാധാരണ ഫയലാണ് ഡയറക്‌ടറി.

ഒരു ഡയറക്ടറി ഘടകം രണ്ട് ഫീൽഡുകൾ ഉൾക്കൊള്ളുന്നു:

1)ഐ-നോഡിൻ്റെ എണ്ണം (ഐ-നോഡുകളുടെ നിരയിലെ ഓർഡിനൽ നമ്പർ) കൂടാതെ

2) ഫയലിൻ്റെ പേര്:

ഓരോ ഡയറക്ടറിയിലും രണ്ട് പ്രത്യേക പേരുകൾ അടങ്ങിയിരിക്കുന്നു: ‘.’ - ഡയറക്ടറി തന്നെ; ‘..’ - പാരൻ്റ് ഡയറക്ടറി.

(റൂട്ട് ഡയറക്‌ടറിക്ക്, രക്ഷകർത്താവ് ഒരേ ഡയറക്‌ടറിയെ സൂചിപ്പിക്കുന്നു.)

പൊതുവേ, ഒരു ഡയറക്‌ടറിയിൽ ഒരേ ഐ-നോഡിനെ പരാമർശിക്കുന്ന ഒന്നിലധികം എൻട്രികൾ അടങ്ങിയിരിക്കാം, എന്നാൽ അതേ പേരിലുള്ള എൻട്രികൾ ഡയറക്‌ടറിയിൽ ഉൾപ്പെടുത്താൻ കഴിയില്ല. അതായത്, ഫയലിൻ്റെ ഉള്ളടക്കവുമായി അനിയന്ത്രിതമായ പേരുകൾ ബന്ധപ്പെടുത്താം. ഇത് വിളിക്കപ്പെടുന്നത് കെട്ടുന്നു. ഒരൊറ്റ ഫയലിനെ സൂചിപ്പിക്കുന്ന ഒരു ഡയറക്‌ടറി എൻട്രി എന്ന് വിളിക്കുന്നു ആശയവിനിമയം.

ഡയറക്‌ടറി എൻട്രികളിൽ നിന്ന് സ്വതന്ത്രമായി ഫയലുകൾ നിലവിലുണ്ട്, കൂടാതെ ഡയറക്‌ടറി ലിങ്കുകൾ യഥാർത്ഥത്തിൽ ഫിസിക്കൽ ഫയലുകളിലേക്കാണ് വിരൽ ചൂണ്ടുന്നത്. അതിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്ന അവസാന ലിങ്ക് ഇല്ലാതാക്കുമ്പോൾ ഒരു ഫയൽ "അപ്രത്യക്ഷമാകുന്നു".

അതിനാൽ, പേര് പ്രകാരം ഒരു ഫയൽ ആക്സസ് ചെയ്യാൻ,ഓപ്പറേറ്റിംഗ് സിസ്റ്റം

1. ഫയൽ അടങ്ങിയ ഡയറക്‌ടറിയിൽ ഈ പേര് കണ്ടെത്തുന്നു,

2. ഫയലിൻ്റെ ഐ-നോഡിൻ്റെ നമ്പർ ലഭിക്കുന്നു,

3. ഐ-നോഡുകളുടെ വിസ്തൃതിയിൽ ഐ-നോഡ് സംഖ്യയാൽ കണ്ടെത്തുന്നു,

4. ഐ-നോഡിൽ നിന്ന് ഫയൽ ഡാറ്റ സ്ഥിതിചെയ്യുന്ന ബ്ലോക്കുകളുടെ വിലാസങ്ങൾ ലഭിക്കുന്നു,

5. ബ്ലോക്ക് വിലാസങ്ങൾ ഉപയോഗിച്ച് ഡാറ്റ ഏരിയയിൽ നിന്നുള്ള ബ്ലോക്കുകൾ വായിക്കുന്നു.

ഡിസ്ക് പാർട്ടീഷൻ ഘടന EXT2 എഫ്.എസ്

മുഴുവൻ പാർട്ടീഷൻ സ്ഥലവും ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു. ഒരു ബ്ലോക്കിന് 1, 2, അല്ലെങ്കിൽ 4 കിലോബൈറ്റ് വലുപ്പമുണ്ടാകാം. ഡിസ്ക് സ്‌പെയ്‌സിൻ്റെ അഡ്രസ് ചെയ്യാവുന്ന യൂണിറ്റാണ് ബ്ലോക്ക്.

അവരുടെ പ്രദേശത്തെ ബ്ലോക്കുകൾ ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളായി സംയോജിപ്പിച്ചിരിക്കുന്നു. ഒരു ഫയൽ സിസ്റ്റത്തിലെ ബ്ലോക്കുകളുടെയും ഒരു ഗ്രൂപ്പിനുള്ളിലെ ബ്ലോക്കുകളുടെയും ഗ്രൂപ്പുകൾ 1-ൽ തുടങ്ങി തുടർച്ചയായി അക്കമിട്ടിരിക്കുന്നു. ഒരു ഡിസ്കിലെ ആദ്യത്തെ ബ്ലോക്ക് നമ്പർ 1 ആണ്, ഗ്രൂപ്പ് നമ്പർ 1-ൽ ഉൾപ്പെടുന്നു. ഒരു ഡിസ്കിലെ മൊത്തം ബ്ലോക്കുകളുടെ എണ്ണം (ഡിസ്ക് പാർട്ടീഷനിൽ) സെക്ടറുകളിൽ പ്രകടിപ്പിക്കുന്ന ഡിസ്കിൻ്റെ ശേഷിയുടെ വിഭജനമാണ്. ബ്ലോക്ക് ഗ്രൂപ്പുകളുടെ എണ്ണം ബ്ലോക്കുകളുടെ എണ്ണം വിഭജിക്കേണ്ടതില്ല, കാരണം അവസാന ബ്ലോക്ക് ഗ്രൂപ്പ് പൂർണ്ണമായിരിക്കില്ല. ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിൻ്റെയും തുടക്കത്തിന് ഒരു വിലാസമുണ്ട്, അത് ((ഗ്രൂപ്പ് നമ്പർ - 1)* (ഗ്രൂപ്പിലെ ബ്ലോക്കുകളുടെ എണ്ണം)) ആയി ലഭിക്കും.

ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിനും ഒരേ ഘടനയുണ്ട്. അതിൻ്റെ ഘടന പട്ടികയിൽ അവതരിപ്പിച്ചിരിക്കുന്നു.

ഈ ഘടനയുടെ ആദ്യ ഘടകം (സൂപ്പർബ്ലോക്ക്) എല്ലാ ഗ്രൂപ്പുകൾക്കും തുല്യമാണ്, ബാക്കിയുള്ളവ ഓരോ ഗ്രൂപ്പിനും വ്യക്തിഗതമാണ്. ഓരോ ബ്ലോക്ക് ഗ്രൂപ്പിൻ്റെയും ആദ്യ ബ്ലോക്കിലാണ് സൂപ്പർബ്ലോക്ക് സൂക്ഷിച്ചിരിക്കുന്നത് (ആദ്യ ബ്ലോക്കിൽ ബൂട്ട് റെക്കോർഡുള്ള ഗ്രൂപ്പ് 1 ഒഴികെ). സൂപ്പർബ്ലോക്ക്ഫയൽ സിസ്റ്റത്തിൻ്റെ ആരംഭ പോയിൻ്റാണ്. ഇത് 1024 ബൈറ്റുകളുടെ വലുപ്പമാണ്, കൂടാതെ ഫയൽ സിസ്റ്റത്തിൻ്റെ ആരംഭം മുതൽ 1024 ബൈറ്റുകളുടെ ഓഫ്സെറ്റിൽ എല്ലായ്പ്പോഴും സ്ഥിതിചെയ്യുന്നു. ഒരു സൂപ്പർബ്ലോക്കിൻ്റെ ഒന്നിലധികം പകർപ്പുകളുടെ സാന്നിധ്യം ഫയൽ സിസ്റ്റത്തിൻ്റെ ഈ ഘടകത്തിൻ്റെ അങ്ങേയറ്റം പ്രാധാന്യത്താൽ വിശദീകരിക്കപ്പെടുന്നു. പരാജയങ്ങൾക്ക് ശേഷം ഒരു ഫയൽ സിസ്റ്റം വീണ്ടെടുക്കുമ്പോൾ സൂപ്പർബ്ലോക്ക് ഡ്യൂപ്ലിക്കേറ്റുകൾ ഉപയോഗിക്കുന്നു.

സൂപ്പർബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ ഡിസ്കിലെ ബാക്കി ഡാറ്റയിലേക്കുള്ള ആക്സസ് ഓർഗനൈസ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു. സൂപ്പർബ്ലോക്ക് ഫയൽ സിസ്റ്റത്തിൻ്റെ വലുപ്പം, പാർട്ടീഷനിലെ പരമാവധി ഫയലുകളുടെ എണ്ണം, സ്വതന്ത്ര സ്ഥലത്തിൻ്റെ അളവ് എന്നിവ നിർണ്ണയിക്കുന്നു, കൂടാതെ അൺലോക്കേറ്റ് ചെയ്യാത്ത ഏരിയകൾ എവിടെയാണ് തിരയേണ്ടത് എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. OS ആരംഭിക്കുമ്പോൾ, സൂപ്പർബ്ലോക്ക് മെമ്മറിയിലേക്ക് റീഡ് ചെയ്യുകയും ഫയൽ സിസ്റ്റത്തിലെ എല്ലാ മാറ്റങ്ങളും ആദ്യം OS-ൽ സ്ഥിതിചെയ്യുന്ന സൂപ്പർബ്ലോക്കിൻ്റെ ഒരു പകർപ്പിൽ പ്രതിഫലിക്കുകയും ഇടയ്ക്കിടെ ഡിസ്കിലേക്ക് എഴുതുകയും ചെയ്യുന്നു. നിരവധി ഉപയോക്താക്കളും പ്രക്രിയകളും ഫയലുകൾ നിരന്തരം അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ ഇത് സിസ്റ്റം പ്രകടനം മെച്ചപ്പെടുത്തുന്നു. മറുവശത്ത്, സിസ്റ്റം ഓഫായിരിക്കുമ്പോൾ, സൂപ്പർബ്ലോക്ക് ഡിസ്കിലേക്ക് എഴുതണം, ഇത് പവർ ഓഫ് ചെയ്തുകൊണ്ട് കമ്പ്യൂട്ടർ ഓഫ് ചെയ്യാൻ അനുവദിക്കില്ല. അല്ലെങ്കിൽ, അടുത്ത തവണ നിങ്ങൾ ബൂട്ട് ചെയ്യുമ്പോൾ, സൂപ്പർബ്ലോക്കിൽ രേഖപ്പെടുത്തിയിരിക്കുന്ന വിവരങ്ങൾ ഫയൽ സിസ്റ്റത്തിൻ്റെ യഥാർത്ഥ അവസ്ഥയുമായി പൊരുത്തപ്പെടുന്നില്ല.

സൂപ്പർബ്ലോക്കിന് ശേഷം ബ്ലോക്കുകളുടെ ഗ്രൂപ്പിൻ്റെ (ഗ്രൂപ്പ് ഡിസ്ക്രിപ്റ്ററുകൾ) ഒരു വിവരണം ഉണ്ട്. ഈ വിവരണത്തിൽ അടങ്ങിയിരിക്കുന്നു:

ഈ ഗ്രൂപ്പിൻ്റെ ബ്ലോക്ക് ബിറ്റ്മാപ്പ് അടങ്ങുന്ന ബ്ലോക്കിൻ്റെ വിലാസം;

ഈ ഗ്രൂപ്പിൻ്റെ ഐനോഡ് ബിറ്റ്മാപ്പ് അടങ്ങുന്ന ബ്ലോക്കിൻ്റെ വിലാസം;

ഈ ഗ്രൂപ്പിൻ്റെ ഐനോഡ് പട്ടിക അടങ്ങിയിരിക്കുന്ന ബ്ലോക്കിൻ്റെ വിലാസം;

ഈ ഗ്രൂപ്പിലെ ഫ്രീ ബ്ലോക്കുകളുടെ എണ്ണത്തിൻ്റെ കൗണ്ടർ;

ഈ ഗ്രൂപ്പിലെ സൗജന്യ ഐനോഡുകളുടെ എണ്ണം;

തന്നിരിക്കുന്ന ഗ്രൂപ്പിലെ ഡയറക്‌ടറികളായ ഐനോഡുകളുടെ എണ്ണം

മറ്റ് ഡാറ്റയും.

ഗ്രൂപ്പ് വിവരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ ബ്ലോക്ക്, ഐനോഡ് ബിറ്റ്മാപ്പുകൾ, ഐനോഡ് പട്ടിക എന്നിവ കണ്ടെത്തുന്നതിന് ഉപയോഗിക്കുന്നു.

ഫയൽ സിസ്റ്റം Ext 2-ൻ്റെ സവിശേഷത:

  • ശ്രേണിപരമായ ഘടന,
  • ഡാറ്റാ സെറ്റുകളുടെ ഏകോപിത പ്രോസസ്സിംഗ്,
  • ഡൈനാമിക് ഫയൽ എക്സ്റ്റൻഷൻ,
  • ഫയലുകളിലെ വിവരങ്ങളുടെ സംരക്ഷണം,
  • പെരിഫറൽ ഉപകരണങ്ങളെ (ടെർമിനലുകളും ടേപ്പ് ഉപകരണങ്ങളും പോലുള്ളവ) ഫയലുകളായി കണക്കാക്കുന്നു.

ആന്തരിക ഫയൽ പ്രാതിനിധ്യം

Ext 2 സിസ്റ്റത്തിലെ ഓരോ ഫയലിനും ഒരു പ്രത്യേക സൂചികയുണ്ട്. ഫയൽ ആക്സസ് ചെയ്യുന്നതിന് ഏത് പ്രക്രിയയ്ക്കും ആവശ്യമായ വിവരങ്ങൾ സൂചികയിൽ അടങ്ങിയിരിക്കുന്നു. നന്നായി നിർവചിക്കപ്പെട്ട സിസ്റ്റം കോളുകളുടെ ഒരു സെറ്റ് ഉപയോഗിച്ച് ഫയലുകൾ ആക്സസ് ചെയ്യുന്നതും ഒരു യോഗ്യതയുള്ള ഫയൽ നാമമായി പ്രവർത്തിക്കുന്ന പ്രതീകങ്ങളുടെ ഒരു സ്ട്രിംഗ് ഉപയോഗിച്ച് ഫയലിനെ തിരിച്ചറിയുന്നതും പ്രോസസ്സ് ചെയ്യുന്നു. ഓരോ സംയുക്ത നാമവും ഒരു ഫയലിനെ അദ്വിതീയമായി തിരിച്ചറിയുന്നു, അതിനാൽ സിസ്റ്റം കേർണൽ ഈ പേരിനെ ഒരു ഫയൽ സൂചികയാക്കി മാറ്റുന്നു. ഇൻഡെക്സിൽ ഫയൽ വിവരങ്ങൾ ഡിസ്കിൽ സ്ഥിതിചെയ്യുന്ന വിലാസങ്ങളുടെ പട്ടിക ഉൾപ്പെടുന്നു. ഒരു ഡിസ്കിലെ ഓരോ ബ്ലോക്കും അതിൻ്റേതായ നമ്പർ ഉപയോഗിച്ചാണ് അഭിസംബോധന ചെയ്യുന്നത് എന്നതിനാൽ, ഈ പട്ടിക ഡിസ്ക് ബ്ലോക്ക് നമ്പറുകളുടെ ഒരു ശേഖരം സംഭരിക്കുന്നു. ഫ്ലെക്‌സിബിലിറ്റി വർദ്ധിപ്പിക്കുന്നതിനായി, കേർണൽ ഒരു ഫയലിനെ ഒരു സമയം ഒരു ബ്ലോക്ക് കൂട്ടിച്ചേർക്കുന്നു, ഇത് ഫയലിൻ്റെ വിവരങ്ങൾ ഫയൽ സിസ്റ്റത്തിലുടനീളം ചിതറിക്കിടക്കാൻ അനുവദിക്കുന്നു. എന്നാൽ ഈ ലേഔട്ട് ഡാറ്റ തിരയുന്നതിനുള്ള ചുമതല സങ്കീർണ്ണമാക്കുന്നു. വിലാസ പട്ടികയിൽ ഫയലിൻ്റെ വിവരങ്ങൾ അടങ്ങിയ ബ്ലോക്ക് നമ്പറുകളുടെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു.

ഫയൽ ഐനോഡുകൾ

ഡിസ്കിലെ ഓരോ ഫയലിനും ഒരു അനുബന്ധ ഫയൽ ഐനോഡ് ഉണ്ട്, അത് അതിൻ്റെ സീരിയൽ നമ്പർ ഉപയോഗിച്ച് തിരിച്ചറിയുന്നു - ഫയൽ സൂചിക. ഇതിനർത്ഥം ഒരു ഫയൽ സിസ്റ്റത്തിൽ സൃഷ്ടിക്കാൻ കഴിയുന്ന ഫയലുകളുടെ എണ്ണം ഐനോഡുകളുടെ എണ്ണം കൊണ്ട് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, ഇത് ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കുമ്പോൾ വ്യക്തമായി വ്യക്തമാക്കുന്നു അല്ലെങ്കിൽ ഡിസ്ക് പാർട്ടീഷൻ്റെ ഫിസിക്കൽ വലുപ്പത്തെ അടിസ്ഥാനമാക്കി കണക്കാക്കുന്നു. ഇനോഡുകൾ സ്റ്റാറ്റിക് രൂപത്തിൽ ഡിസ്കിൽ നിലവിലുണ്ട്, അവയുമായി പ്രവർത്തിക്കുന്നതിന് മുമ്പ് കേർണൽ അവയെ മെമ്മറിയിലേക്ക് റീഡ് ചെയ്യുന്നു.

ഫയൽ ഐനോഡിൽ ഇനിപ്പറയുന്ന വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

- ഈ ഫയലിൻ്റെ തരവും ആക്സസ് അവകാശങ്ങളും.

ഫയൽ ഉടമ ഐഡൻ്റിഫയർ (ഉടമയുടെ യുഐഡി).

ഫയൽ വലുപ്പം ബൈറ്റുകളിൽ.

ഫയലിലേക്കുള്ള അവസാന പ്രവേശന സമയം (ആക്സസ് സമയം).

ഫയൽ സൃഷ്ടിക്കുന്ന സമയം.

ഫയലിൻ്റെ അവസാന പരിഷ്ക്കരണത്തിൻ്റെ സമയം.

ഫയൽ ഇല്ലാതാക്കൽ സമയം.

ഗ്രൂപ്പ് ഐഡി (GID).

ലിങ്കുകളുടെ എണ്ണം.

ഫയൽ കൈവശപ്പെടുത്തിയിരിക്കുന്ന ബ്ലോക്കുകളുടെ എണ്ണം.

ഫയൽ ഫ്ലാഗുകൾ

OS-നായി കരുതിവച്ചിരിക്കുന്നു

ഫയൽ ഡാറ്റ എഴുതിയ ബ്ലോക്കുകളിലേക്കുള്ള പോയിൻ്ററുകൾ (ചിത്രം 1-ൽ നേരിട്ടുള്ളതും പരോക്ഷവുമായ വിലാസത്തിൻ്റെ ഒരു ഉദാഹരണം)

ഫയൽ പതിപ്പ് (NFS-ന്)

ACL ഫയൽ

ഡയറക്ടറി ACL

ശകലം വിലാസം

ശകലം നമ്പർ

ശകലത്തിൻ്റെ വലിപ്പം

കാറ്റലോഗുകൾ

ഡയറക്ടറികൾ ഫയലുകളാണ്.

കേർണൽ ഒരു സാധാരണ ഫയൽ തരത്തിൽ ചെയ്യുന്നതുപോലെ ഒരു ഡയറക്ടറിയിൽ ഡാറ്റ സംഭരിക്കുന്നു, ഒരു സൂചിക ഘടനയും നേരിട്ടും പരോക്ഷവുമായ അഡ്രസിംഗ് ലെവലുകളുള്ള ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു. സാധാരണ ഫയലുകൾ വായിക്കുന്ന അതേ രീതിയിൽ തന്നെ ഡയറക്‌ടറികളിൽ നിന്നുള്ള ഡാറ്റയും പ്രോസസ്സുകൾക്ക് വായിക്കാൻ കഴിയും, എന്നിരുന്നാലും, ഡയറക്‌ടറിയുടെ ഘടന ശരിയാണെന്ന് ഉറപ്പാക്കിക്കൊണ്ട് ഡയറക്‌ടറിയിലേക്കുള്ള എക്‌സ്‌ക്ലൂസീവ് റൈറ്റ് ആക്‌സസ് കേർണൽ റിസർവ് ചെയ്‌തിരിക്കുന്നു.)

ഒരു പ്രോസസ്സ് ഒരു ഫയൽ പാത്ത് ഉപയോഗിക്കുമ്പോൾ, ബന്ധപ്പെട്ട ഐനോഡ് നമ്പറിനായി കേർണൽ ഡയറക്ടറികളിൽ നോക്കുന്നു. ഫയലിൻ്റെ പേര് ഒരു ഐനോഡ് നമ്പറിലേക്ക് പരിവർത്തനം ചെയ്ത ശേഷം, ഐനോഡ് മെമ്മറിയിൽ സ്ഥാപിക്കുകയും തുടർന്നുള്ള അഭ്യർത്ഥനകളിൽ ഉപയോഗിക്കുകയും ചെയ്യുന്നു.

EXT2-ൻ്റെ അധിക സവിശേഷതകൾ എഫ്.എസ്

സാധാരണ Unix സവിശേഷതകൾ കൂടാതെ, EXT2fs സാധാരണയായി Unix ഫയൽ സിസ്റ്റങ്ങൾ പിന്തുണയ്ക്കാത്ത ചില അധിക സവിശേഷതകൾ നൽകുന്നു.

ഫയലുകളുടെ സെറ്റ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുമ്പോൾ കേർണൽ എങ്ങനെ പ്രതികരിക്കുന്നു എന്നത് മാറ്റാൻ ഫയൽ ആട്രിബ്യൂട്ടുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് ഒരു ഫയലിലോ ഡയറക്ടറിയിലോ ആട്രിബ്യൂട്ടുകൾ സജ്ജമാക്കാൻ കഴിയും. രണ്ടാമത്തെ സാഹചര്യത്തിൽ, ഈ ഡയറക്‌ടറിയിൽ സൃഷ്‌ടിച്ച ഫയലുകൾ ഈ ആട്രിബ്യൂട്ടുകൾ അവകാശമാക്കുന്നു.

സിസ്റ്റം മൗണ്ടിംഗ് സമയത്ത്, ഫയൽ ആട്രിബ്യൂട്ടുകളുമായി ബന്ധപ്പെട്ട ചില സവിശേഷതകൾ സജ്ജമാക്കിയേക്കാം. ഫയലുകൾ എങ്ങനെ സൃഷ്ടിക്കണമെന്ന് തിരഞ്ഞെടുക്കാൻ മൌണ്ട് ഓപ്ഷൻ അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു. ഒരു ബിഎസ്ഡി-നിർദ്ദിഷ്ട ഫയൽ സിസ്റ്റത്തിൽ, പാരൻ്റ് ഡയറക്ടറിയുടെ അതേ ഗ്രൂപ്പ് ഐഡി ഉപയോഗിച്ചാണ് ഫയലുകൾ സൃഷ്ടിക്കുന്നത്. സിസ്റ്റം V യുടെ സവിശേഷതകൾ കുറച്ചുകൂടി സങ്കീർണ്ണമാണ്. ഒരു ഡയറക്ടറിയിൽ സെറ്റ്ഗിഡ് ബിറ്റ് സെറ്റ് ഉണ്ടെങ്കിൽ, സൃഷ്ടിച്ച ഫയലുകൾക്ക് ആ ഡയറക്ടറിയുടെ ഗ്രൂപ്പ് ഐഡൻ്റിഫയറും സബ്ഡയറക്‌ടറികൾ ഗ്രൂപ്പ് ഐഡൻ്റിഫയറും സെറ്റ്ഗിഡ് ബിറ്റും അവകാശമാക്കുന്നു. അല്ലെങ്കിൽ, കോളിംഗ് പ്രക്രിയയുടെ പ്രാഥമിക ഗ്രൂപ്പ് ഐഡി ഉപയോഗിച്ചാണ് ഫയലുകളും ഡയറക്ടറികളും സൃഷ്ടിക്കുന്നത്.

EXT2fs സിസ്റ്റത്തിന് BSD സിസ്റ്റത്തിന് സമാനമായി സിൻക്രണസ് ഡാറ്റ പരിഷ്ക്കരണം ഉപയോഗിക്കാനാകും. എല്ലാ ഡാറ്റയും (ഇനോഡുകൾ, ബിറ്റ് ബ്ലോക്കുകൾ, പരോക്ഷ ബ്ലോക്കുകൾ, ഡയറക്‌ടറി ബ്ലോക്കുകൾ) പരിഷ്‌ക്കരിക്കുമ്പോൾ അവ ഡിസ്‌കിലേക്ക് സിൻക്രൊണസ് ആയി എഴുതപ്പെടുമെന്ന് വ്യക്തമാക്കാൻ മൌണ്ട് ഓപ്ഷൻ അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു. ഉയർന്ന ഡാറ്റ റെക്കോർഡിംഗ് കപ്പാസിറ്റി കൈവരിക്കാൻ ഇത് ഉപയോഗിക്കാം, മാത്രമല്ല മോശം പ്രകടനത്തിനും കാരണമാകുന്നു. വാസ്തവത്തിൽ, ഈ ഫംഗ്ഷൻ സാധാരണയായി ഉപയോഗിക്കാറില്ല, കാരണം, പ്രകടനത്തെ തരംതാഴ്ത്തുന്നതിനൊപ്പം, ഫയൽ സിസ്റ്റം പരിശോധിക്കുമ്പോൾ ഫ്ലാഗ് ചെയ്യപ്പെടാത്ത ഉപയോക്തൃ ഡാറ്റ നഷ്ടപ്പെടാൻ ഇത് ഇടയാക്കും.

ഒരു ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കുമ്പോൾ ലോജിക്കൽ ബ്ലോക്ക് വലിപ്പം തിരഞ്ഞെടുക്കാൻ EXT2fs നിങ്ങളെ അനുവദിക്കുന്നു. ഇതിൻ്റെ വലിപ്പം 1024, 2048 അല്ലെങ്കിൽ 4096 ബൈറ്റുകൾ ആകാം. വലിയ ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നത് വേഗത്തിലുള്ള I/O ഓപ്പറേഷനുകൾക്ക് കാരണമാകുന്നു (കുറച്ച് ഡിസ്ക് അഭ്യർത്ഥനകൾ ഉണ്ടാക്കിയതിനാൽ), അതിനാൽ തലയുടെ ചലനം കുറയുന്നു. മറുവശത്ത്, വലിയ ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നത് ഡിസ്ക് സ്പേസ് പാഴാക്കുന്നതിലേക്ക് നയിക്കുന്നു. സാധാരണയായി, ഒരു ഫയലിൻ്റെ അവസാന ബ്ലോക്ക് വിവരങ്ങൾ സംഭരിക്കുന്നതിന് പൂർണ്ണമായും ഉപയോഗിക്കാറില്ല, അതിനാൽ ബ്ലോക്കിൻ്റെ വലുപ്പം വർദ്ധിക്കുന്നതിനനുസരിച്ച്, പാഴായ ഡിസ്ക് സ്ഥലത്തിൻ്റെ അളവ് വർദ്ധിക്കുന്നു.

ത്വരിതപ്പെടുത്തിയ പ്രതീകാത്മക ലിങ്കുകൾ ഉപയോഗിക്കാൻ EXT2fs നിങ്ങളെ അനുവദിക്കുന്നു. അത്തരം ലിങ്കുകൾ ഉപയോഗിക്കുമ്പോൾ, ഫയൽ സിസ്റ്റം ഡാറ്റ ബ്ലോക്കുകൾ ഉപയോഗിക്കില്ല. ഡെസ്റ്റിനേഷൻ ഫയലിൻ്റെ പേര് ഡാറ്റ ബ്ലോക്കിലല്ല, ഐനോഡിൽ തന്നെ സംഭരിച്ചിരിക്കുന്നു. ഡിസ്ക് സ്പേസ് ലാഭിക്കാനും പ്രതീകാത്മക ലിങ്കുകളുടെ പ്രോസസ്സിംഗ് വേഗത്തിലാക്കാനും ഈ ഘടന നിങ്ങളെ അനുവദിക്കുന്നു. തീർച്ചയായും, ഒരു ഹാൻഡിലിനായി നീക്കിവച്ചിരിക്കുന്ന ഇടം പരിമിതമാണ്, അതിനാൽ എല്ലാ ലിങ്കുകളും ത്വരിതപ്പെടുത്തിയ ലിങ്കായി പ്രതിനിധീകരിക്കാൻ കഴിയില്ല. ത്വരിതപ്പെടുത്തിയ ലിങ്കിലെ ഒരു ഫയലിൻ്റെ പേരിൻ്റെ പരമാവധി ദൈർഘ്യം 60 പ്രതീകങ്ങളാണ്. സമീപഭാവിയിൽ ചെറിയ ഫയലുകൾക്കായി ഈ സ്കീം വിപുലീകരിക്കാൻ പദ്ധതിയിട്ടിട്ടുണ്ട്.

EXT2fs ഫയൽ സിസ്റ്റത്തിൻ്റെ അവസ്ഥ നിരീക്ഷിക്കുന്നു. ഫയൽ സിസ്റ്റത്തിൻ്റെ അവസ്ഥ സൂചിപ്പിക്കാൻ സൂപ്പർബ്ലോക്കിൽ കേർണൽ ഒരു പ്രത്യേക ഫീൽഡ് ഉപയോഗിക്കുന്നു. ഫയൽ സിസ്റ്റം റീഡ്/റൈറ്റ് മോഡിൽ മൌണ്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ, അതിൻ്റെ അവസ്ഥ "വൃത്തിയല്ല" എന്ന് സജ്ജീകരിച്ചിരിക്കുന്നു. റീഡ്-ഒൺലി മോഡിൽ ഇത് പൊളിച്ച് മാറ്റുകയോ റീമൗണ്ട് ചെയ്യുകയോ ചെയ്താൽ, അതിൻ്റെ അവസ്ഥ "ക്ലീൻ" ആയി സജ്ജീകരിക്കും. സിസ്റ്റം ബൂട്ട് ചെയ്യുമ്പോഴും ഫയൽ സിസ്റ്റം സ്റ്റാറ്റസ് പരിശോധിക്കുമ്പോഴും, ഒരു ഫയൽ സിസ്റ്റം പരിശോധന ആവശ്യമാണോ എന്ന് നിർണ്ണയിക്കാൻ ഈ വിവരങ്ങൾ ഉപയോഗിക്കുന്നു. കേർണൽ ഈ ഫീൽഡിൽ ചില പിശകുകളും നൽകുന്നു. കേർണൽ ഒരു പൊരുത്തക്കേട് കണ്ടെത്തുമ്പോൾ, ഫയൽ സിസ്റ്റം "തെറ്റായത്" എന്ന് അടയാളപ്പെടുത്തുന്നു. സിസ്റ്റത്തിൻ്റെ സ്റ്റാറ്റസ് യഥാർത്ഥത്തിൽ വൃത്തിയാണെങ്കിൽ പോലും, ഫയൽ സിസ്റ്റം ചെക്കർ ഈ വിവരങ്ങൾ പരിശോധിക്കുന്നു.

ഫയൽ സിസ്റ്റം ടെസ്റ്റിംഗ് വളരെക്കാലം അവഗണിക്കുന്നത് ചിലപ്പോൾ ചില ബുദ്ധിമുട്ടുകൾക്ക് ഇടയാക്കും, അതിനാൽ സിസ്റ്റം സ്ഥിരമായി പരിശോധിക്കുന്നതിനുള്ള രണ്ട് രീതികൾ EXT2fs-ൽ ഉൾപ്പെടുന്നു. സൂപ്പർബ്ലോക്കിൽ സിസ്റ്റം മൗണ്ട് കൗണ്ടർ അടങ്ങിയിരിക്കുന്നു. ഓരോ തവണയും സിസ്റ്റം റീഡ്/റൈറ്റ് മോഡിൽ മൗണ്ട് ചെയ്യുമ്പോൾ ഈ കൌണ്ടർ വർദ്ധിപ്പിക്കും. അതിൻ്റെ മൂല്യം പരമാവധി എത്തിയാൽ (അത് സൂപ്പർബ്ലോക്കിലും സംഭരിച്ചിരിക്കുന്നു), ഫയൽ സിസ്റ്റം ടെസ്റ്റ് പ്രോഗ്രാം അതിൻ്റെ അവസ്ഥ "ക്ലീൻ" ആണെങ്കിലും അത് പരിശോധിക്കാൻ തുടങ്ങുന്നു. അവസാന പരിശോധന സമയവും ചെക്കുകൾക്കിടയിലുള്ള പരമാവധി ഇടവേളയും സൂപ്പർബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്നു. സ്കാനുകൾക്കിടയിലുള്ള പരമാവധി ഇടവേളയിൽ എത്തുമ്പോൾ, ഫയൽ സിസ്റ്റത്തിൻ്റെ അവസ്ഥ അവഗണിക്കപ്പെടുകയും അതിൻ്റെ സ്കാൻ ആരംഭിക്കുകയും ചെയ്യുന്നു.

പ്രകടന ഒപ്റ്റിമൈസേഷൻ

EXT2fs സിസ്റ്റത്തിൽ അതിൻ്റെ പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുന്ന നിരവധി സവിശേഷതകൾ അടങ്ങിയിരിക്കുന്നു, ഇത് ഫയലുകൾ വായിക്കുമ്പോഴും എഴുതുമ്പോഴും വിവര കൈമാറ്റത്തിൻ്റെ വേഗത വർദ്ധിപ്പിക്കുന്നു.

EXT2fs ഡിസ്ക് ബഫർ സജീവമായി ഉപയോഗിക്കുന്നു. ഒരു ബ്ലോക്ക് വായിക്കേണ്ടിവരുമ്പോൾ, അടുത്തടുത്തുള്ള പല ബ്ലോക്കുകളിലേക്കും കേർണൽ ഒരു I/O ഓപ്പറേഷൻ അഭ്യർത്ഥന നൽകുന്നു. അതിനാൽ, അടുത്തതായി വായിക്കേണ്ട ബ്ലോക്ക് ഡിസ്ക് ബഫറിൽ ലോഡ് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ കേർണൽ ശ്രമിക്കുന്നു. ഫയലുകൾ തുടർച്ചയായി വായിക്കുമ്പോൾ സാധാരണയായി ഇത്തരം പ്രവർത്തനങ്ങൾ നടത്താറുണ്ട്.

EXT2fs സിസ്റ്റത്തിൽ വിവര പ്ലെയ്‌സ്‌മെൻ്റിനായി ധാരാളം ഒപ്റ്റിമൈസേഷനുകളും അടങ്ങിയിരിക്കുന്നു. അനുബന്ധ ഐനോഡുകളും ഡാറ്റ ബ്ലോക്കുകളും ഒരുമിച്ച് ഗ്രൂപ്പുചെയ്യാൻ ബ്ലോക്ക് ഗ്രൂപ്പുകൾ ഉപയോഗിക്കുന്നു. കേർണൽ എല്ലായ്പ്പോഴും ഒരേ ഗ്രൂപ്പിൽ ഒരു ഫയലിൻ്റെ ഡാറ്റ ബ്ലോക്കുകളും അതിൻ്റെ ഡിസ്ക്രിപ്റ്ററും സ്ഥാപിക്കാൻ ശ്രമിക്കുന്നു. ഡിസ്ക്രിപ്റ്ററും അതിൻ്റെ അനുബന്ധ ഡാറ്റ ബ്ലോക്കുകളും വായിക്കുമ്പോൾ ഡ്രൈവ് ഹെഡുകളുടെ ചലനം കുറയ്ക്കാൻ ഇത് ഉദ്ദേശിച്ചുള്ളതാണ്.

ഒരു ഫയലിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ, ഒരു പുതിയ ബ്ലോക്ക് അനുവദിക്കുമ്പോൾ EXT2fs 8 തുടർച്ചയായ ബ്ലോക്കുകൾ വരെ മുൻകൂട്ടി അനുവദിക്കും. കനത്ത സിസ്റ്റം ലോഡിന് കീഴിൽ ഉയർന്ന പ്രകടനം നേടാൻ ഈ രീതി നിങ്ങളെ അനുവദിക്കുന്നു. ഫയലുകൾ തുടർച്ചയായ ബ്ലോക്കുകളിൽ സ്ഥാപിക്കാനും ഇത് അനുവദിക്കുന്നു, ഇത് അവയുടെ തുടർന്നുള്ള വായനയെ വേഗത്തിലാക്കുന്നു.

ഫയൽ സിസ്റ്റങ്ങൾ. ഫയൽ സിസ്റ്റങ്ങളുടെ തരങ്ങൾ. ഫയൽ പ്രവർത്തനങ്ങൾ. കാറ്റലോഗുകൾ. ഡയറക്ടറികൾ ഉപയോഗിച്ചുള്ള പ്രവർത്തനങ്ങൾ.

ഫയൽ എഴുതാനും വായിക്കാനും കഴിയുന്ന ബാഹ്യ മെമ്മറിയുടെ പേരുള്ള മേഖലയാണ്.

ഫയൽ ഉപയോഗിക്കുന്നതിൻ്റെ പ്രധാന ഉദ്ദേശ്യങ്ങൾ.

    വിവരങ്ങളുടെ ദീർഘകാലവും വിശ്വസനീയവുമായ സംഭരണം . ശക്തിയെ ആശ്രയിക്കാത്ത സംഭരണ ​​ഉപകരണങ്ങളുടെ ഉപയോഗത്തിലൂടെയാണ് ഈടുനിൽക്കുന്നത്, കൂടാതെ ഫയലുകളിലേക്കുള്ള ആക്‌സസ്സ് പരിരക്ഷിക്കുന്നതിലൂടെയും OS പ്രോഗ്രാം കോഡിൻ്റെ പൊതു ഓർഗനൈസേഷനിലൂടെയും ഉയർന്ന വിശ്വാസ്യത നിർണ്ണയിക്കപ്പെടുന്നു, അതിൽ ഹാർഡ്‌വെയർ പരാജയങ്ങൾ മിക്കപ്പോഴും സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ നശിപ്പിക്കില്ല. ഫയലുകളിൽ.

    വിവരങ്ങൾ പങ്കിടുന്നു . മനുഷ്യർക്ക് വായിക്കാൻ കഴിയുന്ന പ്രതീകാത്മക നാമവും സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങളിലും ഫയൽ ലൊക്കേഷനിലും സ്ഥിരത പുലർത്തുന്നതിലൂടെ ആപ്ലിക്കേഷനുകൾക്കും ഉപയോക്താക്കൾക്കുമിടയിൽ വിവരങ്ങൾ പങ്കിടുന്നതിനുള്ള സ്വാഭാവികവും എളുപ്പവുമായ മാർഗം ഫയലുകൾ നൽകുന്നു. ഫയലുകൾ ഗ്രൂപ്പുകളായി സംയോജിപ്പിക്കുന്ന ഡയറക്‌ടറികൾ, സ്വഭാവസവിശേഷതകൾ അനുസരിച്ച് ഫയലുകൾ തിരയുന്നതിനുള്ള ഉപകരണങ്ങൾ, ഫയലുകൾ സൃഷ്‌ടിക്കുന്നതിനും പരിഷ്‌ക്കരിക്കുന്നതിനും ഇല്ലാതാക്കുന്നതിനുമുള്ള ഒരു കൂട്ടം കമാൻഡുകൾ എന്നിവയുൾപ്പെടെ ഫയലുകളുമായി പ്രവർത്തിക്കുന്നതിന് ഉപയോക്താവിന് സൗകര്യപ്രദമായ ഉപകരണങ്ങൾ ഉണ്ടായിരിക്കണം. ഒരു ഉപയോക്താവിന് ഒരു ഫയൽ സൃഷ്‌ടിക്കാനും പിന്നീട് തികച്ചും വ്യത്യസ്തമായ ഒരു ഉപയോക്താവിന് ഉപയോഗിക്കാനും കഴിയും, കൂടാതെ മറ്റ് ഉപയോക്താക്കളുടെ ആക്‌സസ് അവകാശങ്ങൾ ഫയൽ സൃഷ്‌ടിക്കനോ അഡ്മിനിസ്ട്രേറ്ററിനോ നിർണ്ണയിക്കാനാകും. ഈ ലക്ഷ്യങ്ങൾ ഫയൽ സിസ്റ്റം വഴി OS-ൽ നടപ്പിലാക്കുന്നു.

ഫയൽ സിസ്റ്റം (FS) ഇതിൽ ഉൾപ്പെടുന്ന ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ഭാഗമാണ്:

    ഡിസ്കിലെ എല്ലാ ഫയലുകളുടെയും ശേഖരണം;

    ഫയൽ ഡയറക്‌ടറികൾ, ഫയൽ ഡിസ്‌ക്രിപ്‌റ്ററുകൾ, സൗജന്യവും ഉപയോഗിച്ചതുമായ ഡിസ്‌ക് സ്‌പേസ് അലോക്കേഷൻ ടേബിളുകൾ പോലുള്ള ഫയലുകൾ നിയന്ത്രിക്കാൻ ഉപയോഗിക്കുന്ന ഡാറ്റാ ഘടനകളുടെ സെറ്റുകൾ;

    ഫയലുകൾ സൃഷ്ടിക്കുക, നശിപ്പിക്കുക, വായിക്കുക, എഴുതുക, പേരിടുക, തിരയുക എന്നിങ്ങനെയുള്ള വിവിധ പ്രവർത്തനങ്ങൾ നടപ്പിലാക്കുന്ന ഒരു കൂട്ടം സിസ്റ്റം സോഫ്റ്റ്‌വെയർ ടൂളുകൾ.

അങ്ങനെ, ഫയൽ സിസ്റ്റം ഒരു ഇൻ്റർമീഡിയറ്റ് ലെയറിൻ്റെ പങ്ക് വഹിക്കുന്നു, അത് ദീർഘകാല ഡാറ്റ സംഭരണത്തിൻ്റെ ഫിസിക്കൽ ഓർഗനൈസേഷൻ്റെ എല്ലാ സങ്കീർണതകളും പരിശോധിക്കുന്നു, കൂടാതെ പ്രോഗ്രാമുകൾക്കായി ഈ സംഭരണത്തിനായി ലളിതമായ ഒരു ലോജിക്കൽ മോഡൽ സൃഷ്ടിക്കുകയും അവയ്ക്ക് ഒരു കൂട്ടം നൽകുകയും ചെയ്യുന്നു. ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള എളുപ്പത്തിൽ ഉപയോഗിക്കാവുന്ന കമാൻഡുകൾ.

ഇനിപ്പറയുന്ന ഫയൽ സിസ്റ്റങ്ങൾ വ്യാപകമായി അറിയപ്പെടുന്നു:

    ഫയൽ സിസ്റ്റം ഓപ്പറേറ്റിംഗ് സിസ്റ്റം മിസ് - ഡോസ് , അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഫയൽ അലോക്കേഷൻ പട്ടിക - കൊഴുപ്പ് ( ഫയൽ വിഹിതം മേശ ).

എല്ലാ ഫയലുകളുടെയും സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ പട്ടികയിൽ അടങ്ങിയിരിക്കുന്നു (ഓരോ ഫയലും തിരിച്ചിരിക്കുന്നു ക്ലസ്റ്ററുകൾഡിസ്ക് സ്ഥലത്തിൻ്റെ ലഭ്യതയെ ആശ്രയിച്ച്, ഒരേ ഫയലിൻ്റെ ക്ലസ്റ്ററുകൾ പരസ്പരം അടുത്ത് സ്ഥിതിചെയ്യണമെന്നില്ല). MS-DOS ഫയൽ സിസ്റ്റത്തിന് കാര്യമായ പരിമിതികളും ദോഷങ്ങളുമുണ്ട്, ഉദാഹരണത്തിന്, താഴെ പേര്ഫയലിന് 12 ബൈറ്റുകൾ അനുവദിച്ചിരിക്കുന്നു; ഒരു വലിയ ഹാർഡ് ഡ്രൈവ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് കാര്യമായ ഫയൽ വിഘടനത്തിലേക്ക് നയിക്കുന്നു;

അത്തരമൊരു എഫ്എസിലെ പ്രധാന പ്രവർത്തനങ്ങൾ ഇനിപ്പറയുന്ന ജോലികൾ പരിഹരിക്കാൻ ലക്ഷ്യമിടുന്നു:

    ഫയൽ നാമകരണം;

    ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്;

    ഫയൽ സിസ്റ്റത്തിൻ്റെ ലോജിക്കൽ മോഡൽ ഡാറ്റ സ്റ്റോറേജിൻ്റെ ഫിസിക്കൽ ഓർഗനൈസേഷനിലേക്ക് മാപ്പ് ചെയ്യുന്നു;

    പവർ പരാജയങ്ങൾ, ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ പിശകുകൾ എന്നിവയ്ക്കുള്ള ഫയൽ സിസ്റ്റം പ്രതിരോധം.

    ഒ.എസ് /2 , വിളിച്ചു എച്ച്പിഎഫ്എസ് ( ഉയർന്ന - പ്രകടനം ഫയൽ സിസ്റ്റം - ഫാസ്റ്റ് ഫയൽ സിസ്റ്റം).

254 പ്രതീകങ്ങൾ വരെ ഉള്ള ഒരു ഫയൽ നാമം ഉണ്ടായിരിക്കാനുള്ള കഴിവ് നൽകുന്നു. ഡിസ്കിൽ എഴുതിയ ഫയലുകൾക്ക് കുറഞ്ഞ വിഘടനം ഉണ്ട്. MS DOS-ൽ എഴുതിയ ഫയലുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ കഴിയും;

മുകളിൽ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ടാസ്‌ക്കുകളിലേക്ക് ഒരു പുതിയ ടാസ്‌ക് ചേർത്തുഒന്നിലധികം പ്രക്രിയകളിൽ നിന്ന് ഒരു ഫയൽ പങ്കിടുന്നു. ഈ കേസിലെ ഫയൽ ഒരു പങ്കിട്ട ഉറവിടമാണ്, അതായത് ഫയൽ സിസ്റ്റം അത്തരം ഉറവിടങ്ങളുമായി ബന്ധപ്പെട്ട മുഴുവൻ പ്രശ്നങ്ങളും പരിഹരിക്കണം. പ്രത്യേകിച്ചും, ഒരു ഫയലും അതിൻ്റെ ഭാഗങ്ങളും തടയുന്നതിനും റേസുകൾ തടയുന്നതിനും തടസ്സങ്ങൾ ഇല്ലാതാക്കുന്നതിനും പകർപ്പുകൾ അനുരഞ്ജിപ്പിക്കുന്നതിനും എഫ്എസ് മാർഗങ്ങൾ നൽകണം.

മൾട്ടി-യൂസർ സിസ്റ്റങ്ങളിൽ, മറ്റൊരു ടാസ്ക്ക് പ്രത്യക്ഷപ്പെടുന്നു: ഒരു ഉപയോക്താവിൻ്റെ ഫയലുകൾ മറ്റൊരു ഉപയോക്താവിൻ്റെ അനധികൃത ആക്സസ്സിൽ നിന്ന് സംരക്ഷിക്കുന്നു.

    ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഫയൽ സിസ്റ്റം വിൻഡോസ് 95

ഇതിന് ഒരു ലെവൽ ഘടനയുണ്ട്, ഇത് ഒരേസമയം നിരവധി ഫയൽ സിസ്റ്റങ്ങളെ പിന്തുണയ്ക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. പഴയ MS-DOS ഫയൽ സിസ്റ്റം നേരിട്ട് പിന്തുണയ്ക്കുന്നു, കൂടാതെ ഫയൽ സിസ്റ്റങ്ങൾ കമ്പനി വികസിപ്പിച്ചിട്ടില്ല മൈക്രോസോഫ്റ്റ്, പ്രത്യേകം ഉപയോഗിച്ച് പിന്തുണയ്ക്കുന്നു മൊഡ്യൂളുകൾ. ദൈർഘ്യമേറിയ (254 പ്രതീകങ്ങൾ വരെ) ഫയൽ നാമങ്ങൾ ഉപയോഗിക്കാൻ കഴിയും.

    ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഫയൽ സിസ്റ്റങ്ങൾ യുണിക്സ്

I/O ഫയൽ സിസ്റ്റങ്ങൾ ആക്സസ് ചെയ്യുന്നതിനുള്ള ഒരു ഏകീകൃത മാർഗം അവ നൽകുന്നു.

ഫയൽ അനുമതികൾ സിസ്റ്റത്തിലേക്കുള്ള ആക്സസ് അവകാശങ്ങൾ പ്രായോഗികമായി നിർണ്ണയിക്കുന്നു (ഫയലിൻ്റെ ഉടമ അത് സൃഷ്ടിച്ച ഉപയോക്താവാണ്).

ഫയൽ തരങ്ങൾ

സാധാരണ ഫയലുകൾ, ഡയറക്‌ടറി ഫയലുകൾ, പ്രത്യേക ഫയലുകൾ, പേരുള്ള പൈപ്പുകൾ, മെമ്മറി-മാപ്പ് ചെയ്‌ത ഫയലുകൾ എന്നിവയും മറ്റുള്ളവയും ഉൾപ്പെടുന്ന പ്രവർത്തനപരമായി വ്യത്യസ്തമായ നിരവധി ഫയൽ തരങ്ങളെ ഫയൽ സിസ്റ്റങ്ങൾ പിന്തുണയ്ക്കുന്നു.

പതിവ് ഫയലുകൾ , അല്ലെങ്കിൽ ലളിതമായി ഫയലുകൾ, ഉപയോക്താവ് അവയിൽ നൽകിയ അല്ലെങ്കിൽ സിസ്റ്റത്തിൻ്റെയും ഉപയോക്തൃ പ്രോഗ്രാമുകളുടെയും പ്രവർത്തനത്തിൻ്റെ ഫലമായി ജനറേറ്റുചെയ്യുന്ന അനിയന്ത്രിതമായ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. മിക്ക ആധുനിക ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും (ഉദാഹരണത്തിന്, UNIX, Windows, OS/2) ഒരു സാധാരണ ഫയലിൻ്റെ ഉള്ളടക്കവും ഘടനയും ഒരു തരത്തിലും നിയന്ത്രിക്കുകയോ നിയന്ത്രിക്കുകയോ ചെയ്യുന്നില്ല. ഒരു സാധാരണ ഫയലിൻ്റെ ഉള്ളടക്കം നിർണ്ണയിക്കുന്നത് അതിനോടൊപ്പം പ്രവർത്തിക്കുന്ന ആപ്ലിക്കേഷനാണ്. ഉദാഹരണത്തിന്, ഒരു ടെക്സ്റ്റ് എഡിറ്റർ ചില കോഡുകളിൽ പ്രതിനിധീകരിക്കുന്ന പ്രതീകങ്ങളുടെ സ്ട്രിംഗുകൾ അടങ്ങിയ ടെക്സ്റ്റ് ഫയലുകൾ സൃഷ്ടിക്കുന്നു. ഇവ ഡോക്യുമെൻ്റുകൾ, പ്രോഗ്രാം സോഴ്സ് കോഡുകൾ മുതലായവ ആകാം. ടെക്സ്റ്റ് ഫയലുകൾ സ്ക്രീനിൽ വായിക്കാനും പ്രിൻ്ററിൽ പ്രിൻ്റ് ചെയ്യാനും കഴിയും. ബൈനറി ഫയലുകൾ പ്രതീക കോഡുകൾ ഉപയോഗിക്കുന്നില്ല, കൂടാതെ എക്സിക്യൂട്ടബിൾ പ്രോഗ്രാം കോഡ് അല്ലെങ്കിൽ ഒരു ആർക്കൈവ് ഫയൽ പോലെയുള്ള സങ്കീർണ്ണമായ ആന്തരിക ഘടനകൾ ഉണ്ട്. എല്ലാ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കും കുറഞ്ഞത് ഒരു ഫയൽ തരമെങ്കിലും തിരിച്ചറിയാൻ കഴിയണം - സ്വന്തം എക്സിക്യൂട്ടബിൾ ഫയലുകൾ.

കാറ്റലോഗുകൾ - ഇത് ചില അനൗപചാരിക മാനദണ്ഡങ്ങൾ അനുസരിച്ച് ഉപയോക്താക്കൾ ഗ്രൂപ്പുചെയ്‌ത ഒരു കൂട്ടം ഫയലുകളെക്കുറിച്ചുള്ള സിസ്റ്റം റഫറൻസ് വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു പ്രത്യേക തരം ഫയലുകളാണ് (ഉദാഹരണത്തിന്, ഒരേ കരാറിൻ്റെ പ്രമാണങ്ങൾ അടങ്ങിയ ഫയലുകൾ അല്ലെങ്കിൽ ഒരു സോഫ്റ്റ്‌വെയർ പാക്കേജ് നിർമ്മിക്കുന്ന ഫയലുകൾ ഒന്നായി സംയോജിപ്പിച്ചിരിക്കുന്നു. ഗ്രൂപ്പ്). പല ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും, ഒരു ഡയറക്ടറിയിൽ മറ്റ് ഡയറക്‌ടറികൾ ഉൾപ്പെടെ ഏത് തരത്തിലുള്ള ഫയലും അടങ്ങിയിരിക്കാം, തിരയാൻ എളുപ്പമുള്ള ഒരു ട്രീ ഘടന സൃഷ്ടിക്കുന്നു. ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നതിനായി ഫയൽ സിസ്റ്റം ഉപയോഗിക്കുന്ന ഫയൽ നാമങ്ങളും ഫയൽ സവിശേഷതകളും തമ്മിൽ ഡയറക്ടറികൾ ഒരു മാപ്പിംഗ് സ്ഥാപിക്കുന്നു. അത്തരം സ്വഭാവസവിശേഷതകളിൽ, പ്രത്യേകിച്ച്, ഫയലിൻ്റെ തരത്തെക്കുറിച്ചും ഡിസ്കിലെ അതിൻ്റെ സ്ഥാനത്തെക്കുറിച്ചും ഉള്ള വിവരങ്ങൾ (അല്ലെങ്കിൽ ഈ ഡാറ്റ ഉൾക്കൊള്ളുന്ന മറ്റൊരു ഘടനയിലേക്കുള്ള ഒരു പോയിൻ്റർ), ഫയലിലേക്കുള്ള ആക്സസ് അവകാശങ്ങൾ, അത് സൃഷ്ടിച്ചതിൻ്റെയും പരിഷ്ക്കരണത്തിൻ്റെയും തീയതികൾ എന്നിവ ഉൾപ്പെടുന്നു. മറ്റെല്ലാ കാര്യങ്ങളിലും, ഡയറക്‌ടറികൾ ഫയൽ സിസ്റ്റം സാധാരണ ഫയലുകളായി കണക്കാക്കുന്നു.

പ്രത്യേക ഫയലുകൾ - ഫയലുകളും ബാഹ്യ ഉപകരണങ്ങളും ആക്സസ് ചെയ്യുന്നതിനുള്ള മെക്കാനിസം ഏകീകരിക്കാൻ ഉപയോഗിക്കുന്ന I/O ഉപകരണങ്ങളുമായി ബന്ധപ്പെട്ട ഡമ്മി ഫയലുകളാണ് ഇവ. ഒരു ഫയലിലേക്ക് എഴുതുന്നതിനോ ഫയലിൽ നിന്ന് വായിക്കുന്നതിനോ സാധാരണ കമാൻഡുകൾ ഉപയോഗിച്ച് I/O പ്രവർത്തനങ്ങൾ നടത്താൻ പ്രത്യേക ഫയലുകൾ ഉപയോക്താവിനെ അനുവദിക്കുന്നു. ഈ കമാൻഡുകൾ ആദ്യം ഫയൽ സിസ്റ്റം പ്രോഗ്രാമുകൾ വഴി പ്രോസസ്സ് ചെയ്യുന്നു, തുടർന്ന് അഭ്യർത്ഥന നിർവ്വഹണത്തിൻ്റെ ചില ഘട്ടങ്ങളിൽ അവ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം അനുബന്ധ ഉപകരണത്തിനുള്ള നിയന്ത്രണ കമാൻഡുകളായി പരിവർത്തനം ചെയ്യുന്നു.

സിംബോളിക് ലിങ്കുകൾ, പേരുള്ള പൈപ്പുകൾ, മെമ്മറി മാപ്പ് ചെയ്ത ഫയലുകൾ എന്നിങ്ങനെയുള്ള മറ്റ് ഫയൽ തരങ്ങളെ ആധുനിക ഫയൽ സിസ്റ്റങ്ങൾ പിന്തുണയ്ക്കുന്നു.

ഹൈറാർക്കിക്കൽ ഫയൽ സിസ്റ്റം ഘടന

ഉപയോക്താക്കൾ പ്രതീകാത്മക പേരുകളിലൂടെ ഫയലുകൾ ആക്സസ് ചെയ്യുന്നു. എന്നിരുന്നാലും, ഒരു ഉപയോക്താവിന് പേര് ഉപയോഗിച്ച് പരാമർശിക്കാൻ കഴിയുന്ന ഒബ്‌ജക്റ്റ് പേരുകളുടെ എണ്ണം ഹ്യൂമൻ മെമ്മറി പരിമിതപ്പെടുത്തുന്നു. നെയിംസ്‌പെയ്‌സിൻ്റെ ശ്രേണിപരമായ ഓർഗനൈസേഷൻ ഈ അതിരുകൾ ഗണ്യമായി വികസിപ്പിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നു. അതുകൊണ്ടാണ് മിക്ക ഫയൽ സിസ്റ്റങ്ങൾക്കും ഒരു ഹൈറാർക്കിക്കൽ ഘടനയുള്ളത്, അതിൽ താഴ്ന്ന തലത്തിലുള്ള ഡയറക്ടറി ഒരു ഉയർന്ന തലത്തിലുള്ള ഡയറക്ടറിയിൽ ഉൾക്കൊള്ളാൻ അനുവദിച്ചുകൊണ്ട് ലെവലുകൾ സൃഷ്ടിക്കപ്പെടുന്നു (ചിത്രം 7.3).

ഡയറക്‌ടറി ശ്രേണിയെ വിവരിക്കുന്ന ഗ്രാഫ് ഒരു ട്രീ അല്ലെങ്കിൽ നെറ്റ്‌വർക്ക് ആകാം. ഒരു ഡയറക്‌ടറിയിൽ (ചിത്രം 7.3, ബി) ഒരു ഫയൽ ഉൾപ്പെടുത്താൻ അനുവദിക്കുകയാണെങ്കിൽ ഡയറക്‌ടറികൾ ഒരു ട്രീ രൂപീകരിക്കുന്നു (ചിത്രം. 7.3, ബി), ഒരു നെറ്റ്‌വർക്ക് - ഒരേസമയം നിരവധി ഡയറക്‌ടറികളിൽ ഫയൽ ഉൾപ്പെടുത്താൻ കഴിയുമെങ്കിൽ (ചിത്രം 7.3, സി). ഉദാഹരണത്തിന്, MS-DOS, Windows എന്നിവയിൽ, ഡയറക്ടറികൾ ഒരു ട്രീ ഘടന ഉണ്ടാക്കുന്നു, UNIX-ൽ അവ ഒരു നെറ്റ്‌വർക്ക് ഘടന ഉണ്ടാക്കുന്നു. ഒരു വൃക്ഷ ഘടനയിൽ, ഓരോ ഫയലും ഒരു ഇലയാണ്. ഉയർന്ന തലത്തിലുള്ള ഡയറക്ടറി എന്ന് വിളിക്കുന്നു റൂട്ട് ഡയറക്ടറി, അല്ലെങ്കിൽ റൂട്ട് ( റൂട്ട് ).

ഈ ഓർഗനൈസേഷൻ ഉപയോഗിച്ച്, എല്ലാ ഫയലുകളുടെയും പേരുകൾ ഓർമ്മിക്കുന്നതിൽ നിന്ന് ഉപയോക്താവിനെ മോചിപ്പിക്കുന്നു; ഡയറക്‌ടറികൾ തുടർച്ചയായി ബ്രൗസ് ചെയ്‌ത് കണ്ടെത്തുന്നതിന് ഒരു പ്രത്യേക ഫയൽ ഏത് ഗ്രൂപ്പിലേക്ക് അസൈൻ ചെയ്യാം എന്നതിൻ്റെ ഏകദേശ ധാരണ മാത്രമേ അയാൾക്കുണ്ടാകൂ. മൾട്ടി-യൂസർ വർക്കിന് ഹൈറാർക്കിക്കൽ ഘടന സൗകര്യപ്രദമാണ്: ഓരോ ഉപയോക്താവും അവൻ്റെ ഫയലുകളുള്ള സ്വന്തം ഡയറക്‌ടറിയിലോ ഡയറക്‌ടറികളുടെ സബ്‌ട്രീയിലോ പ്രാദേശികവൽക്കരിച്ചിട്ടുണ്ട്, അതേ സമയം, സിസ്റ്റത്തിലെ എല്ലാ ഫയലുകളും യുക്തിസഹമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

എല്ലാ ഫയലുകളും ഒരു ഡയറക്‌ടറിയിൽ (ചിത്രം 7.3, എ) ഉൾപ്പെടുത്തുമ്പോൾ, ഒരു ശ്രേണിപരമായ ഘടനയുടെ ഒരു പ്രത്യേക കേസ് ഒരു ഏക-തല ഓർഗനൈസേഷനാണ്.

ഫയലുകളുടെ പേരുകൾ

എല്ലാ ഫയൽ തരങ്ങൾക്കും പ്രതീകാത്മക പേരുകളുണ്ട്. ശ്രേണിക്രമത്തിൽ ക്രമീകരിച്ച ഫയൽ സിസ്റ്റങ്ങൾ സാധാരണയായി മൂന്ന് തരം ഫയൽനാമങ്ങൾ ഉപയോഗിക്കുന്നു: ലളിതം, സംയുക്തം, ആപേക്ഷികം.

ഒരു ലളിതമായ അല്ലെങ്കിൽ ഹ്രസ്വമായ പ്രതീകാത്മക നാമം ഒരൊറ്റ ഡയറക്‌ടറിക്കുള്ളിൽ ഒരു ഫയലിനെ തിരിച്ചറിയുന്നു. ഉപയോക്താക്കളും പ്രോഗ്രാമർമാരും ഫയലുകൾക്ക് ലളിതമായ പേരുകൾ നൽകിയിട്ടുണ്ട്, കൂടാതെ അവർ പ്രതീകങ്ങളുടെ ശ്രേണിയിലും പേരിൻ്റെ ദൈർഘ്യത്തിലും OS നിയന്ത്രണങ്ങൾ കണക്കിലെടുക്കണം. താരതമ്യേന അടുത്ത കാലം വരെ, ഈ അതിരുകൾ വളരെ ഇടുങ്ങിയതായിരുന്നു. അങ്ങനെ, ജനപ്രിയ FAT ഫയൽ സിസ്റ്റത്തിൽ, പേരുകളുടെ ദൈർഘ്യം സ്കീം 8.3 ആയി പരിമിതപ്പെടുത്തി (8 പ്രതീകങ്ങൾ - പേര് തന്നെ, 3 പ്രതീകങ്ങൾ - പേര് വിപുലീകരണം), കൂടാതെ UNIX OS-ൻ്റെ നിരവധി പതിപ്പുകൾ പിന്തുണയ്ക്കുന്ന s5 ഫയൽ സിസ്റ്റത്തിൽ, ഒരു ലളിതമായ പ്രതീകാത്മക നാമത്തിൽ 14 പ്രതീകങ്ങളിൽ കൂടുതൽ അടങ്ങിയിരിക്കരുത്. എന്നിരുന്നാലും, ദൈർഘ്യമേറിയ പേരുകളിൽ പ്രവർത്തിക്കുന്നത് ഉപയോക്താവിന് കൂടുതൽ സൗകര്യപ്രദമാണ്, കാരണം ഫയലുകളിൽ അടങ്ങിയിരിക്കുന്നതെന്താണെന്ന് വ്യക്തമായി സൂചിപ്പിക്കുന്ന ഫയലുകൾക്ക് ഓർമ്മിക്കാൻ എളുപ്പമുള്ള പേരുകൾ നൽകാൻ അവർ നിങ്ങളെ അനുവദിക്കുന്നു. അതിനാൽ, ആധുനിക ഫയൽ സിസ്റ്റങ്ങളും അതുപോലെ തന്നെ നിലവിലുള്ള ഫയൽ സിസ്റ്റങ്ങളുടെ മെച്ചപ്പെടുത്തിയ പതിപ്പുകളും ദൈർഘ്യമേറിയതും ലളിതവുമായ പ്രതീകാത്മക ഫയൽ നാമങ്ങളെ പിന്തുണയ്ക്കുന്നു. ഉദാഹരണത്തിന്, Windows NT ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന NTFS, FAT32 ഫയൽ സിസ്റ്റങ്ങളിൽ, ഒരു ഫയലിൻ്റെ പേരിൽ 255 പ്രതീകങ്ങൾ വരെ അടങ്ങിയിരിക്കാം.

ഹൈറാർക്കിക്കൽ ഫയൽ സിസ്റ്റങ്ങളിൽ, വ്യത്യസ്ത ഫയലുകൾ വ്യത്യസ്ത ഡയറക്‌ടറികളുടേതാണെങ്കിൽ, ഒരേ ലളിതമായ പ്രതീകാത്മക പേരുകൾ അനുവദിക്കും. അതായത്, "നിരവധി ഫയലുകൾ - ഒരു ലളിതമായ പേര്" സ്കീം ഇവിടെ പ്രവർത്തിക്കുന്നു. അത്തരം സിസ്റ്റങ്ങളിൽ ഒരു ഫയൽ അദ്വിതീയമായി തിരിച്ചറിയാൻ, പൂർണ്ണനാമം എന്ന് വിളിക്കപ്പെടുന്നവ ഉപയോഗിക്കുന്നു.

എല്ലാ ഡയറക്ടറികളുടെയും ലളിതമായ പ്രതീകാത്മക പേരുകളുടെ ഒരു ശൃംഖലയാണ് മുഴുവൻ പേര്, റൂട്ടിൽ നിന്ന് നൽകിയിരിക്കുന്ന ഫയലിലേക്കുള്ള പാത കടന്നുപോകുന്നു. അങ്ങനെ, പൂർണ്ണമായ പേര് ഒരു സംയുക്ത നാമമാണ്, അതിൽ ലളിതമായ പേരുകൾ OS-ൽ അംഗീകരിക്കപ്പെട്ട സെപ്പറേറ്റർ പരസ്പരം വേർതിരിക്കുന്നു. പലപ്പോഴും ഒരു ഫോർവേഡ് അല്ലെങ്കിൽ ബാക്ക്സ്ലാഷ് ഒരു ഡിലിമിറ്ററായി ഉപയോഗിക്കുന്നു, കൂടാതെ റൂട്ട് ഡയറക്ടറിയുടെ പേര് വ്യക്തമാക്കാതിരിക്കുന്നത് പതിവാണ്. ചിത്രത്തിൽ. 7.3, b രണ്ട് ഫയലുകൾക്ക് main.exe എന്ന ലളിതമായ പേരുണ്ട്, എന്നാൽ അവയുടെ സംയുക്ത നാമങ്ങൾ /depart/main.exe, /user/anna/main.exe എന്നിവ വ്യത്യസ്തമാണ്.

ഒരു ട്രീ ഫയൽ സിസ്റ്റത്തിൽ, ഒരു ഫയലും അതിൻ്റെ പൂർണ്ണമായ പേരും തമ്മിൽ പരസ്പരം കത്തിടപാടുകൾ ഉണ്ട്: ഒരു ഫയൽ - ഒരു മുഴുവൻ പേര്. നെറ്റ്‌വർക്ക് ഘടനയുള്ള ഫയൽ സിസ്റ്റങ്ങളിൽ, ഒരു ഫയൽ പല ഡയറക്‌ടറികളിലും ഉൾപ്പെടുത്താം, അതിനാൽ നിരവധി പൂർണ്ണമായ പേരുകളുണ്ട്; ഇവിടെ കത്തിടപാടുകൾ "ഒരു ഫയൽ - നിരവധി മുഴുവൻ പേരുകൾ" സാധുവാണ്. രണ്ട് സാഹചര്യങ്ങളിലും, ഫയൽ അതിൻ്റെ പൂർണ്ണമായ പേര് ഉപയോഗിച്ച് അദ്വിതീയമായി തിരിച്ചറിയുന്നു.

ഒരു ആപേക്ഷിക നാമം ഉപയോഗിച്ച് ഒരു ഫയൽ തിരിച്ചറിയാനും കഴിയും. "നിലവിലെ ഡയറക്ടറി" എന്ന ആശയത്തിലൂടെയാണ് ആപേക്ഷിക ഫയലിൻ്റെ പേര് നിർണ്ണയിക്കുന്നത്. ഓരോ ഉപയോക്താവിനും, ഏത് സമയത്തും, ഫയൽ സിസ്റ്റം ഡയറക്‌ടറികളിലൊന്നാണ് നിലവിലെ ഡയറക്‌ടറി, കൂടാതെ ഈ ഡയറക്‌ടറി ഉപയോക്താവ് തന്നെ ഒരു OS കമാൻഡിൽ തിരഞ്ഞെടുക്കുന്നു. ഫയൽ സിസ്റ്റം നിലവിലെ ഡയറക്‌ടറിയുടെ പേര് ക്യാപ്‌ചർ ചെയ്യുന്നു, അതുവഴി പൂർണ്ണ യോഗ്യതയുള്ള ഫയൽ നാമം രൂപപ്പെടുത്തുന്നതിന് ആപേക്ഷിക നാമങ്ങളുടെ പൂരകമായി അത് ഉപയോഗിക്കാനാകും. ആപേക്ഷിക നാമങ്ങൾ ഉപയോഗിക്കുമ്പോൾ, നിലവിലെ ഡയറക്ടറിയിൽ നിന്ന് നൽകിയിരിക്കുന്ന ഫയലിലേക്കുള്ള റൂട്ട് കടന്നുപോകുന്ന ഡയറക്‌ടറി നാമങ്ങളുടെ ശൃംഖല ഉപയോഗിച്ച് ഉപയോക്താവ് ഒരു ഫയലിനെ തിരിച്ചറിയുന്നു. ഉദാഹരണത്തിന്, നിലവിലെ ഡയറക്‌ടറി /ഉപയോക്താവാണെങ്കിൽ, ആപേക്ഷിക ഫയലിൻ്റെ പേര് /user/anna/main.exe ആണ് anna/main.exe.

ഒരേ ഫയലിലേക്ക് ഒന്നിലധികം ലളിതമായ പേരുകൾ നൽകുന്നതിന് ചില ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ നിങ്ങളെ അനുവദിക്കുന്നു, അവയെ അപരനാമങ്ങളായി വ്യാഖ്യാനിക്കാം. ഈ സാഹചര്യത്തിൽ, ഒരു നെറ്റ്‌വർക്ക് ഘടനയുള്ള ഒരു സിസ്റ്റത്തിലെന്നപോലെ, "ഒരു ഫയൽ - നിരവധി മുഴുവൻ പേരുകൾ" എന്ന കത്തിടപാടുകൾ സ്ഥാപിക്കപ്പെടുന്നു, കാരണം ഓരോ ലളിതമായ ഫയൽ നാമവും കുറഞ്ഞത് ഒരു പൂർണ്ണമായ പേരുമായി യോജിക്കുന്നു.

പൂർണ്ണമായ പേര് ഫയലിനെ അദ്വിതീയമായി തിരിച്ചറിയുന്നുണ്ടെങ്കിലും, ഫയലുകളും അവയുടെ പേരുകളും തമ്മിൽ പരസ്പരം കത്തിടപാടുകൾ ഉണ്ടെങ്കിൽ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് ഫയലുമായി പ്രവർത്തിക്കുന്നത് എളുപ്പമാണ്. ഈ ആവശ്യത്തിനായി, അത് ഫയലിന് ഒരു അദ്വിതീയ നാമം നൽകുന്നു, അതിനാൽ "ഒരു ഫയൽ - ഒരു അദ്വിതീയ നാമം" എന്ന ബന്ധം സാധുവാണ്. ഉപയോക്താക്കളോ ആപ്ലിക്കേഷനുകളോ ഫയലിന് നൽകിയിട്ടുള്ള ഒന്നോ അതിലധികമോ പ്രതീകാത്മക പേരുകൾക്കൊപ്പം അദ്വിതീയ നാമം നിലവിലുണ്ട്. അദ്വിതീയ നാമം ഒരു സംഖ്യാ ഐഡൻ്റിഫയർ ആണ്, ഇത് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനായി മാത്രം ഉദ്ദേശിച്ചുള്ളതാണ്. UNIX സിസ്റ്റത്തിലെ ഒരു ഐനോഡ് നമ്പറാണ് അത്തരമൊരു അദ്വിതീയ ഫയൽ നാമത്തിൻ്റെ ഉദാഹരണം.

ഫയൽ ആട്രിബ്യൂട്ടുകൾ

"ഫയൽ" എന്ന ആശയത്തിൽ അത് സംഭരിക്കുന്ന ഡാറ്റയും പേരും മാത്രമല്ല, അതിൻ്റെ ആട്രിബ്യൂട്ടുകളും ഉൾപ്പെടുന്നു. ഗുണവിശേഷങ്ങൾ - ഫയലിൻ്റെ ഗുണവിശേഷതകൾ വിവരിക്കുന്ന വിവരമാണിത്. സാധ്യമായ ഫയൽ ആട്രിബ്യൂട്ടുകളുടെ ഉദാഹരണങ്ങൾ:

    ഫയൽ തരം (സാധാരണ ഫയൽ, ഡയറക്ടറി, പ്രത്യേക ഫയൽ മുതലായവ);

    ഫയൽ ഉടമ;

    ഫയൽ സ്രഷ്ടാവ്;

    ഫയൽ ആക്സസ് ചെയ്യുന്നതിനുള്ള പാസ്വേഡ്;

    അനുവദനീയമായ ഫയൽ ആക്സസ് പ്രവർത്തനങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ;

    സൃഷ്ടിയുടെ സമയം, അവസാന പ്രവേശനവും അവസാന പരിഷ്ക്കരണവും;

    നിലവിലെ ഫയൽ വലുപ്പം;

    പരമാവധി ഫയൽ വലുപ്പം;

    വായിക്കാൻ മാത്രമുള്ള അടയാളം;

    "മറഞ്ഞിരിക്കുന്ന ഫയൽ" അടയാളം;

    "സിസ്റ്റം ഫയൽ" ഒപ്പിടുക;

    "ആർക്കൈവ് ഫയൽ" ഒപ്പിടുക;

    "ബൈനറി/കഥാപാത്രം" ആട്രിബ്യൂട്ട്;

    ആട്രിബ്യൂട്ട് "താൽക്കാലികം" (പ്രക്രിയ പൂർത്തിയാക്കിയ ശേഷം നീക്കം ചെയ്യുക);

    തടയൽ അടയാളം;

    ഫയൽ റെക്കോർഡ് ദൈർഘ്യം;

    റെക്കോർഡിലെ പ്രധാന ഫീൽഡിലേക്കുള്ള പോയിൻ്റർ;

    കീ നീളം.

ഫയൽ ആട്രിബ്യൂട്ടുകളുടെ സെറ്റ് നിർണ്ണയിക്കുന്നത് ഫയൽ സിസ്റ്റത്തിൻ്റെ പ്രത്യേകതകൾ അനുസരിച്ചാണ്: വ്യത്യസ്ത തരം ഫയൽ സിസ്റ്റങ്ങൾ ഫയലുകളുടെ സ്വഭാവരൂപീകരണത്തിനായി വ്യത്യസ്ത സെറ്റ് ആട്രിബ്യൂട്ടുകൾ ഉപയോഗിച്ചേക്കാം. ഉദാഹരണത്തിന്, ഫ്ലാറ്റ് ഫയലുകൾ പിന്തുണയ്ക്കുന്ന ഫയൽ സിസ്റ്റങ്ങളിൽ, ഫയൽ ഘടനയുമായി ബന്ധപ്പെട്ട ലിസ്റ്റിലെ അവസാനത്തെ മൂന്ന് ആട്രിബ്യൂട്ടുകൾ ഉപയോഗിക്കേണ്ടതില്ല. ഒരു ഒറ്റ-ഉപയോക്തൃ OS-ൽ, ഫയലിൻ്റെ ഉടമ, ഫയലിൻ്റെ സ്രഷ്ടാവ്, ഫയൽ ആക്‌സസ് ചെയ്യുന്നതിനുള്ള പാസ്‌വേഡ്, ഫയലിലേക്കുള്ള അംഗീകൃത ആക്‌സസ് സംബന്ധിച്ച വിവരങ്ങൾ എന്നിങ്ങനെയുള്ള ഉപയോക്താക്കൾക്കും സുരക്ഷയ്ക്കും പ്രസക്തമായ സ്വഭാവസവിശേഷതകൾ ആട്രിബ്യൂട്ടുകളുടെ സെറ്റിൽ ഉണ്ടായിരിക്കില്ല.

ഫയൽ സിസ്റ്റം ഈ ആവശ്യത്തിനായി നൽകിയിരിക്കുന്ന സൗകര്യങ്ങൾ ഉപയോഗിച്ച് ഉപയോക്താവിന് ആട്രിബ്യൂട്ടുകൾ ആക്സസ് ചെയ്യാൻ കഴിയും. സാധാരണഗതിയിൽ, നിങ്ങൾക്ക് ഏത് ആട്രിബ്യൂട്ടിൻ്റെയും മൂല്യങ്ങൾ വായിക്കാൻ കഴിയും, എന്നാൽ ചിലത് മാത്രം മാറ്റുക. ഉദാഹരണത്തിന്, ഒരു ഉപയോക്താവിന് ഒരു ഫയലിൻ്റെ അനുമതികൾ മാറ്റാൻ കഴിയും (അവർക്ക് അതിനാവശ്യമായ അനുമതിയുണ്ടെങ്കിൽ), പക്ഷേ ഫയലിൻ്റെ സൃഷ്‌ടി തീയതിയോ നിലവിലെ വലുപ്പമോ അവർക്ക് മാറ്റാൻ കഴിയില്ല.

MS-DOS ഫയൽ സിസ്റ്റത്തിൽ (ചിത്രം 7.6a) ചെയ്യുന്നത് പോലെ, ഫയൽ ആട്രിബ്യൂട്ട് മൂല്യങ്ങൾ ഡയറക്ടറികളിൽ നേരിട്ട് അടങ്ങിയിരിക്കാം. ലളിതമായ പ്രതീകാത്മക നാമവും ഫയൽ ആട്രിബ്യൂട്ടുകളും അടങ്ങുന്ന ഒരു ഡയറക്ടറി എൻട്രിയുടെ ഘടന ചിത്രം കാണിക്കുന്നു. ഇവിടെ അക്ഷരങ്ങൾ ഫയലിൻ്റെ സവിശേഷതകൾ സൂചിപ്പിക്കുന്നു: R - വായിക്കാൻ മാത്രം, A - ആർക്കൈവ്, H - മറച്ചത്, S - സിസ്റ്റം.

അരി. 7.6ഡയറക്ടറി ഘടന: a - MS-DOS ഡയറക്ടറി എൻട്രി ഘടന (32 ബൈറ്റുകൾ), b - UNIX OS ഡയറക്ടറി എൻട്രി ഘടന

കാറ്റലോഗുകളിൽ ഈ പട്ടികകളിലേക്കുള്ള ലിങ്കുകൾ മാത്രം അടങ്ങിയിരിക്കുമ്പോൾ, പ്രത്യേക പട്ടികകളിൽ ആട്രിബ്യൂട്ടുകൾ സ്ഥാപിക്കുക എന്നതാണ് മറ്റൊരു ഓപ്ഷൻ. ഈ സമീപനം നടപ്പിലാക്കുന്നു, ഉദാഹരണത്തിന്, UNIX OS-ൻ്റെ ufs ഫയൽ സിസ്റ്റത്തിൽ. ഈ ഫയൽ സിസ്റ്റത്തിൽ, ഡയറക്ടറി ഘടന വളരെ ലളിതമാണ്. ഓരോ ഫയലിൻ്റെയും റെക്കോർഡിൽ ഒരു ചെറിയ പ്രതീകാത്മക ഫയൽ നാമവും ഫയൽ സൂചിക വിവരണത്തിലേക്കുള്ള ഒരു പോയിൻ്ററും അടങ്ങിയിരിക്കുന്നു, ഫയൽ ആട്രിബ്യൂട്ട് മൂല്യങ്ങൾ കേന്ദ്രീകരിച്ചിരിക്കുന്ന പട്ടികയുടെ ufs-ലെ പേരാണിത് (ചിത്രം 7.6, b).

രണ്ട് പതിപ്പുകളിലും, ഡയറക്‌ടറികൾ ഫയൽ നാമങ്ങളും ഫയലുകളും തമ്മിൽ ഒരു ലിങ്ക് നൽകുന്നു. എന്നിരുന്നാലും, ഫയലിൻ്റെ പേര് അതിൻ്റെ ആട്രിബ്യൂട്ടുകളിൽ നിന്ന് വേർതിരിക്കുന്ന സമീപനം സിസ്റ്റത്തെ കൂടുതൽ വഴക്കമുള്ളതാക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ഫയൽ ഒരേസമയം നിരവധി ഡയറക്ടറികളിൽ എളുപ്പത്തിൽ ഉൾപ്പെടുത്താം. വ്യത്യസ്ത ഡയറക്‌ടറികളിലെ ഈ ഫയലിനുള്ള എൻട്രികൾക്ക് വ്യത്യസ്ത ലളിതമായ പേരുകൾ ഉണ്ടായിരിക്കാം, എന്നാൽ ലിങ്ക് ഫീൽഡിന് ഒരേ ഐനോഡ് നമ്പർ ഉണ്ടായിരിക്കും.

ഫയൽ പ്രവർത്തനങ്ങൾ

മിക്ക ആധുനിക ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും ഒരു ഫയലിനെ വേരിയബിൾ-ലെംഗ്ത്ത് ബൈറ്റുകളുടെ ഘടനയില്ലാത്ത ശ്രേണിയായി കണക്കാക്കുന്നു. സ്റ്റാൻഡേർഡ് പോസിക്സ് ഇനിപ്പറയുന്ന പ്രവർത്തനങ്ങൾ ഫയലിൽ നിർവചിച്ചിരിക്കുന്നു:

    int തുറക്കുക ( ചാർ * fname , int പതാകകൾ , മോഡ് _ ടി മോഡ് )

ഈ പ്രവർത്തനം ഒരു ഫയൽ ``തുറക്കുന്നു'', പ്രോഗ്രാമും ഫയലും തമ്മിൽ ഒരു കണക്ഷൻ സ്ഥാപിക്കുന്നു. ഈ സാഹചര്യത്തിൽ പ്രോഗ്രാം സ്വീകരിക്കുന്നു ഫയൽ ഡിസ്ക്രിപ്റ്റർ- ഈ കണക്ഷൻ തിരിച്ചറിയുന്ന ഒരു പൂർണ്ണസംഖ്യ. വാസ്തവത്തിൽ, ഇത് ഒരു നിർദ്ദിഷ്ട ടാസ്ക്കിനായി തുറന്ന ഫയലുകളുടെ സിസ്റ്റം ടേബിളിലെ ഒരു സൂചികയാണ്. മറ്റെല്ലാ പ്രവർത്തനങ്ങളും ഫയലിനെ പരാമർശിക്കാൻ ഈ സൂചിക ഉപയോഗിക്കുന്നു.

char * fname പാരാമീറ്റർ ഫയലിൻ്റെ പേര് വ്യക്തമാക്കുന്നു, ഫയലിൻ്റെ ഓപ്പണിംഗ് മോഡ് നിർണ്ണയിക്കുന്ന ഒരു ബിറ്റ് മാസ്കാണ് int ഫ്ലാഗുകൾ, ഫയൽ റീഡ്-ഒൺലി, റൈറ്റ്-ഒൺലി, അല്ലെങ്കിൽ റീഡ്-റൈറ്റ് തുറക്കാൻ കഴിയും; കൂടാതെ, നിങ്ങൾക്ക് നിലവിലുള്ള ഒരു ഫയൽ തുറക്കാം, അല്ലെങ്കിൽ നിങ്ങൾക്ക് പൂജ്യം നീളമുള്ള ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കാൻ ശ്രമിക്കാം, ഒരു ഫയൽ സൃഷ്ടിക്കുമ്പോൾ മാത്രമേ ഓപ്ഷണൽ മൂന്നാം പാരാമീറ്റർ മോഡ് ഉപയോഗിക്കൂ, ഈ ഫയലിൻ്റെ ആട്രിബ്യൂട്ടുകൾ വ്യക്തമാക്കുന്നു.

    ഓഫ് _ ടി അന്വേഷിക്കുക ( int കൈകാര്യം ചെയ്യുക , ഓഫ് _ ടി ഓഫ്സെറ്റ് , int എവിടെ നിന്ന് )

ഈ പ്രവർത്തനം ഫയലിലെ റീഡ്/റൈറ്റ് പോയിൻ്റർ നീക്കുന്നു. ഓഫ്‌സെറ്റ് പാരാമീറ്റർ പോയിൻ്റർ ഓഫ്‌സെറ്റ് ചെയ്യേണ്ട ബൈറ്റുകളുടെ എണ്ണം വ്യക്തമാക്കുന്നു, എവിടെ നിന്ന് ഓഫ്‌സെറ്റ് ആരംഭിക്കണമെന്ന് പാരാമീറ്റർ വ്യക്തമാക്കുന്നു. ഫയലിൻ്റെ ആരംഭം (SEEK_SET), അതിൻ്റെ അവസാനം മുതൽ (SEEK_END), നിലവിലെ പോയിൻ്റർ സ്ഥാനത്ത് നിന്ന് (SEEK_CUR). ഫയലിൻ്റെ തുടക്കം മുതൽ അളന്ന പോയിൻ്റർ സ്ഥാനം ഓപ്പറേഷൻ നൽകുന്നു. അങ്ങനെ, lseek (ഹാൻഡിൽ, 0, SEEK_CUR) എന്ന് വിളിക്കുന്നത് പോയിൻ്ററിൻ്റെ നിലവിലെ സ്ഥാനം ചലിപ്പിക്കാതെ തന്നെ തിരികെ നൽകും.

    int read (int handle, char * എവിടെ, size_t how_much)

ഒരു ഫയലിൽ നിന്ന് പ്രവർത്തനം വായിക്കുക. റീഡ് ഡാറ്റ സ്ഥാപിക്കേണ്ട ബഫർ എവിടെയാണെന്ന് പോയിൻ്റർ വ്യക്തമാക്കുന്നു; മൂന്നാമത്തെ പാരാമീറ്റർ എത്ര ഡാറ്റ വായിക്കണമെന്ന് വ്യക്തമാക്കുന്നു.സിസ്റ്റം ഫയലിൽ നിന്ന് ആവശ്യമായ ബൈറ്റുകളുടെ എണ്ണം റീഡുചെയ്യുന്നു, ആ ഫയലിലേക്കുള്ള റീഡ്/റൈറ്റ് പോയിൻ്ററിൽ നിന്ന് ആരംഭിച്ച് പോയിൻ്ററിനെ റീഡ് സീക്വൻസിൻറെ അവസാനത്തിലേക്ക് നീക്കുന്നു. ഫയൽ നേരത്തെ അവസാനിക്കുകയാണെങ്കിൽ, അതിൻ്റെ അവസാനം വരെ അവശേഷിക്കുന്ന അത്രയും ഡാറ്റ റീഡ് ചെയ്യപ്പെടും. ഓപ്പറേഷൻ വായിച്ച ബൈറ്റുകളുടെ എണ്ണം നൽകുന്നു. ഫയൽ തുറന്നത് എഴുതാൻ മാത്രമാണെങ്കിൽ, റീഡ് എന്ന് വിളിക്കുന്നത് ഒരു പിശക് നൽകും.

    int write (int handle, char * what, size_t how_much)

ഒരു ഫയലിലേക്കുള്ള എഴുത്ത് പ്രവർത്തനം. ഡാറ്റാ ബഫറിൻ്റെ ആരംഭം ഏത് പോയിൻ്റർ വ്യക്തമാക്കുന്നു; മൂന്നാമത്തെ പാരാമീറ്റർ എത്ര ഡാറ്റ എഴുതണമെന്ന് വ്യക്തമാക്കുന്നു. സിസ്റ്റം ഫയലിലേക്ക് ആവശ്യമായ ബൈറ്റുകളുടെ എണ്ണം എഴുതുന്നു, ആ ഫയലിലേക്കുള്ള റീഡ്/റൈറ്റ് പോയിൻ്ററിൽ നിന്ന് ആരംഭിച്ച് അതിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റ മാറ്റിസ്ഥാപിക്കുന്നു. സ്ഥാനം, കൂടാതെ പോയിൻ്റർ എഴുതിയ ബ്ലോക്കിൻ്റെ അവസാനത്തിലേക്ക് നീക്കുക. ഫയൽ നേരത്തെ അവസാനിക്കുകയാണെങ്കിൽ, അതിൻ്റെ നീളം വർദ്ധിക്കും. ഓപ്പറേഷൻ എഴുതിയ ബൈറ്റുകളുടെ എണ്ണം നൽകുന്നു.

ഫയൽ റീഡ്-ഒൺലിയായി തുറന്നിട്ടുണ്ടെങ്കിൽ, കോൾ റൈറ്റ് ഒരു പിശക് നൽകും.

    int ioctl (int ഹാൻഡിൽ, int cmd, ...) ; int fcntl ( int കൈകാര്യം ചെയ്യുക , int cmd , ...)

ഫയലിലെ അധിക പ്രവർത്തനങ്ങൾ. തുടക്കത്തിൽ, ioctl എന്നത് ഫയലിൽ തന്നെ ഒരു ഓപ്പറേഷനായി ഉദ്ദേശിച്ചിരുന്നതായി തോന്നുന്നു, fcntl ഒരു ഓപ്പൺ ഫയൽ ഹാൻഡിൽ ഒരു ഓപ്പറേഷനായിരുന്നു, എന്നാൽ ചരിത്രപരമായ സംഭവവികാസങ്ങൾ ഈ സിസ്റ്റം കോളുകളുടെ പ്രവർത്തനങ്ങളെ ഒരു പരിധിവരെ കലർത്തി. സ്റ്റാൻഡേർഡ് പോസിക്സ്ഹാൻഡിലിലെ ചില പ്രവർത്തനങ്ങൾ നിർവ്വചിക്കുന്നു, ഉദാഹരണത്തിന് തനിപ്പകർപ്പ് (ഈ പ്രവർത്തനത്തിൻ്റെ ഫലമായി ഒരേ ഫയലുമായി ബന്ധപ്പെട്ട രണ്ട് ഹാൻഡിലുകൾ നമുക്ക് ലഭിക്കുന്നു), കൂടാതെ ഫയലിൽ തന്നെ, ഉദാഹരണത്തിന്, വെട്ടിച്ചുരുക്കൽ പ്രവർത്തനം - ഒരു നിശ്ചിത ദൈർഘ്യത്തിലേക്ക് ഫയൽ ട്രിം ചെയ്യുക. മിക്ക പതിപ്പുകളിലും യുണിക്സ്ഒരു ഫയലിൻ്റെ മധ്യത്തിൽ നിന്ന് ഡാറ്റ മുറിക്കുന്നതിനും വെട്ടിച്ചുരുക്കൽ പ്രവർത്തനം ഉപയോഗിക്കാം. അത്തരമൊരു കട്ട് ഏരിയയിൽ നിന്നുള്ള ഡാറ്റ വായിക്കുമ്പോൾ, പൂജ്യങ്ങൾ വായിക്കുന്നു, ഈ പ്രദേശം തന്നെ ഡിസ്കിൽ ഫിസിക്കൽ സ്പേസ് എടുക്കുന്നില്ല.

ഫയലിൻ്റെ വിഭാഗങ്ങൾ തടയുക എന്നതാണ് ഒരു പ്രധാന പ്രവർത്തനം. സ്റ്റാൻഡേർഡ് പോസിക്സ്ഈ ആവശ്യത്തിനായി ഒരു ലൈബ്രറി ഫംഗ്ഷൻ വാഗ്ദാനം ചെയ്യുന്നു, എന്നാൽ കുടുംബത്തിൻ്റെ സിസ്റ്റങ്ങളിൽ യുണിക്സ് fcntl കോളിലൂടെയാണ് ഈ പ്രവർത്തനം നടപ്പിലാക്കുന്നത്.

സ്റ്റാൻഡേർഡിൻ്റെ മിക്ക നടപ്പാക്കലുകളും പോസിക്സ്അതിൻ്റേതായ അധിക പ്രവർത്തനങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു. അതിനാൽ, ഇൻ യുണിക്സ് എസ്.വി.ആർ4 ഈ പ്രവർത്തനങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് സിൻക്രണസ് അല്ലെങ്കിൽ വൈകിയുള്ള റെക്കോർഡിംഗ് മുതലായവ സജ്ജമാക്കാൻ കഴിയും.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

പ്രോസസ്സിൻ്റെ വെർച്വൽ അഡ്രസ് സ്‌പെയ്‌സിലേക്ക് ഒരു ഫയലിൻ്റെ ഒരു ഭാഗം മാപ്പ് ചെയ്യുന്നു. മാപ്പ് ചെയ്‌ത വിഭാഗത്തിലേക്കുള്ള ആക്‌സസ് അവകാശങ്ങൾ പ്രോട്ട് പാരാമീറ്റർ വ്യക്തമാക്കുന്നു: വായിക്കുക, എഴുതുക, എക്‌സിക്യൂട്ട് ചെയ്യുക. മാപ്പിംഗ് ഒരു നിർദ്ദിഷ്‌ട വെർച്വൽ വിലാസത്തിലേക്ക് സംഭവിക്കാം, അല്ലെങ്കിൽ സിസ്റ്റത്തിന് സ്വയം മാപ്പുചെയ്യാൻ വിലാസം തിരഞ്ഞെടുക്കാനാകും.

രണ്ട് പ്രവർത്തനങ്ങൾ കൂടി നടത്തുന്നത് ഫയലിലല്ല, മറിച്ച് അതിൻ്റെ പേരിലാണ്: ഫയലിൻ്റെ പേരുമാറ്റുന്നതിനും ഇല്ലാതാക്കുന്നതിനുമുള്ള പ്രവർത്തനങ്ങളാണ് ഇവ. ചില സിസ്റ്റങ്ങളിൽ, ഉദാഹരണത്തിന് കുടുംബത്തിൻ്റെ സിസ്റ്റങ്ങളിൽ യുണിക്സ്, ഒരു ഫയലിന് ഒന്നിലധികം പേരുകൾ ഉണ്ടാകാം, ഒരു പേര് ഇല്ലാതാക്കാൻ ഒരു സിസ്റ്റം കോൾ മാത്രമേയുള്ളൂ. അവസാന നാമം ഇല്ലാതാക്കുമ്പോൾ ഫയൽ ഇല്ലാതാക്കപ്പെടും.

ഈ സ്റ്റാൻഡേർഡിലെ ഒരു ഫയലിലെ പ്രവർത്തനങ്ങളുടെ കൂട്ടം ഒരു ബാഹ്യ ഉപകരണത്തിലെ പ്രവർത്തനങ്ങളുടെ സെറ്റുമായി വളരെ സാമ്യമുള്ളതാണെന്ന് കാണാൻ കഴിയും. രണ്ടും ഘടനയില്ലാത്ത ബൈറ്റ് സ്ട്രീം ആയി കണക്കാക്കപ്പെടുന്നു. ചിത്രം പൂർത്തിയാക്കാൻ, കുടുംബത്തിൻ്റെ സിസ്റ്റങ്ങളിൽ ഇൻ്റർപ്രോസസ് ആശയവിനിമയത്തിനുള്ള പ്രധാന മാർഗ്ഗം എന്ന് പറയണം യുണിക്സ് (പൈപ്പ്) ഒരു ഘടനയില്ലാത്ത ഡാറ്റ സ്ട്രീം കൂടിയാണ്. മിക്ക ഡാറ്റാ കൈമാറ്റങ്ങളും ഒരു ബൈറ്റ് സ്ട്രീമിലേക്ക് ചുരുക്കാം എന്ന ആശയം വളരെ പഴയതാണ്, പക്ഷേ യുണിക്സ്ഈ ആശയം അതിൻ്റെ യുക്തിസഹമായ നിഗമനത്തിലെത്തിച്ച ആദ്യ സംവിധാനങ്ങളിലൊന്നായിരുന്നു ഇത്.

ഫയലുകളുമായി പ്രവർത്തിക്കുന്നതിൻ്റെ ഏതാണ്ട് അതേ മാതൃകയാണ് സ്വീകരിക്കുന്നത് സി.പി./ എം, കൂടാതെ ഒരു കൂട്ടം ഫയൽ സിസ്റ്റം കോളുകൾ എംഎസ് ഡോസ്യഥാർത്ഥത്തിൽ കോളുകളിൽ നിന്ന് പകർത്തിയത് യുണിക്സ് വി7 . അതാകട്ടെ, ഒ.എസ്/2 ഒപ്പം വിൻഡോസ് എൻ.ടിഫയലുകളുമായി നേരിട്ട് പ്രവർത്തിക്കുന്നതിനുള്ള തത്വങ്ങൾ പാരമ്പര്യമായി ലഭിച്ചു എംഎസ് ഡോസ്.

നേരെമറിച്ച്, ഇല്ലാത്ത സിസ്റ്റങ്ങളിൽ യുണിക്സ്ഒരു വംശാവലിയിൽ, ഒരു ഫയലിൻ്റെ ആശയത്തിൻ്റെ അൽപ്പം വ്യത്യസ്തമായ വ്യാഖ്യാനം ഉപയോഗിക്കാം, മിക്കപ്പോഴും, ഒരു ഫയലിനെ റെക്കോർഡുകളുടെ ഒരു കൂട്ടമായാണ് കണക്കാക്കുന്നത്. സാധാരണഗതിയിൽ, സിസ്റ്റം സ്ഥിര-ദൈർഘ്യവും വേരിയബിൾ-ദൈർഘ്യവും ഉള്ള റെക്കോർഡുകളെ പിന്തുണയ്ക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ടെക്സ്റ്റ് ഫയൽ വേരിയബിൾ ദൈർഘ്യത്തിൻ്റെ റെക്കോർഡുകളുള്ള ഒരു ഫയലായി വ്യാഖ്യാനിക്കപ്പെടുന്നു, കൂടാതെ ഓരോ വരിയും ഒരു റെക്കോർഡുമായി യോജിക്കുന്നു. ഫയലുകളിൽ പ്രവർത്തിക്കുന്നതിനുള്ള മാതൃകയാണിത് വി.എം.എസ് OS ലൈനിലും ഒ.എസ്/360 -എം.വി.എസ്ഐബിഎം കമ്പനി.

ഒരു കമ്പ്യൂട്ടർ സ്റ്റോറേജ് മീഡിയത്തിൽ ഒരു പ്രത്യേക പേരിൽ സംഭരിച്ചിരിക്കുന്ന വിവരമാണ് ഫയൽ.

ഫയലുകൾക്ക് പ്രോഗ്രാമുകൾ, ടെക്സ്റ്റുകൾ, ഡാറ്റ എന്നിവ സംഭരിക്കാനാകും.

പേരുകൾ ഉപയോഗിച്ച് ഫയലുകൾ തിരിച്ചറിയപ്പെടുന്നു (അതുല്യമായി തിരിച്ചറിഞ്ഞു). ഉപയോക്താക്കൾ ഫയലുകൾക്ക് പ്രതീകാത്മക പേരുകൾ നൽകുന്നു. മൈക്രോസോഫ്റ്റിൻ്റെ OS പോലുള്ള ചില ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ, ഓരോ ഫയൽ നാമവും നേരിട്ട് ഉൾക്കൊള്ളുന്നു ഫയലിന്റെ പേര്ഉപയോക്താവ് നൽകിയത്, കൂടാതെ വിപുലീകരണങ്ങൾ. ഇത് പേരിൽ ഉപയോഗിക്കുന്ന രണ്ട് പ്രതീകങ്ങളിലും പേരിൻ്റെ ദൈർഘ്യത്തിലും OS നിയന്ത്രണങ്ങൾ കണക്കിലെടുക്കുന്നു. അടുത്ത കാലം വരെ, ഈ അതിരുകൾ വളരെ ഇടുങ്ങിയതായിരുന്നു. ഉദാഹരണത്തിന്, MS-DOS ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ഫയൽ സിസ്റ്റം പേരിൻ്റെ ദൈർഘ്യം സ്കീം 8.3 ആയി പരിമിതപ്പെടുത്തി (പേരിനായി 8 പ്രതീകങ്ങൾ അനുവദിച്ചിരിക്കുന്നു, വിപുലീകരണത്തിനായി 3). ആധുനിക ഫയൽ സിസ്റ്റങ്ങൾ സാധാരണയായി ദൈർഘ്യമേറിയ പ്രതീകാത്മക ഫയൽ നാമങ്ങളെ പിന്തുണയ്ക്കുന്നു. വിൻഡോസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ 255 പ്രതീകങ്ങൾ വരെ പേരുകൾ അനുവദിക്കുന്നു. ഫയലിൻ്റെ പേരിൽ നിന്ന് "" എന്ന ചിഹ്നത്താൽ വിപുലീകരണം വേർതിരിച്ചിരിക്കുന്നു. (ഡോട്ട്).

വിപുലീകരണം ഫയൽ തരം സൂചിപ്പിക്കുന്നു:

exe, com എക്സിക്യൂട്ടബിൾ ഫയലുകൾ, അതായത്. പ്രോഗ്രാമിംഗ് ഭാഷകളിലൊന്നിൽ എഴുതിയ പ്രോഗ്രാമുകൾ;

ഡോക് - വേഡ് ടെക്സ്റ്റ് എഡിറ്ററിൽ സൃഷ്ടിച്ച ഫയലുകൾ;

xls - Excel സ്പ്രെഡ്ഷീറ്റിൽ സൃഷ്ടിച്ച ഫയലുകൾ;

mdb - ഡാറ്റാബേസ് മാനേജ്മെൻ്റ് സിസ്റ്റം (DBMS) ഫയലുകൾ ആക്സസ് ചെയ്യുക.

സാധാരണഗതിയിൽ, എളുപ്പത്തിൽ ഉപയോഗിക്കുന്നതിന്, ഫയലുകൾ ഡയറക്ടറികളായി (ഫോൾഡറുകൾ) സംയോജിപ്പിക്കുന്നു.

ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് ഫയലുകൾ ആക്സസ് ചെയ്യുന്നതിന്, നിങ്ങൾ വ്യക്തമാക്കണം മുഴുവൻ ഫയലിൻ്റെ പേര്, ബാഹ്യ ഉപകരണത്തിൻ്റെ പേര് (സാധാരണയായി ഒരു ഡിസ്ക്), സബ്ഫോൾഡറുകളുടെ ഒരു ശ്രേണി, ഒരു ഫയലിൻ്റെ പേര് എന്നിവ അടങ്ങിയിരിക്കുന്നു. ഉദാഹരണത്തിന്,

സി:\User\Letter.docമുഴുവൻ ഫയലിൻ്റെ പേര് Letter.docഡ്രൈവ് സി: ഫോൾഡറിൽ സ്ഥിതിചെയ്യുന്നു ഉപയോക്താവ്. ബാഹ്യ ഉപകരണത്തിൻ്റെയും എല്ലാ സബ്ഫോൾഡറുകളുടെയും പേരിൻ്റെ ക്രമം വിളിക്കുന്നു ഫയലിലേക്കുള്ള മുഴുവൻ പാത.

ചിലപ്പോൾ ചില പ്രവർത്തനങ്ങൾ നടത്തുമ്പോൾ (തിരയൽ, പകർത്തൽ, ഫയലുകൾ ഇല്ലാതാക്കൽ) നിങ്ങൾക്ക് ഉപയോഗിക്കാം ഫയൽനാമ പാറ്റേണുകൾ.

പ്രതീകങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു കൂട്ടം ഫയലുകളുടെ പൊതുവായ പേരാണ് ടെംപ്ലേറ്റ്: * അല്ലെങ്കിൽ?.

ചിഹ്നം * അതിന് പകരം ഏതെങ്കിലും സാധുവായ പ്രതീകങ്ങൾ ഉപയോഗിക്കാമെന്നാണ് അർത്ഥമാക്കുന്നത്, അത് ദൃശ്യമാകുന്ന സ്ഥാനത്ത് നിന്ന് ആരംഭിച്ച് പേരിൻ്റെ അവസാനം വരെ.

ചിഹ്നം ? ഈ സ്ഥാനത്ത് ഏതെങ്കിലും, എന്നാൽ സാധുവായ ഒരു പ്രതീകം മാത്രമേ ഉൾക്കൊള്ളാൻ കഴിയൂ എന്ന് സൂചിപ്പിക്കുന്നു.

ഉദാഹരണത്തിന്,

സാമ്പിൾ *.ഡോക്.doc എന്ന വിപുലീകരണമുള്ള എല്ലാ ഫയലുകളെയും പ്രതിനിധീകരിക്കുന്നു,

Letter?.doc ടെംപ്ലേറ്റ് Letter1.doc, Letter3.doc, LetterZ.doc, LetterA.doc എന്നിങ്ങനെ പേരുള്ള എല്ലാ ഫയലുകളെയും സൂചിപ്പിക്കുന്നു.

ഡിസ്കുകളിൽ ഫയലുകൾ സംഭരിക്കാനും അവയിലേക്ക് ആക്സസ് നൽകാനും, ആധുനിക ഡിസ്ക് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു ഫയൽ സിസ്റ്റങ്ങൾ. പല ഫയൽ സിസ്റ്റങ്ങളുടെയും ഓർഗനൈസേഷൻ്റെ തത്വം പട്ടികയാണ്.

ആശയം ഫയൽ സിസ്റ്റംരണ്ട് അർത്ഥങ്ങളുണ്ട്. ഒന്നാമതായി, ഫയലുകൾ, ഡയറക്‌ടറികൾ മുതലായവ ഓർഗനൈസുചെയ്യുന്നതിനുള്ള ഒരു പ്രത്യേക മാർഗത്തിനും രണ്ടാമതായി, ഈ രീതി അനുസരിച്ച് ഓർഗനൈസുചെയ്‌ത ഒരു പ്രത്യേക സെറ്റ് ഫയലുകൾക്കും ഡയറക്‌ടറികൾക്കും ഇത് പേരാണ്.

ഒരു പ്രത്യേക ഫയൽ ഡിസ്കിൽ എവിടെയാണ് രേഖപ്പെടുത്തിയിരിക്കുന്നത് എന്നതിനെക്കുറിച്ചുള്ള ഡാറ്റ ഡിസ്കിൻ്റെ സിസ്റ്റം ഏരിയയിൽ പ്രത്യേകമായി സംഭരിക്കുന്നു ഫയൽ അലോക്കേഷൻ പട്ടികകൾ.

മൈക്രോസോഫ്റ്റ് ഫയൽ സിസ്റ്റങ്ങൾ.

മൈക്രോസോഫ്റ്റിൻ്റെ വിൻഡോസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ ആദ്യ പതിപ്പുകൾ ഫയൽ അലോക്കേഷൻ ടേബിളുകൾ ഉപയോഗിച്ചിരുന്നു കൊഴുപ്പ് (FAT - ഫയൽഅനുവദിക്കുകഅയോൺമേശ).

ഫോർമാറ്റിംഗിൻ്റെ ഫലമായി, ഡിസ്കിൽ ട്രാക്കുകൾ (കേന്ദ്രീകൃത സർക്കിളുകൾ) രൂപം കൊള്ളുന്നു, അവയിൽ ഓരോന്നിനും ഒരു നിശ്ചിത എണ്ണം അടങ്ങിയിരിക്കുന്നു മേഖലകൾ. ഒരു ഡിസ്കിൽ നിന്ന് വായിക്കാനോ എഴുതാനോ കഴിയുന്ന ഏറ്റവും കുറഞ്ഞ വിവരങ്ങൾ സംഭരിക്കുന്ന ട്രാക്കിൻ്റെ ഒരു വിഭാഗമാണ് സെക്ടർ.

മാഗ്നറ്റിക് ഡിസ്കുകളിൽ രേഖപ്പെടുത്തിയിട്ടുള്ള ഫയലുകളിലേക്കുള്ള ആക്സസ് സംഘടിപ്പിക്കുന്നതിന്, ഓരോ ഫയലിനും അനുവദിച്ചിട്ടുള്ള സെക്ടറുകളുടെ ഒരു ലിസ്റ്റ് OS സൃഷ്ടിക്കുന്നു. സാധാരണയായി, ഡിസ്ക് സ്പേസ് എന്ന് വിളിക്കപ്പെടുന്ന നിരവധി സെക്ടറുകളുടെ ബ്ലോക്കുകളിലെ ഫയലുകൾക്ക് അനുവദിച്ചിരിക്കുന്നു ക്ലസ്റ്ററുകൾ 5 . ഏറ്റവും ചെറിയ യൂണിറ്റാണ് ക്ലസ്റ്റർ അഭിസംബോധനഡിസ്കിലെ ഡാറ്റ (അവരുടെ സ്ഥാനം നിർണ്ണയിക്കുന്നു).

FAT-ൽ ക്ലസ്റ്റർ നമ്പറുകൾ സംഭരിക്കുന്ന സെല്ലുകൾ അടങ്ങിയിരിക്കുന്നു, കൂടാതെ വ്യത്യസ്ത FAT-കൾ തമ്മിലുള്ള പ്രധാന വ്യത്യാസം ഈ സെല്ലുകളുടെ വലുപ്പമാണ്, ബൈനറി അക്കങ്ങളുടെ (ബിറ്റുകൾ) എണ്ണം നിർണ്ണയിക്കുന്നു. Windows 95 OS FAT16 ഉപയോഗിക്കുന്നു, അതിൽ ക്ലസ്റ്റർ വിലാസത്തിനായി 16 ബിറ്റുകൾ അനുവദിച്ചിരിക്കുന്നു, അതിനാൽ, ക്ലസ്റ്ററുകളുടെ എണ്ണം 65,536 ആണ് (2 16). ഒരു ക്ലസ്റ്റർ ഒരു സെക്ടറിന് (512 ബൈറ്റുകൾ) തുല്യമായ സാഹചര്യത്തിൽ, പരമാവധി ഡിസ്ക് ശേഷി 32 MB ആയിരിക്കും. ഉയർന്ന ശേഷിയുള്ള ഡിസ്കുകളുടെ വരവോടെ, ക്ലസ്റ്റർ നിരവധി സെക്ടറുകൾ ഉൾക്കൊള്ളാൻ തുടങ്ങി - 2, 4, 8, മുതലായവ.

ഇവിടെയാണ് ഡിസ്ക് സ്പേസിൻ്റെ യുക്തിരഹിതമായ ഉപയോഗത്തിൻ്റെ പ്രശ്നം ഉയർന്നുവരുന്നത്. ഒരു ക്ലസ്റ്ററിൽ ഒന്നിൽ കൂടുതൽ ഫയലുകൾ ഉൾക്കൊള്ളാൻ കഴിയില്ല എന്നതാണ് വസ്തുത. അപ്പോൾ 1 KB ഫയൽ ഡിസ്കിൻ്റെ വലിപ്പം അനുസരിച്ച് 8 KB, 16 KB ക്ലസ്റ്റർ ഉപയോഗിക്കും. Windows 95 OSR2 FAT32 (32-ബിറ്റ്) ഫയൽ അലോക്കേഷൻ ടേബിൾ ഫോർമാറ്റ് അവതരിപ്പിക്കുകയും ക്ലസ്റ്ററുകളുടെ എണ്ണം 232 = 4,294,967,296 ആയി വർദ്ധിപ്പിക്കുകയും 4 KB ക്ലസ്റ്ററുകൾ അനുവദിക്കുകയും ചെയ്തു.

ഓരോ ഫയലും മുഴുവൻ ഫയലിൻ്റെ പേര്, ഫയൽ സൃഷ്ടിച്ച തീയതി, ഫയൽ ആട്രിബ്യൂട്ടുകൾ, ഫയൽ ദൈർഘ്യം എന്നിവയുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു.

ഫയൽ വിവരണത്തിനുള്ള FAT ഘടകത്തിൽ ഇവ ഉൾപ്പെടുന്നു:

    ആട്രിബ്യൂട്ട് ബൈറ്റ്;

    പരിഷ്ക്കരണ സമയം;

    പരിഷ്ക്കരണ തീയതി;

    ഫയൽ റെക്കോർഡിംഗ് ആരംഭിക്കുന്ന ഒന്നാം ക്ലസ്റ്ററിൻ്റെ നമ്പർ;

    ഫയൽ വലിപ്പം.

ഒരു ഫയൽ ഡിസ്കിലേക്ക് എഴുതുമ്പോൾ, ഫയൽ സൃഷ്ടിച്ച ഡയറക്‌ടറിയിൽ ഫയലിലേക്ക് അനുവദിച്ച ആദ്യത്തെ ക്ലസ്റ്ററിൻ്റെ നമ്പർ OS എഴുതുന്നു. തുടർന്ന്, FAT-ലെ ഈ ക്ലസ്റ്ററിനെ പ്രതിനിധീകരിക്കുന്ന ഘടകത്തിൽ, OS അടുത്ത ക്ലസ്റ്ററിൻ്റെ എണ്ണം, തിരഞ്ഞെടുത്ത ഫയൽ മുതലായവ എഴുതുന്നു. അങ്ങനെ, ഡയറക്ടറിയിൽ ഒരു ഫയലിനായുള്ള തിരയൽ ആരംഭിച്ച് FAT-ലെ പോയിൻ്ററുകൾ പിന്തുടർന്ന്, OS. ഫയലുമായി ബന്ധപ്പെട്ട ക്ലസ്റ്ററുകൾ ഉചിതമായ ക്രമത്തിൽ, ക്ലസ്റ്റർ പ്രകാരം ക്ലസ്റ്റർ തിരഞ്ഞെടുക്കാം. അതുകൊണ്ടാണ് FAT ടേബിൾ നശിപ്പിക്കപ്പെടുകയാണെങ്കിൽ, ഫയൽ പുനഃസ്ഥാപിക്കാൻ കഴിയില്ല. FAT പട്ടിക ഡിസ്കിൽ രണ്ട് പകർപ്പുകളിൽ സംഭരിച്ചിരിക്കുന്നു.

FAT16 ഫയൽ സിസ്റ്റത്തെ എല്ലാ Microsoft ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും ചില Unix ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും OS/2 ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും പിന്തുണയ്ക്കുന്നു.

Windows NT വർക്ക്സ്റ്റേഷൻ, Windows 2000 പ്രൊഫഷണൽ, Windows XP എന്നിവ NTFS ഫയൽ സിസ്റ്റത്തെ പിന്തുണയ്ക്കുന്നു.

NTFS ഫയൽ സിസ്റ്റം ഒരു പട്ടികയായി പ്രതിനിധീകരിക്കുന്നു എം.എഫ്.ടി (മാസ്റ്റർ ഫയൽ മേശ), ഇനിപ്പറയുന്ന ഫോം ഉള്ളത്:

പരമാവധി പട്ടിക നീളം 1500 ബൈറ്റുകളാണ്.

ആദ്യത്തെ 16 രേഖകൾ സേവന രേഖകളാണ്; അവ MFT പട്ടികയെ വിവരിക്കുന്ന വിവരങ്ങൾ സംഭരിക്കുന്നു (FAT സിസ്റ്റം ഏരിയയ്ക്ക് സമാനമാണ്).

17-ാം എൻട്രി മുതൽ ഫയലുകളുടെയും ഫോൾഡറുകളുടെയും വിവരണങ്ങൾ ഉണ്ട്:

    സ്റ്റാൻഡേർഡ് വിവരങ്ങൾ - ഫയൽ സൃഷ്ടിക്കുന്ന തീയതിയും സമയവും, അതിൻ്റെ വലിപ്പം;

    ഫയലിൻ്റെ പേര് - 2 പതിപ്പുകളിൽ സംഭരിച്ചിരിക്കുന്നു: ദൈർഘ്യമേറിയതും (255 പ്രതീകങ്ങൾ വരെ) ഹ്രസ്വവും (8 + 3), MS DOS-ൽ ഫയൽ ഉപയോഗിക്കുമ്പോൾ ഉപയോഗിക്കുന്നു;

    നൽകിയിരിക്കുന്ന ഫയലിനോ ഫോൾഡറിനോ ആർക്കൊക്കെ എന്ത് അവകാശമുണ്ടെന്ന് സുരക്ഷാ വിവരണം സൂചിപ്പിക്കുന്നു;

    ഡാറ്റ - ഫയലുകളുടെ ഡാറ്റ സ്വയം സംഭരിച്ചിരിക്കുന്നു. ഫയൽ ചെറുതാണെങ്കിൽ, എല്ലാ ഡാറ്റയും ഈ സ്ഥലത്താണ്. ഫയൽ വലുതാണെങ്കിൽ, അതിൻ്റെ ഒരു ഭാഗം ഈ MFT ടേബിളിൻ്റെ ഒരു ഫീൽഡിൽ സംഭരിക്കുന്നു, ശേഷിക്കുന്ന ഭാഗം മറ്റേതെങ്കിലും ഏരിയയിൽ സൂക്ഷിക്കുന്നു, ഈ ഏരിയ MFT-യിൽ പരാമർശിച്ചിരിക്കുന്നു.

NTFS ഫയൽ സിസ്റ്റം ഉയർന്ന തലത്തിലുള്ള സുരക്ഷയെ പിന്തുണയ്ക്കുന്നു (ഓരോ ഫയലിനും പകർത്താനും വായിക്കാനും എഴുതാനും പരിഷ്കരിക്കാനും മറ്റും ഒരു സംരക്ഷണ വിവരണം ഉണ്ടായിരിക്കാം), കൂടാതെ വ്യത്യസ്ത ഉപയോക്തൃ ഗ്രൂപ്പുകൾക്ക് വ്യത്യസ്ത അവകാശങ്ങൾ സജ്ജമാക്കാനും കഴിയും.

ഓപ്പറേറ്റിംഗ് സിസ്റ്റം

ഫയൽ സിസ്റ്റം

Microsoft MS-DOS

മൈക്രോസോഫ്റ്റ് വിൻഡോസ് 95

Microsoft Windows 95 OSR2

മൈക്രോസോഫ്റ്റ് വിൻഡോസ് 98

മൈക്രോസോഫ്റ്റ് വിൻഡോസ് എൻ.ടി

മൈക്രോസോഫ്റ്റ് വിൻഡോസ് 2000

NTFS, FAT16, FAT32

Microsoft Windows XP

NTFS, FAT16, FAT32

Windows NT, Windows 2000 Professional, Windows XP എന്നിവ ഫ്ലോപ്പി ഡിസ്കുകളിൽ പ്രവർത്തിക്കുമ്പോൾ FAT ഫയൽ സിസ്റ്റത്തെ പിന്തുണയ്ക്കുന്നു. ഹാർഡ് ഡ്രൈവ് രണ്ട് ഫയൽ സിസ്റ്റങ്ങളെ പിന്തുണയ്ക്കുന്നു - FAT, NTFS.