Об’єкти ядра Windows

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Операційні системи
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут КНІТ Кафедра ПЗ ЗВІТ До лабораторної роботи № 1 На тему: “ Об’єкти ядра Windows ” З дисципліни : " Операційн системи" Лектор: Доц. каф. ПЗ Яковина В.С. Львів – 2008 Мета роботи: Ознайомитися із структурою ОС на прикладі Windows NT5 (ядро 5.X), навчитися працювати із абстрактними об’єктами ОС. Зокрема із HANDLE для створення програмного посилання на обєкт ОС. Теоретичні відомості Об'єкти ядра використовуються системою і призначені для користувача для управління безліччю самих різних ресурсів: процесами, потоками, файлами. Windows дозволяє створювати і оперувати з декількома типами таких об'єктів паралельно. Kernel object Об’єкт ядра  Access token Маркер доступу  Change notification Повідомлення про зміни на диску  I/O completion ports Порт завершення введення-виводу  Event Подія  File Файл  File mapping Проекція файлу  Heap Купа  Job Завдання  Mailslot Поштовий слот  Module Динамічно – підвантажуваний модуль (DLL)  Mutex Мютекс  Pipe Канал  Process Процес  Semaphore Семафор  Socket Сокет  Thread Потік  Timer Очікуваний таймер   Для виконання даної лабораторної роботи було використана функція: CreateFile Опис функції: HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); № Назва Опис  1. lpFileName Шлях до файлу(або ресурсу: портів, сокетів). Стрічка обмежена препроцесорною зміною MAX_PATH.  2. dwDesiredAccess Режим відкривання файлу. Можливі стани: GENERIC_EXECUTE GENERIC_READ GENERIC_WRITE  3. dwShareMode Дозвіл на роботу іншим хендлам, дане правило відноситься як до інших хендлів цієї ж програми так і інших. Можливі стани: FILE_SHARE_READ FILE_SHARE_WRITE NULL  4. lpSecurityAttributes Атрибут захисту. Для Windows Mobile і Windows9X завжди приймає значення: NULL.  5. dwCreationDisposition Параметр який вказує які дії потрібно зробити при існуванні або відсутності файлу. Можливі стани: CREATE_ALWAYS OPEN_EXISTING CREATE_NEW OPEN_ALWAYS TRUNCATE_EXISTING  6. dwFlagsAndAttributes Проставляє необхідні атрибути даному файлу(тобто: системний, скритий файл, архівований, тільки для читання). Можливі стани: FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_COMPRESSED FILE_ATTRIBUTE_HIDDEN FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_ROMMODULE FILE_ATTRIBUTE_SYSTEM FILE_ATTRIBUTE_TEMPORARY  7. hTemplateFile Файл шаблону. Основному приймає значення NULL.   Індивідуальне завдання Написати програму переписування одного вмісту текстового файлу у інший, використовуючи HADLE для доступу до файлів. Файли повинні знаходитися у в корені системного диску (c:\). Код програми Назва файлу: Lab01.cpp // Lab01.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "iostream" using namespace std; const int BUFFSIZE = 1024; int _tmain(int argc, _TCHAR* argv[]) { DWORD nIn, nOut; HANDLE hIn = CreateFile( _T("c:\\begin.log"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE hOut = CreateFile( _T("c:\\end.log"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); char buff[BUFFSIZE]; while( ReadFile( hIn, buff, BUFFSIZE, &nIn, NULL ) && nIn > 0 ) { cout << buff; WriteFile( hOut, buff, nIn, &nOut, NULL ); if( nIn != nOut ) { cerr << "Fatal write error: " << GetLastError()<< std::endl; exit(1); } } CloseHandle( hIn ); CloseHandle( hOut ); return 0; } Результат виконання Результатом виконання є перенесення вмісту одного файлу у інший. Також під час виконання весь вміст файлу виводиться на екран. Дана програма не враховує спец – символів, тому дана програма нестабільно буде працювати із бінарними файлами. На рис. 2. представлено результати виконання програми.  Рис. 2. Результат виконання програми Висновок На лабораторній роботі було розглянуто та досліджено об’єкти ядра ОС, ознайомились із підходами програмування на рівні ядра і порівняли із стандартним бібліотечним підходом написання програм. Порівняли переваги і недоліки використання об’єктів ядра і використання вбудованих бібліотек. Також було виконано індивідуальне завдання, використання один із об’єктів ядра, зокрема об’єкт File для закріплення практичною роботою здобутих знань.
Антиботан аватар за замовчуванням

30.03.2013 10:03-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!