batch), które pozwalały na grupowanie zadań i uruchamianie ich po kolei, przy czym system operacyjny dbał o środowisko wykonania i przekazywanie sterowania pomiędzy kolejnymi zadaniami, natomiast w czasie wykonania zadania miały pełną kontrolę nad komputerem.

Szybko dostrzeżono fakt, że szybkość działania interfejsów wejścia/wyjścia jest niewspółmiernie mniejsza niż jednostki centralnej (zresztą ta zależność utrzymuje się dzisiaj i zdaje się pogłębiać). Wprowadzanie programu i danych z kart perforowanych, a nawet taśm magnetycznych czy drukowanie wyników trwało dużo dłużej niż same obliczenia.

Pierwszą drogą, jaką znaleziono, było umieszczenie na stałe w pamięci komputera oprogramowania realizującego obsługę sprzętu oraz komunikację sprzętu z użytkownikiem. Dzięki temu nie było już konieczne każdorazowe ładowanie kodu obsługi sprzętu i komunikacji z użytkownikiem przy ładowaniu programu użytkowego. Uzyskano w ten sposób pewną oszczędność czasu oraz zwiększono efektywność.