Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






ПРОЦЕДУРИ УПРАВЛІННЯ ПРОЦЕСАМИ

Використовуючи спеціальні засоби мови Pascal, можна організувати виклик з програми будь-якої іншої програми, яку називають програмою-нащадком. Важливо пам’ятати, що для того, щоб програма-нащадок успішно завантажилася в пам'ять і почала виконуватися, необхідно забезпечити виділення їй потрібного об’єму пам'яті. Так як програма, яка виконується в даний момент, по замовчуванню захоплює всю вільну динамічну пам'ять (кучу) системи, то для завантаження програми-нащадка просто немає місця. Для того щоб виділити для програми-нащадка достатньої кількості вільної пам'яті, необхідно на початку програми вказати за допомогою директиви компілятора $M мінімальний розмір виділеної програмі пам'яті, а якщо в програмі не використовується динамічна пам'ять, то зовсім не виділяти її.

Виклик програми-нащадка відбувається за допомогою процедури

Exec (Path, CmLine: STRING);

Параметр Path – це повний чи скорочений шлях до командного файлу і його ім'я, а CmLine – параметр, в якому можна передати викликаній програмі командний рядок. Якщо виклик програми не відбувся, то це ніяк не відіб’ється на роботі викликаної програми, тобто вона буде вести себе однаково як при успішному, так і при неуспішному виклику. Для того щоб визначити, як пройшов виклик, використовується системна змінна DosError, яка описана в модулі Dos. Зразу після виклику процедури Exec необхідно перевірити значення змінної DosError. Якщо вона рівна 0, то це означає, що виклик пройшов успішно. Не нулеві значення свідчать про помилку. Значення цієї змінної відповідає кодам, виробленими операційною системою, і можуть бути наступними

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

Коли викликається програма нащадок, бажано, щоб ця програма виконувалася в оточенні DOS, що відповідає тому оточенні, яке забезпечує операційна система. Однак програма, написана на Турбо Паскалі, звичайно не виконує ці умови. При запуску вона завжди перевизначає деякі переривання для особистих цілей. Тому перед викликом програми нащадка потрібно відновити початкову адресу обробника переривань, а після завершення роботи викликаної програми встановити адресу об робітника Турбо Паскаля. Ці дії виконує процедура Swap Vectors, яка не має параметрів.

Використовуючи механізм виклику незалежних програм, можна створити складні програмні комплекси, в яких програма-диспечер, займає чи не великий об’єм пам'яті, проводить виклик необхідних (в тому числі і системних) програм. В такому випадку може виникнути необхідність передачі інформації з програми-нащадка у викликаючи програму чи навпаки. Нажаль, можливості MS-DOS по здійсненню таких обмінів невеликі. Якщо програма що викликається, написана на мові Турбо Паскаль, то доступ до командного рядка здійснюється за допомогою функцій ParamStr і ParamCount.

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

DosExitCode: WORD;

Ця функція повертає значення типу WORD, в молодшому байті якого міститься код повернення, переданий через процедуру завершення, а в старшому – ознака того, як завершилася програма.




Переглядів: 316

<== попередня сторінка | наступна сторінка ==>
Отримати інформацію про поточну палітру можна за допомогою процедури | ПРОЦЕДУРИ ОБСЛУГОВУВАННЯ ПЕРЕРИВАНЬ

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.