Введение
1. Понятие и
эволюция операционных систем
1.1.
Определение операционной системы
1.2.
История развития операционных систем
Введение
Нарастающие
темпы компьютеризации уже приблизили время, когда в контакте с компьютерами
оказываются не только относительно немногочисленные профессионалы по обработке
информации, а практически все члены общества. Контакт с компьютером - это
контакт с его программным обеспечением и, прежде всего, с операционной системой
(ОС). Именно она формирует интерфейс между аппаратурой компьютера и человеком,
причем задача создателей ОС состоит в том, чтобы сделать этот интерфейс, как
теперь принято говорить, как можно более дружественным.
Свойства
ОС зачастую оказываются не менее важными, чем свойства аппаратуры. Известны
случаи, когда переход с одной ОС на другую на одной и той же машине приводил
почти к пятикратному ускорению разработки программ.
На
"голой” машине в современном мире не работает практически никто, и именно это
определяет интерес к операционным системам.
В
1 модуле вводится понятие "операционная система”, приводятся факты из истории
развития операционных систем и обсуждаются основные характеристики операционных
систем. Модуль 2 рассматривает архитектуру вычислительной системы и выделяет
обобщенный состав и функции операционной системы. В модуле 3 даются понятия
процесса, перехода процесса из состояния в состояние, прерывания, переключения
контекста, вводятся различные концепции, связанные с управлением процессами, и
рассматривается организация прерываний в различных архитектурах ЭВМ. В модуле 4
введено понятие асинхронности. Здесь обсуждаются проблемы, возникающие в случае
совместного доступа к разделяемым ресурсам, а также описаны различные способы
взаимоисключения,— как аппаратные, так и программные,— обеспечивающие решение
этих проблем. Рассматриваются примитивы взаимоисключения, семафоры и мониторы,
и то, каким образом их можно использовать для решения классических проблем
параллелизма; приведено описание задачи "читатели и писатели”, реализуемое при
помощи рассмотренных средств. Здесь же объясняется, что такое тупик (дедлок),
при котором выполнение различных процессов не может продолжаться - поскольку
они ожидают событий, которые никогда не произойдут; представлены различные
средства решения этой проблемы. В модуле 5 обсуждаются различные проблемы
управления памятью в системах физической (реальной) памяти, в модуле 5 -
виртуальной памяти. Прослеживается развитие систем реальной памяти - от систем,
где вся память предоставлялась в распоряжение одного пользователя, до мультипрограммных
систем с различными видами распределия памяти, описываются организация и
управление виртуальной памятью. В модуле 5 объясняется концепция виртуальной
памяти и показано, каким образом благодаря применению методов поблочного
отображения, страничной организации и сегментации памяти можно уменьшить объем
информации отображения. Приводится подробное описание реализации виртуальной
памяти и преобразования адресов в системах со страничной организацией и
сегментацией памяти и обсуждаются различные стратегии управления системами
виртуальной памяти. Рассматриваются стратегии вталкивания, размещения и
выталкивания данных, причем обсуждаются стратегии вталкивания по требованию и
упреждающего вталкивания. Основное внимание в этой главе уделяется стратегиям
выталкивания (подкачки) страниц; рассматриваются принцип оптимальности и стратегии
выталкивания страниц. В модуле 6 речь идет об управлении процессорами, в
частности о проблемах планирования загрузки процессоров и о мультипроцессорном
режиме. Основное внимание сосредоточено на стратегиях планирования; здесь
обсуждается планирование на верхнем уровне, промежуточном и нижнем уровне, цели
и критерии планирования, приоритетное планирование, статические и динамические
приоритеты, "заслуженные” или "купленные” приоритеты, а также планирование по
предельному сроку. Представлены различные алгоритмы планирования. В модуле 7
рассматривается управление периферийными устройствами в различных архитектурах
ЭВМ и организация программного обеспечения ввода-вывода.Модуль 8 посвящена
подсистеме управления данными. Рассматриваются логический и физический аспекты
управления файлами, способы организации и управления внешней памятью. В модуле
9 рассматриваются современные концепции и технологии проектирования
операционных систем. Формулируются требования, предъявляемые к современным ОС,
такие как расширяемость, переносимость, совместимость, безопасность. Большое
внимание уделяется описанию различных тенденций структурного построения
ОС.Модуль 10 описывает характеристики и области применения современных
операционных систем UNIX и Windows NT, соответственно.
Понятие и эволюция операционных систем
Операционная
система - неотъемлемая часть каждой современной ЭВМ и предназначена для организации
и управления работой ЭВМ, в том числе:
- Операционная
система (ОС) предназначена для обеспечения удобства управления компьютером
и сокрытия от пользователей и прикладных программ множества ненужных им
деталей его функционирования. Например, для организации чтения блока
данных с гибкого диска программист должен использовать 16 различных
команд, каждая из которых требует 13 параметров, таких как номер блока на
диске, номер сектора на дорожке и т. п.
- Операционная
система - это интерфейс между аппаратной частью и прикладными программами,
с одной стороны, и пользователем ЭВМ - с другой. Это наиболее важная
функция любого компьютера. (В настоящее время c помощью специальных
компонентов ОС (драйверов) осуществляется управление и доступ к элементам
аппаратного обеспечения компьютера). С помощью процедур ОС, обеспечивающих
графический (или командный) интерфейс выполняется взаимодействие с
пользователем операционной системы и прикладных программ.
ОС
предоставляет пользователю некоторую расширенную или виртуальную машину,
которую легче программировать и с которой легче работать, чем непосредственно с
аппаратурой, составляющей реальную машину.
Основные функции управления:
- управление
ресурсами ЭВМ (администрирование ресурсов) такими как процессоры (если их
больше 1), оперативная память (ОП), устройства ввода вывода;
- обеспечение
вычислительных системных услуг прикладным программам (Application
program interface - АРI);
- организация
эффективного вычислительного процесса на ЭВМ в различных типах ОС (системы
разделения времени, системы реального времени, системы пакетной обработки).
Это
набор программ (обычных и микро), которые обеспечивают возможность
использования аппаратуры компьютера. При этом аппаратура предоставляет сырую
вычислительную мощность, а задача операционной системы состоит в предоставлении
аппаратуры для пользователя в удобном для него виде.
Главные
цели разработчиков операционной системы:
1. Эффективное
использование всех компьютерных ресурсов.
2. Повышение
производительности труда программистов.
3. Простота,
гибкость, эффективность и надежность организации вычислительного процесса.
4. Обеспечение
независимости прикладных программ от аппаратного обеспечения (АО).
Современные
вычислительные системы состоят из процессоров, памяти, таймеров, дисков, накопителей
на магнитных лентах (МЛ), сетевой коммуникационной аппаратуры, принтеров и
других устройств. Функцией ОС является распределение процессоров, памяти,
устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна
управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить
максимальную эффективность ее функционирования. Критерием эффективности может
быть, например, пропускная способность или реактивность системы. Таким образом,
ОС реализует:
- интерфейс
пользователя (команды в MS DOS, UNIX; графический интерфейс в ОС Windows);
- разделение
аппаратных ресурсов между пользователями (в многопользовательской и многозадачной
ОС);
- работу
в локальных и глобальных сетях;
- возможность
работы с общими данными в режиме коллективного пользования;
- планирование
доступа пользователей к общим ресурсам;
- эффективное
выполнение операций ввода-вывода;
- восстановление
данных и вычислительного процесса в случае ошибок.
Для
реализации управления ресурсами разные ОС используют различные алгоритмы, что,
в конечном счете, и определяет их облик в целом, включая характеристики
производительности, область применения и даже пользовательский интерфейс. Так,
например, алгоритм управления процессором в значительной степени определяет,
является ли ОС системой разделения времени, системой пакетной обработки или
системой реального времени.
Поколения
ОС также как и аппаратные средства отражают достижения в области электронных
компонентов: 1 поколение – лампы, 2 поколение – транзисторы, 3 поколение –
интегральные микросхемы (ИС), 4 поколение большие и сверхбольшие интегральные
схемы – БИС и СБИС. Поколения компьютеров отличаются:
·
стоимостью, габаритами, мощностью;
·
быстродействием и объемом памяти.
Рассмотрим
эволюцию операционных систем.
0
поколение (40 - 50 годы) - ОС отсутствует. Полный доступ к ресурсам ЭВМ
на машинном языке, все программы разрабатываются в двоичном коде. Этот период
характеризуется высокой стоимостью приобретения и эксплуатации компьютеров и
низкой стоимостью труда программистов. Компьютеры использовались в монопольном
интерактивном режиме. Основная цель – максимизировать использование аппаратного
обеспечения. Основной режим работы компьютера – простой и ожидание каких-либо
действий программиста. При этом наблюдается недостаточное использование дорогостоящего
вычислительного оборудования.
1
поколение (60-е годы). Возникла система пакетной обработки.
В каждый момент времени ЭВМ использовалась для решения одной прикладной
программы. Пользователи уже не работают с ЭВМ на физическом уровне. Программы и
данные принимает человек-оператор. Задание на обработку формируется в виде
пакета, представляющего собой совокупность отдельных программ и данных,
разделенных специальными символами. Пакет может быть составлен на перфокартах
или МЛ. В машине постоянно находится управляющая программа, которая считывает
последовательно пользовательские программы и данные из пакета и загружает их на
выполнение. Результаты выводятся на внешнее устройство, и составляют пакет
результатов. Управляющая программа должна фиксировать время исполнения каждой
программы, реагировать на определенные ситуации по управлению программами по
мере их исполнения (прекращать выполнение). Другими словами, она должна выполнять
внутрисистемные операции управления, которые пользователь осуществлял ранее на
физическом уровне. Дополнительно эта программа должна автоматически переключать
машину на исполнение программ из пакета по последовательной схеме (FIFO).
Такую системную программу можно назвать простейшей ОС, обеспечивающей обработку
программ в однопрограммном пакетном режиме.
Недостатки:
- Использование части машинного времени (времени
процессора) на выполнение системной управляющей программы.
- Программа, получившая доступ к процессору,
обслуживается до ее завершения. При этом если возникает потребность в
передаче данных между внешними устройствами и ОП, то процессор
простаивает, ожидая завершения операции обмена. С другой стороны при
работе процессора простаивают внешние устройства. Для персонального
компьютера проявление фактора простоя процессора не столь существенно, так
как стоимость его не велика, чего не скажешь о больших и дорогих ЭВМ.
Этот
недостаток однопрограммного режима был устранен в мультипрограммном пакетном
режиме (65-75 г.г.) в ОС второго поколения. Главной целью и
критерием эффективности систем пакетной обработки является максимальная
пропускная способность, то есть решение максимального числа задач в единицу
времени. Для этой цели в начале работы формируется пакет заданий, содержащих
требования к системным ресурсам. Из этого пакета формируется мультипрограммная
смесь из заданий, предъявляющих отличающиеся требования к ресурсам для того,
чтобы обеспечить сбалансированную нагрузку всех устройств ЭВМ. Так, например, в
мультипрограммную смесь желательно вводить вычислительные задачи и задачи,
интенсивно использующие ввод/вывод. В системах пакетной обработки переключение
процессов с выполнения одной задачи на другую происходит только в том случае,
если активная задача сама отказывается от процессора, например, для выполнения
операции ввода/вывода, что делает невозможным выполнение интерактивных задач.
Особенностью
этого поколения было и то, что ОС создавались как системы коллективного пользования
с мультипрограммным режимом работы и как первые системы мультипроцессорного
типа. В таких системах несколько пользовательских программ одновременно
присутствуют в оперативной памяти компьютера и центральный процессор (ЦП)
динамически переключается с решения одной задачи на решение другой задачи. При
этом появляется возможность одновременной загрузки ЦП и устройств ввода-вывода.
В случае многопроцессорных систем единый вычислительный комплекс (ВК) содержит
несколько процессоров, что повышает вычислительную мощность вычислительной
системы (ВС).
В
то же время появились методы, обеспечивающие независимость программирования от
внешних устройств. В программе необходимо указывать только тип устройства, а не
программировать его физический адрес. Конкретный адрес устройства определялся в
процессе выполнения программы. Это было серьезное достижение в развитии ОС.
В
этот период были разработаны системы с разделением времени (РВ),
предоставляющие пользователям возможность непосредственно взаимодействовать с
компьютером при помощи терминалов телетайпного типа (электронная пишущая
машинка, имеющая интерфейс с ЭВМ), а в последующем и с помощью дисплея. При
работе с такими ОС используется диалоговый или интерактивный режим. Каждому
пользователю системы разделения времени предоставляется терминал, с которого он
может вести диалог со своей программой. Пользователь вводит запрос, который
обрабатывается и ответ выводится на терминал, что позволяет увеличить
эффективность и удобство работы пользователя. Пакетный режим обеспечивал
увеличение пропускной способности и максимальную загрузку процессора, отлучая
пользователя от ЭВМ, в то время как в режиме разделения времени (РРВ) каждый
пользователь имеет непосредственный доступ к ЭВМ через свой терминал. Суть
разделения времени максимально проста. Каждой программе, готовой к исполнению,
для работы выделяется фиксированный, заранее определенный интервал времени,
называемый квантом. Программа в течение одного кванта может быть не выполнена
до конца, тогда она прерывается в момент окончания кванта и помещается в конец
очереди. Из начала очереди извлекается другая программа, которой планируется
фиксированный интервал. При этом ни один из пользователей, работающих за
дисплеем, параллельно друг с другом, никак не ощущает, что процессор мультиплексируется
несколькими программами.
К
этому же периоду относится появление первых систем реального времени
(СРВ), в которых ЭВМ применяется для управления техническими объектами, такими,
например, как станок, спутник, научная экспериментальная установка или
технологическими процессами, такими, как гальваническая линия, доменный процесс
и т.п. Во всех этих случаях существует предельно допустимое время, в течение
которого должна быть выполнена та или иная программа, управляющая объектом, в
противном случае может произойти авария: спутник сойдет с орбиты,
экспериментальные данные могут быть потеряны, толщина гальванического покрытия
не будет соответствовать норме. Характерным для СРВ является обеспечение
заранее заданных интервалов времени реакции на предусмотренные события
для получения управляющего воздействия. Поскольку в технологических процессах
промедление может привести к не желаемым и даже опасным последствиям, СРВ
работают со значительной недогрузкой, так как важнейшей характеристикой
является постоянная готовность системы – ее реактивность.
Системное
программное обеспечение (СПО) ОС этого периода решало множество проблем, связанных
с защитой данных и результатов работы различных программ, защитой данных в
оперативной памяти и распределением устройств. Кроме того, ОС должна управлять
новыми устройствами, входящими в состав аппаратного обеспечения. Для решения
этих задач системное программное обеспечение сформировалось в сложную систему,
требующую для реализации своих возможностей значительных вычислительных
ресурсов.
ОС
третьего поколения (70-80 г.г.) были многорежимными системами,
обеспечивающими пакетную обработку, разделение времени, режим реального времени
и мультипроцессорный режим. Они были громоздкими, дорогостоящими (монстры
операционных систем). Например, фирме IBM разработка ОС/360 стоила 6 млрд.
долларов, что соизмеримо с затратами американской программы NASA высадки человека
на Луне. Такие ОС, будучи прослойкой, между пользователем и аппаратурой ЭВМ,
привели к значительному усложнению вычислительной обстановки. Для выполнения
простейшей программы необходимо было изучать сложные языки управления заданием
(JCL – Job Control Language). К этому периоду относится появление
вытесняющей многозадачности (Preemptive scheduling), и использование
концепции баз данных для хранения больших объемов информации для организации
распределенной обработки. Программисты перестали использовать перфокарты и магнитные
ленты для хранения своих данных. Вводится приоритетное планирование (Prioritized
scheduling) и выделение квот на использование ограниченных ресурсов
компьютеров (процессорного времени, дисковой памяти, физической (оперативной)
памяти). При использовании компьютеров широкое распространение получила
концепция распределения времени (time sharing) , но ограниченность
ресурсов приводила к перегрузке компьютеров и к неприемлемому времени ожидания
ответа или результатов работы. Программистам приходилось компенсировать это
неудобство работой в ночное время.
Четвертое
поколение с середины 70-х. Период характеризуется уменьшением стоимости
компьютеров и увеличением стоимости труда программиста. Появление персональных
компьютеров позволило установить компьютер практически каждому пользователю на
рабочем столе. Благодаря широкому распространению вычислительных сетей и
средств оперативной обработки (режим on-line), пользователи получают
доступ к территориально распределенным компьютерам. Появились микропроцессоры,
на основе которых создаются все новые и новые PC, которые могут быть
использованы, как автономно, так и в качестве терминалов более мощных
вычислительных систем. При передаче информации по линиям связи усложняются
проблемы защиты информации, шифрования данных. Возникло понятие сетевого
компьютера (Network computer) , способного получать все ресурсы через
компьютерную сеть. Понятие файловой системы распространяется на данные,
доступные по различным сетевым протоколам.
Число
людей, пользующихся компьютером, значительно возросло, что выдвигает требование
дружественного интерфейса пользователя, ориентации на неподготовленного
пользователя. Появились системы с управлением с помощью меню и элементов
графического интерфейса. Начала широко распространяться концепция виртуальных
машин. Пользователь более не заботится о физических деталях построения
ЭВМ или сетей. Он имеет дело с функциональным эквивалентом компьютера, создаваемым
для него ОС, представляющим виртуальную машину. Таким образом, возникла
концепция виртуализации ресурсов ЭВМ. Виртуальным ресурсом
называется функциональный программно моделируемый эквивалент реального
монопольного ресурса, допускающий его совместное использование многими
процессами. Мультипрограммирование – виртуализация центрального процессора (ЦП
– CPU). Буферный ввод/вывод – виртуализация устройств ввода и вывода.
В
настоящее время концепция виртуальных машин находит все большее
распространение. Виртуальная машина – это функциональный эквивалент реальной
ЭВМ, обеспечивающий пользователей на основе одной ЭВМ множество функционально
эквивалентных ей ЭВМ.
Широкое внедрение получила концепция распределенной обработки данных.
Развитием распределенной обработки данных стала технология Клиент - Сервер,
в которой серверный процесс предоставляет возможность использовать свои ресурсы
клиентскому процессу по соответствующему протоколу взаимодействия. Название
сервера отображает вид ресурса, который предоставляется клиентским системам
(сервер печати, сервер вычислений, сервер баз данных, сервер новостей, сервер
FTP, сервер WWW и т.д.)
|