Мегаобучалка Главная | О нас | Обратная связь


Л Е К Ц И Я 6. Эволюция языков программирования



2019-11-21 250 Обсуждений (0)
Л Е К Ц И Я 6. Эволюция языков программирования 0.00 из 5.00 0 оценок




Программа это логически упорядоченная последовательность команд, необходимая для управления компьютером

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

Написать программу в машинном коле достаточно сложно и поэтому для представления алгоритма в виде понятном компьютеру служат языки программирования

Языки программирования это искусственные языки, они отличаются от естественных ограниченным достаточно малым числом слов, значение которых понятно компьютеру и очень строгими правилами записи команд.

Совокупность требований для записи команд образует синтаксис языка, а смысл каждой команды - семантику языка.

Нарушение формы записи программы приводит к синтаксической ошибке, а правильно написанная программа, но не отвечающая алгоритму приводит к семантической ошибке.

Процесс поиска ошибок в программе называют тестированием

Процесс устранения ошибок - отладкой программы

УРОВНИ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня

Низкий уровень это значит, что операторы близки к машинному коду и ориентированы на конкретный тип процессора.

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

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

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

Языки программирования высокого уровня ближе и понятнее человеку, чем компьютеру

В программах, созданных на языках высокого уровня, особенности компьютерных систем не учитываются

Перенос программ на уровне исходных текстов на другие платформы не создаёт трудности, если в них создан транслятор этого языка.

Программы разрабатывать на языках высокого уровня проще, а ошибок допускается меньше

Компилируемые и интерпретируемые языки программирования

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

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

ЭТАПЫ ПРОЦЕССА КОМПИЛЯЦИИ

1) Лексический анализ - на этом этапе последовательность символов исходного файла преобразуется в последовательность лексем

Лексема - это допустимый символ или последовательность допустимых символов или последовательность допустимых символов, имеющая смысл для компилятора

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

3) симпатический анализ.

Дерево разбора обрабатывается с целью установления его семантики, то есть смысла. Результат обычно называется промежуточным представлением или кодом

4) оптимизация

Выполняется удаление из лишних конструкций и упрощение кода с сохранением его смысла

5) генерация кода

Из промежуточного представления выдаётся код на целевом языке

После всех перечисленных этапов компиляции происходит компоновка.

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

Связывание с библиотеками выполняется редактором связи или компоновщиком это процесс компоновки

ПОКОЛЕНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Языки программирования принято делить на 5 поколений

Каждый из последующих поколений по своей функциональной мощности качественно отличается от предыдущей

1)языки созданный в 40-50-ые года, это был первый язык ассемблера, созданный по принципу одна инструкция одна строка

 

2)конец 50-ых начало 60-ых. Был создан символический ассемблер, позволяя

писать программы без привязки к конкретным адресам памяти. В него было введено понятие переменной, и он по сути стал первым языком программирования со своим компилятором. Скорость создания и эффективность программ возросли

3) 60-ые годы. Это поколение отличается относительной простотой, независимостью от конкретного компьютера и возможностью использования мощных синтаксических конструкций. Это повысило производительность труда программистов

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

5)(середина 90-х годов). К ним относятся системы автоматического создания прикладных программ с помощью визуальных средств разработки без знания программирования. Главная идея, которая закладывается в эти языки - это возможность автоматического формирования результирующего текста на универсальных языках программирования, которые потом требуется откомпилировать. Инструкции вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием.

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

Фортран (создан в 50-х для программирования научно-технических задач)

Кобол(конец 60-х, для решения задач обработки больших объёмов данных)

Алгол (60-е, многоцелевой расширенный язык в котором присутствуют блочная структура программы и динамическое разделение памяти)

Бейсик (середина 60-х, специализированный язык для начинающих)

PL1 (1963-66 гг., приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач), Pascal (1968-71 гг., в его основу положен подход от общей задачи к частным, основными принципами которой обладает Паскаль - это структурное программирование, которое основано на использовании код-программ и независимых структур данных. Программирование сверху вниз. Задача делится на простые, самостоятельно решает задачи, и затем выстраивается полное решение исходной задачи сверху вниз), Ада (1979, назван в честь Ады Лаблейс. Этот язык отличается модульностью конструкции), C (начало 70-х. Особенность языка: различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. В языке C нет понятие "процедуры", а использование код-программ основано на понятии функции (метода), которая может сочетать в себе возможности процедуры).

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

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

Принципы ООП:

Инкапсуляция - объединение данных и свойственных им процедур обработки в одном объекте

Класс - шаблон, на основе которого может быть создан конкретный программный объект. Он описывает свойства и методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.

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

Полиморфизм. Рождённые объекты обладают информацией о том, какие методы они должны использовать, в зависимости

· и от того, в каком месте цепочки они находятся.

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

Наиболее современные языки этого класса - C++ и Java. Объектно-ориентированные системы визуального проектирования: Visual Basic, Visual C++.

ДЕКЛАРАТИВНОЕ ПРОГРАММИРОВАНИЕ

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

Логическое программирование - это программирование в терминах логики. В 1973 г. создан язык искусственного интеллекта - Prologue. Программа на Прологе строится из последовательностей фактов и правил, затем формулируется утверждение, которое Пролог пытается доказать с помощью правил.

 

Л Е К Ц И Я 7. Программное обеспечение. Технологии программирования.

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

Система программирования - это комплекс средств, предназначенных для создания и эксплуатации программ на конкретном языке программирования на ЭВМ определённого типа.

СРЕДСТВА ДЛЯ СОЗДАНИЯ ПРОГРАММ

Традиционными средствами разработки программ являются алгоритмические языки программирования. Для создании программ на выбранном языке нужно иметь следующие компоненты:

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

Транслятор - основа систем программирования. Транслятор языков программирования обеспечивает перевод исходного текста программы на машинный язык. Они бывают двух типов: интерпретаторы и компиляторы. Интерпретатор обеспечивает последовательность в синхронный перевод и выполнение каждой строки программы. При каждом запуске программы выполнение всей процедуры полностью повторяется. Достоинство интерпретатора - удобство отладки программы в интерактивном режиме. Недостаток - малая скорость работы. Компилятор переводит исходный текст программы в машинный код. Если в тексте программы нет синтаксических ошибок, то машинный код будет создан, но это, как правило, неработоспособный код, ибо в этой программе не хватает подпрограмм стандартной функции, поэтому компилятор выдаёт промежуточный код, который называется объектным кодом и имеет код расширения .obj.

Редактор связи - программа, которая объединяет объектные модули отдельных частей программы и добавляет к ним стандартные модули подпрограмм стандартных функций. Такие файлы имеют расширение .lib. Файлы содержатся в библиотеках, поставляемых вместе с компилятором. Этот редактор объединяет их в единую программу, готовую к исполнению. Этот файл имеет самостоятельное значение и может работать под управлением той ОС, в которой он создан.

ИНТЕРГРИРОВАННЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ

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

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

Microsoft Visual Studio - это линейка продуктов Микрософта, включающих в себя интегрированную среду разработки программного обеспечения и ряд других экспериментальных средств.

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

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

В программирование введено понятие подпрограммы - это набор операторов, выполняющих нужные действия и не зависящих от других частей исходного кода. Программа разбивается на множество подпрограмм, каждая из которых выполняет одно из действий исходного кода. Комбинируя эти блоки, удаётся сформировать итоговый алгоритм - уже не из операторов, а из законченных блоков. Обращаться к блокам надо по названиям, а название несёт смысловую нагрузку. Например, call Summa - вызов подпрограммы с именем Summa. При структурном подходе составления алгоритмов и программ используются три основных типа алгоритмов: условные, циклические алгоритмы и подпрограммы.

ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

Следует отказаться от оператора безусловного перехода goto().

Любая программа строится из трёх базовых управляющих конструкций: последовательность, ветвление, цикл. Последовательность - однократное выполнение операций в том порядке, в котором они записаны в тексте программы. Ветвление - однократное выполнение 2 или более операций в зависимости от выполнения заданного условия. Цикл - многократное исполнение одной и той же операции до тех пор, пока выполняется заданное условие - условие выполнения цикла.

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

Повторяющиеся фрагменты программы можно оформить в виде подпрограмм - процедур и функций.

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

Все перечисленные конструкции должны иметь один вход и один выход.

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

НИСХОДЯЩЕЕ ПРОГРАММИРОВАНИЕ

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

ЧТЕНИЕ СТРУКТУРИРОВАННЫХ ПРОГРАММ

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

· торой - сумма, а в скобках указываются реальные параметры a и b. Обращение из главной программы к процедуре осуществляется по имени программы процедуры с перечнем в скобках параметров, которые ей передаются. Например, Call Summa (x, y) - обратиться к процедуре суммы и передать ей x и y - фактические параметры. При выполнении процедуры или функции формальные параметры временно заменяются на фактические.

ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ:

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

Формальное построение модели задачи. На этом этапе составляется формальная модель решения задачи. Например, базы данных, адекватные оригиналы модель объектов и потоков информации.

Математическая модель решения задачи, её формализация. Описательная модель записывается в форме какого-нибудь формального языка, например, математического.

Построение алгоритма. Процесс обработки данных разбивается на отдельные самостоятельные блоки, и определяется последовательность выполнения этих блоков.

Составление программы. На этом этапе алгоритм записывается на каком-либо конкретном языке программирования.

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

Жизненным циклом разработанного программного продукта является весь период от анализа требования до внедрения и сопровождения. Главным качеством любого программного продукта является его надёжность.

Л Е К Ц И Я 8. Операционные системы.

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

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

ОС как виртуальная машина - это когда пользователю нет необходимости знать детали внутреннего устройства компьютера.

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

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

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

ЭВОЛЮЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

1945-55 гг. Ламповые машины. Операционные системы отсутствовали.

1955-65 гг. Компьютеры на основе транзисторов. Пакетная ОС.

Начало 60-х-80-е гг. Компьютеры на основе центральных микросхем. Первые многозадачные операционные системы.

80-е гг.-наши дни. Персональные компьютеры. Классические сетевые и распределённые системы.

Появление мультипрограммирования требует развития строения вычислительной системы. Большую роль здесь играет аппаратная поддержка. Особенности:

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

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

Интерфейс между прикладной программой и ОС был организован при помощи набора системных вызовов. Организация очереди из заданий в памяти и вид

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

Основные функции, которые выполняли классические ОС в процессе эволюции:

Планирование заданий и использование процессора

Обеспечение программ средствами коммуникации и синхронизации

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

Управление файлами системы

Управление вводом/выводом

Обеспечение безопасности

Каждая из функций обычно реализована в виде подсистемы, являющаяся структурным компонентом ОС.

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

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

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

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

КЛАССИФИКАЦИЯ ОС

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

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

Многопроцессорная обработка. Многопроцессорные системы состоят из 2 или более центральных процессов, осу

составляющих параллельное выполнения команд. Многопроцессорные ОС разделяют на симметричные и асимметричные. В симметричных ОС на каждом процессоре функционирует одно и то же ядро и задача может быть выполнено на любом процессе. В асимметричные процессоры не равноправны. Обычно существуют главные процессор и подчинённая загрузку и характер работы которых определяет главный процессор.

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

Л Е К Ц И Я 9. Вычислительные сети. Эволюция вычислительных сетей.

СИСТЕМЫ ПАКЕТНОЙ ОБРАБОТКИ

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

МНОГОТЕРМИНАЛЬНЫЕ СИСТЕМЫ. ПРООБРАЗ СЕТИ.

По мере удешевления процесса в начале 60-х появились новые способы организации вычислительного процесса, которые позволили учесть интересы пользователей. Начали развиваться интерактивные, многотерминальные системы разделения времени. В каких системах компьютер отдавался в распоряжение сразу нескольким пользователям. Каждый пользователь получал в своё распоряжение терминал, с помощью которого он мог вести диалог с компьютером. Время реакции вычислительной системы было достаточно мало для того, чтобы пользователю было не слишком заметна параллельная работа с компьютером других пользователей. Разделяя таким образом компьютер, пользователи получили возможность за сравнительно небольшую плату пользоваться преимуществами в компьютеризации. Терминалы, выйдя за пределы вычислительного центра, рассредоточились по всему предприятию. Хотя вычислительная мощь оставалась полностью централизованной, некоторые функции, такие, как ввод и вывод данных, стали распределёнными. Такие многотерминальные централизованные читаемы внешне уже были очень похожи на локальные вычислительные сети. Пользователь мог получить доступ к общим файлам и периферийным устройствам. При этом у него поддерживалась полная иллюзия единоличного владения компьютером, т.к. он мог запустить нужную ему программу в любой моменты и сразу же получить ответ. Многотерминальные системы, работающие в режиме разделения времени, стали первым шагом на пути создания локальных вычислительных сетей. Хотя многотерминальные системы и имели внешние черты распределённых систем, они всё ещё сохраняли централизованный характер обработки данных. В этот период. Был справедлив закон Броша, который эмпирически отражал уровень технологий того времени. В соответствии с этим знакомя производительность компьютера была пропорциональна квадрату его стоимости. Отсюда следовало, что одну и ту же сумму выгоднее было купить одну мощную машину, нежели две менее мощных. Их суммарная мощность оказывалась намного ниже мощности дорогой машины.

ПОЯВЛЕНИЕ ГЛОБАЛЬНЫХ СЕТЕЙ

Потребность в соединении компьютеров, находящихся на большом расстоянии друг от друга, вполне назрела к тому времени (до 70-х годов). Всё началось с решения простой задачи - доступа к компьютеру с терминалов, удаленных от него на многие тысячи километров. Терминалы соединялись с компьютером через телефонные сети, с помощью модема. Такие сети позволяли многочисленным пользователям получать удалённый доступ к разделяемым ресурсам нескольких мощных компьютеров класса "Супер-Эвм". Затем появились системы, в которых наряду с удалёнными соединениями типа "терминал-компьютер" были реализованы и удалённые связи типа "компьютер-компьютер". Компьютеры получили возможность обмениваться данными в автоматическом режиме, что и является базовым механизмом любой вычислительной сети. Используя

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

ПРЕВЫЕ ЛОКАЛЬНЫЕ СЕТИ.

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

СОЗДАНИЕ СТАНДАРТНЫХ ТЕХНОЛОГИЙ ЛОКАЛЬНЫХ СЕТЕЙ

К середине 80-х положение дел в локальных сетях стало кардинально меняться. Утвердились стандартные технологии объединения компьютеров в сеть. Ethernet, Arcnet, Token Ring. Стимулом для их развития послужили персональные компьютеры. Они явились идеальными элементами для построения сетей. С одной стороны, они были достаточно мощными для работы программного обеспечения, а с другой нуждались в объединении своей вычислительной мощности для разделения других задач, а также для разделения других периферийных устройств и дисковых массивов. ПК стали преобладать в локальных сетях - не только в качестве клиентских компьютеров, но и в качестве центров хранения и обработки данных, т.е. сетевых серверов. Для создания сети достаточно было приобрести сетевые адаптеры соответствующего стандарта, стандартный кабель, присоединить адаптер к кабелю стандартными разъёмами и установить на компью



2019-11-21 250 Обсуждений (0)
Л Е К Ц И Я 6. Эволюция языков программирования 0.00 из 5.00 0 оценок









Обсуждение в статье: Л Е К Ц И Я 6. Эволюция языков программирования

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (250)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.019 сек.)