НОУ ІНТУІТ, Лекція, Еволюція пристроїв зовнішньої пам’яті та програмних систем управління даними

Пристрої зовнішньої пам'яті

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

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

Магнітний барабан був масивним металевим циліндром з намагніченою зовнішньою поверхнею і нерухомим пакетом магнітних головок. Такі пристрої забезпечували можливість досить швидкогодовільного доступу до даних, але дозволяли зберігати порівняно невеликий обсяг даних. Швидкий довільний доступ здійснювався завдяки високій швидкості обертання барабана та наявності окремої головки на кожну доріжку магнітної поверхні; обмеженість об'єму була обумовлена ​​наявністю лише однієї магнітної поверхні.

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

Друга традиційна потреба чисельних програмістів – найбільший обсяг оперативної пам'яті. Велика оперативна пам'ять потрібна, по-перше, у тому, щоб забезпечити програмі швидкий доступом до великої кількості оброблюваних даних. По-друге, складні обчислювальні програми можуть мати великий обсяг. Оскільки обсяг реально доступної в ЕОМ оперативної пам'яті завжди був недостатнім для задоволення поточних потреб обчислень, була потрібнашвидка зовнішня пам'ять для організації оверлеїв та/або віртуальної пам'яті. Ми не будемо тут вдаватися до деталей організації цих механізмів програмного розширення оперативної пам'яті, але зауважимо, що для цього ідеально підходили магнітні барабани. Вони забезпечують швидкий доступ до зовнішньої пам'яті, а розширення оперативної пам'яті однієї програми (складні обчислювальні програми, зазвичай, виконуються на комп'ютері поодинці) великий обсяг зовнішньої пам'яті не требуется.

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

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

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

Магнітні диски є пакетами магнітних пластин (поверхень), між якими на одному важелі рухається пакет магнітних головок (рис. 1.1). Крок руху пакета головок дискретним, і кожному положенню пакета головок логічно відповідає циліндр пакета магнітних дисків . На кожній поверхні циліндр "висікає" доріжку, так що кожна поверхня містить число доріжок, що дорівнює кількості циліндрів. При розмітці магнітного диска (спеціальній дії, що передує використанню диска) кожна доріжка розмічується на одну і ту ж кількість блоків; таким чином, гранична ємність кожного блоку становить те саме число байтів. Для здійснення обміну з магнітним диском на рівні апаратури потрібно вказати номер циліндра, номер поверхні, номер блоку на відповідній доріжці та кількість байтів, яку потрібно записати або прочитати від початку цього блоку.

пристроїв

При виконанні обміну з диском апаратура виконує три основні дії: підведення головок до потрібного циліндра (позначимо час виконання цієї дії як tпг), пошук на доріжці потрібного блоку (час виконання – tпб) та власне обмін із цим блоком (час виконання – tоб). Тоді, як правило, tпг>>tпб>>tоб, тому що підведення головок - це механічна дія, причому в середньому потрібно перемістити головки на відстань , що дорівнює половині радіусу поверхні, а швидкість пересування головок не можебути надто великою з фізичних міркувань. Пошук блоку на доріжці вимагає прокручування пакета магнітних дисків у середньому на половину довжини зовнішнього кола; швидкість обертання диска може бути значно більшою за швидкість руху головок, але вона теж обмежена законами фізики. Для виконання ж обміну потрібно прокрутити пакет дисків лише на кутову відстань , що відповідає розміру блоку. Таким чином, з усіх цих дій в середньому найбільше займає перше, і тому істотний виграш в сумарному часі обміну при зчитуванні або запису тільки частини блоку отримати практично неможливо.

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