Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osi.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
316.33 Кб
Скачать
  1. Эволюция развития операционных систем.

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

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

“Первое поколение” операционных систем было вызвано к жизни упомянутой выше неэффективностью, а также другими соображениями. Эти дополнительные факторы включали: затраты на управление оборудованием; наличие других языков; развитие библиотечных программ и вспомогательных средств, в особенности относящихся к операциям ввода-вывода; неудобство трансляции в абсолютную программу, которая требовала, чтобы все программные секции и подпрограммы, необходимые для прогона, транслировались вместе первоначально и всегда при внесении изменений в любую из программ. Первые пакетные системы автоматизировали стандартную последовательность “загрузка/трансляция/загрузка/ выполнение” с помощью центральной управляющей программы, которая отыскивает и загружает требуемые системные программы (ассемблер, компилятор, загрузчик или библиотечные подпрограммы), а также управляет переходами от задания к заданию. Языковые трансляторы были переписаны для создания программ в перемещаемой, а не в абсолютной форме. Были разработаны связывающие загрузчики, позволяющие смешивать колоды, содержащие программы в исходной и перемещаемой объектной форме, затем также стало возможным хранить и библиотечные программы в перемещаемой объектной форме. Со стороны человека-оператора требовалось управление физическими устройствами, предназначенными для ввода и вывода пакетов, обслуживание нестандартных заданий и восстановление системы при отказах. Автор задания не имел непосредственного доступа к процессу выполнения его задания. В этих ОС защита была самой трудной и насущной проблемой: система могла быть легко разрушена самопроизвольно или пользователем, кроме того, какой-либо пользователь мог легко прочитать в составе своего задания следующее задание в пакете. Распределение ресурсов, в первую очередь основной памяти и устройств ввода-вывода, было в большей степени задачей языковых процессоров и программ пользователей, нежели ОС.

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

В период с 1959 до 1963 гг. несколько значительных аппаратных разработок получили широкое распространение и стимулировали развитие ОС. Важным аппаратурным новшеством был канал данных — простейшая ЭВМ со своей собственной системой команд, регистрами и устройством управления, которое управляет связью и передачей данных между основной ЭВМ и устройствами ввода-вывода. При получении запроса на ввод-вывод от центрального обрабатывающего устройства (ЦОУ) канал выполняет операцию ввода-вывода асинхронно и параллельно с продолжающейся работой ЦОУ; становится возможным совмещение во времени операций ввода-вывода и ЦОУ. Основная память разделяется ЦОУ и каналом, поскольку она хранит программы и данные для них. Вначале ЦОУ могло лишь опрашивать состояние канала, но вскоре стало ясно, что можно повысить эффективность, если бы канал с целью передачи сообщения мог также прерывать работу ЦОУ. в большинстве случаев при завершении операции ввода-вывода.

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

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

По мере пополнения и усложнения задач ОС (воспринимаемой как “машина” типичным пользователем, который все больше отдаляется от реальной аппаратуры) оказалось необходимым определить более систематическим способом характеристики заданий и требований к ним. Для этой цели были введены языки управления заданиями.

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

С 1962 по 1969 г. в больших ОС стал почти повсеместно использоваться новый метод обработки заданий —мультипрограммирование, был также разработан новый способ выполнения вычислений, разделение времени, как альтернатива пакетной обработке. Большие дисковые устройства с быстрым доступом обеспечили непосредственно управляемую память для систем и библиотечных программ пользователей, а также для ожидающих обработки заданий пользователей. Во многие ЭВМ были введены аппаратные средства защиты команд и памяти; в некоторых больших машинах появились системы основной памяти с аппаратными средствами настройки адресов, которые допускали реализацию большой “виртуальной” памяти; стали более распространенными мультипроцессорные конфигурации, Проблемы распределения ресурсов и защиты стали более острыми и трудноразрешимыми в мультипрограммной среде, где много процессов могут одновременно запрашивать как совместное, так и монопольное использование ресурсов системы, часто должны передавать сигналы друг другу и могут являться потенциально “злонамеренными” или ошибочными. Именно в этот период исследование операционных систем стало одним из главных направлений в области вычислительной техники.

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

- выявление примитивов ОС для планирования ресурсов и процессов, которые могли бы быть реализованы с помощью аппаратуры, микропрограмм или стандартного программного обеспечения;

- человеко-ориентированные языки. управления заданиями;

- языки и системы, обеспечивающие параллелизм;

- подсистемы для измерения действия ОС;

- более универсальные схемы защиты.

Важный период развития вычислительных машин относится к началу 60-х – 1980 г. Для повышения эффективности использования процессорного времени вводится прием подкачки-откачки данных или spooling (сокращение от Simultaneous Peripheral Operation On Line) . Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]