Передісторія ОС

Незабаром після того, як в кінці 40-х років XX століття були створені перші електронні комп'ютери, дуже гостро постала проблема підвищення ефективності використання обладнання, і перш за все центрального процесора.

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

Все це коштувало великих грошей, споживало шалену кількість електроенергії [1] і регулярно ламалося.

У таких умовах машинний час коштувало дуже дорого. Тим не менш, звичайна практика використання ЕОМ не сприяла економії. Як правило, програміст, який розробляє програму, замовляв щодня кілька годин машинного часу і протягом цього часу монопольно використовував машину. Виконавши черговий запуск відладжуваної програми (яку треба було кожного разу вводити або з клавіатури, або, в кращому випадку, з перфокарт), користувач отримував роздрук (найчастіше у вигляді масиву цифр), аналізував результати, вносив зміни в програму і знову запускав її. Таким чином, в ході сеансу налагодження дороге обладнання простоювало 99% часу, поки програміст осмислював результати і працював з пристроями вводу / виводу. Крім того, збій при введенні однієї перфокарти міг зажадати почати спочатку всю роботу програми.

Виникла велика ідея - використати сам комп'ютер для підвищення ефективності роботи з ним же.

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

Програми такого роду називалися зазвичай моніторами (не плутати з монітором як пристроєм виведення, який в той час був рідкісною екзотикою!). Монітор приймав команди, що складаються, як правило, з 1-2 букв назви і 1-3 аргументів, заданих 8-річно або 16-ричного числа. Типовими командами були, наприклад:

· Завантаження даних з перфокарт за вказаною адресою пам'яті;

· Перегляд і корегування (з друкарської машинки) значень у вказаному діапазоні адрес;

· Покрокове виконання програми з видачею результатів кожної команди на друкарську машинку;

· Запуск програми із зазначеної адреси із завданням адрес контрольних точок зупинки.

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

Часом широкого поширення моніторів в світі були 50-ті роки минулого століття (у СРСР - 60-і роки). В даний час щось подібне можна зустріти на найпримітивніших мікропроцесорних контролерах.