Інтерпретатор muLisp, Детальна інформація

Інтерпретатор muLisp
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 13.9
Скачувань: 1005
o

\x00F0

e

i

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

Отже, muLISP може реагувати на зміни вимог програм до розміру областей даних.

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

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

Явище, відоме як "thrashing" виникає в тому разі, коли система змушена витрачати непередбачену кількість часу на збір сміття для дуже маленького повернення області даних. Ознакою "thrashing" є значне зростання часу виконання даної задачі. Дана проблема може бути вирішена шляхом збільшення розміру пам’яті ЕОМ (до 512К) і (або) модификації програми з метою зменшення її вимог до пам’яті.

5. Пакети переривань

Пакети переривань muLISP викликаються регулювальником переривань та регулювальником затримки помилок. Коли переривання виникає, то після повідомлення про переривання чи про помилку на екран дисплея видається підказка у вигляді опцій:

Continue, Break, Abort, Top-level, Restart, System?

Потім система очікує, допоки користувач обере одну з опцій шляхом вказання її імені (С,В,А,Т,R чи S відповідно).

Відзначимо, що опції перераховані в порядку посилення їхньої дії.

- Continue (продовжити): повертає керування програмі, що викликала переривання. Якщо причиною переривання була команда переривання, послана з клавіатури, то виконання продовжується, ніби переривання не було.

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

- Break (зупинка): тимчасово призупиняє виконання програми й виходить на наступний нижній рівень циклу "read-eval-print" ("читання-обчислення-друк"). Це дозволяє користувачеві перевірити або (і) змінити поточне середовище muLISP перед продовженням виконання програми. Для виходу з зупинки й відновлення роботи програми наберіть ( RETURN ) після знаку долара;

- Abort (переривання): перериває виконання програми, присвоює формальним параметрам, розміщеним в стеку змінних, початкові значення й повертає керування на поточний рівень циклу "read-eval-print". Визначення функцій, значення властивостей та глобальних змінних залишаються незмінними;

- Тop-level (верхній рівень): перериває виконання програми, присвоює початкові значення формальним параметрам, розташованим в стеку змінних, висвічує на консоль поточні вхідні й вихідні дані (CIS та COS) й повертає керування верхньому рівневі циклу "read-eval-print". Визначення функцій, значення властивостей та глобальних змінних залишаються незмінними;

- Restart (повторний старт): закриває всі відкриті файли, відмовляється від поточного середовища muLISP та ініціює нову систему muLISP. Всі зв’язки між змінними, функції та значення властивостей в поточному середовищі muLISP руйнуються;

- Sуstem (система): закриває всі відкриті файли, завершує виконання muLISP та повертає керування керівній ОС.

6. Система переривань з консолі

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

Переривання з консолі ініціюється шляхом натиснення клавіші на клавіатурі консолі. Якщо на клавіатурі немає клавіші , то символ переривання може бути зґенеровано шляхом натиснення клавіші лівої дужки ([) з одночасним натисненням клавіші .

Якщо ж і так не виходить, то символ для генерації переривань з консолі може бути змінений шляхом модифікації Default Readtable основної сторінки muLISP.

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

Console Interrupt Break: NIL

За ним на наступному рядку з’являється підказка у вигляді опцій переривання. Користувач може потім вирішити, як продовжити роботу.

Якщо з деяких причин немає відповіді на переривання з клавіатури, можливо здійснити переривання в системі шляхом переключення ЕОМ (хоча це завжди небажано).

7. Повідомлення про помилки

The online video editor trusted by teams to make professional video in minutes