Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Классификация ЭВМ по размерам и функциональным возможностям





По размерам и функциональным возможностям ЭВМ можно разделить (рис. 5.4) на сверхбольшие (суперЭВМ), большие, малые, сверхмалые (микроЭВМ).

Рис. 5.4. Классификация ЭВМ по размерам и вычислительной мощности

 

Функциональные возможности ЭВМ обусловливают важнейшие технико-эксплуатационные характеристики:

· быстродействие, измеряемоеусредненным количеством операций, выполняемых машиной за единицу времени;

· разрядность и формы представления чисел, с которыми оперирует ЭВМ;

· номенклатура, емкость и быстродействие всех запоминающих устройств;

· номенклатура и технико-экономические характеристики внешних устройств хранения, обмена и ввода-вывода информации;

· типы и пропускная способность устройств связи и сопряжения узлов ЭВМ между собой (внутримашинного интерфейса);

· способность ЭВМ одновременно работать с несколькими пользователями и выполнять одновременно несколько программ (многопрограммность);

· типы и технико-эксплуатационные характеристики операционных систем, используемых в машине;

· наличие и функциональные возможности программного обеспечения;

· способность выполнять программы, написанные для других типов ЭВМ (программная совместимость с другими типами ЭВМ);

· система и структура машинных команд;

· возможность подключения к каналам связи и к вычислительной сети;

· эксплуатационная надежность ЭВМ;

· коэффициент полезного использования ЭВМ во времени, определяемый соотношением времени полезной работы и времени профилактики.

 

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

Примечание. Первая большая ЭВМ ЭНИАК (Electronic Numerical Integrator and Computer) была создана в 1946 г. (в 1996 г. отмечалось 50-летие создания первой ЭВМ). Эта машина имела массу более 50 т, быстродействие несколько сотен операций в секунду, оперативную память емкостью 20 чисел; занимала огромный зал площадью около 100 кв.м.

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

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

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

Изобретение в 1969 г. микропроцессора (МП) привело к появлению в 70-х гг, еще одного класса ЭВМ - микроЭВМ (рис. 5.5). Именно наличие МП служило первоначально определяющим признаком микроЭВМ. Сейчас микропроцессоры используются во всех без исключения классах ЭВМ.

Рис.5.5. Классификация микроЭВМ.

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

Персональные компьютеры (ПК) - однопользовательские микроЭВМ, удовлетворяющие требованиям общедоступности и универсальности применения.

Рабочие станции (work station) представляют собой однопользовательские мощные микроЭВМ, специализированные для выполнения определенного вида работ (графических, инженерных, издательских и др.).

Серверы (server) - многопользовательские мощные микроЭВМ в вычислительных сетях, выделенные для обработки запросов от всех станций сети.

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

 

Лекция 6

Программное обеспечение. Базовое (BIOS), системное, прикладное, средства разработки. Функции ОС. Windows, Linix, FreeBSD. Текстовые процессоры, электронные таблицы, базы данных. Средства Internet. Графические средства. Трансляция программ. Fortran. COBOL. Декомпозиция. Структурное программирование (Дейкстра). Три управляющие конструкции. 1971 – Вирт, Паскаль. Фирма Borland (Ф. Кан). Керниган и Ричи, ООП.

 

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

Программное обеспечение ЭВМ представляет собой комплекс программных средств, включающих Операционную систему (ОС), программы технического обслуживания (ПТО) и пакеты прикладных программ (ППП). Структура программного обеспечения представлена на рисунке:

 

Структура программного обеспечения ЭВМ

 

ОС является ядром ПО и содержит ряд директивных программ, отвечающих за планирование работ и распределение ресурсов ЭВМ, облегчающих взаимодействие пользователей и пользовательских программ с реальными аппаратными средствами и внешними устройствами (дисководами, дисплеем, печатающими устройствами и др.), поддерживает работу УУВ. Кроме того, ОС содержит программы - трансляторы с алгоритмических языков низкого (ассемблер) и высокого (Фортран, Бейсик, Паскаль, Си и др.) уровней, предназначенных для перевода пользовательских программ на машинный язык.

ПТО обеспечивает автоматическую проверку работоспособности (тестирование) ЭВМ, диагностику, локализацию (определение места) неисправности и значительно снижают трудоемкость эксплуатации ЭВМ. ППП могут содержать упорядоченные наборы программ для решения типовых задач определенного класса (например, планово-экономических, информационно-логических и др.)

По задачам и функциям различные компоненты программного обеспечения делятся на две большие группы: общее и специальное ПО.

Общее ПО включает ОС и ПТО, специальное ПО - ППП для решения конкретных задач по отдельным отраслям профессиональной деятельности, библиотечку подпрограмм для выполнения часто встречающихся типовых операций (например, вычисление стандартных функций, операции над матрицами и др.)

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

Функции ОС

Современные ОС - широко распространенные системы - во многом похожи друг на друга. Прежде всего это определяется требованием переносимости программного обеспечения. Именно для обеспечения этой переносимости был принят POSIX (Portable OS Interface based on uniX) - стандарт, определяющий минимальные функции по управлению файлами, межпроцессному взаимодействию и т.д., которые должна уметь выполнять система.

Кроме того, за четыре с лишним десятилетия, прошедших с момента разработки первых ОС, сообщество программистов достигло определенного понимания того, что: - при разработке ОС возникает много стандартных проблем и вопросов; - для большинства из этих проблем и вопросов существует набор стандартных решений; - некоторые из этих решений намного лучше, чем все альтернативные.

По современным представлениям, ОС должна уметь делать следующее:

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

· Обеспечивать работу с устройствами долговременной памяти, такими как магнитные диски, ленты, оптические диски и т.д. Как правило, ОС управляет свободным пространством на этих носителях и структурирует пользовательские данные.

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

· Предоставлять некоторый пользовательский интерфейс. Слово некоторый здесь сказано не случайно - часть систем ограничивается командной строкой, в то время как другие на 90% состоят из средств интерфейса пользователя.

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа - дисковая операционная система MS DOS.

Более развитые ОС предоставляют также следующие возможности:

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

· Распределение ресурсов компьютера между задачами.

· Организация взаимодействия задач друг с другом.

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

· Организация межмашинного взаимодействия и разделения ресурсов.

· Защита системных ресурсов, данных и программ пользователя, исполняющихся процессов и самой себя от ошибочных и зловредных действий пользователей и их программ.

·

Трансляция программ

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

Транслятор — программа или техническое средство, выполняющее трансляцию программы. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т.д.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.

Язык процессоров (машинный код) обычно является низкоуровневым. Существуют платформы, использующие в качестве машинного язык высокого уровня (например, iAPX-432[5]), но они являются исключением из правила в силу сложности и дороговизны.

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

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

Достоинство компилятора: программа компилируется один раз и при каждом выполнении не требуется дополнительных преобразований. Соответственно, не требуется наличие компилятора на целевой машине, для которой компилируется программа. Недостаток: отдельный этап компиляции замедляет написание и отладку и затрудняет исполнение небольших, несложных или разовых программ.

В случае, если исходный язык является языком ассемблера (низкоуровневым языком, близким к машинному языку), то компилятор такого языка называется ассемблером.

Противоположный метод реализации — когда программа исполняется с помощью интерпретатора вообще без трансляции. Интерпретатор программно моделирует машину, цикл выборки-исполнения которой работает с командами на языках высокого уровня, а не с машинными командами. Такое программное моделирование создаёт виртуальную машину, реализующую язык. Этот подход называется чистой интерпретацией.

Достоинство чистого интерпретатора: отсутствие промежуточных действий для трансляции упрощает реализацию интерпретатора и делает его удобнее в использовании, в том числе в диалоговом режиме. Недостаток — интерпретатор должен быть в наличии на целевой машине, где должна исполняться программа. А свойство чистого интерпретатора, что ошибки в интерпретируемой программе обнаруживаются только при попытке выполнения команды (или строки) с ошибкой, можно признать как недостатком, так и достоинством.

 

Трансляция и интерпретация — разные процессы: трансляция занимается переводом программ с одного языка на другой, а интерпретация отвечает за исполнение программ. Однако, поскольку целью трансляции как правило является подготовка программы к интерпретации, то эти процессы обычно рассматриваются вместе. Например, языки программирования часто характеризуются как «компилируемые» или «интерпретируемые», в зависимости от того, преобладает при использовании языка компиляция или интерпретация. Причём практически все языки программирования низкого уровня и третьего поколения, вроде ассемблера, Си или Модулы-2, являются компилируемыми, а более высокоуровневые языки, вроде Python или SQL, — интерпретируемыми.

С другой стороны, существует взаимопроникновение процессов трансляции и интерпретации: интерпретаторы могут быть компилирующими (в том числе с динамической компиляцией), а в трансляторах может требоваться интерпретация для конструкций метапрограммирования (например, для макросов в языке ассемблера, условной компиляции в Си или для шаблонов в C++).

Более того, один и тот же язык программирования может и транслироваться, и интерпретироваться, и в обоих случаях должны присутствовать общие этапы анализа и распознавания конструкций и директив исходного языка. Это относится и к программным реализациям, и к аппаратным — так, процессоры семейства x86 перед исполнением инструкций машинного языка выполняют их декодирование, выделяя в опкодах поля операндов (регистров, адресов памяти, непосредственных значений), разрядности и т. п., а в процессорах Pentium с архитектурой NetBurst машинный код перед сохранением во внутреннем кэше вообще транслируется в последовательность микроопераций.

Fortran. ADA. COBOL

Фортра́н (Fortran) — первый реализованный язык программирования высокого уровня, правда, с одной небольшой оговоркой — для машин, построенных по классической схеме фон Неймана. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса (John Backus) в корпорации IBM. Через пару лет начались его коммерческие поставки. До этого программирование велось либо непосредственно в машинных кодах, либо на символических ассемблерах. Только с появлением Фортрана возникла профессия «программист». Название Fortran является аббревиатурой от FORmula TRANslator, то есть, переводчик формул.

Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана — большое количество написанных на нём программ и библиотек подпрограмм. Большинство таких библиотек является фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны.

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур; позволяет применять современные технологии программирования, в частности, ООП.

Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.

Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением).

 

А́да (Ada) — язык программирования, созданный в 1979—1980 годах в результате проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для встраиваемых систем (то есть систем управления автоматизированными комплексами, работающими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). Язык назван в честь Ады Лавлэйс.

Ада — это структурный, модульный, объектно-ориентированный язык программирования, содержащий высокоуровневые средства программирования параллельных процессов. Синтаксис Ады унаследован от языков типа Algol или Паскаль, но расширен, а также сделан более строгим и логичным. Ада — язык со строгой типизацией, в нём исключена работа с объектами, не имеющими типов, а автоматические преобразования типов сведены к абсолютному минимуму.

Для удовлетворения требованиям надёжности язык построен таким образом, чтобы как можно большее количество ошибок обнаруживалось на этапе компиляции. Кроме того, одним из требований при разработке языка была максимально лёгкая читаемость текстов программ, даже в ущерб лёгкости написания.

К 1990 году в мире существовало уже около 200 компиляторов, соответствовавших стандарту языка Ада. В 1995 году был принят новый стандарт Ады, известный как Ada95. В язык были введены средства объектного программирования. Кроме того, язык был дополнен более развитыми средствами для взаимодействия с программами, написанными на других языках.

В марте 2007 года опубликованы изменения в стандарте Ады. Они коснулись, в основном, возможностей объектно-ориентированного программирования: введены интерфейсы, принят обычный для большинства гибридных языков синтаксис вызова метода, внесён ещё ряд дополнений.

В настоящее время Ада достаточно прочно обосновалась в разработках больших встроенных систем повышенной надёжности, здесь у неё практически нет сильных конкурентов. Применение языка постепенно растёт, хотя и довольно медленно. По некоторым осторожным прогнозам, с удешевлением аппаратуры и распространением встроенных систем со сложным ПО рынок для программ на Аде может заметно вырасти, вырастет и использование языка.

 

Кобо́л (COBOL, COmmon Business Oriented Language), язык программирования третьего поколения (первая версия в 1959), предназначенный, в первую очередь, для разработки бизнес-приложений. Разработчиком первого единого стандарта Кобола являлась Грейс Хоппер.

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

Декомпозиция

Метод управления сложными системами известен уже очень давно: “Разделяй и властвуй”. Разделение программы на мелкие кусочки, каждый из которых может работать независимо, — вот первый шаг в борьбе со сложностью.

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







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.