Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekz._1.doc
Скачиваний:
3
Добавлен:
05.05.2019
Размер:
201.73 Кб
Скачать

Системне програмування, доц. І.І. Мітасов, 2010р. Лекція 1, 10 сторінок

Тема 1. Архітектура процесора і мова асемблера: Апаратне і програмне забезпечення соі

ЛЕКЦІЯ 1. Основні поняття і визначення

Питання лекції: – Програми і програмне забезпечення;

Входження в системне програмування;

  • Загальні поняття про архітектуру соі.

1. Програми і програмне забезпечення

Програма — це дані, призначені для управління конкретними компонентами системи обробки інформації (СОІ) в цілях реалізації певного алгоритму.

Звернути увагу: програма — це дані.

Один з основних принципів машини фон Неймана — те, що і програми, і дані зберігаються в одній і тій же пам'яті. Програма, що зберігається в пам'яті, є деякими кодами, які можуть розглядатися як дані. Можливо, з точки зору програміста програма — активний компонент, вона виконує деякі дії. Але з точки зору процесора команди програми — це дані, які процесор читає і інтерпретує. З іншого боку програма — це дані з точки зору обслуговуючих програм, наприклад, з точки зору компілятора, який на вході отримує одні дані — програму на мові високого рівня, а на виході видає інші дані — програму в машинних кодах.

Програмне забезпечення (ПЗ) — сукупність програм СОІ і програмних документів, необхідних для їх експлуатації

Істотно, що ПЗ—це програми, призначені для багатократного використання і вживання різними користувачами. У зв'язку з цим слід звернути увагу на ряд необхідних властивостей ПЗ.

Необхідність документування. За визначенням програми стають ПЗ лише за наявності документації. Кінцевий користувач не може працювати, не маючи документації. Документація робить можливим тиражування ПЗ і продаж без його розробника. По Бруксу помилкою в ПЗ є ситуація, коли програмний виріб функціонує не відповідно до свого опису, отже, помилка в документації також є помилкою в програмному виробі.

Ефективність. ПЗ, розраховане на багатократне використання (наприклад, ОС, текстовий редактор) пишеться і відлагоджується один раз, а виконується багато разів. Таким чином, вигідно переносити витрати на етап виробництва ПЗ і звільняти від витрат етап виконання, аби уникнути тиражування витрат.

Надійність. У тому числі:

  • Тестування програми при всіх допустимих специфікаціях вхідних даних

  • Захист від неправильних дій користувача

  • Захист від злому — користувачі повинні мати можливість взаємодії ПЗ лише через легальні інтерфейси.

Поява помилок будь-якого рівня не повинна призводити до краху системи. Помилки повинні виловлюватися, діагностуватися і (якщо їх неможливо виправити) перетворюватися на коректні відмови.

Системні структури даних повинні зберігатися безумовно.

Збереження цілісності призначених для користувача даних бажане.

Можливість супроводу. Можливі цілі супроводу — адаптація ПЗ до конкретних умов використання, усунення помилок, модифікація.

У всіх випадках потрібна ретельна структуризація ПЗ і носієм інформації про структуру ПЗ має бути програмна документація.

Адаптація у багатьох випадках може бути передовірена користувачеві — при ретельному відпрацюванні та описі сценаріїв інсталяції і налаштування.

Виправлення помилок вимагає розвиненої сервісної служби, що збирає інформацію про помилки і формує виправляючі пакети.

Модифікація передбачає зміну специфікацій на ПЗ. При цьому, як правило, повинні підтримуватися і старі специфікації. Еволюційний розвиток ПЗ економить вкладення користувачів.

2. Входження в системне програмування

Системна програма — програма, призначена для підтримки працездатності СОІ або підвищення ефективності її використання.

Прикладна програма — програма, призначена для вирішення завдання або класу завдань в певній сфери застосування СОІ.

Відповідно до термінології, системне програмування — це процес розробки системних програм (у тому числі програм, що управляють і що обслуговують - software).

З іншого боку, система — єдине ціле, таке, що складається з множини компонентів і множини зв'язків між ними (hardware). Тоді системне програмування — це розробка програм складної структури.

Ці два визначення не протирічать одне одному, оскільки розробка програм складної структури ведеться саме для забезпечення працездатності або підвищення ефективності СОІ.

Поділ ПЗ на системне і прикладне є до деякої міри застарілим. Сьогоднішнє ділення передбачає щонайменше три градації ПЗ:

º Системне; º Проміжне; º Прикладне.

Проміжне ПЗ (middleware) ми визначаємо як сукупність програм, що здійснюють управління вторинними (конструйованими самим ПЗ) ресурсами, орієнтованими на вирішення певного (широкого) класу завдань. До такого ПЗ відносяться менеджери транзакцій, сервери БД, сервери комунікацій і інші програмні сервери. З точки зору інструментальних засобів розробки проміжне ПЗ ближче до прикладного, оскільки не працює напряму з первинними ресурсами, а використовує для цього сервіси, що надаються системним ПЗ.

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

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

Значна частина системного і практично всього прикладного ПЗ пишеться на мовах високого рівня, що забезпечує скорочення витрат на їх розробку/модифікацію і переносимості.

Системне ПЗ підрозділяється на системні керуючі програми і системні обслуговуючі програми.

Керуюча програма — системна програма, що реалізовує набір функцій управління, який включає управління ресурсами і взаємодію із зовнішнім середовищем СОІ, відновлення роботи системи після прояву несправностей в технічних засобах.

Програма обслуговування (утиліта) — програма, призначена для надання послуг загального характеру користувачам і обслуговуючому персоналу СОІ.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]