Системне програмування в операційних системах

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти і науки РФ
Пензенський державний університет
Кафедра «Інформаційна безпека
систем і технологій »
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсового проекту на тему:
«Системне програмування в операційних системах»
ПГУ 2.090105.001 ПЗ
Дисципліна: Безпека операційних систем
Група: _____________________
Розробив: __________________
Проект прийнятий з оцінкою: _________
Керівник проекту: ___________
Пенза 2006

Реферат

Пояснювальна записка містить 18 с., 1 рис., 2 додатки.
ГРАФІЧНИЙ ІНТЕРФЕЙС, ПРОГРАМА, Алгоритм, РЕЄСТР
Об'єктом дослідження є графічна операційна система.
Метою роботи є створення програми, що здійснює запуск програми за розкладом, розклад зберігається в реєстрі. Програма повинна нормально функціонувати в середовищі графічної операційної системи.
У процесі роботи була розроблена програма, що здійснює запуск програми за розкладом, розклад зберігається в реєстрі, написана на мові, призначеному для програмування графічної операційної системи. Розроблена програма має графічний інтерфейс.
В результаті виконання роботи були отримані навички програмування для графічної операційної системи.

Зміст
Введення
1 Інтерфейс користувача
2 Керівництво користувачеві
3 Перевірка працездатності програми
Висновок
Додаток А. Алгоритм роботи програми
Додаток Б. Лістинг програми

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

1. Інтерфейс користувача
Методи і засоби взаємодії з апаратними та програмними засобами називають користувача інтерфейсом. Інтерфейс взаємодії з користувачем - важливий елемент будь-якої програми. Будь-яка програма повинна мати для користувача інтерфейсом, інакше, крім свого розробника, вона буде недоступна в розумінні особі з нею не знайомому. Крім того, інтерфейс повинен бути дружнім. Як правило, популярність програмних продуктів безпосередньо залежить від інтерфейсу. Програми, що мають найбільш зручний інтерфейс, завжди користуються попитом.
Інтерфейси бувають різних типів. У даному курсовому проекті розроблена програма має графічний інтерфейс. Написана програма зовні представляє із себе графічний додаток, графічної операційної системи. При старті програми на дисплеї з'являється графічне вікно. Ніякої функціонального навантаження це вікно не несе, через нього не передбачено введення команд і параметрів у програму. Це вікно лише позначає роботу програми. Розроблений інтерфейс повною мірою відповідає функціональному призначенню програми.
У першому блоці виробляється відкриття розділу реєстру, якщо він успішно відкривається, то програма отримує поточний час, якщо немає, то на екран виводитися повідомлення "Cannot open registry key!", Це означає, що розділ реєстру не може відкритися. Після цього перевіряється лічильник рядків. У даній програмі передбачена можливість створення розкладу для 30 програм. Якщо перевірка виявить, що лічильник дорівнює 0, то програма завершить своє виконання. В іншому випадку відбудеться зчитування рядка. Якщо рядок зчитана, і лічений час одно поточному, то здійснюється запуск заданої розкладом програми
Алгоритм роботи програми зображений на рисунку А.1 у додатку А.

2. Керівництво користувачеві
Перед тим як здійснювати запуск програми за розкладом необхідно створити список програм, що запускаються з зазначенням часу запуску кожної з них. Цю інформацію необхідно вводити в спеціальний файл з розширенням reg. Введення інформації необхідно здійснювати у визначеному форматі. Приклад рядки з файлу schedule.reg, що відповідає за запуск програми калькулятора в 14:09.
"1" = "14:09 c: \ \ windows \ \ system32 \ \ calc.exe"
Далі необхідно імпортувати інформацію з файлу до реєстру. Тепер можна запускати дану програму. Для цього необхідно запустити виконуваний файл list.exe в середовищі графічної операційної системи будь-яким з можливих способів.
3. Перевірка працездатності програми
Для наочної перевірки працездатності програми зробимо розклад запуску таких програм:
- Calc.exe
- Cmd.exe
- Notepad.exe
Для цього необхідно занести дані в файл schedule:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER \ shedule]
"1" = "14:09 c: \ \ windows \ \ system32 \ \ calc.exe"
"2" = "14:10 c: \ \ windows \ \ system32 \ \ cmd.exe"
"3" = "13:15 c: \ \ windows \ \ system32 \ \ notepad.exe"
Потім необхідно імпортувати ці дані до реєстру.
Після цього запускаємо програму. На екрані з'являється вікно з написом "виконання", що свідчить про роботу програми.
У період виконання, програма перевіряє розклад, яке зберігається в реєстрі, і якщо знаходить там час збігається з поточним, то запускається відповідна програма.

Висновок
У результаті курсового проекту була розроблена програма, яка дозволяє здійснювати запуск програми за розкладом, який зберігається в реєстрі. Засобом написання даної програми була інтегрована середовище програмування, спеціально призначена для програмування графічної операційної системи. Розроблена програма має графічний інтерфейс.
У підсумку, завдання на курсовий проект було виконано в повному обсязі.

Додаток А
(Обов'язковий)
Алгоритм роботи програми


Рисунок 1 - Алгоритм роботи програми

Додаток Б
(Обов'язковий)
Лістинг програми
/ / List.cpp: Defines the entry point for the application.
/ /
# Include "stdafx.h"
# Include "windows.h"
# Include "stdlib.h"
# Include "winioctl.h"
# Include "shellapi.h"
/ / Функція перевірки розкладу в реєстрі
void CheckShedule (void);
char shed [30] [3];
/ / Віконна функція
LRESULT CALLBACK WindowProc (HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam);
/ / Основна функція
int APIENTRY WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
/ / Створення і заповнення структури вікна
WNDCLASS wcl;
wcl.style = CS_HREDRAW | CS_VREDRAW;
wcl.lpfnWndProc = WindowProc;
wcl.cbClsExtra = 0;
wcl.cbWndExtra = DLGWINDOWEXTRA;
wcl.hInstance = hInstance;
wcl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wcl.hCursor = LoadCursor (NULL, IDC_ARROW);
wcl.hbrBackground = (HBRUSH) (COLOR_BTNFACE +1);
wcl.lpszMenuName = NULL;
wcl.lpszClassName = "WWW";
strcpy (shed [0], "1");
strcpy (shed [1], "2");
strcpy (shed [2], "3");
strcpy (shed [3], "4");
strcpy (shed [4], "5");
strcpy (shed [5], "6");
strcpy (shed [6], "7");
strcpy (shed [7], "8");
strcpy (shed [8], "9");
strcpy (shed [9], "10");
strcpy (shed [10], "11");
strcpy (shed [11], "12");
strcpy (shed [12], "13");
strcpy (shed [13], "14");
strcpy (shed [14], "15");
strcpy (shed [15], "16");
strcpy (shed [16], "17");
strcpy (shed [17], "18");
strcpy (shed [18], "19");
strcpy (shed [19], "20");
strcpy (shed [20], "21");
strcpy (shed [21], "22");
strcpy (shed [22], "23");
strcpy (shed [23], "24");
strcpy (shed [24], "25");
strcpy (shed [25], "26");
strcpy (shed [26], "27");
strcpy (shed [27], "28");
strcpy (shed [28], "29");
strcpy (shed [29], "30");
/ / Реєстрація класу вікна
if (! RegisterClass (& wcl)) return 0;
/ / Створення діалогового вікна
HWND hWnd = CreateDialogParam (hInstance, "TESTWIN", NULL, NULL, NULL);
/ / Промальовування вікна
ShowWindow (hWnd, nCmdShow);
/ / Оновлення вікна
UpdateWindow (hWnd);
/ / Установка таймера
SetTimer (hWnd, 1, 60000, NULL);
/ / Цикл обробки повідомлень
MSG lpMsg;
while (GetMessage (& lpMsg, NULL, 0, 0))
{
TranslateMessage (& lpMsg);
DispatchMessage (& lpMsg);
}
return lpMsg.wParam;
}
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY: PostQuitMessage (0); break;
/ / Якщо прийшло повідомлення від таймера, перевірка розкладу в реєстрі
case WM_TIMER:
CheckShedule ();
break;

default: return DefWindowProc (hWnd, message, wParam, lParam);
}
return 0;
}
void CheckShedule (void)
{
/ / Оголошення змінних
SYSTEMTIME time;
HKEY hOpen;
DWORD datatype, Buffsize;
long opRes;
char * szAlloc = "shedule \ \";
char hour [3], minute [3], buff [1024];
hour [2] = minute [2] = 0;
/ / Відкриття розділу реєстру
opRes = RegOpenKey (HKEY_CURRENT_USER, szAlloc, & hOpen);
/ / Якщо не відкрився, то повідомлення і вихід
if (opRes)
{
MessageBox (0, "Cannot open registry key!", "Error", MB_ICONSTOP);
return;
}
/ / Отримання поточного часу
GetLocalTime (& time);
for (int i = 0; i <30; i + +)
{
/ / Читання рядки з реєстру з часом і рядком запуску
if (RegQueryValueEx (hOpen, shed [i], NULL, & datatype, (BYTE *) buff, & Buffsize))
/ / Якщо не прочитано, то перехід до наступної
continue;
/ / Зчитування часу запуску
hour [0] = buff [0];
hour [1] = buff [1];
minute [0] = buff [3];
minute [1] = buff [4];
/ / Якщо поточний час одно вважаємо з реєстру
if ((atoi (hour) == time.wHour) & & (atoi (minute) == time.wMinute))
{
/ / Запуск програми
ShellExecute (0, "open", & buff [6], NULL, NULL, SW_SHOWNORMAL);
}
/ / Обнуління буфера
memset (buff, 0, sizeof (buff));
}
}
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
20.8кб. | скачати


Схожі роботи:
Розробка статичних і динамічних бібліотек на мові програмування С C в операційних системах
Системне програмування
Системне програмування 2
Збереження даних в операційних системах
Системне програмування і операційні системи
Системне програмування та операційні системи
Аналіз криптостійкості методів захисту інформації в операційних системах Microsoft Window 9x
Аналіз криптостійкості методів захисту інформації в операційних системах Microsoft Windows 9x
Розробка статичних і динамічних бібліотек на мові програмування СC в операційних
© Усі права захищені
написати до нас