
- •Московский государственный институт
- •Лекция 1. Базовые понятия информации Введение
- •Информация, энтропия и избыточность при передаче данных
- •Информационные процессы
- •Основные структуры данных
- •Обработка данных
- •Способы представления информации и два класса эвм
- •Кодирование информации
- •Представление данных в эвм.
- •Форматы файлов
- •Кодирование чисел
- •Кодирование текста
- •Кодирование графической информации
- •Кодирование звука
- •Типы данных
- •Вопросы и задания
- •Лекция 2. Компьютер – общие сведения
- •Материнская плата
- •Интерфейсные шины
- •Основные внешние устройства компьютера
- •Вопросы и задания
- •Лекция 3. Многоуровневая компьютерная организация
- •Архитектура компьютера
- •Классическая структура эвм - модель фон Неймана
- •Особенности современных эвм
- •Вопросы и задания
- •Библиотеки стандартных программ и ассемблеры
- •Высокоуровневые языки и системы автоматизированного программирования
- •Диалоговые ос и субд
- •Прикладные программы иCase– технологии
- •Компьютерные сети и мультимедиа
- •Операционные системы
- •Лекция 5.Вычислительные системы - общие сведения Введение
- •Общие требования
- •Классификация компьютеров по областям применения
- •Персональные компьютеры и рабочие станции
- •Суперкомпьютеры
- •Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Использование параллельных вычислительных систем
- •Закон Амдала и его следствия
- •Вопросы и задания
- •Лекция 6. Структурная организация эвм - процессор Введение
- •Что известно всем
- •Микропроцессорная система
- •Что такое микропроцессор?
- •Назначение элементов процессора
- •Устройство управления
- •Микропроцессорная память
- •Структура адресной памяти процессора
- •Интерфейсная часть мп
- •Тракт данных типичного процессора
- •Базовые команды
- •Трансляторы
- •Архитектура системы команд и классификация процессоров
- •Микроархитектура процессораPentiumIi
- •512 Кбайт
- •Вопросы и задания
- •Лекция 7. Структурная организация эвм - память Общие сведения
- •Верхняя
- •Расширенная
- •Верхняя память (Upper Memory Area) – это 384 Кбайт, зарезервированных у верхней границы системной памяти. Верхняя память разделена на несколько частей:
- •Первые 128 Кбайт являются областью видеопамяти и предназначены для использовании видеоадаптерами, когда на экран выводится текст или графика, в этой области хранятся образы изображений;
- •Видеопамять
- •Иерархия памяти компьютера
- •Оперативная память, типы оп
- •Тэг Строка Слово (байт)
- •Способы организации кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Разновидности строения кэш-памяти
- •Вопросы и задания
- •Лекция 8. Логическая организация памяти
- •Виртуальная память
- •Основная память
- •Дисковая память
- •Страничная организация памяти
- •Преобразование адресов
- •Сегментная организация памяти.
- •Свопинг
- •Вопросы и задания
- •Лекция 9. Методы адресации
- •Лекция 10. Внешняя память компьютера Введение
- •Жесткий диск (Hard Disk Drive)
- •Конструкция жесткого диска
- •Основные характеристики нмд:
- •Способы кодирования данных
- •Интерфейсы нмд
- •Структура хранения информации на жестком диске
- •Кластер
- •Методы борьбы с кластеризацией
- •Магнито-оптические диски
- •Дисковые массивы и уровни raid
- •Лазерные компакт-дискиCd-rom
- •Вопросы и задания
- •Лекция 11. Основные принципы построения систем ввода/вывода
- •Физические принципы организации ввода-вывода
- •Интерфейс
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Прямой доступ к памяти (Direct Memory Access – dma)
- •Логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Буферизация и кэширование
- •Структура шин современного пк
- •Мост pci
- •Вопросы и задания
- •Лекция 12. Особенности архитектуры современных высокопроизводительных вс
- •Классификация архитектур по параллельной обработке данных
- •Вычислительные Системы
- •Параллелизм вычислительных процессов
- •Параллелизм на уровне команд – однопроцессорные архитектуры
- •Конвейерная обработка
- •Суперскалярные архитектуры
- •Мультипроцессорные системы на кристалле
- •Технология Hyper-Threading
- •Многоядерность — следующий этап развития
- •Вопросы и задания
- •Лекция 13. Архитектура многопроцессорных вс Введение
- •Smp архитектура
- •MpPархитектура
- •Гибридная архитектура (numa)
- •Организация когерентности многоуровневой иерархической памяти.
- •Pvp архитектура
- •Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •Лекция 14. Кластерные системы
- •Концепция кластерных систем
- •Разделение на High Availability и High Performance системы
- •Проблематика High Performance кластеров
- •Проблематика High Availability кластерных систем
- •Смешанные архитектуры
- •Лекция 15 Многомашинные системы – вычислительные сети Введение
- •Простейшие виды связи сети передачи данных
- •Связь компьютера с периферийным устройством
- •Связь двух компьютеров
- •Многослойная модель сети
- •Функциональные роли компьютеров в сети
- •Одноранговые сети
- •Сети с выделенным сервером
- •Гибридная сеть
- •Сетевые службы и операционная система
- •Лекция 17. Сети и сетевые операционные системы Введение
- •Для чего компьютеры объединяют в сети
- •Сетевые и распределенные операционные системы
- •Взаимодействие удаленных процессов как основа работы вычислительных сетей
- •Основные вопросы логической организации передачи информации между удаленными процессами
- •Понятие протокола
- •Многоуровневая модель построения сетевых вычислительных систем
- •Проблемы адресации в сети
- •Одноуровневые адреса
- •Двухуровневые адреса
- •Удаленная адресация и разрешение адресов
- •Локальная адресация. Понятие порта
- •Полные адреса. Понятие сокета (socket)
- •Проблемы маршрутизации в сетях
- •Связь с установлением логического соединения и передача данных с помощью сообщений
- •Синхронизация удаленных процессов
- •Заключение
- •Список литературы:
Библиотеки стандартных программ и ассемблеры
Первые вычислительные машины вообще не имели никакого общего программного
обеспечения. Программы для решения конкретных задач писались с нуля, в машинных двоичных кодах (для сокращения записи использовалась восьмеричная или шестнадцатеричная система, но это не меняло сути) в абсолютных адресах, они загружались в чистую оперативную память. Процесс был мучительным и трудоемким. Приходилось помнить двоичные коды всех операций, а любую подпрограмму выписывать из справочника в условных адресах, затем вручную привязывать к главной программе, распределять память и т. д. На каждом этапе возникали ошибки, поэтому отладить программу даже в тысячу команд было уже очень трудно. Первоочередной задачей программистов на данном этапе было создание библиотек, которые обеспечивали бы вызов стандартных программ из внешней памяти и автоматически подключали их к
главной программе.
Вторая проблема была связана с мнемоническим кодированием и автоматическим распределением памяти. Впервые она была решена в Кембридже в Великобритании на ЭВМ EDSAC (1949 г.). Вместо того, чтобы записывать коды операций двоичными цифрами программист писал текст программы на символическом языке, пользуясь мнемоническими обозначениями операций и условными адресами, а специальная программа (руководитель проекта Морис Уилкс назвал ее собирающей системой — по английски assembly system) автоматически преобразовывала мнемонические коды в понятные машине двоичные, и распределяла память для выполнения программы. Идея оказалась столь продуктивной, что все последующие поколения программистов на всех ЭВМ отказались от абсолютного кодирования. Языки программирования низкого уровня, в которых коды операций заменены мнемоническими обозначениями, стали называться языками ассемблера или автокодами (мнемокодами), а преобразующие программы — ассемблерами.
Высокоуровневые языки и системы автоматизированного программирования
В 60-е годы объем производства ЭВМ резко возрос, появились разнообразные машины второго поколения, они вышли из узких стен научных и военных учреждений, начали использоваться в бизнесе. Резко расширился круг решаемых задач, соответственно возросло и число людей, занятых программированием. Языки низкоуровневого кодирования, реализованные в ассемблерах, ненамного облегчили их тяжкий труд. Голубой мечтой казалась возможность полной автоматизации программирования, когда программист пишет математические формулы на привычном символическом языке, а компьютер самостоятельно преобразовывает их в тексты машинных программ.
Языки и системы программирования наиболее бурно развивались в 60-е годы, когда были разработаны основные принципы их построения и родились многие сотни языков различного назначения. В результате естественного отбора до конца века дожили немногие «великие языки», в которых воплощены пять основных концепций современного программирования:
• процедурное программирование, составляющее основу классических алгоритмических языков Фортран, Бэйсик, Кобол, Алгол, Си и др.;
• объектно-ориентированное программирование (ООП), в чистом виде присутствующее в языке Smalltalk, и в той или иной степени — во всех современных языках;
• визуально-событийное программирование, являющиеся развитием ООП в части работы с особыми классами визуальных объектов, реализованное в визуальных средах Visual Basic, Delphi, Visual Fux Pro, Visual C++, Visual Age, Java и др.;
• функциональное программирование, реализованное в языке обработки списков Лисп;
• логическое программирование, воплощенное в декларативном языке Пролог.