Лекция: Принципы работы первых компьютеров без ОС

В первых компьютерах программа представляла из себя набор машинных кодов из 0 и 1, например:

...

Каждый код это был либо код команды или число, с которым нужно было выполнить операцию сложения, умножения… Однако, сделать ошибку в такой программе очень легко, а найти ее трудно. Ввод такой программы выполнялся на наборном поле из тумблеров: каждый тумблер был либо включен( это 1) либо выключен( это 0). Результат выводился на специальную панель из лампочек. Каждая лампочка – это тоже 1(включена) или 0 (выключена). Набор 1 и 0 считывался глазами как 2-ое число. Программисты должны были хорошо знать двоичную систему исчисления и кодировку всех команд. Позднее для ввода больших программ стали использоваться перфокарты, затем перфоленты и еще позднее магнитные ленты.

Перфокарты представляли из себя картонные карточки с пробитыми дырочками в определенных местах. Каждая дырочка – это 1, а не пробитая дырочка – это 0. Каждая колонка такой карты – это был код из 8 битов. С каждой перфокарты считывался набор таких кодов. В отличие от перфокарты перфолента была уже и длиннее, что позволяло на нее записывать гораздо больше информации.

                 
   
   
 
     
 
   
 
   
       
 
 
   
                                                             
                 
                   
 
 
               
 
               
 
   
                   
 
 
   
                   
 
 
   
Перфолента
 
Перфокарта
 

Магнитные ленты позволяли записывать еще больше информации. Они не рвались и не размокали в воде и в 1980-ых годах они были основным средством для длительного хранения данных- архивов, а также для текущего использования. Жесткие диски сделали еще шаг вперед. В отличие от лент и перфокарт считывание данных с них выполнялось не перебором всех предыдущих данных, а прямым обращением к месту диска, где хранились данные.

Принцип исполнения машинных команд процессором можно изобразить схематично так:

 

Запуск – { выборка команды — исполнение команды } – останов

 

В фигурных скобках указаны 2 действия, которые повторяются в зависимости от количества команд. Каждая команда считывается в оперативную память компьютера, а затем последовательно передается процессору. В процессоре есть набор своих встроенных в него ячеек памяти, которые называются регистрами процессора. Каждая такая ячейка имеет свое назначение и все они разбиваются на 2 типа:

1) доступные пользовательским программам:

регистры данных: для хранения данных для выполнения команды, они бывают разных типов для хранения данных разных типов

адресные регистры: в них заносятся адреса команд и данных в основной памяти

2) управляющие ( не доступны пользовательским программам):

программный счетчик: содержит адрес команды, которая должна быть выбрана из памяти

регистр команд: содержит последнюю выбранную из памяти команду

флаги ( коды условий): это набор битов, которые устанавливаются процессором в зависимости от результата выполнения команд.

Регистры процессора можно сравнить с ящиками на рабочем столе, в которых находятся инструменты и материалы, необходимые для работы в данный момент. А оперативную память можно представить как склад, который находится в другом задании. Адресный регистр можно представить как ящик, в котором лежит записка с указанием где именно на складе находится нужный вам материал. Регистр команд — это как другой ящик, в котором лежит инструкция по выполнению работы ( что и как нужно сделать). Программный счетчик – это как 3-ий ящик, в котором указано, где нужно взять следующую инструкцию после того как закончите выполнять текущую. Чтобы выполнить какую- либо работу вам нужно пойти на склад ( оперативную память) и взять материалы для текущей работы. Затем разложить материалы на рабочем столе по ящичкам ( регистры данных), взять инструкцию ( из регистра команд) и выполнить ее. После выполнения инструкции результаты разложить по ящичкам для заказчика ( флагам). Затем посмотреть, где взять следующую инструкцию ( из программного счетчика) и все повторить сначала: пойти на склад ...

 

Все действия процессора можно условно разбить на :

процессор — память

процессор — устройства ввода-вывода

обработка данных (вычисления производимые процессором над данными)

управление (выбор действий по условию, повторение команд ...)

Пример:

каждая команда имеет вид:

биты 1-4: Код команды биты 5-16: Адрес данных в памяти

сами данные в памяти часто хранятся тоже в виде 16 бит ( это одно слово), где первый бит – это знак числа, а остальные биты – само число.

Представим, что на вход процессору дана задача из 3 команд:

1) 00010111 0001 0101 — команда 0001- загрузить значение из памяти (по адресу 0111 0001 01012 =71516) в регистр-аккумулятор

2) 0101 0111 0001 0110 — команда 0101-добавить к аккумулятору значение ячейки памяти(по адресу 71616)

3) 0010 0111 0001 0110 — команда 0101-сохранить содержимое аккумулятора в памяти( по адресу 71616)

Каждую из этих команд можно изобразить в виде 16-ого числа ( 1 715, 5 716, 2 716)

Сами команды находятся в оперативной памяти по адресам 100, 101, 102. В регистре программного счетчика будет находиться адрес первой команды т.е. адрес 100. Она будет выполнена так:

Исходное состояние ячеек оперативной памяти и регистров процессора :

Память Регистры процессора

N ячейки значение в ячейке   значение в регистре название регистра
100   прогр. счетчик
101     аккумулятор
102   регистр команды
...        
715      
716      
...        

1) 00010111 0001 0101 — загрузить значение из памяти (по адресу 71516) в регистр-аккумулятор. После выполнения этой команды в регистр «аккумулятор» скопируется число 0004 из ячейки памяти с адресом715

Память Регистры процессора

N ячейки значение в ячейке   значение в регистре название регистра
100   прогр. счетчик
101   аккумулятор
102   регистр команды
...        
715      
716      
...        

2) 0101 0111 0001 0110 — добавить к аккумулятору значение ячейки памяти(по адресу 71616)

Память Регистры процессора

N ячейки значение в ячейке   значение в регистре название регистра
100   прогр. счетчик
101   аккумулятор
102   регистр команды
...        
715      
716      
...        

3) 0010 0111 0001 0110 — сохранить содержимое аккумулятора в памяти( по адресу 71616)

Память Регистры процессора

N ячейки значение в ячейке   значение в регистре название регистра
100   прогр. счетчик
101   аккумулятор
102   регистр команды
...        
715      
716      
...        

 

Это простой пример работы процессора, при этом показана только работа с памятью.

Процессор может аналогично ввод-вывод данных выполнять на устройстваввода-вывода. Современные процессоры выполняют команды, в состав которых входит много адресов и используют множество регистров, при этом многие регистры для данных 32-битные, а не 16-битные.

Весь процесс исполнения можно изобразить схемой:

память <------> процессор <------> устройства ввода-вывода

Процессор взаимодействует с устройствами с помощью системной шины. Ее разрядность влияет на скорость обмена данных.

Особенности работы на компьютерах без ОС :

3) программы выполнялись последовательно: сначала выполнялась программа одного пользователя, а затем запускалась программа другого пользователя.

4) Расписание: каждому пользователю отводилось свое время, которое он заказывал для выполнения его программы.

5) Подготовка к работе: для запуска программы нужно было предварительно загрузить в память машины компилятор с этого языка и саму программу( с магнитных лент или перфокарт), затем сохранить скомпилированную программу ( на магнитную лент или перфокарты) и уже затем снова загрузить скомпилированную программу ( если нужно добавить библиотечные функции) и запустить на выполнение. При этом каждое действие выполнялось вручную специальными командами. Если возникала ошибка в программе, то весь процесс повторялся сначала.

 

НЕДОСТАТКИ:

· простои машины: если пользователь заканчивал пропускать задание раньше своего расписания, то компьютерное время не использовалось ( а оно было очень дорогое!)

· длительная отладка программ: т.к. процесс подготовки занимал много времени, то отладка (исправление ошибок) очень долгая

· большая потеря времени программиста на запуск программ и их выполнение.

еще рефераты
Еще работы по информатике