Лекции по предмету Операционные системы
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: менеджмент, бесплатные доклады скачать
| Добавил(а) на сайт: Собчак.
1 2 3 4 5 6 7 | Следующая страница реферата
Введение
Определение операционной системы
Операционная система в наибольшей степени определяет облик всей
вычислительной системы в целом. Несмотря на это, пользователи, активно
использующие вычислительную технику, зачастую испытывают затруднения при
попытке дать определение операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение
пользователю-программисту удобств посредством предоставления для него
расширенной машины и повышение эффективности использования компьютера путем
рационального управления его ресурсами.
ОС как расширенная машина
Использование большинства компьютеров на уровне машинного языка
затруднительно, особенно это касается ввода-вывода. Например, для
организации чтения блока данных с гибкого диска программист может
использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда
выполнение операции с диском завершается, контроллер возвращает 23
значения, отражающих наличие и типы ошибок, которые, очевидно, надо
анализировать. Даже если не входить в курс реальных проблем
программирования ввода-вывода, ясно, что среди программистов нашлось бы не
много желающих непосредственно заниматься программированием этих операций.
При работе с диском программисту-пользователю достаточно представлять его в
виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом
заключается в его открытии, выполнении чтения или записи, а затем в
закрытии файла. Вопросы подобные таким, как следует ли при записи
использовать усовершенствованную частотную модуляцию или в каком состоянии
сейчас находится двигатель механизма перемещения считывающих головок, не
должны волновать пользователя. Программа, которая скрывает от программиста
все реалии аппаратуры и предоставляет возможность простого, удобного
просмотра указанных файлов, чтения или записи - это, конечно, операционная
система. Точно также, как ОС ограждает программистов от аппаратуры
дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с
обработкой прерываний, управлением таймерами и оперативной памятью, а также
другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь
может иметь дело пользователь, гораздо проще и удобнее в обращении, чем
реальная аппаратура, лежащая в основе этой абстрактной машины.
С этой точки зрения функцией ОС является предоставление пользователю
некоторой расширенной или виртуальной машины, которую легче программировать
и с которой легче работать, чем непосредственно с аппаратурой, составляющей
реальную машину.
ОС как система управления ресурсами
Идея о том, что ОС прежде всего система, обеспечивающая удобный интерфейс
пользователям, соответствует рассмотрению сверху вниз. Другой взгляд, снизу
вверх, дает представление об ОС как о некотором механизме, управляющем
всеми частями сложной системы. Современные вычислительные системы состоят
из процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других устройств. В
соответствии со вторым подходом функцией ОС является распределение
процессоров, памяти, устройств и данных между процессами, конкурирующими за
эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины
таким образом, чтобы обеспечить максимальную эффективность ее
функционирования. Критерием эффективности может быть, например, пропускная
способность или реактивность системы. Управление ресурсами включает решение
двух общих, не зависящих от типа ресурса задач:
. планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;
. отслеживание состояния ресурса - то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов - какое количество ресурса уже распределено, а какое свободно.
Для решения этих общих задач управления ресурсами разные ОС используют
различные алгоритмы, что в конечном счете и определяет их облик в целом, включая характеристики производительности, область применения и даже
пользовательский интерфейс. Так, например, алгоритм управления процессором
в значительной степени определяет, является ли ОС системой разделения
времени, системой пакетной обработки или системой реального времени.
Эволюция ОС
Первый период (1945 -1955)
Известно, что компьютер был изобретен английским математиком Чарльзом
Бэбиджем в конце восемнадцатого века. Его "аналитическая машина" так и не
смогла но-настоящему заработать, потому что технологии того времени не
удовлетворяли требованиям по изготовлению деталей точной механики, которые
были необходимы для вычислительной техники. Известно также, что этот
компьютер не имел операционной системы.
Некоторый прогресс в создании цифровых вычислительных машин произошел после
второй мировой войны. В середине 40-х были созданы первые ламповые
вычислительные устройства. В то время одна и та же группа людей участвовала
и в проектировании, и в эксплуатации, и в программировании вычислительной
машины. Это была скорее научно-исследовательская работа в области
вычислительной техники, а не использование компьютеров в качестве
инструмента решения каких-либо практических задач из других прикладных
областей. Программирование осуществлялось исключительно на машинном языке.
Об операционных системах не было и речи, все задачи организации
вычислительного процесса решались вручную каждым программистом с пульта
управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.
Второй период (1955 - 1965)
С середины 50-х годов начался новый период в развитии вычислительной
техники, связанный с появлением новой технической базы - полупроводниковых
элементов. Компьютеры второго поколения стали более надежными, теперь они
смогли непрерывно работать настолько долго, чтобы на них можно было
возложить выполнение действительно практически важных задач. Именно в этот
период произошло разделение персонала на программистов и операторов, эксплуатационщиков и разработчиков вычислительных машин.
В эти годы появились первые алгоритмические языки, а следовательно и первые
системные программы - компиляторы. Стоимость процессорного времени
возросла, что потребовало уменьшения непроизводительных затрат времени
между запусками программ. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программ за другой и тем самым
увеличивали коэффициент загрузки процессора. Системы пакетной обработки
явились прообразом современных операционных систем, они стали первыми
системными программами, предназначенными для управления вычислительным
процессом. В ходе реализации систем пакетной обработки был разработан
формализованный язык управления заданиями, с помощью которого программист
сообщал системе и оператору, какую работу он хочет выполнить на
вычислительной машине. Совокупность нескольких заданий, как правило в виде
колоды перфокарт, получила название пакета заданий.
Третий период (1965 - 1980)
Следующий важный период развития вычислительных машин относится к 1965-1980
годам. В это время в технической базе произошел переход от отдельных
полупроводниковых элементов типа транзисторов к интегральным микросхемам, что дало гораздо большие возможности новому, третьему поколению
компьютеров.
Для этого периода характерно также создание семейств программно-совместимых
машин. Первым семейством программно-совместимых машин, построенных на
интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале
60-х годов это семейство значительно превосходило машины второго поколения
по критерию цена/произ-водительность. Вскоре идея программно-совместимых
машин стала общепризнанной.
Программная совместимость требовала и совместимости операционных систем.
Такие операционные системы должны были бы работать и на больших, и на малых
вычислительных системах, с большим и с малым количеством разнообразной
периферии, в коммерческой области и в области научных исследований.
Операционные системы, построенные с намерением удовлетворить всем этим
противоречивым требованиям, оказались чрезвычайно сложными "монстрами". Они
состояли из многих миллионов ассемблерных строк, написанных тысячами
программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток
исправлений. В каждой новой версии операционной системы исправлялись одни
ошибки и вносились другие.
Однако, несмотря на необозримые размеры и множество проблем, OS/360 и
другие ей подобные операционные системы машин третьего поколения
действительно удовлетворяли большинству требований потребителей. Важнейшим
достижением ОС данного поколения явилась реализация мультипрограммирования.
Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ.
Пока одна программа выполняет операцию ввода-вывода, процессор не
простаивает, как это происходило при последовательном выполнении программ
(однопрограммный режим), а выполняет другую программу (многопрограммный
режим). При этом каждая программа загружается в свой участок оперативной
памяти, называемый разделом.
Другое нововведение - спулинг (spooling). Спулинг в то время определялся
как способ организации вычислительного процесса, в соответствии с которым
задания считывались с перфокарт на диск в том темпе, в котором они
появлялись в помещении вычислительного центра, а затем, когда очередное
задание завершалось, новое задание с диска загружалось в освободившийся
раздел.
Наряду с мультипрограммной реализацией систем пакетной обработки появился
новый тип ОС - системы разделения времени. Вариант мультипрограммирования, применяемый в системах разделения времени, нацелен на создание для каждого
отдельного пользователя иллюзии единоличного использования вычислительной
машины.
Четвертый период (1980 - настоящее время)
Следующий период в эволюции операционных систем связан с появлением больших
интегральных схем (БИС). В эти годы произошло резкое возрастание степени
интеграции и удешевление микросхем. Компьютер стал доступен отдельному
человеку, и наступила эра персональных компьютеров. С точки зрения
архитектуры персональные компьютеры ничем не отличались от класса
миникомпьютеров типа PDP-11, но вот цена у них существенно отличалась. Если
миникомпьютер дал возможность иметь собственную вычислительную машину
отделу предприятия или университету, то персональный компьютер сделал это
возможным для отдельного человека.
Компьютеры стали широко использоваться неспециалистами, что потребовало
разработки "дружественного" программного обеспечения, это положило конец
кастовости программистов.
На рынке операционных систем доминировали две системы: MS-DOS и UNIX.
Однопрограммная однопользовательская ОС MS-DOS широко использовалась для
компьютеров, построенных на базе микропроцессоров Intel 8088, а затем
80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX
доминировала в среде "не-интеловских" компьютеров, особенно построенных на
базе высокопроизводительных RISC-процессоров.
В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.
В сетевых ОС пользователи должны быть осведомлены о наличии других
компьютеров и должны делать логический вход в другой компьютер, чтобы
воспользоваться его ресурсами, преимущественно файлами. Каждая машина в
сети выполняет свою собственную локальную операционную систему, отличающуюся от ОС автономного компьютера наличием дополнительных средств, позволяющих компьютеру работать в сети. Сетевая ОС не имеет фундаментальных
отличий от ОС однопроцессорного компьютера. Она обязательно содержит
программную поддержку для сетевых интерфейсных устройств (драйвер сетевого
адаптера), а также средства для удаленного входа в другие компьютеры сети и
средства доступа к удаленным файлам, однако эти дополнения существенно не
меняют структуру самой операционной системы.
Классификация ОС
Операционные системы могут различаться особенностями реализации внутренних
алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов
проектирования, типами аппаратных платформ, областями использования и
многими другими свойствами.
Ниже приведена классификация ОС по нескольким наиболее основным признакам.
Особенности алгоритмов управления ресурсами
От эффективности алгоритмов управления локальными ресурсами компьютера во
многом зависит эффективность всей сетевой ОС в целом. Поэтому, характеризуя
сетевую ОС, часто приводят важнейшие особенности реализации функций ОС по
управлению процессорами, памятью, внешними устройствами автономного
компьютера. Так, например, в зависимости от особенностей использованного
алгоритма управления процессором, операционные системы делят на
многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач
операционные системы могут быть разделены на два класса:
. однозадачные (например, MS-DOS, MSX) и
. многозадачные (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления пользователю
виртуальной машины, делая более простым и удобным процесс взаимодействия
пользователя с компьютером. Однозадачные ОС включают средства управления
периферийными устройствами, средства управления файлами, средства общения с
пользователем.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением
совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима. По числу одновременно работающих
пользователей ОС делятся на:
. однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
. многопользовательские (UNIX, Windows NT).
Главным отличием многопользовательских систем от однопользовательских
является наличие средств защиты информации каждого пользователя от
несанкционированного доступа других пользователей. Следует заметить, что не
всякая многозадачная система является многопользовательской, и не всякая
однопользовательская ОС является однозадачной.
Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом
является процессорное время. Способ распределения процессорного времени
между несколькими одновременно существующими в системе процессами (или
нитями) во многом определяет специфику ОС. Среди множества существующих
вариантов реализации многозадачности можно выделить две группы алгоритмов:
. невытесняющая многозадачность (NetWare, Windows 3.x);
. вытесняющая многозадачность (Windows NT, OS/2, UNIX).
Основным различием между вытесняющим и невытесняющим вариантами
многозадачности является степень централизации механизма планирования
процессов. В первом случае механизм планирования процессов целиком
сосредоточен в операционной системе, а во втором - распределен между
системой и прикладными программами. При невытесняющей многозадачности
активный процесс выполняется до тех пор, пока он сам, по собственной
инициативе, не отдаст управление операционной системе для того, чтобы та
выбрала из очереди другой готовый к выполнению процесс. При вытесняющей
многозадачности решение о переключении процессора с одного процесса на
другой принимается операционной системой, а не самим активным процессом.
Поддержка многонитевости. Важным свойством операционных систем является
возможность распараллеливания вычислений в рамках одной задачи.
Многонитевая ОС разделяет процессорное время не между задачами, а между их
отдельными ветвями (нитями).
Многопроцессорная обработка. Другим важным свойством ОС является отсутствие
или наличие в ней средств поддержки многопроцессорной обработки -
мультипроцессирование. Мультипроцессирование приводит к усложнению всех
алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки
многопроцессорной обработки данных. Такие функции имеются в операционных
системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus
Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы
Novell.
Многопроцессорные ОС могут классифицироваться по способу организации
вычислительного процесса в системе с многопроцессорной архитектурой:
асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется
только на одном из процессоров системы, распределяя прикладные задачи по
остальным процессорам. Симметричная ОС полностью децентрализована и
использует весь пул процессоров, разделяя их между системными и прикладными
задачами.
Выше были рассмотрены характеристики ОС, связанные с управлением только
одним типом ресурсов - процессором. Важное влияние на облик операционной
системы в целом, на возможности ее использования в той или иной области
оказывают особенности и других подсистем управления локальными ресурсами -
подсистем управления памятью, файлами, устройствами ввода-вывода.
Специфика ОС проявляется и в том, каким образом она реализует сетевые
функции: распознавание и перенаправление в сеть запросов к удаленным
ресурсам, передача сообщений по сети, выполнение удаленных запросов. При
реализации сетевых функций возникает комплекс задач, связанных с
распределенным характером хранения и обработки данных в сети: ведение
справочной информации о всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных.
Особенности аппаратных платформ
На свойства операционной системы непосредственное влияние оказывают
аппаратные средства, на которые она ориентирована. По типу аппаратуры
различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров
могут встречаться как однопроцессорные варианты, так и многопроцессорные. В
любом случае специфика аппаратных средств, как правило, отражается на
специфике операционных систем.
Очевидно, что ОС большой машины является более сложной и функциональной, чем ОС персонального компьютера. Так в ОС больших машин функции по
планированию потока выполняемых задач, очевидно, реализуются путем
использования сложных приоритетных дисциплин и требуют большей
вычислительной мощности, чем в ОС персональных компьютеров. Аналогично
обстоит дело и с другими функциями.
Сетевая ОС имеет в своем составе средства передачи сообщений между
компьютерами по линиям связи, которые совершенно не нужны в автономной ОС.
На основе этих сообщений сетевая ОС поддерживает разделение ресурсов
компьютера между удаленными пользователями, подключенными к сети. Для
поддержания функций передачи сообщений сетевые ОС содержат специальные
программные компоненты, реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.
Многопроцессорные системы требуют от операционной системы особой
организации, с помощью которой сама операционная система, а также
поддерживаемые ею приложения могли бы выполняться параллельно отдельными
процессорами системы. Параллельная работа отдельных частей ОС создает
дополнительные проблемы для разработчиков ОС, так как в этом случае гораздо
сложнее обеспечить согласованный доступ отдельных процессов к общим
системным таблицам, исключить эффект гонок и прочие нежелательные
последствия асинхронного выполнения работ.
Другие требования предъявляются к операционным системам кластеров. Кластер
- слабо связанная совокупность нескольких вычислительных систем, работающих
совместно для выполнения общих приложений, и представляющихся пользователю
единой системой. Наряду со специальной аппаратурой для функционирования
кластерных систем необходима и программная поддержка со стороны
операционной системы, которая сводится в основном к синхронизации доступа к
разделяемым ресурсам, обнаружению отказов и динамической реконфигурации
системы. Одной из первых разработок в области кластерных технологий были
решения компании Digital Equipment на базе компьютеров VAX. Недавно этой
компанией заключено соглашение с корпорацией Microsoft о разработке
кластерной технологии, использующей Windows NT. Несколько компаний
предлагают кластеры на основе UNIX-машин.
Наряду с ОС, ориентированными на совершенно определенный тип аппаратной
платформы, существуют операционные системы, специально разработанные таким
образом, чтобы они могли быть легко перенесены с компьютера одного типа на
компьютер другого типа, так называемые мобильные ОС. Наиболее ярким
примером такой ОС является популярная система UNIX. В этих системах
аппаратно-зависимые места тщательно локализованы, так что при переносе
системы на новую платформу переписываются только они. Средством, облегчающем перенос остальной части ОС, является написание ее на машинно-
независимом языке, например, на С, который и был разработан для
программирования операционных систем.
Особенности областей использования
Рекомендуем скачать другие рефераты по теме: новейшие рефераты, изложение по русскому 9 класс.
Категории:
1 2 3 4 5 6 7 | Следующая страница реферата