- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
9. Оголошення процесів
Імена можуть бути дані й цілим процесам за допомогою зарезервованого слова PRОС. Ці імена вводяться у формі:
PROC ім'я_процесу =
тіло іменованого процесу:
Тут ім'я_процесу - це ім'я процесу. Закінчується опис процесу двокрапкою. Тепер, коли компілятор зустріне це ім'я в програмі, замість нього буде підставлений відповідний фрагмент програми, що реалізує цей процес. Звичайно, дане ім'я повинне бути оголошене у відповідній області видимості визиваючих процесів. Слід зазначити, що в мові Оккам відсутня можливість рекурсивного визначення процесів.
При іменуванні процесів можна використати список формальних параметрів, що включається між іменами процесів і знаком = і заключається в круглі дужки. При виклику іменованого процесу фактичні параметри повинні позиційно відповідати формальним. Спосіб передачі параметрів у процес визначається одним із зарезервованих слів VALUE, VAR або CHAN, які містяться перед списком відповідних формальних параметрів.
Зарезервоване слово VALUE позначає спосіб передачі параметрів за значенням (аналогічно передачі параметрів за значенням у мові Паскаль). При описі формального параметра за допомогою ключового слова VALUE фактичний параметр трактується як вираз, значення якого повинне бути визначене перед входом у даний іменований процес. Це значення копіюється в деякий локальний осередок процесу, і подальші операції всередині процесів, у яких бере участь формальний параметр, описаний як VALUE, відбуваються тільки із цим осередком. Звідси ясно, що формальні параметри, передані за значенням, не можуть бути вихідними параметрами описуваного процесу.
Ключові слова VAR і CHAN позначають спосіб передачі параметрів по імені, тобто відповідні формальні параметри аналогічні перемінними-змінними в мові Паскаль. Фактичні параметри в цьому випадку трактуються як адреси комірок пам'яті, глобальних для даного процесу. Природно, що такий спосіб передачі параметрів дозволяє використати фактичні параметри, як для вхідних, так і для вихідних даних процесу.
При оголошенні списку формальних параметрів однієї природи відповідне зарезервоване слово, що позначає способи передачі параметрів, може стояти тільки перед першим параметром списку.
Масиви варто передавати як параметри за допомогою імені масиву й пари квадратних дужок після нього без вказівки його розміру. Спосіб передачі масивів в Оккам-програмах дозволяє використати ті самі іменовані процеси з масивами різних розмірів.
Як уже було сказано вище, тіло іменованого процесу буде підставлено Оккам-компілятором замість імені процесу, що зустрівся в тексті програми. При цьому фактичні параметри іменованого процесу будуть позиційно відповідати його формальним параметрам. Наприклад:
PROC not1 (VALUE a, VAR z) =
z := NOT a:
VAR bit:
SEQ
... - деякі дії
notl (bit + l, bit)
... - інша частина програми
У розглянутому фрагменті програми змінної bit привласнюється побітове заперечення виразу bit + 1. Існує інший підхід до рішення цього завдання:
PROC notl (CHAN a, z) =
VAR buffer:
SEQ
a ? buffer
z ! NOT buffer:
CHAN comms1, comms2:
PAR
... - деякі дії
not1(comms1, comms2)
... - інша частина програми
У цьому прикладі як параметри іменованого процесу використовуються канали. Це обставина якісно відрізняє іменовані процеси від звичайних процедур.