КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Оползотворяване NTFS файлова система

NTFS е процес на възстановяване на файловата система, но е предвидена възстановени само за информационната система на файловата система, което означава, директории, сигурност атрибути битови клъстери заетост карти и други системни файлове. Запазване на файлове с данни на потребителите, работата, която се извършва в момента на катастрофата, в общия случай не е гарантирана.

За да се подобри ефективността, на NTFS файлова система използва кеш диск, това е, всички промени на файлове, директории, и контролира информация за първия манш копия на съответните блокове в буферната памет, и само малко по-късно прехвърля на диск. Въпреки това, кеширане, както беше споменато, увеличава риска от провал на файловата система. В такива условия, NTFS осигурява устойчивост на откази, като се използва технология за регистриране на сделка и система за възстановяване на данни. Потребителските данни, че по времето на разпадането са в кеша на диска, и не са имали време да пиша за задвижването на NTFS не се възстановява.

Вестник на регистрационни сделки на NTFS е разделен на две части: на домейна и рестартирайте областта на дърводобива (Фигура 8.8.).

  • Площ рестартиране съдържа информация за мястото, от което ще бъде необходимо, за да започнете да четете регистър на транзакциите на процедура за възстановяване след срив на повреда в системата или операционна система. Тази информация е указател към конкретна вписване в дневника. За надеждност, лог файл съдържа две копия от зоната за рестартиране.
  • сеч област съдържа запис на всички промени в системата данни на файловата система, което е настъпило в резултат на сделката за достатъчно дълъг период от време. Всички записи са идентифицирани с номер логическа последователност LSN (логическа последователност Number). Записите на под-, принадлежащи към една и съща сделка, образуват свързан списък: всяко следващо влизане съдържа номера на предишния рекорд. Завършване на областта е цикълът сеч: след изчерпване на всички паметта разпределени за зоната за сеч, нови записи се поставят на мястото на старите.

Фиг. 8.8. модифициране вписвания в регистъра на операциите

Съществуват няколко вида на записи в регистъра на операциите: запис модификация, точка входящ контрол, Предай рекорд, модифицира влизане маса, влизането в таблицата на страниците модифициран.

модификация Запишете се записва в регистъра на операциите по отношение на всеки под-операция, която променя файловата система за данни система. Този пост се състои от две части: едната съдържа необходимата на системата да се повтаря, че действията на информацията, и от друга - да се отмени информацията. Информацията за модификация се съхранява в две форми - физически и логически описания. Логичното описанието използва от софтуерни приложения, и се формулира по отношение на операции, като например "изберете запис на файлове в MFT" или "да отстрани наименованието от корена на индекса." На долния софтуера ниво, която включва най-много NTFS модули използват по-малко компактен, но повече от просто физическо описание, което се равнява на уточняване на редица байта на диска, което е необходимо да се поставят на определени ценности.



Да предположим, например, записани сделка създаване lotus.doc файл, който включва, както е показано на фигурата, на три под-операции. След записване три модификации ще бъдат направени в дневника, чието съдържание е показано в таблица. 8.1.

Таблица 8.1. Записът на структура модификация

модификация Record Информация за повтаряне сделки Информация за намаление на цените
LSN-202 Изберете и инициира нов рекорд за lotus.doc файл в MFT Премахване на запис lotus.doc файл на MFT
LSN-203 Добавете името на файла в индекса Изтриване на името на файла от индекса
LSN-204 Комплект битове в растерна графика 3-9 Нула бита 3-9 в растерна графика

регистър на операциите, като останалата част от файловете са кеширани в паметта на буфер и периодично се изчерви до диск.

В NTFS файлова система всички действия от регистъра на операциите извършва само запитвания от страна на специална служба на LFS (лог файл Service). Тази услуга поставя списание нови записи, премахва всички записи за предварително определен брой, гласи вписванията в предна и задна, и извършване на други действия на записи в регистъра.

Преди всяка сделка, NTFS призовава дневника LFS сделка на услуга за записване на всички под-дейности в регистъра на операциите. И едва след това под-описано всъщност извършва на копия от блоковете на файловата система от данни в кеша. Когато всички под-сделка, извършена от LFS услуга сделка ангажира. Това е отразено във факта, че лог файл за специален вид на запис - рекорд сделка ангажират.

Успоредно с регистрацията и изпълнението на сделката е процес на изтласкване на кеша блокове на диска. Reset задвижващи променена блокове се извършва на два етапа: първо, нулиране на дневника блокове, а след това - модифицираните транзакционни блокове. Тази процедура се прилага, както следва. Всеки път, когато управителят на кеш реши, че някои модифицирани блокове (не е задължително всички) трябва да бъдат изтласкани на диска, тя информира услугата НРС. В отговор на това съобщение LFS се отнася до управителя на кеша с молба да напише на диск всички модифицирани блокове на списанието. След промие логаритмични единици, зачервена модифицирани блокове от сделки, които могат да включват, разбира се, блокира системата и данни във файловата система.

Тази двустепенна процедура кеш нулиране на устройството дава възможност да се възстанови файловата система, ако по време на записа на модифицираните блокове от кеша на диска не успее. Всъщност, независимо от проблемите са възникнали по време на записа на модифицираните блокове на диска, цялата информация за промените, направени в тези звена са вече записва на диск в лог файл, сделка. Имайте предвид, че всички действия, които се извършват на файловата система в интервала между последното нулиране на диск недостатъчност и са отменени от себе си, тъй като те се извършват само на блоковете в кеш и не предизвиква никакви промени в съдържанието на диска.

Какви дефекти може да има файлова система след катастрофа?

На първо място, това е несъответствието на данните на системата, които са възникнали в резултат на непълни сделки, които бяха започнати преди последното нулиране данни от кеша на диска. Фиг. 8.9 показва сделка, която две sub-- ай и А2 - бяха направени, за да изчисти кеша, и още две - и 3 и 4 и - след кеш нулиране. По времето на провала на първите два под-операции може да се записва на диска, докато промените, предизвикани от под-AZ и 4, както и, се отразяват само на копия от блоковете на файловата система в кеша и бяха загубени в резултат на неуспех. За разрешаване на несъответствието, причинени от тази причина е необходимо да се направи намаление на цените за всички сделки, които не са поети по време на последното нулиране на кеша. За примера, показан на фигурата, тези сделки са сделки A и C. Във всеки един момент от време, NTFS има списък на свободните сделки, наречен в очакване на маса сделки (таблица сделка). За всяко незавършено маса сделка, която съдържа поредния номер, LSN най-сетне в работно време под-операции, направени по сделката. Чрез този номер, цялата верига на под-операции на сделката може да се намери.

Фиг. 8.9. Диаграмата на времето на събитията във файловата система

На второ място, противоречията в файловата система могат да бъдат причинени от загубата на промените, които са направени от транзакции, завършени преди кеша е изчистен, но това не е било записва на диска по време на последното нулиране. Фигурата на такава сделка, сделката не може да бъде Б. За да се определи кои приключи сделката да бъде повторено, системата поддържа таблица на модифицирани страници 1 {мръсна маса страница), в момента са в кеш паметта. В таблицата за всяка модифицирана страница показва коя сделка причинени тези промени. Повтаряйки сделки, които са се занимавали с страниците, посочени в списъка, се гарантира, че няма промяна, ще бъдат загубени.

1 диск кеша в Windows NT се основава на използването на виртуална памет, така че работи без никакви блокове и страници.

Таблици на модифицираните страници и неангажирани сделките са създадени въз основа на регистър на операциите на записите на NTFS и поддържат в паметта. Трябва да се подчертае, че и двете тези таблици не добавят нова информация за регистъра на операциите, те представляват само информацията, съдържаща се в регистрите на дневника, в концентрирана форма, по-удобно да се използва, когато се възстанови. Съдържанието на таблиците е записан в регистъра на операциите по време на контролно-пропускателен пункт на работа.

отправна точка операция се извършва на всеки 5 секунди и включва следните действия (фиг. 8.10). Моля, влезте в регистъра на операциите са два записа - запис на таблицата на висящите сделки, и да публикувате модифицираната таблицата страница, съдържащ копия от съответните таблици. След това, броят на тези записи са включени в контролния пункт на влизане, който също е създаден в дневника на регистъра на операциите. Наличието на контролно-пропускателен пункт рекорд, NTFS го слага на LSN да се рестартира.

Фиг. 8.10. Записи операция контролно-пропускателен пункт

Имайте предвид, че процесът на създаване на референтни точки и нулиране на информационните блокове от кеша на диска се появи асинхронно. Когато цялата информация, изчезва в резултат на провала на паметта, включително и в очакване на сделката и променените страници на маси, състоянието на масите, макар и малко остаряла, е записан на диск в лог файл, сделка. са направени Освен това, тук има няколко по-нови записи между запазването на маси и кеш сметището (цифрата е рекорд мл, M2, MS). Когато възстановите файл система третира тези записи и промени в таблицата на висящите сделки и модифицираните страници, които се съхраняват в дневника. Например, ако записът е рекорд Ml извърши сделка, тогава сделката е изключен от съответното неусвоени маса сделки, и ако записът е модифициран, масата на модифициран страница съдържа информация върху друга страница.

Процесът на възстановяване на файловата система включва следните стъпки:

1. Прочетете района на рестартиране на лог файл на сделката и ID на обаждащия се на най-новата време на запис на контролно-пропускателен пункт.

2. рекордни Reading контролно пропускателни и идентификационните номера на записите на таблицата непълни сделки и модифициран трапезни страница.

3. Четене и корекционни таблици неангажирани сделки и променени страници въз основа на записи, направени в регистъра на операциите след спасяването маси в списанието, но дори и преди журналните записи на диска (фиг. 8.11).

Фиг. 8.11. Асинхронно нулиране процесите на кеша и checkpointing

4. Анализ на променените страници на масата, определянето на редица от най-ранните записи на модификацията на страницата.

5. Четене регистър на транзакциите в посока напред, като се започне с най-ранните модификации входни намерени в анализа на модифициран таблицата на стр. Системата извършва повторение на завършени сделки, които се елиминират като резултат от всички несъответствия на файловата система, доведе до загуба на модифицирани страници в кеша по време на катастрофа недостатъчност или операционна система.

6. Анализ на трапезни неангажирани сделки, идентификационни номера късно през подсистеми операции, извършени в рамките на непълен сделката.

7. Четене регистър на транзакциите в обратната посока. Като се има предвид, че всички под-свързан всяка сделка в списъка, системата се движи лесно от един запис в друга модификация, извлича необходимата информация, за да отмените и извършва намаление на цените висящи сделки.

Самото отстраняване е всяка сделка, като свързана с изменението на файловата система блокове система - така че е влязъл в обичайния начин в регистъра на операциите. По отношение на това може да се прилага операция намаление на цените или повторение.

Излишните RAID дискови подсистеми

В сърцето означава да се гарантира, отказоустойчивост на дисково пространство е общ за всички устойчиви на грешки системи принцип съкращения и диск подсистеми RAID на (Redundant Array на евтини дискове, буквално - "Redundant Array на евтини дискове") е пример за този принцип. Идеята на технологията RAID-масив е, че данните се използва за съхраняване на няколко диска, дори и в случаите, когато такива данни биха били достатъчно място на един диск. Организиране на съвместна работа на няколко централно управлявани дискове ни позволява да им даде нов набор от свойства, които са отсъства във всяка кола индивидуално.

RAID матрица може да бъде създаден на базата на редица конвенционални дискови устройства, които се управляват чрез конвенционални контролери, в който случай специален софтуер трябва да бъдат монтирани за контрол на организацията на целия набор от дискове в операционната система. В Windows NT, например, като водач е FtDisk - шофьор отказоустойчива подсистема диск. Има различни модели на дискови системи, технологията в която RAID се осъществява изцяло в хардуер, в този случай, на диск масива се контролира от специален общ контролер.

Disk RAID масив изглежда потребители и приложения единен логическо устройство. Това логическо устройство може да има различни качества в зависимост от стратегията, предвидена в алгоритмите на централизирани инструменти за управление, както и публикуване на информация в целия набор от дискове. Това логическо устройство може да бъде, например, има повишена устойчивост или има производителност много по-голяма от тази на един диск или имат двете свойства. Има няколко възможности за RAID-масиви, наричани нива: RAID-0, RAID-1, RAID-2, RAID-3, RAID-4, RAID-5, и др.

Следните критерии за най-често се използват при оценка на изпълнението за RAID-масиви:

  • степента на резервиране на съхраняваната информация (или тясно свързани с този критерий, цената на единици за съхранение на информация);
  • изпълнението на операциите четене и запис;
  • степента на устойчивост на откази.

(. Фигура 8.12) логическо устройство RAID-0 обща за контролера на дисков масив, когато процесът на запис разделя данните на блокове, и ги предава едновременно с всички колела, при което първият блок от данни се записва на първия диск, а вторият - на втория и така нататък. . Различни варианти на технологията RAID-0 могат да се различават от размера на информационните блокове, като раирани комплекта, е софтуер, внедряване на RAID-0 в Windows NT, върху колелата превръщат данни, записани ленти (ленти) от 64 KB. Когато четете контролер мултиплекса блокове с данни, получени по всички дискове, и ги предава на източника на искането.

Фиг. 8.12. Организацията на масив RAID-0

В сравнение с един диск, в който данните се записват и се чете от диска последователно диск изпълнение конфигурация RAID-0 е много по-висока поради действието едновременно запис / чете на всички дискове в масива.

Ниво RAID-0 не разполага с данни съкращения, и следователно не е в състояние да увеличи отказоустойчивост. Ако четене не успее, данните ще бъдат безвъзвратно разглезени. Освен това, издръжливостта дори намалява, защото, ако един от устройствата не успее, тогава ще трябва да възстанови всички дискове в масива. Има един недостатък - при работа с RAID-0 логично устройство обем ще трябва да се промени, за да направите това просто чрез добавяне на още един диск към съществуващата масив в RAID-диск е невъзможно без пълно преразпределение на информацията наоколо, за да промените набора от дискове.

Нивото на RAID-1 (фиг. 8.13) прилага подход, наречен огледало (огледало). Логично устройство образува в този случай въз основа на една или повече двойки на дискове, в които един е основният устройство, а другия диск (Ref) дублира информация се съхранява в основната ROM. Ако първичното устройство не успее, огледалото продължава да съхранява данни, като по този начин осигурява повишена отказоустойчивост логическо устройство. За това е необходимо да се обърне съкращения - всички данни се съхраняват в логическото устройство RAID-1 в два екземпляра, като в резултат на дисково пространство се използва от само 50%.

Фиг. 8.13. Организация на RAID-1 масив

При извършване на промени в данните, намиращи се на логическо RAID-1 устройство, контролера (или драйвер) дискове в масива по същия начин променя основните и огледални дискове с дублиращи се дейности са абсолютно прозрачни за потребителите и приложения. Удвояване на броя на операциите запис се намалява, въпреки че не е много значителна, работата на подсистемата на диск, така че в много случаи, дублирана и контролерите заедно с дублиращи дискове. Това дублиране (двустранно) в допълнение към увеличаване на скоростта на операциите запис осигурява по-голяма надеждност на системата - данните за огледало диск ще останат на разположение не само в случай на прекъсване с кола, но в случай на неуспех дисковия контролер.

Някои съвременни контролери (например, SCSI-контролери) имат способността да се ускори изпълнението на операциите чете от дискове, свързани към комплекта огледало. Когато висок интензитет IO контролер разпределя натоварването между два диска, така че двете четене операции могат да се извършват едновременно. В резултат на това, паралелно с работата на четене на данни между двата диска по време на операция за четене може да бъде намален до два пъти! По този начин, намаляване на производителността, което се случва, когато операциите по запис на повече от компенсирано от увеличение на скоростта на операциите за четене.

ниво RAID-2 разделя бит данни от бита: първият бит е написан на първия диск, вторият бит - на втория диск и т.н. отказоустойчивост се осъществява в нападение-2 чрез използването на кодиране данни за коригиране на Хеминг код, който позволява коригиране на единични грешки и откриване на двойни грешки .. , Излишъкът се осигурява от няколко допълнителни дискове, където се записват код за коригиране на грешки. Например, масив с редица от най-големите дискове на 16 и 32 трябва да има три допълнителни диск за съхранение на корекция код. RAID-2 осигурява висока производителност и надеждност, но тя се използва главно в суперкомпютри и компютърни системи. Сървърите на файлове в мрежата, този метод е сега малко се използват поради високите разходи за неговото изпълнение.

В RAID-3 масиви използвани разделяне (оголване) данните на диска масив с освобождаването на един диск с целия набор от паритет. Това означава, че ако има множество дискове N, записът на N-1 се извършва паралелно с байт разделяне, и N-ти диск се използва за запис на контролна информация за паритет. паритет диск е резервен. Ако една кола не успее, и данните от други устройства, както и данните резервната диск паритет може не само да определят кои от кола масива не успее, но също така и за възстановяване на изгубени данни. Това намаление може да се извърши динамично, при получаване на искания, или в резултат на специална процедура за изземване, когато съдържанието на провали усилията за повторно генерирани и написани на резервната диск.

Да разгледаме примера на динамично възстановяване на данни. Нека масив от RAID-3 се състои от четири предавки, като три от тях - DISC 1, Диск 2 и DISC 3 - съхранява данни, както и магазините диск 4 контролна модул 2 (XOR). И нека устройство логика, образуван от тези дискове се записват последователност от байтове, всеки от които е на стойност, равна на неговата пореден номер в последователността. След първия байт на 0000 0001 ще падне върху диска 1, вторият байт 0000 0010 - на диска 2, а третата по ред на байта - на диск 3. сума по модул 2 ще се записва на четвъртия диска, който е равен на този случай, 0000 0000 (Фигура 8.14. ). Вторият ред на таблицата е показано на фигурата отговаря на следните три байта и шах, и така нататък. Г. Представете си, че на диска 2 е в ред.

Фиг. 8.14. Пример за разпространение на данни през дискове RAID-3 масив

Когато искането за четене, например, петият байт (то се маркира с удебелен шрифт) контролер дисков масив чете данните, свързани с тази линия от трите оставащи дискове - байта 0000 0100 0000 IT 0000 0111 - и се изчислява за тях на сума по модул 2 . стойността на шах 0000 0101 и ще бъде възстановена стойността загубени поради повреда на петия байт.

Если же требуется записать данные на отказавший диск, то эта операция физически не выполняется, вместо этого корректируется контрольная сумма — она получает такое значение, как если бы данные были действительно записаны на этот диск.

Однако динамическое восстановление данных снижает производительность дисковой подсистемы. Для полного восстановления исходного уровня производительности необходимо заменить вышедший из строя диск и провести регенерацию всех данных, которые хранились на отказавшем диске.

Минимальное количество дисков, необходимое для создания конфигурации RAID-3, равно трем. В этом случае избыточность достигает максимального значения — 33 %. При увеличении числа дисков степень избыточности снижается, так, для 33 дисков она составляет менее 1 %.

Уровень RAID-3 позволяет выполнять одновременное чтение или запись данных на несколько дисков для файлов с длинными записями, однако следует подчеркнуть, что в каждый момент выполняется только один запрос на ввод-вывод, то есть RAID-3 позволяет распараллеливать ввод-вывод в рамках только одного процесса (рис. 8.15). Таким образом, уровень RAID-3 повышает как надежность, так и скорость обмена информацией.

Фиг. 8.15. Организация массива RAID-3

Организация RAID-4 аналогична RAID-3, за тем исключением, что данные распределяются на дисках не побайтно, а блоками. За счет этого может происходить независимый обмен с каждым диском. Для хранения контрольной информации также используется один дополнительный диск. Эта реализация удобна для файлов с очень короткими записями и большей частотой операций чтения по сравнению с операциями записи, поскольку в этом случае при подходящем размере блоков диска возможно одновременное выполнение нескольких операций чтения.

Въпреки това, тя остава валидна операция само един запис всеки път, тъй като всички пишат операции използват един и същ диск за допълнителни изчисления контролна сума. Всъщност трябва да се регулира паритет всеки път, когато се осъществява операция за запис. Контролерът трябва първо да прочете старите данни и старата информация, паритет, а след това ги съчетават с новите данни, изчислява нова стойност контролна, и ще го напиша на диск за съхранение на управляващата информация. Ако искате да пишете за повече от един блок, има конфликт на диск има достъп до информацията за контрол. Всичко това води до факта, че скоростта на операцията за запис в RAID-4 масив се намалява.

На нивото на нападението-5 (фиг. 8.16), като се използва метод, подобен на RAID-4, но на данните за паритет се разпределя във всички устройства в масива. Когато операцията по запис изисква три пъти повече памет. Всеки запис команда инициира същата последователност на "четене модифициране-запис" в няколко дискове, както и в метода на RAID-4. Най-голямата печалба производителност се постига за четене. Тъй като информацията за паритет може да се чете и записва множество дискове едновременно, скоростта на запис в сравнение с повишено ниво на RAID-4, но тя все още е далеч под нивото на един единствен метод диск на RAID-1 обеми или RAID-3.

Фиг. 8.16. Организация на RAID-5 масив

Освен по-горе има и други възможности за съвместна излишни набор от дискове, сред тях може да се подчертае RAID 10-технология, която е комбиниран метод, при който данните "сплит» (RAID-0) и огледално (RAID-1) без изчисляване на контролни суми. Обикновено, две двойки от "огледални" решетки се комбинират, за да образуват RAID-0 масив. Този метод е подходящ да се прилага, когато се работи с големи файлове.

Таблица. 8.2 обобщава основните характеристики на някои конфигурации на съкратените дискови масиви.

Таблица 8.2. Характеристики нива RAID

Конфигурация на RAID Излишният точността провалят резистентност метод за скоростно четене скорост на запис
RAID-0 не не Увеличеният Ная Увеличеният Ная
RAID RAID-1 50% има Увеличеният Ная Low (във версията без dupleksi- ция)
RAID-3, RAID-4, RAID-5 До 33% има Увеличеният Ная Намалените (в различна степен)
RAID-10 50% има Увеличеният Ная Увеличеният Ная

Комуникацията между процеси и нишки

Если абстрагироваться от вопросов синхронизации, то обмен данными между потоками одного процесса не представляет никакой сложности — имея общее адресное пространство и общие открытые файлы, потоки получают беспрепятственный доступ к данным друг друга. Другое дело — обмен данными потоков, выполняющихся в рамках разных процессов. Для защиты процессов друг от друга ОС возводит мощные изолирующие преграды, которые не только защищают процессы, но и не позволяют им передавать друг другу данные. Потоки разных процессов работают в разных адресных пространствах. Однако операционная система имеет доступ ко всем областям памяти, поэтому она может играть роль посредника в информационном обмене прикладных потоков. При возникновении необходимости в обмене данными поток обращается с запросом к ОС. По этому запросу ОС, пользуясь своими привилегиями, создает различные системные средства связи, такие, например, как конвейеры или очереди сообщений.

Эти средства, так же как и рассмотренные выше средства синхронизации процессов, относятся к классу средств межпроцессного взаимодействия, то есть IPC (Inter-Process Communications).

Многие из средств межпроцессного обмена данными выполняют также и функции синхронизации: в том случае, когда данные для процесса-получателя отсутствуют, последний переводится в состояние ожидания средствами ОС, а при поступлении данных от процесса-отправителя процесс-получатель активизируется.

Набор средств межпроцессного обмена данными в большинстве современных ОС выглядит следующим образом:

  • конвейеры (pipes); rj именованные конвейеры (named pipes);
  • очереди сообщений (message queues);
  • разделяемая память (shared memory).

Кроме этого достаточно стандартного набора средств в конкретных ОС часто имеются и более специфические средства межпроцессного обмена, например средства среды STREAMS для различных версий UNIX или почтовые ящики (mail slots) в ОС Windows.

Конвейеры

Конвейеры как средство межпроцессного обмена данными впервые появились в операционной системе UNIX. Системный вызов pipe позволяет двум процессам обмениваться неструктурированным потоком байт. Конвейер представляет собой буфер в оперативной памяти, поддерживающий очередь байт по алгоритму FIFO. Для программиста, использующего системный вызов pipe, этот буфер выглядит как безымянный файл, в который можно писать и читать, осуществляя тем самым обмен данными.

Системный вызов pipe имеет одно существенное ограничение — обмениваться данными могут только родственные процессы, точнее, процессы, которые имеют общего прародителя, создавшего данный конвейер. Если операционная система поддерживает потоки, то это же ограничение будет означать, что конвейером могут воспользоваться только потоки, относящиеся к такого рода процессам. Ограничение проистекает из-за того, что конвейер такого типа не имеет имени, а обращение к нему происходит по дескриптору файла, который, как это было сказано выше, имеет локальное для каждого процесса значение.

При выполнении системного вызова pipe в процесс возвращаются два дескриптора файла, один для записи данных в конвейер, а другой для чтения данных из конвейера. Обычно для выполнения некоторой общей работы ведущий процесс сначала создает конвейер, а затем — несколько процессов-потомков с помощью соответствующего системного вызова. В результате механизм наследования процессов копирует для всех процессов-потомков значения дескрипторов, указывающих на один и тот же конвейер, так что все кооперирующиеся процессы, включая процесс-прародитель, могут использовать этот конвейер для обмена данными. Данные читаются из конвейера с помощью системного вызова read с использованием первого из возвращенных вызовом pipe дескрипторов файла, а записываются в конвейер с помощью системного вызова write с использованием второго дескриптора. Синтаксис системных вызовов read и write тот же, что и при работе с обычными файлами.

Конвейер обеспечивает автоматическую синхронизацию процессов — если при использовании системного вызова read в буфере конвейера нет данных, то процесс, обратившийся к ОС с системным вызовом read, переводится в состояние ожидания и активизируется при появлении данных в буфере.

Механизм конвейеров доступен не только программистам, но и пользователям большинства современных операционных систем. Именно системные вызовы pipe используются оболочкой (командным процессором) операционной системы для организации конвейера команд, когда выходные дан ные одной команды пользователя становятся входными данными для другой команды. Примером такого конвейера команд может служить показанная ниже строка командного интерпретатора shell ОС UNIX, которая передает выходные данные команды Is (чтение списка имен файлов текущего каталога) на вход команды we (подсчет слов) с ключом -1:

ls | wc -1

Результатом работы этой командной строки будет количество файлов в текущем каталоге.

Именованные конвейеры

Именованные конвейеры представляют собой развитие механизма обычных конвейеров. Такие конвейеры имеют имя, которое является записью в каталоге файловой системы ОС, поэтому они пригодны для обмена данными между двумя произвольными процессами или потоками этих процессов.

Именованный конвейер является специальным файлом типа FIFO и не имеет области данных на диске. Создается именованный конвейер с помощью того же системного вызова, который используется и для создания файлов любого типа, но только с указанием в качестве типа файла параметра FIFO. Системный вызов порождает в каталоге запись о файле типа FIFO с заданным именем, после чего любой процесс может открыть этот файл и передавать данные другому процессу, также открывшему файл с этим именем.

Ввиду того что именованные конвейеры основаны на файловой системе, обычные конвейеры, создаваемые системным вызовом pipe, иногда называют программными конвейерами (software-pipes). Следует иметь в виду, что именованные конвейеры используют файловую систему только для хранения имени конвейера в каталоге, а данные между процессами передаются через буфер в оперативной памяти, как и в случае программного конвейера.

Очереди сообщений

Механизм очередей сообщений похож на механизм конвейеров с тем отличием, что он позволяет процессам и потокам обмениваться структурированными сообщениями. При этом синхронизация осуществляется по сообщениям, то есть процесс, пытающийся прочитать сообщение, переводится в состояние ожидания в том случае, если в очереди нет ни одного полного сообщения. Очереди сообщений являются глобальными средствами коммуникаций для процессов операционной системы, как и именованные конвейеры, так как каждая очередь имеет в пределах ОС уникальное имя. В ОС UNIX в качестве такого имени используется числовое значение — так называемый ключ. Ключ является числовым аналогом имени файла, при использовании одного и того же значения ключа процессы будут работать с одной и той же очередью сообщений. Существует также функция, которая преобразует произвольное символьное имя в значение ключа, что позволяет программисту использовать для указания уникальных очередей имена вместо трудно запоминаемых чисел.

Для работы с очередью сообщений процесс должен воспользоваться системным вызовом msgget, указав в качестве параметра значение ключа. Если очередь с данным ключом в настоящий момент не используется ни одним процессом, то для нее резервируется область памяти, а затем процессу возвращается идентификатор очереди, который, как и дескриптор файла, имеет локальное для процесса значение. Если же очередь уже используется, то процессу просто возвращается ее идентификатор. Системный администратор может управлять настройками операционной системы для изменения максимального объема памяти, отводимой очереди, а также максимального размера сообщения.

После открытия очереди процесс может помещать в него сообщения с помощью вызова msgsnd или читать сообщения с помощью вызова msgrsv. Программист может влиять на то, как ОС будет обрабатывать ситуацию, когда процесс пытается читать сообщения, которые еще не поступили в очередь, то есть на синхронизацию процесса с данными. При задании в системных вызовах msgsnd и msgrcv параметра IPC_NOWAIT операционная система в любом случае будет возвращать управление в вызывающий процесс, даже если он пытается прочитать несуществующее сообщение (в последнем случае в процесс возвращается код ошибки). Без этого параметра процесс при отсутствии данных переводится в состояние ожидания. Параметр IPC_NOWAIT используется не только в очередях сообщений, но и в некоторых других средствах IPC, например в семафорах. При использовании параметра IPC_NOWAIT программист должен самостоятельно организовать ожидание данных.

Разделяемая память

Разделяемая память представляет собой сегмент физической памяти, отображенной в виртуальное адресное пространство двух или более процессов. Механизм разделяемой памяти поддерживается подсистемой виртуальной памяти, которая настраивает таблицы отображен я адресов для процессов, запросивших разделение памяти, так что одни и те же адреса некоторой области физической памяти соответствуют виртуальным адресам разных процессов.

данни

  • Механизм специальных файлов дает упрощенное представление устройства в виде неструктурированного набора байт. Эта модель может непосредственно использоваться при работе с символьными устройствами или служить универсальной основой для построения более сложной логической модели устройств других типов.
  • В подсистеме ввода-вывода каждой современной операционной системы существуют стандарты на структуру драйверов и способ взаимодействия драйверов с приложениями и остальными модулями ОС, а также друг с другом. Наличие таких стандартов упрощает разработку новых драйверов независимыми производителями и повышает стабильность ОС.
  • Стандарт на структуру драйвера определяет состав и назначение основных процедур драйвера, таких как процедура инициализации, процедура старта операции, процедуры чтения и записи данных, процедура обработки прерываний и процедура завершения операции.
  • Процедура обработки прерываний драйвера работает в общем случае в контексте процесса, отличающегося от того, для которого выполняется операция, поэтому ей запрещается пользоваться ресурсами текущего процесса или влиять на их распределение.
  • Механизм отображаемых в память файлов является удобным для программиста средством доступа к файлам, при котором обращение к данным файла осуществляется тем же способом, что и к переменным, находящимся в оперативной памяти. Большую часть работы по отображению файлов в память выполняют стандартные модули подсистемы виртуальной памяти ОС, поэтому данный механизм очень экономичен в отношении реализации.
  • Для ускорения обмена данными с дисковыми накопителями в операционных системах используется дисковый кэш, который располагается между слоем драйверов файловых систем и блок-ориентированными драйверами дисков.
  • Негативным последствием кэширования диска может быть потеря при сбое системы или отключении питания той части кэшируемых данных, которая не успела переписаться на диск. Для борьбы с этим явлением периодически осуществляется принудительное выталкивание данных кэша на диск, а также используются восстанавливаемые файловые системы.
  • Для организации дискового кэша в большинстве современных ОС используется отображение с помощью подсистемы виртуальной памяти частей файлов, к которым происходит обращение, в системную область памяти.
  • Восстанавливаемость файловой системы — это свойство, которое гарантирует, что в случае отказа питания или краха системы, когда все данные в оперативной памяти безвозвратно теряются, все начатые файловые операции будут либо успешно завершены, либо отменены без всяких отрицательных последствий для работоспособности файловой системы. Это означает, что операции с диском рассматриваются как транзакции, которые протоколируются в специальном журнале.
  • Свойство восстанавливаемости может распространяться на данные двух типов: пользовательские данные и служебную информацию файловой системы. В некоторых файловых системах, например NTFS, поддерживается только восстанавливаемость служебной информации, что обеспечивает работоспособность и непротиворечивость файловой системы после сбоев, но не гарантирует полной сохранности данных в файлах пользователей.
  • Для обеспечения устойчивости хранимых данных к отказам самих дисков в вычислительных системах применяются избыточные дисковые массивы, известные под названием RAID. При отказе одного из дисков для восстановления его данных используются данные, хранящиеся на оставшихся дисках массива.
  • Существует несколько уровней RAID (наиболее часто применяемые — RAID-0, RAID-1, RAID-3 и RAID-5), отличающихся степенью избыточности хранимой информации, производительностью операций чтения и записи, а также степенью отказоустойчивости.
  • В операционных системах существуют специальные средства межпроцессного обмена, которые позволяют преодолеть защитные барьеры, разделяющие адресные пространства различных процессов. К этим средствам относятся простые и именованные конвейеры, очереди сообщений, разделяемые сегменты памяти и ряд других механизмов.

Задачи и упражнения

1. На какой стадии операция записи данных в специальный файл начинает отличаться от операций записи в дисковый файл в ОС UNIX?

2. Если при поступлении запроса от приложения к файлу система обнаруживает требуемые данные в системном буфере (кэше), то время доступа приложения к нужным ему данным будет:

  • А) таким же, как время доступа к его внутренним переменным ;
  • В) немного больше, чем время доступа к его внутренним переменным;
  • С) таким же, как время доступа к данным на диске.

3. Какая секция блок-ориентированного драйвера ОС UNIX выполняет вывод данных?

4. Какие преимущества связаны с включением в модель драйвера большого количества секций различного типа?

5. Чем функции секции nodev драйвера ОС UNIX отличаются от функций секции nulIdev?

6. Чем принципиально отличается отображение файла в память от кэширования файла с помощью средств менеджера виртуальной памяти?

7. Все ли типы файлов можно отображать в память в ОС UNIX?

8. В каких ситуациях целесообразно использовать асинхронные операции записи в файл?

9. Какие дополнительные меры должны предприниматься при восстановлении файловой системы при наличии дискового кэша?

10. Какие параметры операции с файлом фиксируются в журнале транзакций?

11. Восстанавливаются ли пользовательские данные в NTFS?

12. Из каких двух частей состоит запись о модификации в журнале транзакций Windows NT?

13. Можно ли организовать дисковый массив RAID без специального контроллера?

14. В чем преимущество дисковых массивов RAID-0 по сравнению с обычными дисками?

15. Скорость какого типа операций повышается при использовании дисковых массивов RAID-1?

16. Что такое «динамическое восстановление данных»?

17. В каких случаях обмен данными между процессами можно выполнить только с помощью именованных конвейеров?


ГЛАВА 9

<== Предишна лекция | На следващата лекция ==>
| Оползотворяване NTFS файлова система

; Дата: 05.01.2014; ; Прегледи: 177; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



ailback.ru - Edu Doc (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 11.45.9.24
Page генерирана за: 0.068 сек.