тоти та ефективності трансляції з мови високого рівня Оккам. Всі команди мають однаковий формат, вибраний з міркувань компактного представлення найбільш часто зустрічаються в програмах операцій. Команди не залежать від довжини слова процесора, яке може містити будь-яку кількість байт (одна і та ж система команд може використовуватися на 16-, 24 - і 32 - розрядних процесорах).
Можна вважати, що кожен трансп'ютер виконує якийсь приписаний йому оккамовскій процес. Даний процес може сам складатися з деякого числа конкурентних або послідовних підпроцесів. Паралельна обробка в транспьютерах реалізована за допомогою розподілу процесорного часу між конкурентними процесами.
Природно, процесор виконує всі процеси по черзі. Процес, виконуваний в даний момент, називається поточним процесом, а набір процесів, готових до виконання, називається активним набором.
Процесор може виконувати будь-який процес на одному з двох рівнів пріоритету: рівень 0 - для термінових процесів, рівень 1 - для інших процесів. Якщо є одночасно два активних процесу різних рівнів, то процесор буде виконувати процес рівня 0, а процес рівня 1 буде налагоджений. Якщо при виконанні процесу рівня 1 виникає процес рівня 0, то перший процес переривається до закінчення всіх процесів рівня 0.
Поточний процес виконується до тих пір, поки немає ніяких обставин, що перешкоджають його виконанню, як, то: очікування введення або виведення, очікування деякого наперед заданого відрізка часу або переривання для виконання термінового процесу. Крім того, процеси першого рівня квантуються за часом, тобто виконання процесу першого рівня буде призупинено після закінчення поточного періоду квантування, якщо в черзі є процеси того ж пріоритету. Коли поточний процес не може продовжувати роботу, з активного набору вибирається наступний поточний процес. Виконання перерваного процесу продовжиться після того, як всі процеси вищого пріоритету виявляться не в змозі продовжувати своє виконання.
Зв'язок між проц?? ссамого здійснюється за допомогою каналів. Канали для зв'язку процесів, що виконуються на одному і тому ж транспьютерах, являють собою спеціально організовані системою доступу комірки пам'яті, а канали для зв'язку процесів, що виконуються на різних транспьютерах, реалізуються за допомогою лінків. Кожен лінк використовується виключно для зв'язку між двома транспьютерами і забезпечує в кожному напрямку одна оккамовскій канал.
Як і в оккамовской моделі, зв'язок здійснюється тільки, коли обидва процеси - вводить і виводить - готові. Отже, процес, який перший отямився в стан готовності, повинен чекати, поки не буде готовий другий процес. Перший з цих процесів вилучається з активного набору, і його ідентифікатор записується в канал. Процесор починає виконувати наступний процес з активного набору. Коли другий з двох процесів прийде в стан готовності, станеться передача повідомлення, і який чекає процес буде повернений в активний набір.
Як вже зазначалося, система команд транспьютера не залежить від довжини слова процесора. Програми, що маніпулюють байтами, словами і логічними значеннями, можуть бути оттранслировать в послідовність команд, що виконуються практично однаково на процесорах з різною довжиною слова. Це забезпечується форматом команд адресації пам'яті, використанням однобайтових інструкцій та поданням довгих операндів у вигляді послідовності префіксних інструкцій. Відмінності у виконанні обумовлюються різною довжиною слова, використовуваного при арифметичних обчисленнях, що проявляється в різній реакції на переповнення, а також байтовой адресацією масивів слів.
Перенесення програми з одного транспьютера на інший буде значно полегшений, якщо в ній не вказувати в явному вигляді довжину слова, кількість байт в слові і т.д. В принципі, можливо написати програму, яка буде працювати на будь-якому транспьютерах, в мережі, що складається з різних транспьютеров, не знаючи заздалегідь довжин слів цих транспьютеров.
2.2 Адресація транспьютеров IMS Т414 і IMS Т800
Адресація здійснюється за допомогою покажчиків. Покажчик, або посилання, - це одне слово, що ідентифікує байт пам'яті. Покажчик ділиться на дві частини: адреса слова і селектор байта. Селектор байта займає молодші біти слова, адреса слова - старші. Число біт, необхідних для представлення селектора байта, залежить від довжини слова (наприклад, 1 біт для 16-розрядної машини, 2 біта - для 24 - і 32-розрядних машин, 4 біта - для 80-розрядних машин). Покажчик вважається знаковим значенням (від найбільшого негативного числа до найбільшого позитивного числа, включаючи 0). Такий підхід дозволяє по відношенню до покажчиків застосовувати стандартні функції порівняння точно так само, як вони використовуються при пор...