Програмне
забезпечення h2>
Загальні відомості b>
p>
Класифікація програмних засобів b>
p>
ЕОМ є
виконавцем програм. p>
Програмне
забезпечення (ПЗ) [software] - це просто сукупність програм, що використовуються для вирішення
задач на ЕОМ. ПО ділиться на системне та прикладне. P>
Системне ПЗ [system software] призначене для розробки і
виконання програм, а також для надання користувачеві деяких засобів
загального призначення для управління ЕОМ. Системне ПЗ - необхідне доповнення до
апаратної частини ЕОМ. p>
Прикладне ПЗ [application software] призначене для вирішення певної
задачі або класу задач. p>
Рис. 1.
Класифікація програмного забезпечення p>
Джерело: [2]. p>
Завданням
прикладного ПЗ є автоматизація конкретного виду людської
діяльності. p>
Головне місце в
наборі системних програм займають операційні системи. Операційна система --
це невід'ємна частина ЕОМ. Вона постачає інші програми і користувача
необхідними засобами для управління ЕОМ. p>
Сервісні
системи розширюють можливості операційної системи. (DOS-Shell або Norton Commander для DOS, Norton Utilities for Windows, численні оболонки для UNIX-сімейства ОС). P>
Інструментальні
системи призначені для вирішення завдань, які зустрічаються в складі будь-якої
проблеми, орієнтованої на застосування ЕОМ, і не тільки з певною
практичної областю. p>
Системи
техобслуговування використовуються для полегшення тестування обладнання ЕОМ і
застосовуються фахівцями з апаратури ЕОМ. p>
Ієрархія програмних засобів b>
p>
Всі програмні
кошти можна розділити на внутрішнє і зовнішнє ПЗ. p>
Програми
першого рівня зберігаються в ПЗП і працюють безпосередньо з апаратурою ЕОМ.
Таким чином, всі подібні програми є невід'ємною частиною конкретної
ЕОМ. Тому набір таких програм називають внутрішнім програмним забезпеченням.
Для ПЕОМ сукупність цих програм має назву BIOS (Base Input Output System - базова система вводу-виводу). До складу
BIOS входять: p>
драйвери
стандартних зовнішніх пристроїв; p>
тестові
програми для контролю працездатності обладнання; p>
програма
початкового завантаження. p>
Всі ці
програми починають працювати при включенні ЕОМ: спочатку тестують пам'ять, потім
перевіряють наявність зовнішніх пристроїв і їх працездатність і після всього
передають керування операційній системі. p>
Рис. 2. Ієрархія програмних
коштів. p>
Джерело: [10]. p>
Драйвер [driver] - програма, яка обслуговує зовнішнє
пристрій. Вона надає користувачеві або програмами більш високого рівня
набір функцій - програмний інтерфейс - для управління конкретним зовнішнім
пристроєм. Крім того, драйвер обробляє переривання від обслуговується
пристрою. p>
Другий рівень
належить операційних систем. До складу операційної системи зазвичай також
входять додаткові драйвери, які забезпечують роботу з зовнішніми
пристроями, не відомими внутрішнім драйверам. Операційна система
надає програмами більш високого рівня набір функцій (програмний
інтерфейс), а користувачам - збірник програм і деякі інструментальні
програми (призначений для користувача інтерфейс). p>
До третього
рівня відносяться всі інші програми. p>
Програми
другого та третього рівнів зберігаються у файлах. p>
Програмне
забезпечення першого рівня є машинно-залежною [computer-independent]. Тобто для кожного мікропроцесора або
сімейства ЕОМ набір даних програм унікальний. p>
Операційна
система має машинно-залежне ядро [kernel] - невеликий набір програм, за допомогою
яких здійснюється більш ефективне управління ЕОМ конкретного типу
(сімейство ЕОМ, тип процесора, конкретні апаратні компоненти ЕОМ і зовнішні
пристрою). Інші програми операційної системи намагаються робити
максимально незалежними від конкретної ЕОМ. Властивість програми, що дозволяє
переносити її без переробок з однієї ЕОМ на іншу, називається переносимостью [portability]. Якщо програма є
машинно-залежною, то її переносимість визначається ступенем сумісності ЕОМ.
Переносимість програм має прямий вплив на комерційні можливості
програмних продуктів. p>
Операційні системи b>
p>
Загальна характеристика
p>
Операційна
система [operating system] - це комплекс програм, що забезпечує керування ресурсами ЕОМ
і процесами, які використовують ці ресурси при обчисленнях. p>
ресурс - це
будь-який логічний або апаратний компонент ЕОМ. Основними ресурсами є
процесорний час і оперативна пам'ять. Ресурси можуть належати до однієї або
кільком зовнішнім ЕОМ, до яких операційна система звертається, використовуючи
обчислювальну мережу. Процес - це послідовність дій, запропонованих
програмою. p>
Управління
ресурсом складається з двох функцій: p>
спрощення
доступу до ресурсу; p>
розподіл
ресурсів між конкуруючими за них процесами. p>
Для вирішення
перше завдання операційні системи підтримують користувача і програмний
інтерфейси. Для вирішення другий операційні системи використовують різні
алгоритми управління віртуальною пам'яттю і процесором. p>
Операційні
системи характеризуються ознаками: p>
кількість
користувачів, одночасно обслуговуваних системою (однокористувацький і
розраховані на багато користувачів); p>
число
одночасно виконуваних процесів (однозадачние і багатозадачні); p>
тип використовуваної
обчислювальної системи (однопроцесорні, багатопроцесорні, мережеві,
розподілені). p>
Приклад p>
Операційна
система Windows98 є
багатозадачного, ОС Linux
- Розрахованої на багато користувачів, MS-DOS
однозадачной і, отже, однокористувацький. Операційні системи Windows NT і Linux можуть підтримувати багатопроцесорні ЕОМ
з 16 процесорами. Операційна система Novell NetWare є мережевий, однак, вбудовані
мережеві засоби мають також Windows NT і Linux. p>
для користувача і програмний інтерфейси b>
p>
Для спрощення
доступу до ресурсів ЕОМ операційні системи підтримують користувача і
програмний інтерфейси. p>
Користувальницький
інтерфейс [user interface] - це набір команд і сервісних послуг, які спрощують
користувачеві роботу з ЕОМ. p>
Рис. 3. Інтерфейси операційної
системи. p>
Отримано [2]. p>
Програмний
інтерфейс [program interface] - це набір процедур, які спрощують для програміста
управління ЕОМ. p>
Приклад h2>
Операційна
система Windows98 надає користувачеві графічний інтерфейс, який
являє собою (з точки зору користувача) набір правил для наочного управління
ЕОМ. Крім графічного інтерфейсу користувачеві надається також командний
інтерфейс, тобто набір команд певного формату. Для цього в системному
меню є пункт «Виконати». Наприклад, щоб скопіювати файл на дискету,
потрібно набрати: p>
copy file a:. p>
Основний акцент у
Windows98 зроблений на графічному інтерфейсі. В операційній системі Linux також є дві можливості для
управління ЕОМ, але, як правило, перевага віддається командам. p>
Набір системних функцій у
Windows98 носить назву API (Application
Programming Interface). У
цьому наборі є понад тисячу процедур для вирішення різних системних завдань.
Наприклад, якщо в програмі на мові Сі написати p>
MessageBox (wnd,
"Форматування вінчестера, ви впевнені?", "", MB_OK); p>
то, дійшовши до цього
місця, програма висвітить невелике вікно з даним повідомленням і кнопкою ОК і
буде чекати натискання цієї кнопки. p>
Процесорний час і організація пам'яті b>
p>
Для організації
багатозадачного режиму операційна система повинна певним чином
розподіляти час роботи процесора між одночасно працюють
програмами. Зазвичай використовується так званий що витісняє режим багатозадачного
роботи. При витісняючої режимі кожна програма безперервно працює протягом
строго певного проміжку часу кванта часу, після якого
процесор перемикається на іншу програму. Так як квант часу дуже
невеликий, то при достатній продуктивності процесора створюється ілюзія
одночасної роботи всіх програм. p>
Однією з головних
задач операційної системи є управління пам'яттю. Коли основною пам'яті
не вистачає, всі дані, які не використовуються в даний момент, записуються в
особливий файл підкачки. Пам'ять, представлена файлом підкачки, називається
зовнішньої сторінкової пам'яттю [external page storage]. Сукупність основної та зовнішньої сторінкової
пам'яті називається віртуальною пам'яттю [virtual memory]. Однак для програміста віртуальна
пам'ять виглядає як єдине ціле, тобто розглядається як неупорядкований
набір байтів. У цьому випадку говорять, що використовується лінійна адресація
пам'яті. p>
Приклад h2>
Операційні
системи Windows98 і Linux використовують лінійну адресацію віртуальної
пам'яті. В операційній системі MS-DOS
використовувалася нелінійна адресація основної пам'яті. Основна пам'ять мала
складну структуру, яку доводилося враховувати при програмуванні. Файли
підкачки системою MS-DOS не підтримувалися. p>
Структура операційної системи b>
p>
Сучасні
операційні системи, як правило, мають багаторівневу будову (див. рис.
3.4). P>
Безпосередньо
з апаратурою працює ядро операційної системи. Ядро [kernel] - це програма або сукупність
пов'язаних програм, які використовують апаратні особливості ЕОМ. Таким
чином, ядро є машинно-залежною частиною операційної системи. p>
Рис. 4. Рівні операційної системи Linux. P>
Ядро визначає
програмний інтерфейс. На другому рівні знаходяться стандартні програми операційної
системи і оболонка, які працюють з ядром і надають користувальницький
інтерфейс. Програми другого рівня намагаються робити машинно-незалежними. У
ідеалі заміна ядра рівнозначна заміні версії операційної системи. p>
Файлова система b>
p>
Будь-які дані
зберігаються в зовнішній пам'яті ЕОМ у вигляді файлів. Файлами потрібно управляти:
створювати, видаляти, копіювати, змінювати та ін Такі засоби користувачеві в
вигляді користувацького та програмного інтерфейсів надає операційна
система. Спосіб організації файлів та управління ними називається файлової
системою [file system].
Файлова система визначає, наприклад, які символи можуть використовуватися для
імені файлу, який максимальний розмір файлу, яке ім'я кореневого каталогу й
ін Спосіб організації файлів впливає на швидкість доступу до потрібного файлу, на
безпеку зберігання файлів і ін p>
Одна і та ж
операційна система може працювати одночасно з декількома файловими
системами. Як правило, функції файлової системи реалізуються засобами ядра
операційної системи. p>
Приклад h2>
Для ПЕОМ
використовується кілька видів файлових систем: p>
FAT16 [File Allocation Table] - використовується в ОС
Windows95, OS2, MS-DOS; p>
FAT32 і VFAT
[Virtual FAT] - використовується в ОС Windows95; p>
NTFS [NT File System] - використовується в ОС
Windows NT; p>
HPFS [High Performance File System] - використовується в ОС OS2; p>
Linux Native, Linux Swap - використовуються в ОС Linux. p>
Файлова
система FAT найбільш просто
влаштована. Назва кореневого каталогу завжди має вигляд: А:, В:, С: і т.д. Назва
файлу складається з трьох частин: шлях, власне ім'я, розширення. p>
Шлях [path] - це ім'я каталогу, в якому знаходиться файл
розташований. Розширення [extension] вказує на тип файлу. Наприклад, на мал. 1.6 повне ім'я
файлу C: WindowsSystemgdi.exe, шлях - C: WindowsSystem,
розширення - exe,
власне ім'я - gdi. p>
Згідно
правилами FAT
власне ім'я файлу може містити до 8 символів, а розширення імені,
відокремлюване від імені крапкою - до 3-х. При іменуванні файлів великі/малі
букви не розрізняються. Повне ім'я файлу містить у собі найменування логічного
пристрою, на якому знаходиться файл і ім'я каталогу, в якому знаходиться файл
розташований. Система зберігає інформацію про розмір файлу і дату його створення. P>
По організації
даних VFAT нагадує FAT. Однак вона дозволяє використовувати
довгі імена файлів: імена до 255 символів, повні імена до 260. Система
дозволяє зберігати також дату останнього доступу до файлу, що створює
додаткові можливості для боротьби з вірусами. p>
Файлова
система може бути реалізована у вигляді драйвера, з яким через операційну
систему спілкуються всі програми, які читають або записують інформацію на зовнішні
пристрою. p>
Файлова
система може включати в себе засоби безпеки зберігання інформації.
Наприклад, файлова система NTFS має засоби автоматичного виправлення
помилок і заміни дефектних секторів. Спеціальний механізм відстежує і
фіксує всі дії, що виконуються над магнітними дисками, тому в разі
збою цілісність інформації відновлюється автоматично. Крім цього,
файлова система може мати засоби захисту інформації від несанкціонованого
доступу. p>
Захист інформації b>
p>
Захист
інформації - це дуже велика проблема. У рамках роботи операційної системи
під захистом інформації мається на увазі в основному забезпечення цілісності
інформації та захист від несанкціонованого доступу. Забезпечення цілісності
покладається в основному на файлову систему, а захист від несанкціонованого
доступу - на ядро. Звичайним механізмом такого захисту є використання паролів
і рівнів привілеїв. Для кожного користувача визначаються межі доступу до
файлів і пріоритетність його програм. Найвищий пріоритет має системний
адміністратор. p>
Мережеві засоби та розподілені системи b>
p>
Складовою
частиною сучасних операційних систем є кошти, які дозволяють
зв'язуватися через обчислювальну мережу з додатками, що працюють на інших
ЕОМ. Для цього операційна система вирішує в основному два завдання: забезпечення
доступу до файлів на віддалених ЕОМ і можливість запуску програми на віддаленій
ЕОМ. P>
Перше завдання
найбільш природно вирішується за допомогою використання так званої мережевої
файлової системи [network file system
- NFS], яка
організовує роботу користувача з віддаленими файлами так, як ніби ці файли
знаходяться на магнітному диску самого користувача. p>
Друге завдання
вирішується за допомогою механізму виклику віддаленої процедури [remote procedure call - RPC], що реалізується засобами ядра і
також приховує від користувача різницю між локальними і віддаленими
програмами. p>
Наявність коштів
для управління ресурсами видалених ЕОМ, є основою для створення
розподілених обчислювальних систем. Розподілена обчислювальна система [distributed computer system] - це сукупність декількох пов'язаних
ЕОМ, що працюють незалежно, але виконують спільне завдання. Таку систему можна
розглядати як багатопроцесорну. p>
Модель «клієнт-сервер» b>
p>
Важливою
особливістю сучасних операційних систем є те, що в основу взаємодії
прикладної програми і операційної системи закладена модель «клієнт-сервер».
Всі звернення призначеної для користувача програми (клієнта) до операційної системи
обробляються спеціальною програмою (сервером). При цьому використовується
механізм, аналогічний виклику віддаленої процедури, що дозволяє легко перейти
від взаємодії між процесами в межах однієї ЕОМ до розподіленої
системі. p>
Технологія b>
«plug
and play ». b> p>
Під технологією
«Plug and play» (PnP-технологія) розуміється спосіб
взаємодії між операційною системою і зовнішніми пристроями.
Операційна система проводить опитування усіх периферійних пристроїв і повинна
отримати від кожного пристрою певну відповідь, з якого можна
визначити, який пристрій підключено і який драйвер потрібно для його
нормальної роботи. Мета використання даної технології полягає в спрощенні
підключення нових зовнішніх пристроїв. Користувач повинен бути позбавлений від
складної роботи з настроювання зовнішнього пристрою, що вимагає високої кваліфікації. p>
Сервісні та інструментальні системи b>
p>
Сервісні системи
p>
Сервісна
система - програмний продукт, що змінює і доповнює призначений для користувача і
програмний інтерфейси операційної системи. Сервісні системи розрізняються на
операційні середовища, оболонки та утиліти. p>
Операційна
Середа - система, що змінює і доповнює як пользовательскій, так і
програмний інтерфейс. Операційне середовище
створює для користувача та прикладних програм ілюзію роботи у повноцінній
операційній системі. Поява операційного середовища зазвичай означає, що
використовувана операційна система не повністю задовольняє вимогам
практики. p>
Рис. 5. Роль операційного середовища p>
Отримано [2]. p>
Оболонка [shell] - система, що змінює користувальницький
інтерфейс. Оболонка створює для користувача інтерфейс, відмінний від такого
самої операційної системи. Завдання оболонки - спрощення деяких
загальновживаних дій з операційною системою. Однак оболонка не
замінить ОС, і тому користувач-професіонал повинен вивчати також командний
інтерфейс самої ОС. p>
Рис. 6. Роль оболонки ОС p>
Отримано [2]. p>
Утиліта [utility] - це система, яка доповнює
призначений для користувача інтерфейс. Утиліти реалізують важливі функції з управління ЕОМ,
які, як правило, не досить повно представлені в програмах,
що поставляються з операційною системою. p>
Найбільш
важливими функціями утиліт є: p>
обслуговування
жорсткого диска: форматування, відновлення видалених файлів,
дефрагментація, низькорівневе редагування дисків та ін; p>
обслуговування
файлів і каталогів: пошук, сортування, копіювання за певним умові і
т.д.; p>
робота з
архівами: створення архівів і їхнє відновлення, стиснення файлів; p>
захист від
комп'ютерних вірусів: виявлення вірусів, лікування файлів; p>
надання
користувачеві розширеної інформації та ПЕОМ та ОС; p>
шифрування
інформації. p>
Рис. 7. Роль утиліти p>
Отримано [2]. p>
Приклад h2>
Найбільш
відомі операційні середовища - Windows3.11 і DESQview, які призначалися для розширення можливостей ОС MS-DOS. Для користувача робота з цими оболонками виглядала
подібно до роботи в багатозадачного ОС з графічним інтерфейсом, тому багато
часто помилково називали Windows3.11 операційною системою. p>
ОС Unix має у своєму складі, як правило,
деякі програми-оболонки, які відрізняються один від одного в основному форматом і
набором команд. Найпопулярнішою оболонкою для MS-DOS була програма Norton Commander, яка стала прообразом для багатьох
інших подібних програм для ОС Windows95: Windows Commander, FAR-Manager і ін p>
У своєму складі
Windows95 має
деякі утиліти: для перевірки диска Scandisk, для дефрагментації диска Defrag, планувальник завдань Scheduler, які встановлюються на ПЕОМ по
бажанням користувача. Найбільш відомими засобами, як для MS-DOS, так і для Windows95 залишається комплекс програм Norton Utilities. P>
Широко
використовуваними інструментами є архіватори. До них належать, наприклад, WinZip, WinRar, WinArj, які відрізняються по суті тільки
використовуваним алгоритмом стиснення. p>
Інструментальні системи b>
p>
Інструментальна
система - це програмний продукт, що забезпечує розробку
інформаційно-програмного забезпечення. p>
До
інструментальним систем відносяться: системи програмування; системи швидкої
розробки додатків і системи управління базами даних. p>
Система програмування
призначена для розробки прикладних програм за допомогою деякого мови
програмування. p>
До її складу
включаються: p>
компілятор
та/або інтерпретатор; p>
редактор
зв'язків; p>
Середа
розробки; p>
бібліотека
стандартних підпрограм; p>
документація. p>
Компілятор [compiler] - це програма, що виконує
перетворення початкової програми в об'єктний модуль, тобто файл, що складається
з машинних команд. Інтерпретатор [interpreter] - програма, що безпосередньо виконує
інструкції мови програмування. p>
Редактор зв'язків
[linker] - це
програма, яка збирає кілька об'єктних файлів в один EXE-файл. p>
Інтегрована
середовище розробки [integrated development environment - IDE] - сукупність програм, що включає в
себе текстовий редактор, засоби керування файлами програмного проекту,
відладчик [debugger] програм, яка автоматизує весь процес розробки
програм (див. рис. 3.8). p>
Бібліотека
стандартних підпрограм [standard library] - набір об'єктних модулів,
організованих в спеціальні файли, що надаються виробником
системи програмування. В таких бібліотеках є зазвичай підпрограми
вводу-виводу тексту, стандартні математичні функції, програми управління
файлами. Об'єктні модулі із стандартної бібліотеки зазвичай автоматично
підключаються редактором зв'язків до користувача об'єктним модулів. p>
Рис.
8. Етапи розробки програм p>
Системи швидкого
розробки додатків [rapid application development - RAD] являють собою розвиток звичайних
систем програмування. У RAD-системах багато в чому автоматизований сам процес програмування.
Програміст не пише сам текст програми, а за допомогою деяких наочних
маніпуляцій вказує системі, які завдання повинні виконуватися програмою.
Після чого RAD-система
сама генерує текст програми. p>
Приклад h2>
Серед найбільш
відомих систем програмування можна назвати системи Borland C + +, Microsoft Visual C + +. Відомі RAD-системи загального призначення:
Borland Delphi, Microsoft Visual BASIC, Borland C + + Builder, Sybase
PowerBuilder. P>
Система
управління базами даних - СУБД [database management system - DBMS] - це комплекс програм, призначених
для створення, ведення і спільного використання бази даних багатьма
користувачами. До складу СУБД може входити система програмування,
доповнена засобами, специфічними для управління БД. p>
Список
літератури h2>
Список літератури b>
p>
Андерсон К. Мінас М. Локальні мережі. Повний посібник: К.:
ВЕК +, М.: ентропія, СПб.: КОРОНА принт, 1999. - 624 с.
p>
Богумірскій Б.С. Керівництво користувача ПЕОМ: У 2-х ч. - СПб.:
Асоціація
OILCO,
1992. - 357 с. P>
Головкін Б.А.
Паралельні обчислювальні системи. М.: Наука, 1980. - 520 с. P>
Єлманова Н.З. Borland C + + Builder 3.0. Архітектура "клієнт/сервер», багатоланкові
системи та Internet-додатки. - М.: Диалог-МИФИ, 1999. - 240 с. P>
Касаткін А.І., Вальвачев А.Н. Професійне програмування на
мові Сі: Від
Turbo C
до Borland
С + +: Мн.: Виш.шк., 1992. -240 С. P>
Косарєв В.П.
Єрьомін Л.В. Комп'ютерні системи та мережі. - М.: Фінанси і статистика, 1999. --
464 с. P>
Кручинін С. Архітектура комп'ютера.
Hard та Soft № 4 1995. P>
Мельников Д.А.
Інформаційні процеси в сучасних мережах. Протоколи, стандарти, інтерфейси,
моделі. - М.: КУДИЦ-ОБРАЗ, 1999. -256 С. P>
Першиков та ін Російсько-англійський тлумачний словник з інформатики.
- М.: Фінанси і статистика, 1999. - 386 с.
p>
Економічна інформатика і обчислювальна техніка: Підручник/Під
ред. В.П. Косарєва. - М.: Фінанси і статистика, 1996. - 336 с.
p>