
- •№36. Анализ производительности эвм, пути развития. Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Использование параллельных вычислительных систем
- •Закон Амдала и его следствия
- •Физические принципы организации ввода-вывода
- •Интерфейс
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Прямой доступ к памяти (Direct Memory Access – dma)
- •Логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Буферизация и кэширование
- •Структура шин современного пк
- •PciExpress
- •№8. Основные характеристики канала связи
- •№31. Суперскалярная архитектура процессора.
- •№63. Параллельная обработка данных.
- •№46. Cвязь компьютера с пу и нуль-модемная связь двух компьютеров.
- •№[58]. [Роль и назначение ос].
- •№[57]. [Последовательная и параллельная передача].
- •Библиотеки стандартных программ и ассемблеры
- •Высокоуровневые языки и системы автоматизированного программирования
- •Диалоговые ос и субд
- •Прикладные программы и case– технологии
- •Компьютерные сети и мультимедиа
- •Операционные системы
- •41. Программная модель процессора i486.
- •512 Кбайт
Библиотеки стандартных программ и ассемблеры
Первые вычислительные машины вообще не имели никакого общего программного
обеспечения. Программы для решения конкретных задач писались с нуля, в машинных двоичных кодах (для сокращения записи использовалась восьмеричная или шестнадцатеричная система, но это не меняло сути) в абсолютных адресах, они загружались в чистую оперативную память. Процесс был мучительным и трудоемким. На каждом этапе возникали ошибки, поэтому отладить программу даже в тысячу команд было уже очень трудно. Первоочередной задачей программистов на данном этапе было создание библиотек, которые обеспечивали бы вызов стандартных программ из внешней памяти и автоматически подключали их к главной программе.
Вторая проблема была связана с мнемоническим кодированием и автоматическим распределением памяти. Впервые она была решена в Кембридже в Великобритании на ЭВМ EDSAC (1949 г.). Вместо того, чтобы записывать коды операций двоичными цифрами программист писал текст программы на символическом языке, пользуясь мнемоническими обозначениями операций и условными адресами, а специальная программа (руководитель проекта Морис Уилкс назвал ее собирающей системой — по английски assembly system) автоматически преобразовывала мнемонические коды в понятные машине двоичные, и распределяла память для выполнения программы. Идея оказалась столь продуктивной, что все последующие поколения программистов на всех ЭВМ отказались от абсолютного кодирования. Языки программирования низкого уровня, в которых коды операций заменены мнемоническими обозначениями, стали называться языками ассемблера или автокодами (мнемокодами), а преобразующие программы — ассемблерами.
Высокоуровневые языки и системы автоматизированного программирования
В 60-е годы объем производства ЭВМ резко возрос, появились разнообразные машины второго поколения, они вышли из узких стен научных и военных учреждений, начали использоваться в бизнесе. Резко расширился круг решаемых задач, соответственно возросло и число людей, занятых программированием. Языки низкоуровневого кодирования, реализованные в ассемблерах, ненамного облегчили их тяжкий труд. Голубой мечтой казалась возможность полной автоматизации программирования, когда программист пишет математические формулы на привычном символическом языке, а компьютер самостоятельно преобразовывает их в тексты машинных программ.
Языки и системы программирования наиболее бурно развивались в 60-е годы, когда были разработаны основные принципы их построения и родились многие сотни языков различного назначения. В результате естественного отбора до конца века дожили немногие «великие языки», в которых воплощены пять основных концепций современного программирования:
• процедурное программирование, составляющее основу классических алгоритмических языков Фортран, Бэйсик, Кобол, Алгол, Си и др.;
• объектно-ориентированное программирование (ООП), в чистом виде присутствующее в языке Smalltalk, и в той или иной степени — во всех современных языках;
• визуально-событийное программирование, являющиеся развитием ООП в части работы с особыми классами визуальных объектов, реализованное в визуальных средах Visual Basic, Delphi, Visual Fux Pro, Visual C++, Visual Age, Java и др.;
• функциональное программирование, реализованное в языке обработки списков Лисп;
• логическое программирование, воплощенное в декларативном языке Пролог.