Компьютеры, построенные на принципах фон Неймана 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Компьютеры, построенные на принципах фон Неймана




В середине 40-х проект компьютера, хранящего свои программы в общей памяти был разработан в Муровской школе электрических разработок (англ. The Moore School of Electrical Engineering) в Университете штата Пенсильвания (англ. The University of Pennsylvania). Подход, описанный в этом документе, стал известен как архитектура фон Неймана, по имени единственного из названных авторов проекта Джона фон Неймана, хотя на самом деле авторство проекта было коллективным. Архитектура фон Неймана решала проблемы, свойственные компьютеру «Эниак», который создавался в то время, за счёт хранения программы компьютера в его собственной памяти. Информация о проекте стала доступна другим исследователям вскоре после того, как в 1946 году было объявлено о создании «Эниака». По плану предполагалось осуществить проект силами Муровской школы в машине «EDVAC», однако до 1953 года «EDVAC» не был запущен из-за технических трудностей в создании надёжной компьютерной памяти. Другие научно-исследовательские институты, получившие копии проекта, сумели решить эти проблемы гораздо раньше группы разработчиков из Муровской школы и реализовали их в собственных компьютерных системах. Первыми 5 компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

 


  • «Манчестерский Марк I». Прототип («Манчестерское дитя») Университет Манчестера (англ. The University of Manchester) Великобритания, 21 июня1948 года;

  • «EDSAC». Кембриджский университет (англ. The Cambridge University). Великобритания, 6 мая 1949 года;

  • «BINAC». США, апрель или август 1949 года;

  • «CSIR Mk 1». Австралия, ноябрь 1949 года;

  • «SEAC». США, 9 мая 1950 года.

· В каждой области науки и техники существуют некоторые фундаментальные идеи или принципы, которые определяют ее содержание и развитие. В компьютерной науке роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга – американским математиком и физиком Джоном фон Нейманом(1903-1957) и советским ученым Сергеем Лебедевым(1902-1974). Эти принципы определяют основные организации компьютера.

· Считается, что первый электронный компьютер ЭНИАК был изготовлен в США в 1946 году. ЭНИАК состоял из 18000 электронных ламп и 1500 реле и весил 30 тонн. Он и мел 20 регистров, каждый из которых мог содержать 10-разрядное десятичное число. Блестящий анализ сильных и слабых сторон проекта ЭНИАК был дан в отчете Принстонского института перспективных исследований «Предварительное обсуждение логического конструирование электронного вычислительного устройства» (июнь 1946 года). Этот отчет, составленный выдающимся американским математиком Джоном фон Нейманом и его коллегами по Принстонскому институту Г.Голдстайном и А.Берксом, представлял проект нового электронного компьютера. Идеи, высказанные в этом отчете, известны под названием «Неймановских Принципов».

· Говоря об основоположниках теоретической информатики, нельзя не упомянуть о двух научных достижениях: алгебре логики и теории алгоритмов. Алгебра логики была разработана в середине 19-го века английским математиком Джорджем Булем и рассматривалась им в качестве метода математизации формальной логики. Разработка электронных компьютеров на двухпозиционных электронных элементах создала возможным широкое использование «булевой логики» для проектирования компьютерных схем. В первой половине 30-х годов 20-го столетия появились математические работы, в которых была доказана принципиальная возможность решения с помощью автоматов любой проблемы, поддающейся алгоритмический обработке. Данное доказательство содержалось в опубликованных в 1936 году работах английского математика Э.Поста. (Джордж Буль (1815-1864), Алан Тьюринг (1912-1954)).

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

· Сущность «Неймановских Принципов» состояла в следующем:

· 1.Компьютер включает связанные между собой Процессор (арифметическое устройство т устройство управления), Память и Устройство ввода-вывода.

· 2.Компьютеры на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.

· 3.Программа, так же как и числа, с которыми оперирует компьютер, записываются в двоичном коде, то есть по форме представления команды и числа однотипны.

· 4.Программа должна размещаться в одном из блоков компьютера – в запоминающем устройстве, которое имеет произвольный доступ. Программа и данные могут находиться в общей памяти (принстонская архитектура).

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

· 6. Арифметико-логическое устройство (АЛУ) компьютера конструируется на основе схем, выполняющих операцию сложения, сдвига, логическую операцию. Помимо результата операции, АЛУ формирует ряд признаков результата (флагов), которые могут анализироваться при выполнении команда условной передачи управления.

· 7. В компьютере используется параллельный принцип организации вычислительного процесса.

· 8. Централизованное последовательное управление при выполнении команд.

· 9. Линейная структура адресации памяти.

· 10. Низкий уровень машинного языка. Отсутствует микропрограммируемость.

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

 

Структурная схема типовой ЭВМ

 

6. ГАРВАРДСКАЯ АРХИТЕКТУРА

 

Гарвардская архитектура — архитектура ЭВМ, отличительным признаком которой является раздельное хранение и обработка команд и данных. Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете.

История

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

Классическая гарвардская архитектура

Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий: выборку двух операндов, выбор инструкции и её выполнение, и, наконец, сохранение результата. Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена «Марк I» для хранения инструкций использовалась перфорированная лента, а для работы с данными — электромеханические регистры. Это позволяло одновременно пересылать и обрабатывать команды и данные, благодаря чему значительно повышалось общее быстродействие.

Модифицированная гарвардская архитектура

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

Такой подход применяется в современных сигнальных процессорах. Еще дальше по пути уменьшения стоимости пошли при создании однокристалльных ЭВМ — микроконтроллеров.

В них одна шина команд и данных применяется и внутри кристалла.

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

Расширенная гарвардская архитектура

Часто требуется выбрать три составляющие: два операнда и инструкцию (в алгоритмах цифровой обработки сигналов это наиболее распространенная задача в БПФ и КИХ, БИХ фильтрах). Для этого существует кэш-память. В ней может храниться инструкция — следовательно, обе шины остаются свободными и появляется возможность передать два операнда одновременно. Использование кэш-памяти вместе с разделёнными шинами получило название «Super Harvard Architecture» («SHARC») — расширенная Гарвардская архитектура.

Примером могут служить процессоры «Analog Devices»: ADSP-21xx — модифицированная Гарвардская Архитектура, ADSP-21xxx(SHARC) — расширенная Гарвардская Архитектура.

Гибридные модификации с архитектурой фон-Неймана

Существуют гибридные модификации архитектур, сочетающие достоинства как Гарвардской, так и фон-Неймановской архитектур. Современные CISC-процессоры обладают раздельной кэш-памятью 1-го уровня для инструкций и данных, что позволяет им за один такт получать одновременно как команду, так и данные для её выполнения, то есть процессорное ядро, формально, является гарвардским, но с программной точки зрения выглядит как фон-Неймановское, что упрощает написание программ. Обычно в данных процессорах одна шина используется и для передачи команд, и для передачи данных, что упрощает конструкцию системы. Современные варианты таких процессоров могут иногда содержать встроенные контроллеры сразу нескольких разнотипных шин для работы с различными типами памяти — например, DDR RAM и Flash. Тем не менее, и в этом случае шины, как правило, используются и для передачи команд, и для передачи данных без разделения, что делает данные процессоры еще более близкими к фон-Неймановской архитектуре при сохранении плюсов Гарвардской архитектуры.

 

Использование

Первым компьютером, в котором была использована идея гарвардской архитектуры, был Марк I. Гарвардская архитектура используется в ПЛК и микроконтроллерах, таких, как Atmel AVR, Intel 4004, Intel 8051.

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

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

Функции ОС по управлению памятью

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

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

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

Функциями ОС по управлению памятью в мультипрограммной системе являются:

отслеживание свободной и занятой памяти;

выделение памяти процессам и освобождение памяти по завершении процессов;

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

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

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

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

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

8. Понятие процесса

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

Важная особенность процесса: это единица вычислений, которая должна выполняться последовательно, т.е. каждый процесс имеет свой последовательный поток управления (control flow) – последовательность выполняемых процессом команд. Многие большие задачи успешно решаются путем параллельного выполнения процессов, но об этом речь пойдет немного позже.

Процесс при его создании и управлении им операционной системой включает следующую основную информацию:

  • Счетчик команд (program counter - PC) – адрес текущей выполняемой команды процесса; обычно хранится в специальном системном регистре аппаратуры;
  • Стек (stack) – резидентная область основной памяти, выделяемая операционной системой при создании процесса, в которой хранятся локальные данные процедур процесса, их параметры (аргументы) и связующая информация между ними, необходимая для организации вычислений. При запуске очередной процедуры в стеке отводится запись активации (activation record),называемая также стековым фреймом (stack frame) и областью локальных данных (local data area) для хранения локальных данных текущего поколения (запуска) процедуры. По окончании ее выполнения запись активации удаляется из стека;

Секция данных (data section) – статическая (постоянно выделенная, неизменного размера) область основной памяти, выделяемая операционной системой процессу, в которой хранятся его глобальные переменные, массивы, структуры, объекты.

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

Состояния процесса

При исполнении процесс может изменять свое состояние следующим образом:

Новый (new):Процесс создается операционной системой, но еще не начал выполняться.

Исполняемый (running):Исполняются команды процесса на процессоре или процессорах компьютерной системы под управлением ОС.

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

Готовый к выполнению (ready):Процесс ожидает получения ресурсов процессора для его исполнения. В состояние готовности к выполнению процесс попадает обычно либо при его создании, либо после завершения ввода-вывода (из состояния ожидания).

Завершенный (terminated):Исполнение процесса завершено.

Диаграмма состояний процесса представлена на рис. 8.1.

Рис. 8.1. Диаграмма состояний процесса.

Как видно из схемы, новый процесс, созданный в системе, проходит стадию допущен (admitted) – включается операционной системой в очередь всех процессов в системе, после чего ОС переводит его в состояние готовности к выполнению. Отметим сразу, что очередь готовых к выполнению процессов – одна из наиболее часто используемых системных структур для управления процессами. Из состояния готовности в состояние выполнения процесс переводится планировщиком ОС в результате диспетчеризации – выделения кванта процессорного времени. При выполнении процесс может быть прерван (по таймеру, в результате ошибки и т.п.), а после обработки прерывания операционной системой переходит снова в состояние готовности к выполнению. Если в процессе выполняется синхронный ввод-вывод, либо процесс должен ожидать наступления некоторого события (например, определенного момента времени), процесс переходит в состояние ожидания. При завершении ввода-вывода или при наступлении ожидаемого события процесс не получает сразу же квант процессорного времени, а переходит в состояние готовности к выполнению. Процесс переходит в завершенное состояние при завершении работы программы процесса - например, в результате системного вызова exit(c), где c – код завершения. Если c = 0,процесс считается благополучно завершенным.

Блок управления процессом

Блок управления процессом (Process Control Block – PCB) – системная структура данных, используемая ОС для управления процессом, содержащая следующую информацию, ассоциируемую с каждым процессом:

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

Структура блока управления процессом изображена на рис. 8.2.


Рис. 8.2. Блок управления процессом (PCB).

 

 

ПОНЯТИЕ ФАЙЛОВОЙ СИСТЕМЫ



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 417; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.211.66 (0.031 с.)