Компьютерные и сетевые технологии
Базовые понятия информации. Общие сведения о компьютере, его математическое обеспечение. Логическая организация памяти. Основные принципы построения систем ввода-вывода. Особенности архитектуры современных ВС. Сети и сетевые операционные системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курс лекций |
Язык | русский |
Дата добавления | 27.10.2014 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Видеоадаптер -- это электронная плата, которая обрабатывает видеоданные (текст и графику) и управляет работой дисплея. Содержит видеопамять, регистры ввода вывода и модуль BIOS. Посылает в дисплей сигналы управления яркостью лучей и сигналы развертки изображения.
Наиболее распространенный видеоадаптер на сегодняшний день -- адаптер SVGA (Super Video Graphics Array -- супервидеографический массив), который может отображать на экране дисплея 1280х1024 пикселей при 256 цветах и 1024х768 пикселей при 16 - 32 миллионах цветов.
С увеличением числа приложений, использующих сложную графику и видео, наряду с традиционными видеоадаптерами широко используются разнообразные устройства компьютерной обработки видеосигналов:
Графические акселераторы (ускорители) -- специализированные графические сопроцессоры, увеличивающие эффективность видеосистемы. Их применение освобождает центральный процессор от большого объёма операций с видеоданными, так как акселераторы самостоятельно вычисляют, какие пиксели отображать на экране и каковы их цвета.
Фрейм-грабберы, которые позволяют отображать на экране компьютера видеосигнал от видеомагнитофона, камеры, лазерного проигрывателя и т. п., с тем, чтобы захватить нужный кадр в память и впоследствии сохранить его в виде файла.
TV-тюнеры -- видеоплаты, превращающие компьютер в телевизор. TV-тюнер позволяет выбрать любую нужную телевизионную программу и отображать ее на экране в масштабируемом окне. Таким образом можно следить за ходом передачи, не прекращая работу.
Аудиоадаптер (Sound Blaster или звуковая плата) это специальная электронная плата, которая позволяет записывать звук, воспроизводить его и создавать программными средствами с помощью микрофона, наушников, динамиков, встроенного синтезатора и другого оборудования. Аудиоадаптер содержит в себе два преобразователя информации:
- аналого-цифровой, который преобразует непрерывные (то есть, аналоговые) звуковые сигналы (речь, музыку, шум) в цифровой двоичный код и записывает его на магнитный носитель;
- цифро-аналоговый, выполняющий обратное преобразование сохранённого в цифровом виде звука в аналоговый сигнал, который затем воспроизводится с помощью акустической системы, синтезатора звука или наушников.
Модем -- устройство для передачи компьютерных данных на большие расстояния по телефонным линиям связи, выделенной 4хпроводной линии или радио каналам.
Цифровые сигналы, вырабатываемые компьютером, нельзя напрямую передавать по телефонной сети, потому что она предназначена для передачи человеческой речи -- непрерывных сигналов звуковой частоты.
Модем обеспечивает преобразование цифровых сигналов компьютера в аналоговый сигнал звукового диапазона -- этот процесс называется модуляцией, а также обратное преобразование, которое называется демодуляцией. Отсюда название устройства: модем -- модулятор/демодулятор.
Рис 2.3 Схема реализации модемной связи
Для осуществления связи один модем вызывает другой по номеру телефона, а тот отвечает на вызов. Затем модемы посылают друг другу сигналы, согласую подходящий им обоим режим связи. После этого передающий модем начинает посылать модулированные данные с согласованными скоростью (количеством бит в секунду) и форматом. Модем на другом конце преобразует полученную информацию в цифровой вид и передает её своему компьютеру. Закончив сеанс связи, модем отключается от линии.
Управление модемом осуществляется с помощью специального коммутационного программного обеспечения.
Модемы бывают внешние, выполненные в виде отдельного устройства, и внутренние, представляющие собой электронную плату, устанавливаемую внутри компьютера. Почти все модемы поддерживают и функции факсов.
Факс -- это устройство факсимильной передачи изображения по телефонной сети. Название "факс" произошло от слова "факсимиле" (лат. fac simile -- сделай подобное), означающее точное воспроизведение графического оригинала (подписи, документа и т.д.) средствами печати. Модем, который может передавать и получать данные как факс, называется факс-модемом.
Манипуляторы (мышь, джойстик и др.) -- это специальные устройства, которые используются для управления курсором.
Мышь имеет вид небольшой коробки, полностью умещающейся на ладони. Мышь связана с компьютером кабелем через специальный блок -- адаптер, и её движения преобразуются в соответствующие перемещения курсора по экрану дисплея. В верхней части устройства расположены управляющие кнопки (обычно их три), позволяющие задавать начало и конец движения, осуществлять выбор меню и т.п.
Джойстик -- обычно это стержень-ручка, отклонение которой от вертикального положения приводит к передвижению курсора в соответствующем направлении по экрану монитора. Часто применяется в компьютерных играх. В некоторых моделях в джойстик монтируется датчик давления. В этом случае, чем сильнее пользователь нажимает на ручку, тем быстрее движется курсор по экрану дисплея.
Трекбол -- небольшая коробка с шариком, встроенным в верхнюю часть корпуса. Пользователь рукой вращает шарик и перемещает, соответственно, курсор. В отличие от мыши, трекбол не требует свободного пространства около компьютера, его можно встроить в корпус машины.
Дигитайзер -- устройство для преобразования готовых изображений (чертежей, карт) в цифровую форму. Представляет собой плоскую панель -- планшет, располагаемую на столе, и специальный инструмент -- перо, с помощью которого указывается позиция на планшете. При перемещении пера по планшету фиксируются его координаты в близко расположенных точках, которые затем преобразуются в компьютере в требуемые единицы измерения.
Принтеры (печатающие устройства) - это устройства вывода данных из ЭВМ, преобразующие информационные ASCII-коды в соответствующие им графические символы (буквы, цифры, знаки и т.п.) и фиксирующие эти символы на бумаге.
Сканер - это устройство ввода в ЭВМ информации непосредственно с бумажного документа. Можно вводить тексты, схемы, рисунки, графики, фотографии и другую графическую информацию.
Сканеры являются важнейшим звеном электронных систем обработки документов и необходимым элементом любого "электронного стола". Записывая результаты своей деятельности в файлы и вводя информацию с бумажных документов в ПК с помощью сканера с системой автоматического распознавания образов, можно сделать реальный шаг к созданию систем безбумажного делопроизводства.
Сканеры весьма разнообразны, и их можно классифицировать по целому ряду признаков. Сканеры бывают черно-белые и цветные.
Выводы
Большинство вычислительных машин имеет один и тот же набор функциональных блоков-модулей.
ПК характерен тем, что им может пользоваться один человек, не обладающий высокой квалификацией.
На основе персональных компьютеров можно строить самые сложные контрольно-измерительные, управляющие, вычислительные и информационные системы.
Все возрастающие требования высокого быстродействия привели к многошинной структуре персонального компьютера.
Вопросы и задания
Что такое поколения ЭВМ и по каким признакам они различаются?
Перечислите все функциональные узлы ЭВМ и объясните назначение каждого.
Дайте понятие адреса, адресного пространства, линейного адреса, разрядности шины адреса.
Что такое контроллер, интерфейс, системный интерфейс?
Лекция 3. Многоуровневая компьютерная организация
Организация взаимодействия между всеми элементами компьютера является чрезвычайно сложной задачей. Как известно, для решения сложных задач используется универсальный прием - декомпозиция, то есть разбиение одной сложной задачи на несколько более простых задач-модулей. Декомпозиция состоит в четком определении функций каждого модуля, а также порядка их взаимодействия. При декомпозиции часто используют многоуровневый подход.
Компьютер, как и любая сложная система, обладает многоуровневой организацией при которой абстракции более высокого уровня не только надстраиваются над абстракциями более низкого уровня, но и органично включают их в свой состав. Многоуровневая компьютерная организация иногда называется архитектурой компьютера.
Архитектура компьютера
Применительно к вычислительным системам в целом термин «архитектура» можно интерпретировать как распределение функций, реализуемых системой, по ее уровням и определение интерфейсов между этими уровнями. Очевидно, архитектура вычислительной системы предполагает многоуровневую, иерархическую организацию.
Взаимодействие между различными уровнями осуществляется посредством интерфейсов. Например, система в целом взаимодействует с внешним миром через набор интерфейсов: языки высокого уровня, системные программы и т.д. Большинство современных вычислительных систем состоят из трех и более уровней.
На самом нижнем уровне (нулевом) - цифровом логическом уровне, объекты называются вентилями или переключателями. Эти переключатели могут находиться в одном из двух устойчивых состояний: переключатель включен или выключен, конденсатор заряжен или разряжен, магнитный домен намагничен или нет, транзистор находится в проводящем состоянии или непроводящем и т.п. Одно из таких физических состояний создает высокий уровень выходного напряжения (например, 4 В), а другое - низкий (например, 0 В). В компьютере эти электрические напряжения принимаются соответственно за 1 (логическая) и 0 (логический). Хотя возможно и обратное кодирование.
Следующий уровень - микроархитектурный уровень. На этом уровне можно анализировать совокупности логических схем, например АЛУ, оперативную память, регистры. Регистры вместе с АЛУ формируют тракт данных, обеспечивающий тот или иной алгоритм выполнения арифметической или логической операции. Иногда, работа тракта данных регулируется особой программой - микропрограммой. Сейчас чаще всего тракт данных контролируется аппаратным обеспечением.
Второй уровень называется уровнем архитектуры системы команд. В процессе работы МП обслуживает данные, находящиеся в его регистрах, в поле ОП, а также во внешних портах ЭВМ. Часть данных он интерпретирует как непосредственно данные, часть как адресные данные, а часть как команды. Совокупность всех возможных команд образует систему команд процессора. Именно система команд (расширенная или сокращенная) разделяет процессоры на RISC, CISC или векторные, суперскалярные и т.д. Машинная команда состоит из двух частей: операционной и адресной. Операционная часть команды - это группа разрядов в команде, предназначенная для предоставления кода операции машины (КОП). Адресная часть команды - это группа разрядов, в которых записываются коды адреса ячеек памяти машины. Часто эти адреса называются адресами операндов, т.е. чисел, участвующих в операции. По количеству адресов, записываемых в команде, команды делятся на безадресные, одно -, двух- и трехадресные. Типовая структура трехадресной команды:
Современные ЭВМ выполняют несколько сотен различных команд, структура команд, их сложность и длина определяют архитектуру процессора. Все машинные команды можно разделить на группы по видам выполняемых операций:
операции пересылки информации внутри ЭВМ;
арифметические операции над информацией;
логические операции над информацией;
операции обращения к внешним устройствам ЭВМ;
операции передачи управления;
обслуживающие и вспомогательные операции.
Следующий уровень - уровень ОС обычно гибридный. Большинство команд в его языке есть также и на уровне архитектуры системы команд. Далее идут высокоуровневые блоки, которые уже предназначены для прикладных программистов, первые три для системных программистов. На рисунке 3.1 показан пример такого подхода.
Классическая структура ЭВМ - модель фон Неймана
В каждой области науки и техники существуют некоторые фундаментальные идеи или принципы, которые определяют ее содержание и развитие. В компьютерной науке роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга двумя гениями современной науки - американским математиком и физиком Джоном фон Нейманом и советским инженером и ученым Сергеем Лебедевым.
Принято считать, что первый электронный компьютер ENIAC был изготовлен в США в 1946 г. (если мы на минуточку забудем, что уже в 1941 году цифровая машина Z1 и Z2 Конрада Цузе расчитывала траекторию ракет обстреливающих Лондон). Блестящий анализ сильных и слабых сторон проекта ENIAC был дан в отчете Принстонского института перспективных исследований "Предварительное обсуждение логического конструирования электронного вычислительного устройства" (июнь 1946 г.). Этот отчет, составленный выдающимся американским математиком Джоном фон Нейманом и его коллегами по Принстонскому институту Г. Голдстайном и А. Берксом, представлял проект нового электронного компьютера. Идеи, высказанные в этом отчете, известные под названием "Неймановских Принципов", оказали серьезное влияние на развитие компьютерной техники.
Сущность "Неймановских Принципов" состояла в следующем:
Двоичная система счисления - компьютеры на электронных элементах должны работать не в десятичной, а в двоичной системе счисления;
Принцип программного управления и хранимой в памяти программы - компьютер работает под управлением программы, программа должна размещаться в одном из блоков компьютера - в запоминающем устройстве (первоначально программа задавалась путем установки перемычек на коммутационной панели);
Принцип однородности - команды, так же как и данные, с которыми оперирует компьютер, хранятся в одном блоке памяти и записываются в двоичном коде, то есть по форме представления команды и данные однотипны и хранятся в одной и той же области памяти;
Принцип адресности - основная память структурно состоит из нумерованных ячеек, т.е. доступ к командам и данным осуществляется по адресу. Трудности физической реализации запоминающего устройства большого быстродействия и большой памяти требуют иерархической организации памяти;
В компьютере используется параллельный принцип организации вычислительного процесса (операции над двоичными кодами осуществляются одновременно над всеми разрядами).
В Советском Союзе работы по созданию электронных компьютеров были начаты несколько позже. Первый советский электронный компьютер был изготовлен в Киеве в 1953 г. Он назывался МЭСМ (малая электронная счетная машина), а его главным конструктором был академик Сергей Лебедев, автор проектов компьютеров серии БЭСМ (большая электронная счетная машина).
Самой важной отличительной чертой модели фон Неймана был и остается принцип единой линейной памяти, которая адресуется последовательными адресами и в которой команды неотличимы от данных. Структура ЭВМ фон Неймана приведена на рис. 3.2.
Представления данных как чисел и соответствующий характер команд с самого начала определили выбор архитектуры, ориентированной на числовую обработку. Обычно в этих ЭВМ данные представляются в виде скалярных данных, векторов и матриц. Числа в ЭВМ представляются как целые. Таким образом, ЭВМ с архитектурой фон Неймана, это ЭВМ с управлением потоком команд. Принято считать, что ВМ с архитектурой фон Неймана присущи следующие особенности:1. единая, последовательно адресуемая память (обычные скалярные однопроцессорные системы, при этом наличие конвейера не меняет дела);2. память является линейной и одномерной (одномерная - имеет вид вектора слов, память состоит из ячеек фиксированной длины и имеет линейную структуру адресации); 3. отсутствует явное различие между командами и данными;
4. ход выполнения вычислительного процесса определяется только централизованными и последовательными командами или, другими словами, управление потоком команд (выбрать адрес команды - выбрать данные - произвести действие и т.д.);
5. назначение данных не является их неотъемлемой, составной частью, назначение данных определяется логикой программы.
Нет никаких средств, позволяющих отличить набор битов, представляющих число с плавающей точкой, от набора битов, являющихся строкой символов. Если процессор извлекает из ОП команду сложения чисел с плавающей точкой и над ними выполняется сложение согласно правилам арифметики с плавающей точкой, хотя в действительности они могут быть просто строкой символов. Снова обратимся к "принципам Неймана". Существенно подчеркнуть, что центральное место среди "принципов Неймана" занимает предложение об использовании двоичной системы счисления, что было обусловлено рядом обстоятельств. Во-первых, несомненными арифметическими достоинствами двоичной системы счисления, ее "оптимальным" согласованием с "булевой" логикой и простотой технической реализации двоичного элемента памяти (триггера).
Однако на определенном этапе развития компьютерной техники было обнаружено ряд недостатков классической двоичной системы счисления. Первым из них является так называемая "проблема представления отрицательных чисел". Как известно, отрицательные числа непосредственно не могут быть представлены в классической двоичной системе счисления, использующей только две двоичные цифры 0 и 1, без дополнительных "ухищрений". Основным "ухищрением" является использование специальных кодов для представления отрицательных чисел - обратного или дополнительного.
Второй недостаток двоичной системы счисления - ее "нулевая избыточность". Дело в том, что если в процессе передачи, хранения или обработки двоичной кодовой комбинации, например 10011010, под влиянием "помех", действующих в "канале", произойдет искажение данной кодовой комбинации и она перейдет в кодовую комбинацию 11010010 (искажения отдельных битов подчеркнуты), то, поскольку комбинация 11010010 (как и любая другая двоичная кодовая комбинация) является "разрешенной" в классической двоичной системы счисления, то не существует способа обнаружить данную ошибку без дополнительных "ухищрений", то есть без использования специальных методов избыточного кодирования.
Третий недостаток более серьезен. Применение двоичной булевой логики необходимо приводит к появлению условия синхронности в процессорах. Двоичная логика не включает в себя условие завершения функции, а это значит, что она может существовать только на фоне соответствующей временной диаграммы. Другими словами наряду с потоком данных и команд должен существовать поток управляющих импульсов, или «стробов», поступающих от системных часов. Последствия этого явления очень значительны и будут рассмотрены позже.
Особенности современных ЭВМ
Естественно, что бурное развитие новых технологий производства средств вычислительной техники привело к появлению целого ряда новшеств и особенностей. Эти отличительные особенности вычислительных машин, появившихся после EDVAC, сводятся к следующим:
Индексные регистры. Позволяют формировать адреса памяти добавлением содержимого указанного регистра к содержимому поля команды. Этот принцип впервые реализован в 1949г. в ЭВМ Манчестерского университета и использован в 1953г. фирмой Electro Data Corporation при производстве ЭВМ Datatron.
Регистры общего назначения. Благодаря этой группе регистров устраняется различие между индексными регистрами и аккумуляторами и в распоряжении пользователя оказывается не один, а несколько регистров-аккумуляторов. Впервые это решение было применено, вероятно, в ЭВМ Pegasus фирмы Ferranti (1956г.).
Представление данных в форме с плавающей точкой. Представление данных в виде мантиссы и порядка и выполнение операций над ними было реализовано в 1954г. в вычислительных машинах NORC и 704 фирмы IBM.
Косвенная адресация. Средство позволяющее использовать команды, указывающие адреса, по которым в свою очередь находится информация о местоположении операндов команд. Принцип косвенной адресации был реализован в 1958г. в ЭВМ 709 фирмы IBM.
Программные прерывания. При возникновении некоторого внешнего события состояние вычислительной системы, связанное с выполнением прерванной команды, запоминается в определенной области. Этот принцип впервые был применен в 1954г. в машине Univac1103.
Асинхронный ввод-вывод. Параллельно обычному выполнению команд независимые процессоры управляют операциями ввода-вывода. Первой ЭВМ с независимым процессором ввода-вывода являлась ЭВМ709 фирмы IBM (1958г.).
Виртуальная память. Определение адресного пространства программы осуществляется без "привязки" к физическим областям памяти обычно с целью создания впечатления, что вычислительная система имеет больший объем основной памяти, чем тот, которым она фактически располагает. В 1959г. в вычислительной системе Atlas Манчестерского университета были реализованы принципы разделения памяти на страницы и динамическая трансляция адресов аппаратными средствами.
Мультипроцессорная обработка. Два или более независимых процессора обрабатывают потоки команд из общей памяти. Не ясно, кто был первооткрывателем такого способа обработки, однако, в конце 50-х начале 60-х годов, он был реализован в вычислительных машинах Sage фирмы IBM, Sperri-Univac LARC и D825 фирмы Burroughs.
Существенное противоречие между высокой скоростью обработки данных в процессоре и низкой скоростью работы устройств ввода/вывода потребовало высвобождения ЦПУ от функций передачи информации и предоставления этих функций специальным устройствам - контроллерам и интерфейсам. Трудно перечислить все особенности современных компьютеров и систем, да и ненужно. Постараемся их раскрыть по мере изучения дальнейшего материала.
Выводы
Архитектура вычислительной системы предполагаем многоуровневую, иерархическую организацию.
Взаимодействие между различными уровнями осуществляется посредством интерфейсов. Например, система в целом взаимодействует с внешним миром через набор интерфейсов: языки высокого уровня, системные программы и т.д.
Решение задач на ЭВМ реализуется программным способом, т.е. путем выполнения
последовательно во времени отдельных операций над информацией, предусмотренных алгоритмом решения задачи.
Классическая структура ЭВМ отвечает модели Фон Неймана. Современные ЭВМ далеко ушли от этой модели, но по-прежнему имеют большое число общих черт, например - двоичная система счисления, управление потоком команд
Система программного (математического) обеспечения ЭВМ представляет собой комплекс программных средств, в котором можно выделить операционную систему. Операционная система - предназначена для эффективного управления вычислительным процессом, планирования работы и распределения ресурсов
Вопросы и задания
Какие задачи решает цифровой логический уровень?
Что умеет делать АЛУ?
Чем вызвано многообразие форматов и размеров команд?
Какова роль ОС?
Компьютер по Фон Нейману - основные черты, недостатки и достоинства.
Лекция 4. Математическое обеспечение компьютеров
Иногда говорят, что вычислительная техника (hardware) без программ, олицетворяющих действия людей по управлению ею, мертва и бездушна как всякое железо. И только программное обеспечение (software) вдыхает жизнь в эти кристаллы, разъемы и провода, заставляет компьютеры делать все те чудеса, которым мы не перестаем удивляться.
Пакеты прикладных программ представляют собой структурированные комплексы программ (часто со специализированными языковыми средствами), предназначенные для решения определенных задач, а также для расширения функций ОП (управления базами данных и др.). Аппаратные средства ЭВМ и система ее программного обеспечения образуют вычислительную систему. За более чем полувековую историю развития ЭВМ многие поколения программистов создали гигантский объем программного обеспечения (ПО). Зачастую он создавался стихийно, под влиянием различных обстоятельств, поэтому чтобы разобраться в этом многообразии попробуем создать некоторую классификацию.
Прежде всего, все программное обеспечение можно разделить на общее и специальное. Общее ПО рассчитано на самый широкий круг пользователей и используется почти на каждом компьютере. Специальное ПО разрабатывается для решения конкретной задачи, оно как правило уникально. В качестве примера укажем на разнообразные бухгалтерские и банковские системы, которые часто разрабатываются под заказ, хотя есть и исключения. Общее ПО, в свою очередь, подразделяется на системное, служащее для разработки программ и поддержки вычислительного процесса на компьютере (операционные системы, системы программирования, различные вспомогательные программы) и прикладное, иначе называемое пакетами прикладных программ (ППП). Типичными ППП являются текстовые процессоры, системы управления базами данных (СУБД), электронные таблицы, некоторые другие широко распространенные программы. Граница раздела между упомянутыми классами весьма условна и в процессе эволюции постоянно передвигается в пользу общего ПО.
Общее программное обеспечение -- это ценнейший интеллектуальный ресурс, накопленный человечеством за последние полвека. В его разработку вложены миллионы человеко - лет труда нескольких поколений программистов, потрачены многие миллиарды долларов. Каждое десятилетие внесло свой существенный вклад в формирование общего ПО.
* 50-е годы: библиотеки стандартных программ, низкоуровневые языки и системы автоматизации программирования (ассемблеры и автокоды);
* 60-е годы: высокоуровневые языки и системы автоматизации программирования, пакетные операционные системы;
* 70-е годы: диалоговые операционные системы, системы управления базами данных (СУБД);
* 80-е годы: пакеты прикладных программ для персональных компьютеров, системы автоматизации проектирования (CASE);
* 90-е годы: программное обеспечение компьютерных сетей, мультимедиа.
Библиотеки стандартных программ и ассемблеры
Первые вычислительные машины вообще не имели никакого общего программного
обеспечения. Программы для решения конкретных задач писались с нуля, в машинных двоичных кодах (для сокращения записи использовалась восьмеричная или шестнадцатеричная система, но это не меняло сути) в абсолютных адресах, они загружались в чистую оперативную память. Процесс был мучительным и трудоемким. Приходилось помнить двоичные коды всех операций, а любую подпрограмму выписывать из справочника в условных адресах, затем вручную привязывать к главной программе, распределять память и т. д. На каждом этапе возникали ошибки, поэтому отладить программу даже в тысячу команд было уже очень трудно. Первоочередной задачей программистов на данном этапе было создание библиотек, которые обеспечивали бы вызов стандартных программ из внешней памяти и автоматически подключали их к
главной программе.
Вторая проблема была связана с мнемоническим кодированием и автоматическим распределением памяти. Впервые она была решена в Кембридже в Великобритании на ЭВМ EDSAC (1949 г.). Вместо того, чтобы записывать коды операций двоичными цифрами программист писал текст программы на символическом языке, пользуясь мнемоническими обозначениями операций и условными адресами, а специальная программа (руководитель проекта Морис Уилкс назвал ее собирающей системой -- по английски assembly system) автоматически преобразовывала мнемонические коды в понятные машине двоичные, и распределяла память для выполнения программы. Идея оказалась столь продуктивной, что все последующие поколения программистов на всех ЭВМ отказались от абсолютного кодирования. Языки программирования низкого уровня, в которых коды операций заменены мнемоническими обозначениями, стали называться языками ассемблера или автокодами (мнемокодами), а преобразующие программы -- ассемблерами.
Высокоуровневые языки и системы автоматизированного программирования
В 60-е годы объем производства ЭВМ резко возрос, появились разнообразные машины второго поколения, они вышли из узких стен научных и военных учреждений, начали использоваться в бизнесе. Резко расширился круг решаемых задач, соответственно возросло и число людей, занятых программированием. Языки низкоуровневого кодирования, реализованные в ассемблерах, ненамного облегчили их тяжкий труд. Голубой мечтой казалась возможность полной автоматизации программирования, когда программист пишет математические формулы на привычном символическом языке, а компьютер самостоятельно преобразовывает их в тексты машинных программ.
Языки и системы программирования наиболее бурно развивались в 60-е годы, когда были разработаны основные принципы их построения и родились многие сотни языков различного назначения. В результате естественного отбора до конца века дожили немногие «великие языки», в которых воплощены пять основных концепций современного программирования:
* процедурное программирование, составляющее основу классических алгоритмических языков Фортран, Бэйсик, Кобол, Алгол, Си и др.;
* объектно-ориентированное программирование (ООП), в чистом виде присутствующее в языке Smalltalk, и в той или иной степени -- во всех современных языках;
* визуально-событийное программирование, являющиеся развитием ООП в части работы с особыми классами визуальных объектов, реализованное в визуальных средах Visual Basic, Delphi, Visual Fux Pro, Visual C++, Visual Age, Java и др.;
* функциональное программирование, реализованное в языке обработки списков Лисп;
* логическое программирование, воплощенное в декларативном языке Пролог.
Диалоговые ОС и СУБД
70-е годы -- время безраздельного господства унифицированных машин из клона IBM 360/370. Компьютеры по-прежнему были безумно дороги, но их мощность и надежность резко возросли. Начали создаваться крупные информационные системы для промышленных и торговых предприятий, банков, социальных учреждений. Пользователи перестали бегать с колодами перфокарт -- на их рабочих местах появились дисплеи, подключенные к центральной ЭВМ, расположенной в вычислительном центре фирмы. Для организации вычислительного процесса в этих условиях понадобились операционные системы нового типа, позволяющие организовать диалог большого числа пользователей в режиме разделения времени. Родина таких систем -- Массачусетский технологический институт (МТИ), где, начиная с середины 60-х годов, проводились экспериментальные работы, но крупные промышленные диалоговые ОС разрабатывались фирмами -- производителями аппаратуры. Создание крупных информационных систем поставило перед разработчиками общего ПО проблему хранения больших массивов данных и организации их обработки множеством независимых программ. Так возникла концепция систем управления базами данных (СУБД). Разработка эффективных СУБД оказалась задачей не мене трудоемкой, чем проектирование ОС, первая промышленная СУБД IMS для IBM 360/370 была создана корпорацией IBM в 19691970 годах в рамках проекта полета человека на Луну «Аполлон» и потребовала очень больших капиталовложений.
Использование СУБД произвело настоящую революцию в индустрии обработки данных. Многие заказные кустарные программы, осуществляющие стандартные операции над данными, оказались ненужными, они были вытеснены надежными промышленными продуктами. Это-- характерный пример того, как специальное ПО становится общим.
Прикладные программы и CASE - технологии
В конце 70-х наступил золотой век софтверного бизнеса, возникли тысячи фирм, выбросивших на рынок необъятное море пакетов прикладных программ для деловых применений и развлечений. Они в корне отличались от «тяжелого» софта 70-х годов -- были простыми, дешевыми, играли на экранах всеми цветами радуги, упаковывались в яркие коробки и продавались в магазинах как книги или грампластинки. На невероятно расширившемся рынке программного обеспечения возникла ожесточенная конкуренция. Как это бывает с товарами ширпотреба, коммерческий успех того или иного продукта часто обуславливается не техническими параметрами, а широкой рекламой, продуманной маркетинговой политикой. Показательна в этом отношении судьба фирмы Microsoft ее активная, даже агрессивная маркетинговая стратегия привела к тому, что продукция Microsoft стала фактическим стандартом на рынке офисного ПО, а операционная система Windows сумела победить более прогрессивную по своим идеям систему OS/2 фирмы IBM.
Повальное увлечение домашними компьютерами и потребительским софтом как-то отодвинуло в тень работы по совершенствованию серьезного общего программного обеспечения. По-видимому, самым большим успехом в этом направлении в 80-е годы можно считать разработу CASE-технологий, то есть технологий автоматизированного проектирования программного обеспечения (CASE -- Computer Aided Software Design). Их необходимость возникла при создании информационных систем для крупных организаций, объединяющих сотни пользователей и оперирующих с тысячами объектов и экранных форм. Даже применение языков высокого уровня таких как Cobol, Pascal или C и средств СУБД не избавляет программиста от рутинной работы по проектированию связанных информационных таблиц и организации диалога. Автоматизированные технологии позволяют отказаться от большинства механической работы. На специальных языках сверхвысокого уровня, символьных или графических (они часто называются языками четвертого поколения 4GL -- 4th Genrration Language), описывается содержательная постановка задачи, а система сама, пользуясь встроенными в нее стандартными правилами проектирования, генерирует код на обычном языке программирования. Программисту остается подправить текст, если он его почему-то не устраивает, пропустить через компилятор и получить готовую программу.
Компьютерные сети и мультимедиа
Компьютерные сети начали развиваться исподволь с начала 70-х годов, но именно в 90-е годы скорость их распространения превысила некоторый критический порог. Произошло то, что специалисты предсказывали давно: вычислительная техника и техника связи, слившись воедино как две половинки атомного заряда, привели к подлинному информационнму взрыву. Миллионы компьютеров, разбросанных по всему свету, оказались связанными всемирной паутиной Интернета. Гигантские объемы научной, культурной и всякой другой информации сделались доступными любому рядовому пользователю, оказались, по меткому выражению Билла Гейтса «на кончиках пальцев».
Появление «сети сетей» -- Интернета -- вызвало рождение целой отрасли нематериального производства -- сетевого бизнеса. Тысячи фирм делают деньги «из воздуха», занимаясь предоставлением доступа в Интернет (Internet providing) и предоставляя различные услуги по организации электронной почты, публикации и поиску информации в сети, размещению рекламы, электронной торговле и т. д. Годовой оборот таких гигантов сетевой индустрии как America On Line (AOL), Yahoo, Amazon измеряется миллиардами долларов, и это только начало.
Развитие сетевых технологий потребовало разработки соответствующего слоя общего программного обеспечения. Историю и современное состояние компьютерных сетей, а также их программного обеспечения мы будем рассматривать в главе 4, а сейчас несколько слов скажем еще об одном важном достижении, которое в 90-х годах перешло из разряда экспериментальных в общедоступные. Речь идет о мультимедиа-технологиях. Буквальный перевод слова multimedia -- «многие среды». Имеются в виду типы объектов, с которыми имеет дело компьютер. В прежние времена вариантов было немного: стандартный компьютер вводил, обрабатывал и выводил только строки символов или неподвижные картинки, на большее не хватало ни мощности процессора, ни объема памяти, ни возможностей устройств вввода-вывода. Однако в последние годы эти характеристики достигли такого состояния, что появилась возможность существенно расширить класс обрабатываемых объектов.
Операционные системы
История операционных систем начинается в 60-е годы, когда для облегчения труда операторов и экономии машинного времени были созданы первые программы-автооператоры и мониторные системы. Впоследствии они развились в операционные системы следующих основных типов:
* пакетные (однозадачные и с мультипрограммированием);
* диалоговые (с разделением времени -- ОС РВ);
* системы реального времени.
Пакетные операционные системы, поддерживающие режим мультипрограммирования, были разработаны в начале 60-х годов. Наиболее совершенной системой такого типа было OS/360 MVT для IBM S/360. Следующий этап в развитии ОС для больших ЭВМ -- диалоговые операционные системы с разделением времени (ОС РВ). Экспериментальные ОС такого типа, сформировавшие идеологию систем, были созданы в Массачусетском технологическом институте. Сама идея была высказана Джоном Маккарти в 1961 году, проект Multics под руководством Фернандо Корбато реализовывался во второй половине 60-х годов. Промышленные ОС РВ появилсь в 70-х годах, их разработка и доводка выполнялась как правило фирмами-производителями соответствующих ЭВМ, например, OS/VM для IBM S/360 или RSX-11 для PDP-11. Для отечественной ЭВМ БЭСМ-6 также было разработаны ОС «Диспак» и «Дубна». Среди ОС РВ особое место занимает система Unix, первый вариант которой был разработан Кеннетом Томпсоном и Деннисом Ричи в Bell Laboratories в 1969 году. Написанная на машинно-независимом языке Си, она является портируемой, то есть допускает перенос на различные аппаратные платформы. Это свойство, а также доступность и бесплатность исходного кода, сделали Unix чрезвычайно популярной в 80-х и 90-х годах. Однако доступность исходного кода привела к тому, что единая система перестала существовать, образовалось множество хоть и близких по существу, но различающихся в деталях Unix-подобных систем, как бесплатных, так и коммерческих, например, Solaris от Sun, AIX от IBM, Xenix от Microsoft.
Появление персональных ЭВМ в 80-х годах породило новый класс настольных операционных систем, которые на первыхпорах относились к классу простейших пакетных однозадачных ОС. Для первого поколения 8-битовых ПК характерной была ОС CP/M, разработанная в 1976 году Гэри Килдолом. Второе поколение, ознаменовавшиеся выпуском 16-битовой IBM PC, оснащалось в основном операционной системой MS-DOS, выпущенной фирмой Microsoft в 1981 году. Эта система стала классической ОС для 80-х годов, однако ей присущи принципиальные недостатки, вытекающие из ограниченности аппаратных ресурсов:
* однозадачный режим работы,
* отсутствие встроенных средств управления расширенной памятью и внешними устройствами, прикладная программа должна решать эти задачи сама;
* отсутствие унифицированного графического интерфейса, каждое приложение имеет свою логику взаимодействия с пользователем.
Третье поколение 32-битовых персональных компьютеров, появившееся к концу 80-х годов, обладало достаточными аппаратными возможностями для организации графического человеко-машинного интерфейса. Идеи этого интерфейса, разработанные еще в 70-х годах в Xerox PARC, были впервые широко использованы фирмой Apple в операционной системе Mac OS для ЭВМ Macintosh, выпущенной в 1984 году. Фирма Microsoft, отставшая в этом отношении от Apple, выпустила в 1985 году графическую надстройку над DOS под названием Windows. Первые две версии коммерческого успеха не имели, и только Windows 3.0, появившаяся в 1990 году, стала завоевывать рынок. К концу века Microsoft с настольными ОС Windows-95/98/Me, поддерживающими многозадачный режим работы, стала фактическим монополистом на рынке ОС для платформы Intel, победив в конкурентной войне фирму IBM с ее OS/2.
Кроме настольных ОС, в 90-е годы разрабатывались серверные операционные системы, являющиеся прямыми потомками ОС с разделением времени 70-х и 80-х годов. На рынке доминировали NetWare фирмы Novell, Windows NT фирмы Microsoft и различные версии Unix, среди которых наиболее активно развивалась бесплатная система Linux, первая версия которой была создана в 1991 году финским студентом Линусом Торвальдсом.
Особый класс операционных систем -- системы реального времени. Они применяются в системах управления технологическими процессами, в которых критическим является время реакции системы на запросы внешних устройств.
Системы управления базами данных (СУБД), появившиеся в середине 60-х годов, имеют ряд преимуществ по сравнению с прежней схемой независимой работы программ с данными:
* однократный ввод данных,
* независимость программ от данных,
* сокращение затрат на программирование.
Основные функции СУБД:
* описание логической структуры данных,
* манипулирование данными,
* обеспечение целостности данных,
* обеспечение многопользовательского доступа,
* защита данных.
Существуют три основных типа СУБД, различаюшиеся логической организацией данных: иерархические, сетевые и реляционные. Первыми были иерархические СУБД (первая промышленная СУБД IMS была разработана фирмой IBM в 1968 году), затем в результате теоретических исследований, предпринятых рабочей группой КОДАСИЛ, появилась сетевая модель данных. Наиболее совершенными и распространенными в настоящее время являются реляционные СУБД, основанные на табличной (реляционной) модели данных, предложенной в 1970 году сотрудником IBM Эдгаром Коддом. Стандартным языком запросов в такой СУБД является язык SQL, разработанный в 1974 году Чемберленом и Бойсом.
Современные промышленные СУБД являются очень дорогими и долгоживущими программными продуктами, соизмеримыми по сложности с операционными системами. К концу века на рынке лидирует «большая шестерка»: Oracle, DB2, Informix, Sybase, Ingres, MS SQL Server.
Микрокомпьютерная революция и появление персональных ЭВМ в корне изменили ситуацию на рынке программного обеспечения. Из профессионального инструмента оно превратилось в товар массового спроса, доступный миллионам неквалифицированных пользователей. В 80-е годы на рынок было выброшено множество пакетов прикладных программ (ППП) для персональных компьютеров, расцвел софтверный бизнес, авторы удачных разработок в одночасье делали миллионные состояния. К наиболее популярным ППП относятся текстовые редакторы, электронные таблицы и настольные СУБД.
Рынок текстовых редакторов делится на три основных сектора: простейшие текстовые редакторы, текстовые процессоры широкого применения типа MS Word и настольные издательские системы, берущие начало от пакета Page Maker, разработанного в 1985 году для Apple Macintosh. Особое место среди издательских пакетов занимает система TeX, созданная классиком информатики Дональдом Кнутом и принятая в качестве стандарта многими научными журналами Электронные таблицы были изобретены сотрудником Digital Equipment Corp. Дэниэлом Бриклином и впервые реализованы им совместно с Робертом Фрэнкстоном в 1979 году для персонального компьютера Apple-II. Лидером рынка электронных таблиц в среде MS DOS был пакет Lotus 1-2-3, разработанный основателем фирмы Lotus Development Митчелом Кэпором в 1982 году. После появления Windows наиболее распространенной стала система Excel фирмы Microsoft.
Лекция 5. Вычислительные системы - общие сведения
Один из основателей и глава компании Intel Гордон Мур в 1965 году сформулировал статистическую закономерность, названную позднее - законом Мура:
«Число транзисторов на чипе и производительность компьютеров возрастает вдвое каждые 18 месяцев».
Закон Мура связан с тем, что некоторые экономисты называют эффективным циклом. Действительно, увеличение производительности машин приводит к падению цен, это вызывает появление новых прикладных программ (никому не приходило в голову разрабатывать компьютерные игры для машин стоимостью 10 млн. долларов). Новые прикладные программы - новые рынки - появление новых компаний - повышение конкуренции - понижение цены - новое качество. И над всем этим его величество - потребитель, который предъявляет свои требования к продукту, которые постоянно растут.
Общие требования
К современным компьютерам и вычислительным системам предъявляются следующие требования:
Отношение стоимость/производительность
Надежность и отказоустойчивость
Масштабируемость
Совместимость и мобильность программного обеспечения
Отношение стоимость/производительность
Начнем с очевидного. Суперкомпьютеры - приоритет производительность, стоимостные характеристики на втором плане. Персональные компьютеры - на первом месте стоимостные характеристики, производительность на втором плане.
Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость/ производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются миникомпьютеры и рабочие станции.
Производительность
Зачастую производительность вычислительной машины подменяют термином быстродействие и при этом считают, что производительность это - среднестатистическое число операций (кроме операций ввода/вывода), выполняемых машиной в единицу времени. Не вдаваясь в тонкости классификации примем этот подход. Различают пиковую производительность - производительность процессора без учета времени обращения к оперативной памяти; номинальную - производительность процессора с учетом обращений к ОП; системную - общее время выполнения задания с учетом базовых технических и программных средств.
Пиковая производительность компьютера вычисляется однозначно, и эта характеристика является базовой, по которой производят сравнение высокопроизводительных вычислительных систем. Чем больше пиковая производительность, тем теоретически быстрее пользователь сможет решить свою задачу. Пиковая производительность есть величина теоретическая и, вообще говоря, не достижимая при запуске конкретного приложения. Реальная же производительность, достигаемая на данном приложении, зависит от взаимодействия программной модели, в которой реализовано приложение, с архитектурными особенностями машины, на которой приложение запускается.
В качестве единиц измерения используются:
MIPS (Million Instruction Per Second) - миллион целочисленных операций в секунду;
MFLOPS (Million Floating Operations Per Second) - миллион операций над числами с плавающей запятой в секунду, ну и конечно их производные T, G,…
Системная производительность измеряется с помощью синтезированных тестовых
программ. Результаты оценки ЭВМ конкретной архитектуры приводятся относительно базового образца.
Надежность
Важнейшей характеристикой вычислительных систем является надежность. Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечение тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратуры.
Отказоустойчивость - это такое свойство вычислительной системы, которое обеспечивает ей, как логической машине, возможность продолжения действий, заданных программой, после возникновения неисправностей. Введение отказоустойчивости требует избыточного аппаратного и программного обеспечения.
Масштабируемость
Масштабируемость представляет собой принципиальную возможность бесконфликтного изменения конфигурации компьютера в процессе эксплуатации, адаптируя его к конкретным условиям эксплуатации. Масштабируемость должна обеспечиваться архитектурой и конструкцией компьютера, а также соответствующими средствами программного обеспечения.
Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. Одной из основных задач при построении масштабируемых систем является минимизация стоимости расширения компьютера и упрощение планирования. В идеале добавление процессоров к системе должно приводить к линейному росту ее производительности. Однако это не всегда так. Потери производительности могут возникать, например, при недостаточной пропускной способности шин из-за возрастания трафика между процессорами и основной памятью, а также между памятью и устройствами ввода/вывода. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.
Совместимость
Совместимость проявляется на аппаратном и программном уровнях. Аппаратная совместимость дает возможность комплексировать аппаратуру разных производителей, что предполагает унификацию разъемов, электрических параметров и логики сигналов различных устройств. Программная совместимость обеспечивает работоспособность программы, написанной для одного компьютера, на другом без какой либо перекомпиляции и редактирования.
Концепция программной совместимости впервые в широких масштабах была применена разработчиками системы IBM/360. Основная задача при проектировании всего ряда моделей этой системы заключалась в создании такой архитектуры, которая была бы одинаковой с точки зрения пользователя для всех моделей системы независимо от цены и производительности каждой из них. Огромные преимущества такого подхода, позволяющего сохранять существующий задел программного обеспечения при переходе на новые (как правило, более производительные) модели были быстро оценены как производителями компьютеров, так и пользователями и начиная с этого времени практически все фирмы-поставщики компьютерного оборудования взяли на вооружение эти принципы, поставляя серии совместимых компьютеров. Следует заметить однако, что со временем даже самая передовая архитектура неизбежно устаревает и возникает потребность внесения радикальных изменений в архитектуру и способы организации вычислительных систем.
Классификация компьютеров по областям применения
Задача классификации чрезвычайно затруднительна хотя бы в силу своей многовариантности, тем не менее попробуем это сделать выбрав в качестве критерия сферу применения компьютеров и стоимость.
Теперь мы можем более подробно остановится на наиболее распространенных типах компьютеров.
Персональные компьютеры и рабочие станции
Персональные компьютеры (ПК) появились в результате эволюции миникомпьютеров при переходе элементной базы машин с малой и средней степенью интеграции на большие и сверхбольшие интегральные схемы. ПК, благодаря своей низкой стоимости, очень быстро завоевали хорошие позиции на компьютерном рынке и создали предпосылки для разработки новых программных средств, ориентированных на конечного пользователя. Это прежде всего - "дружественные пользовательские интерфейсы", а также проблемно-ориентированные среды и инструментальные средства для автоматизации разработки прикладных программ. Различают две большие группы ПК: IBM совместимые и Apple Macintosh. Сюда же могут быть отнесены и портативные ПК - portable, laptop, noutbook, palmtop …
Сетевой компьютер (Net Computer) появился как компонент приложения клиент-сервер, имеющий минимальную конфигурацию ПО и предназначенный для работы в сети. Впервые об этом заявили в 1996 году Oracle, Sun Microsystems, IBM в совместном документе «Network Computer Reference Profile», в котором сформулировали основные черты NC - обработка информации, хранящейся на сервере; принцип бездисковых рабочих станций; должны поддерживать все сетевые протоколы IP, TCP, UDP …. В свою очередь Microsoft и Intel провозгласили свою концепцию Net PC, самое основное - как можно дешевле и вообще не надо памяти.
Подобные документы
Общие понятия компьютерных сетей. Протоколы и их взаимодействие. Базовые технологии канального уровня. Сетевые устройства физического и канального уровня. Характеристика уровней модели OSI. Глобальные компьютерные сети. Использование масок в IP-адресации.
курс лекций [177,8 K], добавлен 16.12.2010Всемирная тенденция к объединению компьютеров в сети. Компьютерные сети: основные типы и устройство. Глобальная сеть Интернет. Современные сетевые технологи в компьютерных сетях. Особенности технологии Wi-Fi, IP-телефония. Виртуальные частные сети.
презентация [648,3 K], добавлен 14.02.2016Эволюция и классификация ОС. Сетевые операционные системы. Управление памятью. Современные концепции и технологии проектирования операционных систем. Семейство операционных систем UNIX. Сетевые продукты фирмы Novell. Сетевые ОС компании Microsoft.
творческая работа [286,2 K], добавлен 07.11.2007Устройство компьютерных сетей. Системы для передачи информации, состоящие из терминалов, серверов и коммуникационной среды. Технические, программные и информационные средства сетей. Классификация компьютерных сетей. Сетевые операционные системы.
курсовая работа [3,7 M], добавлен 10.07.2014Компьютерные сети и их классификация. Аппаратные средства компьютерных сетей и топологии локальных сетей. Технологии и протоколы вычислительных сетей. Адресация компьютеров в сети и основные сетевые протоколы. Достоинства использования сетевых технологий.
курсовая работа [108,9 K], добавлен 22.04.2012Сети и сетевые архитектуры. Протоколы коммуникации. Разделение и публикация файлов на удаленных сайтах. Сетевые топологии. Коммуникационные процессоры. Стратегии маршрутизации. Разрешение коллизий. Передача маркера. Слоты для переключения сообщений.
презентация [1,5 M], добавлен 24.01.2014Принципы построения ЭВМ, устройства ввода-вывода. Структура и принципы работы сети Интернет. Поиск информации, виды моделей. Классификация языков программирования. Типы СУБД, операционные системы. Средства защиты от вирусов и несанкционированного доступа.
реферат [156,0 K], добавлен 19.01.2011Общая характеристика требований, предъявляемых к операционным системам. Структура сетевой операционной системы (ОС). Одноранговые сетевые ОС и с выделенными серверами. Сетевые продукты Microsoft. ОС для рабочих групп и ОС для сетей масштаба предприятия.
дипломная работа [83,7 K], добавлен 27.09.2012Классификация компьютерных сетей. Взаимодействие компьютеров в сети. Сетевые модели и архитектуры. Мосты и коммутаторы, сетевые протоколы. Правила назначения IP-адресов сетей и узлов. Сетевые службы, клиенты, серверы, ресурсы. Способы доступа в Интернет.
курсовая работа [1,5 M], добавлен 11.05.2014Базовая система ввода-вывода информации. Базовые функции интерфейса и настройки оборудования. Основные понятия и функционирование BIOS. Сведения о системной BIOS компьютера. Затенение ROM-памяти. Самотестирование процессора, модулей оперативной памяти.
реферат [21,7 K], добавлен 12.12.2011