Подадотечен систем

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај

Податотечен систем (анг. File system) е системот на кој подадотеките се именувани и каде што тие сместени логички за складирање и пронаоѓање. Според (Таненбаум 2001) DOS, Windows, OS/2 Macintosh и UNIX-базиран оперативен систем. Сите овие имаат податотечен систем во кој подадотеките се сместени некаде во хиерархиската структура. Подадотеката е сместена во папка (directory) или во подпапка на посакуваното место во хиерархиската структура.

Податотечниот систем наведува „договори“ за именување на подадотеките. Овие „договори“ вклучуваат максимален број на знаци во името, кои може да се користат и во некои системи, колку долги можат да бидат суфиксите во името на податотеката. Податотечниот систем исто така вкучува и формат (тип) за утврдување на патеката на фајлот преку структурите на директориумот.

Понекогаш терминот се однесува на дел од оперативниот систем (ОС) или на додадените програми кои го помагаат податотечниот систем. Примери за такви додатоци на податотечниот систем вклучуваат Network File System (NFS) и Andrew file system (AFS). Во специјализиран јазик за чување, податотечниот систем е хардвер кој се користи за постојано складирање, софтвер апликација која го контролира хардверот и архитектура за хардверот и софтверот.

Податотечните системи се користат кај уреди за чување на податоци, како што се хард диск, флопи диск, оптички дискови или флеш мемории, за одржување на физичките локации на компјутерските податотеки. Тие може да обезбедат пристап до податоците во фајл серверот преку симулирање на клиент за мрежен протокол (пример: NFS, SMB, 9P клиент, итн.), или тие можат да бидат виртуелни и постоечки само за пристап на виртуелни податоци. Ова се разликува од услугите на директориумот и регистрите.

Вметнување податотеки[уреди]

Веројатно најважното прашање во вметнувањето на податотека за чување е следењето на кој диск блок оди и со кој фајл. Различни методи се користат во различни оперативни системи.

Соседна распределба[уреди]

Наједноставната шема на распределба е да се зачува секоја податотека како соседен блок од податоци на диск. Така на диск со 1К блокови, на 50К фајл ќе бидат распределени 50 последователни блокови. Според (Стајлингс 2009) оваа шема има две значителни предности. Прво, тоа е едноставно да се имплементира затоа што следењето на фајл блоковите каде тие се сведуваат на еден број, диск адресата од првот блок. Второ, перформансите се одлично затоа што цел фајл мозе да се чита од диск со една операција. За жал, „соседната распределба“ исто така има две подеднакво значани недостатоци. Прво, тоа не е можно додека максимумот на големина на фајлот е позната во тоа време се креита фајлот. Без оваа информација, оперативниот систем не знае колку слободно место да резервира на дискот. Во системи каде фајловите мора да се запишат со една операција, може да се користи како голема предност. Вториот недостаток е фрагментацијата на дискот како резултат од оваа „политика“ на распределба. Просторот се губи, кој инаку би можел да се искористи.

Враќањето на дискот е многу скапо, иако може да се направи касно во ноќта кога системот е неактивен.

Поврзана листа на распределба[уреди]

(Стајлингс 2009) Вториот метод за складирање на податотеки е да се задржи секоја како поврзана листа на диск блокови. Првиот збор од секој блок се користи како поинтер (покажувач) на следниот. Останатиот дел од блоковите за податоците. За разлика од соседната распределба, во оваа распределба, секој блок од дискот може да се користи како метод. Нема изгубено простор за диск фрагментацијата (Освен за внатрешната фрагментација во последниот блок). Исто така тоа е доволно за директориумот да влезе и само да ги чува диск адресите од првиот блок. Од друга страна пак, иако читањето на фајлот секвенцијално е јасна, случајниот пристап е неверојатно спор. Исто така, количината за складирање на податоци во блокови не е повеќе моќна, бидејќи покажувачот зазема неколку бајти.

Вметнување директориуми[уреди]

Според (Таненбаум 2000) пред податотеката да биде прочитана, таа мора да биде отворена. Кога податотеката е отворена, оперативниот систем користи патеки зададени од корисникот за да го најде влезот до директориумот. Директориумот за влез обезбедува информации потребни за да се најде диск блокот. Во зависнот од системот, оваа информации може да биде на диск адресата на целот фајл (соседна распределба), бројот на првиот блок ( двете поврзани листи шеми), или бројот на и-јазол. Во сите случаи главната функција на директориумот од системот е карта од ASCII имиња од фајлови за потребните информации за да се најде податокот.

Тесно поврзани со ова прашање е и местото како што атрибутите треба да бидат сместени. Една очигледна можност е да се чуваат дирекно во директориумот за влез. Многу системи прават токму така. За системи кои корисат и-јазли , друга можност е да се чуваат атрбутите во и-јазли,отколку во директориумот за влез.

Директориуми во CP/M[уреди]

Да почнеме со проучување на директориумите со еден едноставен пример, оној на CP/M (Golden and Pechura, 1986). Во овој систем, има само еден директориум, значи секој фајл систем треба да направи да го погледне името на фајлот кој е баран во единствениот директориум. Кога се наоѓа влезот, исто така има броеви на диск блоковите, бидејќи тие се чуваат право во директориумот за влез како и сите атрибуди. Ако фајлот користи повеќе диск блокови кој што одговараат на еден влез, фајлот е распределен на дополнителни директориуми за влез.

Директориуми во MS-DOS[уреди]

Сега да разгледаме некои премети од системи со хиерархиски директориуми. На слика 1 е прикажан MS-DOS директориумот за влез. Долг е 32 бити и содржи фајл име, атрибути и број од првиот диск блок. Првиот диск блок број се користи како индекс.

Во MS-DOS, директориумите може да содржат и други директориуми, водени како хиерархиски фајл. Тоа е честа појава во MS-DOS дека различни програмски апликации секој старт креираат директориум во root директориумот и ги сместуваат сите свои фајлови таму, за да не дојде до судир со различни апликации.

Директориуми во UNIX[уреди]

Директориум структурата традиционално се користи во UNIX, многу е едноставна како што е покажано на слика 2. Секој влез содржи го содржи само името на фајлот и нековиот и-јазол број. Сите информации за типот, големината, сопственостна и диск блоковите се содржат во и-јазолот. Истиот UNIX систем има и различен распоред, но во сите случаи , директориумот за влез содржи само ASCII низа и и-јазол број. Кога фајлот е отворен, фајл системот мора да се земе името на фајлот кој се испорачува и да се најдат диск блоковите. Да разгледаме како името на патеката /usr/ast/rnbux изгледа. Ќе користиме UNIX за пример, но алгоритмот е во основа ист за сите системски директориуми кои имаат хиерархиска структура . Прво фајл системот го наоѓа root директориумот. Во UNIX и-јазол се наоѓа на предходно утврдено место во дискот. Тогаш тоа е првата компонента од патеката usr, во root директориумот за да го најде бројот на и-јазолот од фајлот /usr. Наоѓањето на и-јазолот од неговиот број е јасна, бидејќи секој има фиксна локација на дискот. Од овој и-јазол, системот го наоѓа директориумот за /usr и гледа на следниот компонент. Кога ќе го најде влезот за ast, го има и-јазолот за директориумот /usr/ast. Од овој и-јазол може да се најде директориумот за себе и оди понатаму mbox. И-јазолот за овој фајл е прочитан во меморијата и се чува таму додека фајлот не се затвори. Секој директориум има влез за . и за .. кои се ставаат кога директориумот е креиран. Влезот има и-јазол број за моменталниот директориум и влез за ..(следен директориум) има и-јазол број за главниот директориум.

Простор на дискот за управување[уреди]

податотеките обично се сместени на диск, па така управувањето со просторот на дискот е главна грижа на дизајнерите на податотечниот систем. Две главни стратегии се можни за чување на n бајт фајл: n последователни бајти од просторот на дискот се распределени или фајлот е поделен на голем бројот соседни блокови. Истиот баланс е присутен и во меморијата на системот за управување помеѓу сегментацијата и страничењето. Чувањето на фајл како соседна низа од бајти има очигледен проблем, ако фајлот расте, тогаш најверојатно ќе треба да се премест на диск. Истиот проблем го има и во сегментите во меморијата, движењето на еден сегмент во меморијата е релативно брза операција во споредба со движењето на еден фајл од еден диск на друг диск. Заради оваа причина, речиси сите фајл системи „сецкаат“ фајлови до фиксна големи на блокови кои не мора да се во непосредна близина.

Големина на блокови[уреди]

Откако ќе се одлучи за чување на податотека со фиксна големина на блокови, се поставува прашањето колку голем треба да биде блокот. Со оглед на начинот како дисковите се огранизирани, секторот, патот и цилиндарот се очигледни кандидати за распределба. Во системот за страничење, големината на страната е исто така голем фаворит. Имајќи голема распределба на единиците, како што е цилиндарот, значи секој фајл, дури и 1-бајт фајл, се врзува за целиот цилиндар. Студиите (Мулендер и Таненбаум 1984) покажаа дека средната големина на фајлот во UNIX изнесува околи 1К, па распределбата на 32К цилиндри за секој фајл би бил „отпад“ 31/32 или 97% од вкупниот простор на дискот. Од друга страна, користењето на мали единици за распределување значи дека секој фајл ќе содржи многу блокови. Читањето на секој блок нормално бара и ротациони одложувања, па читањето на фајл кој се состои од многу мали блокови ќе биде бавно. Како пример да земеме диск со 32,768 бајти за патека, ротационо време од 16,67мсец и во просек бара време од 30мсец. Времето во милисекунди за читање на блок од к бајти е збирот од барања, ротациони одлагања и пренос: Т.е. 30+8,3+(к/32768)*16,67

Сигурносна копија[уреди]

Дури и со јасна стратегија за справување со лоши сектори, важно е да се прави резерва на фајловите почесто. Фајл системот на флопи дискот може да му се направи бекап само со копирање на целиот флопи диск во еден празен флопи диск. Фајл системот за мали винчестер дискови може да му биде направено бекап со префрлање на целиот диск на магнетна лента. Моменталните технологии вклучуваат I5OM кертриџ ленти и 8G Exabyte или DAT касети. За големи винчестер дискови (пример 10GB) враќањето на цел диск на касета е мачно и одзема многу време. Една стратегија која е лесно да се спроведе, но троши половина од складирањето е да се обезбеди секој компјутер со два диска наместо со еден. Двата дискови се поделени на два дела: податоци и бекап. Секоја ноќ дел од податоци на дискот 0 се копирани на резервниот дел од диск 1. На овој начин, ако еден диск е целосно уништен, нема изгубени информации. Алтернативна за префрлање на целиот фајл систем секој ден е да се направат поединечни „депонии“. Најпростиот облик на поединечен дампинг е m&e е комплетна депонија периодично, да речеме неделно или месечно, и да направиме дневна „депонија“ на само оние датотеки кои се модифицирани од последната целосна „депонија“. Подобра шема е да се „фрлат“ само они фајлови кои биле сменети, бедијќи тие биле последни „фрлени“.

За спречување на овој метод, листата за „депонијата“ за секоја датотека мора да се чува на дискот. Ако таа биде сменета бидејќи тоа последен пат било „фрлено“, се „фрла“ повторно и своето време на последна „депонија“ е заменето со моментално време. Ако се направи месечен циклус, овој метод секојдневно бара 31 „депониски“ ленти, една на ден, плус доволно ленти за чување на целата „депонија“ која се прави еднаш месечно. Други покомплекси шеми користат помалку ленки кои исто така се користи. Автоматскиот метод кој користи повеќе дискови исто така се користи. На пример, отсликувањето користи два дискови. Запишувањето оди на двата дискови, а читањето оди само на еден.

Перформанси на податотечниот систем[уреди]

Според (Таненбаум и Вудхул 1999) пристапувањето до диск е многу поспоро одколку пристапувањето до меморијата. Читањето на некој мемориски збор обично зема неколку наносекунди. Читањето на некој блок од хард дискот може да земе 50 микросекунди, фактор за четири пати побавното читање е 32-битниот збор, но на ова мора да се додадат 10 до 20 милисекунди, кога тој ги прати и потоа го чека саканиот сектор да пристигне во рамките на читање на главата. Ако само еден единствен збор е потребен, пристапот до меморијата е 100,000 пати побрз, одколку пристапот до хард дискот. Како резултат на оваа разлика во времето за пристап, многу фајл системи се дизајнирани да го намалат бројот на пристапи до хард дискот. Најчеста техника која се користи да се намали пристапот до дискот е блок кеш или бафер кеш ( кеш доаѓа од францускиот збор cachet што значи да скриеш). Во овој контекст, кеш е колекција од блокови кои логички припаѓаат на дискот, но се чуваат во меморијата за подобри перформанси. Различни алоритми можат да се користат за управување со кешот, но еден од најчесто употребуваните е да се проверат сите барања за читање за да се види дали потребниот блок е во кешот, ако е барањето за читање може да биде задоволено и без пристап до дискот. Ако блок не се во кешот, прво се чита во кешот, па потоа се копира каде е потребно. Следните барања за истиот блок можат да се задоволат од истиот кеш. Кога блокот треба да се вметне во полн кеш, некои блокови треба да бидат избришати и презапишани на дискот. Оваа ситуација е многу слична на страничењето и сите слични алгоритми за страничење. Една ведра разлика помеѓу страничењето и кеширањето е тоа што кеш референците се многу ретки, така што тоа е можно да ги задржи сите блокови во точна линија на заменлива единица со поврзани листи. За жал, ова е стапица.

Безбедност[уреди]

Според (Таненбаум 1999) фајл системите често содржат информации кој се многу вредни за своите корисници. Заштитата на оваа информација од неовластено користење е голема загриженост за сите фајл системи.

Безбедносна околина[уреди]

Според (Таненбаум и Вудхул 1999)Термините „безбедност“ и „заштита“ често се користат наизменично. Сепак, тоа е често корисно за да се направи разлика помеѓу општите проблеми вклучени во тоа што си сигурен дека се „измислиците“ не се читаат или модифицираат од неовластени лица, кои вклучуваат технички, менаџерски и законски права на една страна, како и специфични механизми за оперативни системи кои се користат да се обезбеди сигурност од друга страна. За да избегне оваа забуна, ќе го користиме терминот „сигурност“ да се однесува за целиот проблем, и термиот „заштитен механизам“ да се однесува на одредени механизми на оперативни системи кои се користат за заштита на информациите во компјутерот.

Безбедноста има многу аспекти. Две од поважните се загуба на податоците и „натрапниците“.

Некои од вообичаените причини за загуба на податоците се:

  • Дела на господ:
    • Пожари
    • Поплави
    • Земјотреси
    • Војни
    • Немири
  • Хардверски и софтверски грешки:
    • Дефекти на процесорот
    • Нечитливи дискови или касети
    • Телекомуникациски грешки
    • Програмски грешки
  • Човечки грешки:
  • Неправилен внес на податоци
  • Погрешно вметнати дискови или касети
  • Изгубени дискови или касети
  • Погрешно подигање на програма
  • Или некои други грешки

Многу од овие може да се решат со одржување ба бекап, по можност подалеку од оригиналните податоци. Многу поинтересен проблем е што да се прави со „натрапниците“. Овие доаѓаат во две варијанти. Пасивните натрапници само сакаат да читаат фајлови кои не се овластени за читање. Активните натрапници се многу помалициозни. Тие сакаат да направат неовласнети измени во податоците. При дизајнирање на систем кој ќе биде сигурен против натрапници, важно е да се има во предвид видот на натрапникот. Некои општи категории се:

1. Обични „љубопитници“ од страна на не-технични корисници. Многу луѓе имаат терминали за временско споделување на системито или мрежни персонални компјутери во нивните канцеларии, и човечката природа е она што е, некои од нив ќе ја прочитаат електронската пошта на други луѓе, и некои други фајлови ако не постои бариера на нивниот пат. Повеќето UNIX системи, на пример, стандардно имаат зададено сите фајлови да може јавно да се читаат.

2. „Душкање“ од страна на натрапниците. Студенти, системски програмери, оператори и друг технички персонал често сметаат дека бидат личен предизвик за да се пробие безбедноста на локалните компјутерски системи. Тие често се високо-квалификувани и се подготвени да посветат голем дел од времето за овој напор.

3. Однапред утврдени обиди за да се заработаат пари. Некои банкарски програмери се обидуваат да пробијат во банкатскиот систем за да украдат од банката. Шемите се различни од менувањето на софтверот за да се намали кругот на интереси.

4. Комерцијална или воена шпионажа. Шпионажата се однесува на сериозен и добро финансиран обид од страна на еден конкурент, или една странска земја за да се украдат програми, трговски тајни, патенти, технологија, маркетинг планови и така натаму. Често во овој обид се вклучуваат и прислушкувањето или дури и исправањето на антеви во режија на компјутер за да се соберат повеќе електромагнетни зрачења.

Друг аспект на безбедносен проблем е приватноста: заштита на поединци од злоупотреба на информациите. Ова брзо се впишува во многу правни и морални прашања. Владата треба да ги собере досиејата за сите со цел да се фатат хакерите, каде Х е „благосостојба“ или „данок“ во зависност од вашата политика?

Заклучок[уреди]

Видено од страна , фајл систем е колекција од фајлови и директориуми, плус операции во нив. Фајловите можат да се читаат и запишуваат, директориумите може да се креираат и уништуваат, и фајловите може да се преместуваат од директориум во директориум. Повеќето модерни фајл системи поддржуваат хиерархиски директоривен систем, во кој директориумите може да имаат бесконечни поддиректориуми. Видено одвнатре, фајл системот изгледа поинаку. Дизајнерите на фајл системот треба да се сконцентрираат како да се распредели чувањето на податоците, и како системот да ги чува патеките од кој блок доаѓа со кој фајл. Сигурноста и перформансите на фајл системот се исто така важни прашања.

Сигурноста и заштитата се од витално за системските корисници и дизајнерите.

Исто така, проверката со и без лозинки за контрола на пристап за листи и способности, и матрица модел за размислување на заштита.  

Референци[уреди]

  • A. S. Tanenbaum (2001), Modern Operating systems 2nd edition, ISBN-13: 978-0130313584
  • A. S. Tanenbaum, A. S. Woodhull (1999), Operating Systems - Design and Implementation, ISBN-13: 978-0136386773
  • B. Fetaji, M. Fetaji (2011) Operating systems, Сouth East European University, ISBN:978-608-4503-48-4 , Tetovo, Macedonia
  • http://searchstorage.techtarget.com/definition/file-system
  • W.Stallings (2009) Operating Systems 6th edition, ISBN-13: 9780136006329