Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций_2015.doc
Скачиваний:
36
Добавлен:
03.03.2016
Размер:
532.48 Кб
Скачать

1.Основные компоненты программного обеспечения и их связь с аппаратурой. Ретроспектива развития программирования.

1.1 Общая организация аппаратуры (HARDWARE) вычислительной системы

ОПЕРАТИВНАЯ ПАМЯТЬ

ПВВ

ПВВ

ЦП

ЦП

МЛ МД П МР

МЛ – магнитная лента

МД – магнитный диск

П – принтер (печать)

МР – монитор

Память – это устройство для запоминания или хранения информации.

Процессоры – это устройства для манипулирования информацией хранящейся в памяти.

ПВВ – процессоры ввода-вывода.

Информацию можно рассматривать как набор 0 и 1.

Каждый 1 или 0 представляет собой двоичную цифру, которая называется bit

(binary digit ). Биты обычно группируют в блоки. Минимальный блок – byte.

Byte=8 bit.

Архитектура фон Неймана:

1) Память линейна. Память трактуется как длинная цепочка байтов:

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

  1. команда

  2. данные

Машинная команда в общем случае содержит 2 компоненты:

Код операции

Операнды

Код операции – кодировка действия команды.

Операнды – данные, необходимые данной команде.

Машинная программа есть последовательность команд, применяемая к данным.

Информация в памяти кодируется группами битов, которые могут быть трактованы как:

  1. символы,

  2. числа,

  3. адреса,

  4. команды.

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

Процессор ввода-вывода обеспечивает передачу данных между оперативной памятью и внешними устройствами.

Центральный процессор манипулирует данными, хранящимися в памяти. Его действия:

1. Получает адрес текущей команды.

2. Извлекает из памяти эту команду.

3. Расшифровывает код операции этой команды.

4. Получает доступ к данным этой команды.

5. Выполняет команду (т.е. обрабатывает данные).

6. Сохраняет результат этой команды (там, где заказано).

7. Готовит адрес следующей команды.

Так как и команды, и данные хранятся в одной памяти, то изменять программным путем команды самой программы не следует.

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

1.2 Архитектура программного обеспечения

ПОЛЬЗОВАТЕЛЬ

Прикладное ПО

Текстовые процессоры,

утилиты и т.д.

Компиляторы

Ассемблеры

Загрузчики

Редакторы связей

Отладчики

Операционные системы

Файловые системы

Управление памятью

Управление устройствами

АППАРАТУРА

Непосредственно аппаратурой ЭВМ можно управлять только с помощью программ, поэтому существует программное обеспечение различных уровней в зависимости от степени его близости к аппаратуре.

Программное обеспечение – software.

Микропрограммное обеспечение (между ПО и аппаратурой) – firmware.

Системные программы разработаны для приспособления ЭВМ к нуждам пользователя.

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

Редактор связей устанавливает связи между всеми модулями программы, а в некоторых языках с необходимыми библиотеками.

Загрузчик подготавливает программу на машинном языке к выполнению. Для выполнения программы управление ей передается из операционной системы.

1.3 Ретроспектива развития ПО

SOFTWARE

ВРЕМЯ

HARDWARE

Алгоритм НОД Евклида

Аль-Хорезми разработал алгоритмы + , - , * , /

9 век

1645

1694

Блез Паскаль, Лейбниц : основы

механических, счетных устройств

Ада Лавлейс – 1-ый программист

1823

Принципы программного управления счетной машиной.

Аналитическая счетная машина

( Бебидж ).

Дж. Буль

”Основы математической логики”

1847

Теория алгоритмов

1940-е

SOFTWARE

ВРЕМЯ

HARDWARE

1 поколение

ЭВМ

поколение

1949

EDSAC: первая электрическая вычислительная машина (Англия)

1954

МЭСМ: малая электронная счетная машина (СССР)

2 поколение

ЭВМ

FORTRAN ( транслятор формул )

- первый развитый алгоритмический язык ( Бэкус )

1956

Алгол-60 – первый стандартизированный алгоритмический язык программирования ( Европа )

1958

с 1960

(международный стандарт)

Лисп – язык обработки списков, функциональный язык ( Маккарти, США)

1961

PL/1 [Program Language] (ф.IBM) – язык оболочка. Объединил возможности 3 языков: Алгола, Кобола, Фортрана.

1964

3 поколение

ЭВМ

1964

IBM-360 (серия ЕС – аналог в СССР)

Симула-67 – первый объектно-ориентированный язык (Хоар ).

1967

SOFTWARE

ВРЕМЯ

HARDWARE

Алгол-68 (IFIP) – язык ядро. Возможности расширения языка: конструирования новых типов данных

1968

До 1970-го года: основные модели баз данных: сетевая и иерархическая. В 1970 году была разработана реляционная модель данных. ( Кодд, филиал IBM)

1970

4 поколение

ЭВМ

Язык Forth ( Мур ).

1970

РDР ( фирма DEC )

(серия СМ – аналог в СССР)

Язык Pascal ( Н. Вирт )

1971

Пролог – язык логического программирования ( А. Колмероэ, Ковальский )

1971

Структурное программирование

Дейкстра ( Нидерланды ) и Хоар ( Скандинавия )

1972

С (UNIX) ( ф. Bell AT&T,

Керниган и Ритчи )

1973

1972

B1700 ( фирма Burroughs) – аппаратная реализация языков программирования.

SOFTWARE

ВРЕМЯ

HARDWARE

1974

МП – микропроцессор.

Язык Ада

( Ишбиа, Франция ).

5 поколение

ЭВМ

Проект ЭВМ 5-го поколения ( другая архитектура, не фон-Неймановская ).

1979

Проект ЭВМ 5-го поколения

1980

IAPX-432 ( ф.Intel )

- в этом МП была аппаратно реализована Ада.

Язык MODULA (Н. Вирт )

- введено понятие модуля.

1982

САМСОН (Ленинград) – микропрограммнаяреализация группы алгоритмических языков (алголоподобных)

Язык С++ (Б.Страуструп, США) - объектно-ориентированый язык

?