Управління процесами. Організація дочірніх процесів. Частина 2.

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

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

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

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування
Група:
КІ-З

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 9 з курсу „ Системне програмування ” Тема: Управління процесами. Організація дочірніх процесів. Частина 2. Виконав: студент групи КІ-3 Львів – 2004 Мета роботи: Дослідити механізм виконання команд MS-DOS в якості дочірніх процесів з під управління прикладних програм. Короткі теоретичні відомості Важливим випадком активізації дочірнього процесу є виклик з ініціалізуючої програми другої копії командного процесора COMMAND.COM. Це дає можливість виконувати, не перериваючи активної програми, будь-які команди DOS, наприклад, копіювання файлів та ін. В багатьох випадках така методика суттєво спрощує програмування і розширює можливості прикладних програм. Для виклику за допомогою функції Exec командного процесора слід вказати повну специфікацію його файлу, яка зазвичай видобувається із оточення активного процесу, хоча може бути задана безпосередньо в полях даних програми. При передачі командному процесору імені програми (в якості залишку командного рядка) воно повинно починатись ключем “/C”. Залишок команди може в цьому випадку бути таким: cmdtaіl db 10,‘ /C DІR C:’, 0Dh В наведеному вище прикладі після завантаження другої копії командного процесора автоматично виконується команда DOS “DІR C:”. Таким самим чином можна виконати будь-яку іншу команду DOS або іншу прикладну програму. Можна виділити два варіанти процедури активації другої копії командного процесора: 1. Командний процесор викликається з ключем “/C” і вказуванням конкретної програми (команди DOS). Отримавши управління, командний процесор активує потрібну програму. Після її завершення управління відразу передається ініціалізуючому процесу. Таким способом можна запускати не лише команди DOS, а й командні файли, які не можна активувати безпосередньо функцією Exec. 2. Командний процесор викликається без ключа “DІR C:” і без імені конкретної команди. В цьому випадку командний процесор, отримавши управління, очікує вводу команд DOS з клавіатури. Користувач може необмежений час працювати з DOS, викликаючи будь-які команди DOS або прикладні програми. Для повернення в ініціалізуючий процес слід ввести команду EXІT. Такий режим (тимчасового виходу в DOS) широко використовується в більшості прикладних програм. DOS дозволяє дочірньому процесу передати у ініціалізуючий процес, що викликав його, код завершення із значенням в діапазоні 0-255. Як правило, 0 використовується в якості коду успішного завершення, інші значення – характеризують різні помилкові ситуації. Завдання на лабораторну роботу Створити програму, що запускає дочірній процес та аналізує результат виконання по його завершенні. В якості програми дочірнього процесу використати командний процесор COMMAND.COM. Запуск дочірнього процесу здійснити двома способами: проста ініціалізація другої копії командного процесора; ініціалізація другої копії командного процесора з передачею йому в якості вхідного параметру команди MS-DOS згідно варіанту вказаного викладачем. Варіант 9. Знайти всi файли, що мають розширення TXT, результати вiдсортувати i вивести на екран  Вміст .asm-файлу .model small .stack 64 .data parameters dw 0 dd cmds dd fcb1 dd fcb2 progname db 'COMMAND.COM', 0 cmds db 21,' /C DIR *.TXT /A /O:N',13 ; COUNTER,'...',13,0 fcb1 db 37 dup (0) fcb2 db 37 dup (0) ermsg1 db 'ERROR!$' ermsg2 db 'File not found or not enough memory!',10,13,'$' .code main PROC FAR mov ah, 4ah mov bx, stack add bx, 4 int 21h jc err1 mov ax, @data mov ds, ax mov es, ax mov ah, 4Bh mov al, 0 lea bx, parameters lea dx, progname int 21h jc err2 mov al, 00 jmp BUXIT err1: mov al, 01 mov dx,OFFSET ermsg1 mov ah,09 int 21h jmp BUXIT err2: mov dx,OFFSET ermsg2 mov ah,09 int 21h mov al, 02 BUXIT: mov ah, 4ch int 21h main ENDP end main Результат виконання програми Microsoft(R) Windows DOS (C)Copyright Microsoft Corp 1990-2001. Volume in drive C is SYSTEM Volume Serial Number is 263A-1EEA Directory of С:\TEMP\9 L9 TXT 543 12-18-04 6:37p SAMPLE TXT 543 12-18-04 6:37p 2 file(s) 1086 bytes 434230272 bytes free Висновок: Виконуючи дану лабораторну роботу, я дослідив механізм виконання команд MS-DOS в якості дочірніх процесів з-під управління прикладних програм.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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