- •Затверджую Начальник спеціальної кафедри № 5
- •Методична розробка
- •Тема 1. Мови асемблера та їх використання для побудови базових елементів системних програм.
- •Тема 1/1
- •Контрольні запитання з попереднього знайомства з системними програмами
- •Мета дисципліни
- •Призначення системних програм в захищених системах та технологіях комунікацій
- •Системні управляючі та обробляючі програми
- •2. Типова структура системних програм
- •3. Особливості архітектури і адресації даних в різних режимах роботи процесорів
- •Розрахунки логічних і фізичних адрес даних в пам'яті
Мета дисципліни
розкриття концепцій, методів і технологій сучасних системного програмування;
ознайомлення з організацією вбудованих інформаційних структур і баз даних системних програм та їх елементів;
програмування підпрограм і функцій для обробки елементів даних системних програм;
одержання знань та навичок розробки аналізаторів і перетворювачів для вхідних, внутрішніх і вихідних даних системних програм;
одержання навичок настроювання і взаємодії з операційними системами, системними обробляючими програмами та їх елементами.
Призначення системних програм в захищених системах та технологіях комунікацій
автоматизація підготовки і розв’язання задач до обробки на обчислювальних комплексах зі спецобладнанням захисту;
модифікація системних програм відповідно до нових вимог та умов використання;
автоматизація виконання задач на обчислювальних комплексах та вбудованих комп'ютерах.
Системні управляючі та обробляючі програми
Програмні засоби поділяються на системні засоби i засоби користувачів (прикладні або проблемні). Програмні засоби користувачів включають в себе програми i бібліотеки – комплекси програм, які зберігаються довгостроково. До проблемного ПЗ відносять програми, що розв’язують задачі користувачів, а до системного – спеціальні програми, що забезпечують автоматизоване виконання i програмування задач в (обчислювальних комплексах) ОК при складанні, підготовці i виконанні інших програм, призначених для розв’язання задач. При розв’язанні задач в ОК утворюються обчислювальні процеси (ОП) i процеси обміну з зовнішніми пристроями, які виконуються за програмами, вміщеними до системи.
Системні управляючі програми відповідають за автоматичне виконання програм розв’язання задач, а системні обробляючі програми – за автоматизацію створення програм розв’язання задач, включаючи, насамперед, автоматизацію програмування.
Вже на початковому етапі використання ЕОМ для розв'язання математичних та інженерних задач виникла потреба в автоматизації дій по підготовці задачі до виконання та її супроводження до закінчення. Програми, що розв'язують, ці задачі одержали назву системних або внутрішніх програм обчислювальної системи i внаслідок більше ніж піввікової еволюції перетворилися на потужні програмні комплекси. За способом використання системні програми поділяють на керуючі i обробляючі. Керуючі системні програми є прозорими, тобто непомітними для користувача i складають ядро внутрішніх програмних комплексів, які одержали назву операційних систем (ОС). Обробляючі системні програми, до яких належать діалогові оболонки, текстові процесори і редактори, компілятори, інтерпретатори, компонувальники та налагоджувачi будуються як автономні програми, що в діалогових мовних системах об'єднуються в інформаційно пов’язані комплекси.
|
Системні програми |
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
Обробляючі програми |
|
Управляючі програми |
|
|||||||||||||||||||||||||||||||||||||||||
|
Текстові процесори |
Транслятори |
Зв’язуючі оболонки |
Компонувальники |
Інформаційні бази |
Допоміжні програми, утілити, тощо... |
|
Ініціалізація
|
Управління задачами
|
Управління обміном |
Управління пам'яттю
|
Системні служби ... |
Фільтри, утілити... |
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
Просте редагування Супроводження корекцій |
Інтерпретатори Компілятори |
Зв'язки етапів побудови проектів
|
Об’єктні бібліотеки і модулі |
Реляційні бази даних Системні ресурси Ресурси користувача
|
|
Програми BIOS Завантажувачі
|
Обробники команд Супервізори
|
Драйвери Інтерфейси
|
Віртуальна пам'ять Динамічна пам'ять
|
Служба часу Служби доступу до даних |
|
Рис. 1.1 Типи системних програм
Системні управляючі програми, які організують коректне виконання процесів i функціонування всіх пристроїв системи при розв’язанні задач, як правило, постійно зберігаються в основній пам’яті. Вони складають так зване ядро системи i є резидентними програмами, а ті керуючі програми, для яких не вистачає місця в основній пам’яті, i які заносяться в пам`ять безпосередньо перед виконанням, називають транзитними. Більшість системних керуючих програм виконується непомітно або прозоро для користувача.
Початкова підготовка або ініціалізація ОК починається після його включення або натиснення кнопки "Reset", після чого команди BIOS (базової системи введення-виведення) виконують попередню підготовку зовнішніх пристроїв i переносять програми ядра ОС до головної пам’яті. Ядро ОС складають програми, що керують процесом виконання програм, диспетчеризацію ресурсів, планування і керування обчислювальними процесами (ОП), їхню синхронізацію ОП та обробку переривань, організацію розділів пам’яті, їх сегментування, динамічне i оверлейне розміщення модулів, керування зовнішніми пристроями, обробку запитів введення-виведення, виділення пам’яті, керування даними, накопичення даних в буферах, ведення каталогів. Оточення ядра ОС складають утілити, редактори, компілятори та інші обслуговуючі програмні засоби. Ядро ОС постійно знаходиться в головній пам’яті, а решта ПЗ зберігається на зовнішніх носіях та за необхідністю завантажується в оперативну або віртуальну пам’ять.
Основні функції системних керуючих програм визначаються їх основною метою: організації надійного розв`язання задач за умов ефективного використання наявних ресурсів обчислювальної системи. За послідовністю виконання можна перелічити такі групи функцій:
- ініціалізація або початкове завантаження системи;
- організація внутрішньої служби часу;
- організація інформаційного обміну;
- ефективна організація обчислювальних процесів;
- керування розподілом i використанням пам’яті обчислювальної системи;
- організація захисту внутрішньої інформації задач від несанкціонованого втручання та помилкового руйнування.
Організація ОП є основною функцією системних управляючих програм. Функції програмного керування відображують архітектуру ОК і включають програми для обслуговування кожного вузла архітектури і системних ресурсів процесорного часу, зберігання та обміну даних, а також віртуальних ресурсів, що створюються апаратно-програмними засобами.
Системні обробляючі програми виконуються як спеціальні проблемні задачі програміста з розробки програм по розв’язанню проблемних задач інших користувачів комп’ютерних систем.
Редактори тексту – це програми для введення чи модифікації тексту, який потрібно запам'ятати або який вже зберігається в зовнішній пам’яті. Текстові процесори забезпечують супроводження редагування та більш складні автоматизовані операції редагування. Транслятори реалізують програми складені вхідною мовою програмування в режимах інтерпретації або виконання та компіляції або формування кодів. Транслятор програм з машинно-орієнтованої мови Асемблеру зветься асемблером, а з мови високого рівня компілятором або інтерпретатором. Асемблери i компілятори формують так звані об’єктні модулі, що дозволяють об'єднувати програмні фрагменти, складені на різних мовах.
Компонувальник або редактор зв’язків – це програма, що об'єднує виконувану програму з бібліотекою та іншими раніше протрансльованими програмними модулями. Програми налагодження розміщують виконувану програму в пам’яті i дозволяють виконувати програми в режимах трасування з відображенням результатів, налагодження крок за кроком та налагодження в режимі використання адрес налагоджувальних переривань обчислень. Оболонки для комплексного використання системних обробляючих програм формують зв’язки між програмами i передають дані для формування повідомлень про помилки i підказки корекцій.
Вимоги до системних програм формулюються з міркувань прозорості або непомітності роботи службових програм i призводять до необхідності виконання вимог гарантованої надійності функціонування за специфікаціями, гранично швидкого виконання, мінімальних витрат на збереження кодів i використання стандартних засобів зв'язку з проблемними програмами.
Вимоги до мов системного програмування на відміну від загальних комп’ютерних мов повинні забезпечити ефективний доступ до ресурсів комп’ютерної архітектури і, насамперед, до елементів архітектури процесорів. Частково ці вимоги забезпечуються у мові C/C++ і більш детально на машинно-орієнтованій мові Асемблера. Мови такого типу відображують всі програмно доступні елементи архітектури процесора і зв’язаних з ним вузлів обчислювальної та комунікаційної систем. Однак в останній час деякі фірми, насамперед, Microsoft обмежують безпосередній доступ до ресурсів процесора і залишають лише можливість вставок на мові Асемблера до мов високого рівня, що вимагає від системного програміста досконалого знання реалізації абстрактної машини мови програмування у використаній підсистемі генерації кодів.
Як правило реалізації сучасних генераторів виконавчих кодів достатньо ефективні, тому використання вставок на мові Асемблера можуть рекомендуватися лише для тих випадків, коли необхідні машинні команди не можуть бути сформовані генераторами кодів.