Програмне забезпечення автоматизованих систем

Обсяг оперативної пам'яті комп’ютера, поняття та групи регістрів. Структура процесору та типи даних у ньому, представлення цілих чисел, символів, рядків, адрес. Особливості виконання арифметичних операцій. Загальна модель безпеки в Microsoft Windows NT.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык украинский
Дата добавления 17.06.2010
Размер файла 9,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Чи буде додаток спілкуватися з іншими, працюючими під керуванням іншої операційної системи (interoperable)?

Чи буде користувач мати можливість вибору, з яким додатком буде взаємодіяти даний додаток або додаток саме зробить пошук тих додатків, з якими воно повинне й може взаємодіяти?

Іменовані транспортери (Named Pipes)

Аналогічні попередньої за винятком того, що при створенні транспортеру привласнюється унікальне глобальне ім'я. Процес, що породив транспортер називається сервером. Процес, які приєднується до цього транспортера, називається клієнтом. Клієнт може приєднуватися до сервера, що перебуває на вилученому комп'ютері в мережі. Для обслуговування одночасно декількох клієнтів необхідно породжувати кілька потоків.

Поштові скриньки (MailSlots)

Аналогічні іменованим транспортерам, але надають більше простий й односпрямований інтерфейс. Процес-сервер може завести поштова скринька й дати йому ім'я, глобальне в мережі. Любою клієнт може за допомогою операцій роботи з файлами відправити дані в цей ящик. Сервер, у міру необхідності, може читати передані йому дані. Крім цього, можливо широкомовна передача інформації клієнтом всім серверам домену.

Буфер обміну (Clipboard).

Широко застосовуваний в Windows механізм обміну інформацією з використанням спеціального системного глобального буфера. При цьому реалізується модель cut-copy-paste. Будь-який додаток може помістити дані в буфер обміну й одержати дані з нього.

PROCESSJNFORMATION pi; STARTUPINFO si; char WorkString[80]; DWORD NumberOffiytesWritten;

ZeroMemory( &si, sizeof(si)); si.cb s sizeof( si);

hStandardlnput = GetStdHandle( STD_INPUT_HANDLE );

CreatePipe( &hPipelnput, &hPipeOutput, NULL, 0) ; SetStdHandle( STD JNPUT.HANDLE, hPipelnput);

CreateProcess( NULL, "Child", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);

SetStdHandle( STDJNPUT.HANDLE, hStandardlnput); CloseHandle( hPipelnput);

while( strcmp( WorkString, "end\n")) {

scanf( "%s", WorkString);

etrcat( WorkString, "In");

WriteFile< hPipeOutput, WorkString, strlen(WorkString), &NumberOfBytesWritten, NULL); }

return 0;

2. Вилучений виклик процедур (RPC - Remote Procedure Call)

Рис 1.1 - Remote Procedure Call

Перші програми писалися з використанням операторів goto. Фактично, саме поява таких процедурно орієнтованих мов як З, поклало цьому кінець. Підпрограма стала розглядатися як чорний ящик з документованими параметрами. Природно спробувати уможливити виконання цієї процедури на вилученому комп'ютері. Механізм здійснення цієї ідеї наступний: з додатком компонується не сама процедура, а лише деяка заглушка, що передає по мережі параметри процедури й приймає результат обчислень. У додатка створюється ілюзія роботи з локальною процедурою. Можливе виконання процедури й зухвалої програми під керуванням різних операційних систем.

Рис 1.2 - RPC

3. Синхронізація потоків

У середовищі, що дозволяє виконувати одночасно кілька потоків, дуже важливо синхронізувати їхня діяльність. Інакше потоки не зможуть коректно працювати з поділюваними областями даних.

Критичні секції. В Win32 API реалізований класичний механізм критичної секції. Для роботи із критичною секцією необхідно завести структуру CRITICAL_SECTION й ініціалізувати її викликом функції InitializeCriticalSection. Тепер всі потоки можуть використати функції EnterCriticalSection й LeaveCriticalSection для огородження критичного розділу коду. Істотно, що механізм критичних секцій може використатися тільки в рамках одного процесу.

Синхронізація потоків різних процесів. У кожному разі, синхронізація полягає в тому, що потік переводить себе в стан блокованого до настання якого або події. Для перекладу процесу в стан блокування використаються функції:

WaitForMultipteObjects

WaitForMultipleObjectsEx

WaitForSingleObject

WaitForSingleObjectEx

Вихід процесу зі стану блокування відбувається при настанні очікуваної події. Подія складається в зміні стану якого-небудь об'єкта. Практично будь-які об'єкти ядра (процеси, файли, транспортери й т.д.) можуть виступати в ролі синхронізуючих. Але існують об'єкти, призначені саме для синхронізації потоків: Mutex (mutually exclusive - взаємне виключення)

Семафори

Події

Об'єкти Mutex. Mutex - глобальний іменований об'єкт, що може належати тільки одному потоку. Якщо об'єкт Mutex належить якому-небудь потоку, то інші потоки не можуть захопити його. За допомогою об'єктів Mutex так само реалізується класичний алгоритм критичної секції. Загальна схема така: один з потоків породжує об'єкт Mutex і привласнює йому глобальне ім'я за допомогою функції CreateMutex. Інші потоки можуть використати функцію OpenMutex для одержання описувача об'єкта. Перед входом у критичну секцію потік викликає одну з функцій очікування, передаючи їй як параметр описувач об'єкта Mutex. Якщо об'єкт Mutex уже захоплений, то потік блокується до звільнення об'єкта. Якщо не захоплений, то виконання потоку триває, а об'єкт Mutex захоплюється. Для звільнення об'єкта Mutex використається функція ReteaseMutex.

Семафори. За допомогою об'єктів типу семафор реалізується класичний механізм семафорів1. При цьому як примітив P(S) виступає одна з функцій очікування, а як примітив V(S) - функція ReleaseSemaphore. При створенні семафора функцією CreateSemaphore можна визначити максимально припустиме значення змінної S.

Події. Події - самий примітивний різновид синхронізуючих об'єктів. Вони породжуються функцією CreateEvetnt і бувають двох типів «зі скиданням вручну» й «з автоматичним скиданням». Об'єкт подія може перебувати у двох станах: «зайнятий» (non-signaled) і «вільний» (signaled). Для перекладу об'єкта подія у вільний стан використається функція SetEvent, а для перекладу в зайняте - ResetEvent. За допомогою кожної з функцій очікування можна перевести потік, що викликав, у стан блокування до звільнення об'єкта подія. Якщо об'єкт подія є об'єктом «з автоматичним скиданням» то функція очікування автоматично переведе його в стан зайнятого.

Лекція 14

Тема: Структурна обробка виключень

1. Загальний порядок обробки виключень

Виключення - події, які відбуваються під час виконання програми й вимагають зміни її природного ходу.

Апаратні виключення виникають у випадку спроби виконання неприпустимої послідовності команд (наприклад, розподіл на 0). Програми можуть самостійно викликати програмні виключення, використовуючи існуючі в Win32 механізми.

Компілятори, розроблені для середовища Win32 надають спеціальні кошти, призначені для структурної обробки виключень. У компіляторах Microsoft - це ключові слова try, finally, except Ключове слово try визначає обгороджена ділянка коду. Якщо при виконанні цієї ділянки виникає виключення, то керування передається ділянці коду, певній словом finally або except.

try{ try{

Н захищений блок // захищений блок

> >

except (filter-expression) { finally {

II оброблювач виключення // оброблювач завершення

> }

У випадку виникнення виключення ОС запам'ятовує середовище потоку, що виконується, у структурі CONTEXT і заповнює структуру EXCEPTION_RECORD інформацією про виключення.

Якщо при виникненні виключення виконувався прикладний процес (user-mode code), то система виконує наступні дії:

Намагається звернеться до полагодника, що обслуговує даний процес. Полагодник повинен перебувати в стані очікування після виклику функції WaitForDebugEvent.

Якщо процес не налагоджує або полагодник не обробляє це виключення, система передає керування блоку обробки виключення, певному ключовими словами finally або except

Якщо оброблювач не визначений, або він не обробляє дане виключення, керування передається отладчику вдруге.

Якщо знову полагодник не обробляє дане виключення, використається обробка виключення за замовчуванням. У більшості випадків - це виклик функції ExitProcess.

Якщо виключення виникає при роботі ядра системи, то система передає керування оброблювачеві виключення. Якщо такого ні, то система завершує свою роботу подібно тому, як це робить функція ExitWindows.

Глобальне розкручування виникає в тому випадку, коли передчасне завершення виникає поза захищеним блоком, наприклад, при виконанні викликаної із блоку функції. Для передчасного завершення захищеного блоку без додаткових витрат призначене ключове слово leave. Наведений нижче приклад приводить до того ж результату, що й попередній, але має значно більшу ефективність:

DWORD Function 1( void ) { /* Робота із семафором */ try{

WaitForSingleObject( g_hSem, INFINITE ); /* Вхід у критичну секцію */

Г Робота з поділюваними даними */

} finally {

ReleaseSemaphore( g_hSem, 1, NULL); I* Вихід із критичної секції */

}

retum( RetValue);

2. Фільтри й оброблювачі виключень

У випадку виникнення виключення можна визначити тип виключення, використовуючи функцію DWORD GetExceptionCode(VOID). Функція повертає код виключення. Визначені 16 кодів. От деякі з них:

Приклад:

LPTSTR SafeStrcpy(LPTSTR IpszStringl, LPTSTR lpszString2) { try{ return strcpy(string 1, string2);

}

except (GetExceptionCode == EXCEPTION_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH ) { return NULL; } }

Функція SafeStrcpy працює аналогічно функції strcpy за винятком

одного моменту. Якщо при операції копіювання виникає помилка звертання

до пам'яті, то ця помилка обробляється усередині тіла функції і її

програмі, що викликав, повертається значення NULL. Переривання програми, що викликала,

не відбувається. Приклад демонструє використання прапорів

EXCEPTION_EXECUTE_HANDLER

й EXCEPTION_CONTINUE_SEARCH.

Прапор EXCEPTION_CONTINUE_EXECUTION використається якщо при обчисленні значення фільтра можна усунути причину виключення й продовжити виконання перерваної програми.

Лекція 15

Тема: Системний реєстр

1. Загальна структура системного реєстру

Операційна система використає системний реєстр у такий спосіб:

При запуску програми установки Windows (Windows setup), додаванні нового обладнання через панель керування або запуску програм установки встаткування, операційна система (Configuration manager) додає до реєстру інформацію об устаткування. У реєстрі втримується повний список пристроїв.

При установці Windows «поверх» попередньої версії до реєстру переноситься інформація з ESJI файлів.

При додаванні або видаленні пристроїв, що підтримують специфікацію Plug and Play, що відповідає інформація заноситься в registry.

Драйвери пристроїв зчитують із реєстру настроювання, подібно тому, як це робиться при використанні рядка device= файлу CONFIG.SYS.

З реєстром працюють різні адміністративні програми, наприклад Панель Керування (Control Panel).

Рис 1.1 - Загальна структура системного реєстру

Дані в системному реєстрі зберігаються у двійковому виді. Для роботи з ними додатки повинні використати спеціальні системні функції.

Дані в реєстрі організовані у вигляді дерева. Вузли цього дерева називаються ключами (key). Кожен ключ може містити будь-яка кількість під ключів і значень (values). Кожен ключ має ім'я складається з одного або декількох символів. Ім'я не може містити в собі пробіли, зворотну косу рису, символи «*» й «?». Імена ключів, що починаються із крапки зарезервовані. Ім'я підключа повинне бути унікальним відносно вище лежачого ключа.

Додаток повинне відкрити ключ перед тим як додавати в нього дані. Для того, щоб відкрити новий ключ, додаток повинне надати системі вже відкритий раніше ключ. Для того, щоб це було можливо система завжди надає два відкритих ключі (HKEY_LOCAL_MACHINE й HKEY_USERS). Перший містить інформацію описувача можливі конфігурації комп'ютера, другий - всіх користувачів. Додаток використає ці ключі, як крапки входу до реєстру. Крім цього завжди визначені два інших ключі, які містять посилання на актуальні підключи цих ключів. Один з них, HKEY_CLASSES_ROOT, описує актуальну конфігурацію програмного забезпечення комп'ютера з HKEY_tOCAt_MACHlNE, інший, HKEY_CURRENT_USER, посилається на працюючого користувача з HKEY_USERS. Значення інших ключів системно залежно.

2. Робота додатків із системним реєстром

Формально, додатка можуть зберігати в реєстрі будь-які дані, однак вони повинні дотримуватися наступних «правил поведінки»:

До реєстру записуються тільки дані про конфігурації й ініціалізацію додатка. Інші дані повинні зберігатися в іншому місці.

Дані, що мають розмір більше двох кілобайт повинні зберігатися у файлі. До реєстру записується ім'я цього файлу.

Код, що виконує, не повинен зберігатися в реєстрі.

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

Перед записом інформації до реєстру необхідно визначити, до чого ставиться ця інформація: чи є вона загальної для всіх користувачів комп'ютера або специфічна для кожного окремого користувача

Інформація загальна для всіх користувачів повинна заноситися в ключ виду:

HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct\1.0

Інформація специфічна для користувача повинна заноситися в ключ виду:

HKEY_CURRENT_USER\Software\MyCompany\MyProduct\1.0\...

Нижче перераховані деякі функції, призначені для роботи з системним реєстром

char Name[80] ; DWORD NameSize; DWORD ValueSize; int i;

/* Створення нового подключа */

ErrorCode = RegCreateKey-HKEY_CURRENT_USER,

"\\Software\\MyCompany\\MyProduct\1.0V\aaa",&MyKey);

if ( ERROR_SUCCESS != ErrorCode ) return 1 ;

/* Запис у підключ десятьох нових даних з ім'ям Namex і значенням Valuex */

for (і = 0 ; і < 10 ; і++)

{

sprintf( Name, "Name%d", і); sprintf( Value, "Value%d", і); ErrorCode = RegSetValueEx( MyKey,Name,0,REG_SZ,

Value.strlen( Value)+1); if ( ERROR_SUCCESS != ErrorCode ) return 2;

}

/* Читання з подключа всіх записаних значень по номері і їх роздрук */

for (і = 0 ;; i++)

{

NameSize = sizeof( Name); ValueSize = sizeof( Value); ErrorCode = RegEnumValue( MyKey, i, Name, &NameSize, 0,NULL, Value, &ValueSize);

if ( ErrorCode != ERROR_SUCCESS ) break;

printf( "%d: %s - %s\n", i, Name, Value);

}

RegCloseKey( MyKey );

return 0;

}

Лекція 16

Тема: Робота з файлами

1. Файлові структури

Windows 95 підтримує роботу з файловими структурами FAT й CDFS. При цьому Windows 95 працює з розширеним варіантом FAT, що підтримує імена довжиною до 255 символів. CDFS - файлова структура призначена для компакт-дисків.

На додаток до цьому Windows NT підтримує роботу ще із двома файловими структурами NTFS й HPFS.

NTFS (New Technology File System) - структура призначена для організації даних на жорсткому диску. NTFS надає всі можливості FAT, значно розширюючи їх. Доступ до файлів в NTFS, як правило, більше швидкий ніж в FAT. NTFS файлова система, що самовідновлюється. Вона стійка до крахам додатків, системи, операцій виводу-вводу-висновку й розроблена таким чином, щоб відновлювати коректність даних без використання спеціальних сервісних програм перевірки дисків. NTFS підтримує розмежування доступу до файлів, імена файлів у довільному алфавіті.

HPFS (High-Performance File System) - так само організує дані на жорсткому диску. У порівнянні з FAT вона підвищує продуктивність системи за рахунок використання кешування. Підтримується Windows з метою сумісності. По можливості рекомендується заміняти HPFS на NTFS.

2. Робота з томами й каталогами

Для з'ясування того, які логічні диски існують у системі, використається функція

DWORD Getl_ogicalDrives( void )

Кожен установлений біт значення, що повертає, відповідає існуючий у системі логічному пристрою. Наприклад, якщо в системі існують диски А:, З: і D:, те значення, що повертає функцією, дорівнює \Ъ(щ.

Функція

DWORD GetLogicalDrivesStrings( DWORD cchBuffer, LPTSTR IpszBuffer)

заповнює IpszBuffer інформацією про кореневий каталог кожного логічного диска в системі. У наведеному вище прикладі буфер буде заповнений символами

A:\<null>C:\<nu>D:\<null><null>

параметр cchBuffer визначає довжину буфера. Функція повертає реальну довжину буфера, необхідну для розміщення всієї інформації. Якщо необхідна довжина буфера заздалегідь невідома (а вона ніколи заздалегідь невідома), то можна скористатися наступним класичним прийомом:

DWORD dw = GetLogicalDrivesStrings( 0, NULL );

LPSTR IpDriveStrings = HeapAIIoc( GetProcessHeap(), 0, dw*sizeof(TCHAR)); GetLogicalDrivesStrings( dw, IpDriveStrings);

Для визначення типу диска призначена функція

UINT GetDriveType( LPTSTR IpszRootPathName)

Як параметр їй передається символічне ім'я кореневого каталогу (напр. А:\), а повертає значення, що, може бути одне з наступних:

Для одержання докладної інформації про носій використається функція GetVolumelnformation. Вона заповнює параметри інформацією про ім'я тому, назві файлової структури, максимальній довжині імені файлу, додаткових атрибутах тому, специфічних для файлової структури.

Функція GetDiskFreeSpace повідомляє інформацію про розміри сектора й кластера й про наявність вільних кластерів.

Функція DeviceloControl дозволяє прикладній програмі звертатися прямо до драйвера пристрою й виконувати велику кількість дій, серед яких: форматування доріжок або роздягнула, виштовхування носія із приводу, розбивка диска на розділи й багато хто інші. Для роботи з каталогами й файлами, як з об'єктами, призначені наступні функції:

Для роботи з каталогами й файлами, як з об'єктами, призначені наступні функції:

3. Синхронна робота з файлами

В Win32 перед ухваленням рішення про використання операцій синхронної роботи з файлами настійно рекомендується розглянути питання про можливості використання файлів, відображуваних на згадку.

Для того, щоб створити або відкрити файл використається функція

DWORD dwFlagsAndAttributes, II file attributes

HANDLE hTemplateFite II handle to file with attributes to copy

);

Параметр IpFileName визначає ім'я файлу.

Параметр dwDesiredAccess задає тип доступу до файлу. Можна визначити прапори GENERIC_READ й GENERIC_WRITE а так само їхню комбінацію для дозволу читання або запису у файл.

Параметр dwShareMode визначає режим спільного використання файлу різними процесами. Якщо цей параметр дорівнює нулю, то ніякий інший потік не зможе відкрити цей же файл. Прапори FILE_SHARE_READ й FILE_SHARE_WRITE а так само їхня комбінація дозволяють іншим потокам здійснювати доступ до файлу для читання або запису.

Параметр IpSecurityAttributes указує на структуру, що описує захист створюваного об'єкта ядра. Йому може бути привласнене значення NULL.

Параметр dwCreationDistribution визначає дії функції залежно від того, чи існує вже Параметр dwFlagsAndAttributes визначає атрибути файлу, якщо він створюється й задає режим роботи з файлом із зазначеним ім'ям.

Атрибути файлу можуть комбінуватися за винятком FILE_ATTRIBUTE_NORMAL, що завжди використається на самоті.

Разом з атрибутами можуть комбінуватися й прапори, що задають режим роботи з файлом.

Параметр hTemplateFile або дорівнює NULL, або задає описатель відкритого файлу. У другому випадку параметр dwFlagsAndAttributes ігнорується, а зазначений файл використається як шаблон, тобто використаються його прапори й атрибути.

У випадку удачі функція CreateFile повертає описатель відкритого файлу як об'єкта ядра. Істотно, що в противному випадку вона повертає не NULL, a INVALID_HANDLE_VALUE.

Для роботи з файлами використаються наступні функції

4. Асинхронна робота з файлами

Windows'95 не дозволяє організувати асинхронну роботу з файлами, але той же самий асинхронний механізм може використатися при роботі з послідовними портами, транспортерами й поштовими скриньками.

Для організації асинхронної роботи з файлами необхідно при виклику функції CreateFile установити прапор FILE_FLAG_OVERLAPPED у параметрі dwFlagsAndAttributes. Після цього функції ReadFile й WriteFile будуть працювати асинхронно, тобто тільки запускати операції уведення висновку й не очікувати їхнього завершення.

На відміну від синхронних операцій, при організації асинхронного читання (запису) необхідно явно вказати позицію, починаючи з якої виробляється операція. Це пов'язане з тим, що поточної позиції не існує, тому що кілька операцій читання й записи можуть вироблятися одночасно з різних позицій в одному файлі.

Параметри функції WriteFile аналогічні параметрам функції Read File.

Схем організації асинхронні читання й записи може бути кілька.

Перед запуском операції створюється об'єкт ядра «подія» (див. п. 6.2.5) і його описатель передається у функцію RedFile (WriteFile) як елемент hEvent параметра IpOverlapped. Програма, виконавши необхідні дії одночасно з операцією передачі даних, викликає одну з функцій очікування (напр. WaitForSingleObject), передаючи їй як параметр описатель події. Виконання програми при цьому припиняється до завершення операції виводу-вводу-висновку.

Подія не створюється. Як очікуваний об'єкт виступає сам файл. Його описатель передається у функцію WaitForSingleObject. Цей метод простий і коректний, але не дозволяє робити паралельно кілька операцій виводу-вводу-висновку з тим самим файлом.

«Тривожний» асинхронний висновок^-висновок-вивід-ввід-висновок. Схема побудована на використанні функцій ReadFileEx й WriteFileEx. Як додатковий параметр у ці функції передається адреса функції завершення, що буде викликатися щораз при завершенні операції виводу-вводу-висновку. Істотно, що ці функції виконуються в тім же самому потоці що й функції файлового уведення/висновку.

Лекція 17

Тема: Файлова структура NTFS

1. Системні файли NTFS

Файлова структура NTFS розроблена на зміну системам FAT й HPFS з метою підвищення продуктивності, надійності й сумісності. Вона так само підтримує механізми захисту, необхідні для використання на файлі-сервері мережі.

Любий розподілений сектор NTFS належить якому-небудь файлу. Це ставиться навіть до внутрішніх структур даних. Системою використаються наступні файли:

2. Master File Table (MFT)

Для кожного файлу на томі NTFS існує спеціальний запис в MFT. Перші 16 записів MFT зарезервовані для спеціального використання. Перший запис описує саму MFT, а друга - її копію MFT2. Початок області даних MFT й MFT2 записано в завантажувальному секторі, розташованому на початку диска. Копія завантажувального сектора зберігається в середині диска. Третій запис визначає Log File (див.п.9.5.3), використовуваний для відновлення файлової структури у випадку збоїв. Починаючи із сімнадцятого запису в MFT утримується інформація про каталоги й файли.

Кожен запис в MFT займає досить велике місце. Невеликі файли (до 1500 байт) містяться усередині цього запису й не вимагають для зберігання додаткового місця на диску.

Такий спосіб зберігання файлів значно прискорює доступ до них. У випадку, якщо файл не міститься усередині одного запису, в MFT утримується інформація про розташування файлу. Невеликі каталоги так само розміщаються усередині одного запису MFT. У противному випадку вони організуються у вигляді У-дерева

3. Цілісність даних і здатність до самовідновлення.

Існує три види файлових структур

Careful-write file systems - файлові системи, у яких для підтримки цілісності запис на диск відбувається негайно з появою запиту на запис. Приклад FAT в MS DOS.

Lazy-write file systems - файлові системи, у яких для підвищення продуктивності виробляється кешування даних. У випадку краху системи дані в кеш можуть бути загублені, а цілісність файлової структури - порушена. Приклад: FAT в Windows NT і більшість структур в UNIX.

Recoverable file systems - файлові системи, які поряд з кешування, що підвищує продуктивність, застосовують спеціальні засоби підтримки цілісності даних і здатні до самовідновлення після краху системи. До таких систем ставиться NTFS.

Кожна операція, що змінює вміст тому NTFS розглядається як транзакція й може бути розбита на послідовність елементарних дій. Коли виробляється операція зміни вмісту будь-якого файлу, у файл протоколу (Log й1е)заноситься наступна інформація;

Яким образом можна повторити транзакцію (redo)

Яким образом можна скасувати транзакцію (undo)

Крім цього, кожні кілька секунд Windows NT перевіряє дисковий кеш на предмет виконання операцій запису й заносить відповідні мітки в Log file.

При кожнім завантаженні операційної системи відбувається перевірка коректності завершення її роботи. У випадку, якщо робота системи завершилася крахом, виробляються дії по відновленню файлової структури. При цьому використається інформація, записана в Log file.

4. Організація й керування дисками

При організації й керуванні дисками в Windows NT можна використати наступні можливості:

Можливість використання декількох фізичних дисків. При цьому допускається як розбивка кожного фізичного диска на розділи (volume sets), так і розміщення одного роздягнула вроздріб на декількох фізичних дисках (stripe sets).

Можливість використання спеціальних механізмів захисту від збоїв (fault-tolerance options)

Можливість використання сервісу збереження, відновлення даних і взаємодії із джерелами безперебійного харчування.

Кожен фізичний диск може бути розбитий максимум на чотири розділи. Розділи можуть бути основними (primary) і розширеними (extended). Основний розділ може містити код завантаження операційної системи. Розширений розділ може бути додатково розбитий на підрозділи. Кожному розділу й підрозділу операційна система ставить у відповідність логічний диск і призначає своє ім'я (З:, D:, Е: і т.д.)

Крім розбивки фізичного диска на розділи, система дозволяє один логічний диск вроздріб на декількох фізичні. Розділи різних фізичних дисків збираються в один логічний диск. Це збільшує продуктивність дискової підсистеми.

Наступні прийоми використаються для захисту від збоїв:

Дзеркальне відображення дисків (disk mirroring). Цей метод використає два різних фізичних диски, приєднаних до одного контролера й діє на рівні розділів. Дані одного розділу автоматично копіюються в інший розділ, розміщений на іншому фізичному диску. Ця резервна копія використається у випадку відмови першого диска. При цьому не потрібно, щоб обидва розділи мали однакові фізичні характеристики (кількість доріжок, секторів і т.д.).

Подвоєння дисків (disk duplexing) повністю аналогічно дзеркальному відображенню, за винятком того, що використаються не тільки різні фізичні диски, але й різні контролери. Для Windows NT дзеркальне відображення й подвоєння дисків нерозрізнені.

Розміщення одного роздягнула на декількох дисках з контролем парності (Disk striping with parity). Цей метод побудований на основі простого розміщення одного роздягнула на декількох дисках і відрізняється тим, що один розділ на кожному фізичному диску виділяється для зберігання контрольних сум.

Лекція 18

Тема: Загальна модель безпеки в Microsoft Windows NT

Механізми безпеки (security) діють автоматично для всіх додатків, що працюють під керуванням Windows NT. У більшості випадків цього досить. На додаток до цього функції безпеки Win32 API дозволяють додаткам вибірково надавати або забороняти доступ до окремих об'єктів.

Windows NT розроблена таким чином, щоб задовольняти рівню безпеки З2 міністерства оборони США (див.п.2.2). Основні вимоги рівня З2 наступні:

Повинне здійснюватися керування доступом до ресурсів. Повинне бути можливим дозволяти або забороняти доступ до зазначених ресурсів як окремим користувачам, так і групам користувачів.

Пам'ять повинна бути захищена таким чином, щоб неможливо було прочитати інформацію навіть після звільнення пам'яті процесом.

Користувачі повинні реєструвати себе в системі й мати унікальні ідентифікатори. Всі дії користувачів, контрольовані системою, повинні бути персоніфіковані.

Системний адміністратор і тільки він повинен мати можливість контролювати виконання дій, що ставляться до безпеки.

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

Всі об'єкти в Windows NT можуть бути захищені. Атрибути захисту кожного об'єкта описані в його дескрипторі захисту (security descriptor). Дескриптор захисту містить інформацію про власника об'єкта й список керування доступом (ACL - access control list). Список керування доступом складається з елементів (АСІ - access control entry), кожний з яких відповідає користувачеві й групі користувачів, яким дозволений або заборонений доступ до об'єкта.

При реєстрації користувача його пароль звіряється з інформацією, що зберігається в системній базі даних. У випадку успіху на підставі цієї інформації йому призначається маркер доступу (access token). Цей маркер надалі буде привласнюватися кожному процесу, що запустить користувач. Маркер містить інформацію про користувача, групу, привілеї й правах доступу. При спробі процесу звернутися до об'єкта виробляється пошук в ACL цього об'єкта АСІ, що відповідає процесу, що звернувся. На основі порівняння маркера доступу й АСІ приймається рішення про дозвіл або заборону доступу процесу до об'єкта.

Література

1. В.Н. Пильщиков. Программирование на языке ассемблера IBM PC.-М.:Диалог-МИФИ, 1994.

2. П. Абель. Язык ассемблера для IBM PC и программирования.-М.:Высшая школа,1992.

3. Лебедев В.Н. Введение в системы программирования. - М.: Статистика, 1975.

4. Костин А.Е., Шапьгии В.Ф. Организация и обработка данных в вычислительных системах: Учеб. Пособ. Для вузов. - М.: Высш.шк., 1987.

5. Кнут Д. Искусство программирования. Т.2. Получисленные алгоритмы: Учеб. Пособ. 3-е изд../Пер. с англ. - М.: Издательский дом «Вильяме», 2000.

6. Сваи Т. Освоение Turbo Assembler. - Киев: Диалектика, 1996.

7. Гудман С., Хидетииеми С. Введение в разработку и анализ алгоритмов. - М.: Мир, 1981.

8. Вирт Н. Алгоритмы и структуры данных/ Пер. с англ. - М.: Мир, 1989.


Подобные документы

  • Внутрішнє представлення в пам’яті комп’ютера даних базових та похідних типів, масивів. Ідентифікатор, зв'язаний з константним виразом та основи представлення даних. Алгоритм представлення цілих, дійсних, логічних і символьних чисел, структур і об’єднань.

    курсовая работа [279,1 K], добавлен 25.08.2014

  • Класифікація програмного забезпечення, системне та прикладне забезпечення, інструментальні системи. Програмна складова комп'ютерної системи, опис алгоритмів розв'язання певної задачі. Класифікація операційних систем, основні групи прикладних програм.

    презентация [945,0 K], добавлен 01.04.2013

  • Операція алгебраїчного додавання, множення, ділення. Алгоритм ділення модулів чисел. Поняття граф-схеми алгоритму та правила її складання. Основні поняття теорії цифрових автоматів. Синтез керуючого автомата. Контроль виконання арифметичних операцій.

    реферат [55,4 K], добавлен 24.03.2009

  • Склад сучасного настільного персонального комп'ютера. Системне та прикладне програмне забезпечення. Взаємодія користувача з операційною системою MS DOS. Програмна оболонка Norton Commander. Операційна система Microsoft Windows. Основні поняття та команди.

    курсовая работа [1,3 M], добавлен 18.05.2013

  • У наш час Windows ХР є найбільш сучасною настольною операційною системою. Windows ХР, яка займає серед настольних комп’ютерів долю у 84,56 % вимагає досить потужного комп’ютера. Порівняння інтерфейсу операційних систем Windows 98 та Windows ХР.

    реферат [4,4 M], добавлен 24.06.2008

  • Економічна інформація, її види та властивості. Апаратне і програмне забезпечення ПК. Програмне забезпечення стаціонарних комп’ютерів. Комп’ютерні мережі, загальна характеристика глобальної мережі Інтернет. Напрямки використання комп’ютерної техніки.

    контрольная работа [28,0 K], добавлен 06.10.2011

  • Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.

    лабораторная работа [31,7 K], добавлен 13.03.2011

  • Програмне забезпечення ПК, їх структура, склад пристроїв ПК. Об’єкти, які створюються в СУБД Microsoft Access. Їх призначення та застосування. Типи серверів за функціями, які вони підтримують. Системи адресації в Internet. Принципи побудови адрес.

    реферат [18,6 K], добавлен 29.05.2008

  • Web-браузери як програмне забезпечення для комп'ютера або іншого електронного пристрою. Загальна характеристика мови програмування Delphi, розгляд функцій. Аналіз етапів розробки браузера на основі Internet Explorer, знайомство з основаними особливостями.

    дипломная работа [2,1 M], добавлен 06.12.2013

  • Режими роботи з таблицями в Microsoft Access. Основні способи створення таблиць. Вимоги до технічних характеристик комп'ютера. Створення бази даних. Техніка безпеки та основні правила при виконанні робіт на комп'ютері. Порядок архівування роботи.

    реферат [1,5 M], добавлен 23.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.