
ОС архив / Лекция 1
.docЛекция 1.
Место операционной системы в общей структуре компьютера. Эволюция операционных систем. Классификация операционных систем.
Современный компьютер состоит из одного или нескольких процессоров, оперативной памяти, дисков, клавиатуры, монитора, принтеров, сетевых интерфейсов и других устройств ввода-вывода, то есть является сложной системой. Написание программ, которые отслеживают все компоненты, корректно используют их и при этом оптимально работают, представляет собой крайне трудную задачу. Еще много лет назад стало очевидно, что нужно как-то оградить программистов от тонкостей, связанных с аппаратным обеспечением. Постепенно был выработан следующий путь: поверх аппаратуры работает дополнительная программная прослойка, которая управляет всем оборудованием и предоставляет пользователю интерфейс, или виртуальную машину, более простую для понимания и программирования, чем аппаратура. Операционная система и является этой программной прослойкой.
Место операционной системы в общей структуре компьютера показано на рисунке 1. Внизу находится аппаратное обеспечение, которое во многих случаях само состоит из двух или более уровней (или слоев). Самый нижний уровень содержит физические устройства, состоящие из интегральных микросхем, проводников, источников питания, электронно-лучевых трубок и т. п.
Рис. 1.1. Место операционной системы в структуре компьютера.
Далее следует микроархитектурный уровень, на котором физические устройства группируются в функциональные блоки. Как правило, на микроархитектурном уровне находятся внутренние регистры ЦПУ и тракт данных, включающий арифметико-логическое устройство. На каждом такте процессора данные извлекаются из регистров и обрабатываются арифметико-логическим устройством (к примеру, участвуют в операции арифметического или логического суммирования). Результат сохраняется в одном или нескольких регистрах. В некоторых компьютерах функционирование тракта данных находится под управлением особой программы, называемой микропрограммой. В остальных случаях управление обеспечивают аппаратные схемы. Тракт данных предназначен для выполнения наборов команд. Некоторые наборы могут быть выполнены в одном цикле тракта данных, другие же требуют нескольких тактов. В распоряжении команд находятся различные аппаратные средства, в том числе регистры. Аппаратное обеспечение и команды, доступные программисту на языке ассемблера, образуют архитектуру набора команд (Instruction Set Architecture, ISA). Зачастую данный уровень называют машинным языком.
Обычно машинный язык содержит от 50 до 300 команд, служащих преимущественно для перемещения данных в пределах компьютера, выполнения арифметических операций и сравнения величин. Управление устройствами на этом уровне осуществляется путем загрузки определенных величин в специальные регистры устройств. Например, диску можно дать команду чтения, записав в его регистры адрес места на диске, адрес в основной памяти, число байтов для чтения и направление действия (чтение или запись). На практике нужно передавать больше параметров, а информация о статусе операции, возвращаемая диском, достаточно сложна. Кроме того, при программировании многих устройств ввода-вывода (Input/Output, I/O) очень важную роль играют временные соотношения.
Основное предназначение операционной системы — скрыть все эти сложности и предоставить программисту более удобную систему команд. Чтение блока из файла в этом случае представляется намного более простым действием, чем в случае, когда программисту приходится думать о перемещении головок диска, о задержках, связанных с их установкой в нужное место и т. д.
Поверх операционной системы на рисунке расположены остальные системные программы. Здесь находятся интерпретатор команд (оболочка), компиляторы, редакторы и т. д. Подобные программы не являются частью операционной системы. Под операционной системой обычно понимается то программное обеспечение, которое запускается в режиме ядра или, как его еще называют, режиме супервизора, привилегированном режиме. Операционная система защищена от вмешательства пользователя с помощью аппаратных средств. Компиляторы и редакторы запускаются в пользовательском режиме.
Подобная классификация имеет весьма размытые границы во встраиваемых системах, допускающих отсутствие ядра, и в интерпретируемых системах. Тем не менее, в традиционных компьютерах операционная система является элементом, исполняемым в режиме ядра.
Поверх системных программ выполняются прикладные программы. Граница между системным и прикладным программным обеспечением размыта. Очевидно, что компоненты, исполняемые в режиме ядра, относятся к операционной системе, однако многие «пользовательские» программы также несут системные функции либо, как минимум, тесно связаны с ними.
Таким образом, операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны.
Понимание того, что представляет собой операционная система и каковы ее функции, пришло не сразу. В эволюции операционных систем можно выделить несколько периодов.
Первый период (1945-1955). В середине 40-х годов были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.
Второй период (1955-1965). С середины 50-х годов начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы – полупроводниковых элементов. В эти годы появились первые алгоритмические языки, а следовательно и первые системные программы – компиляторы. Высокая стоимость процессорного времени требовало уменьшения затрат времени между запусками программы. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программы за другой и тем самым увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными для управления вычислительным процессом.
Третий период (1965-1980). В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Для этого периода также характерно создание семейства программно-совметимых машин. Программная совместимость требовала и совместимости операционных систем. Такие операционные системы должны были бы работать и на больших, и на малых вычислительных системах, с большим и малым количеством разнообразной периферии, в коммерческих областях и в области научных исследований.
Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование – это способ организации вычислительного процесса, в соответствии с которым на одном процессоре попеременно выполняются несколько программ. Другое нововведение – спулинг (spooling), который определялся в то время как способ организации вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск.
Наряду с мультипрограммной реализацией систем пакетной обработки появился новый вариант ОС – системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В мультипрограммных системах пакетной обработки пользователь был лишен возможности интерактивно взаимодействовать со своими программами. Вариант мультипрограммирования, применяемый в системах разделения времени, нацелен на создание для каждого отдельного пользователя иллюзии единоличного использования вычислительной машины за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.
Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. При этом не только оператор вычислительной машины, но и пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие операционные системы получили название систем удаленного ввода заданий.
В этот период произошло существенное изменение в распределении функций между аппаратными и программными средствами компьютера. Операционные системы стали неотъемлемым элементом компьютеров, играя роль «продолжения» аппаратуры.
Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера, непосредственно направленных на поддержку этого способа организации вычислительного процесса. При разделении ресурсов компьютера между программами необходимо обеспечить более быстрое переключение процессора с одной программы на другую, а также надежно защитить коды и данные одной программы от непреднамеренной и намеренной порчи другой программой. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, развитая система прерываний.
В привилегированном режиме, предназначенном для работы модулей операционной системы, процессор может выполнять все команды, в том числе и те из них, которые позволяют осуществлять распределение и защиту ресурсов компьютера. программам, работающим в пользовательском режиме, некоторые команды процессора недоступны. Таким образом, только ОС может управлять аппаратными средствами и играть роль монитора и арбитра для пользовательских программ.
Система прерываний позволила синхронизировать работу различных устройств компьютера, работающих параллельно и асинхронно, таких как каналы ввода-вывода, диски, принтеры и т.п. Аппаратная поддержка операционных систем стала с тех пор неотъемлемым свойством практически любых компьютерных систем.
Четвертый период (1980-е годы). Этот период в эволюции операционных систем связан с появлением больших интегральных схем. К наиболее важным событиям этого десятилетия можно отнести разработку стека протоколов TCP/IP, становление Интернета, стандартизацию технологий локальных сетей, появление персональных компьютеров и операционных систем для них. Компьютеры стали широко применяться неспециалистами, что потребовало разработки «дружественного» программного обеспечения. Предоставление этих «дружественных» функций стало прямой обязанностью операционных систем. Стали бурно развиваться сети персональных компьютеров, работающих под управлением сетевых или распределенных операционных систем. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием.
Современный период. В 90-е годы практически все операционные системы стали сетевыми. Сетевые функции сегодня встраиваются в ядро ОС, являясь ее неотъемлемой частью. Операционные системы получили средства работы с о всеми основными технологиями локальных и глобальных сетей, а также для создания составных сетей.
Во второй половине 90-х годов все производители операционных систем резко усилили поддержку средств работы с Интернетом. В комплект поставки начали включать утилиты, реализующие популярные сервисы Интернета. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникации с развитыми вычислительными и мультимедийными возможностями.
Особое внимание в настоящее время уделяется корпоративным сетевым операционным системам. Корпоративная операционная система отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для большинства предприятий, имеющих отделения в разных городах и странах. Таким сетям присуща высокая степень гетерогенности программных и аппаратных средств. Поэтому корпоративная ОС должна беспроблемно взаимодействовать с операционными системами разных типов и работать на различных аппаратных платформах. Для корпоративной ОС также важно наличие средств централизованного администрирования и управления, позволяющих в единой базе данных хранить учетные записи о десятках тысячах пользователей, компьютеров, коммуникационных устройств и модулей программного обеспечения.
На современном этапе развития операционных систем на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемых компьютерами, а также с повышенным уровнем угроз, существующих при передаче данных по сетям. Многие ОС обладают сегодня развитыми средствами защиты информации, основанными на шифрации данных, аутентификации и авторизации.
Современным операционным системам присуща многоплатформенность, то есть способность работать на совершенно различных типах компьютеров. Многие ОС имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производительность и отказоустойчивость.
В последнее время получила дальнейшее развитие долговременная тенденция повышения удобства работы человека с компьютером. Эффективность работы человека становится основным фактором, определяющим эффективность вычислительной системы в целом.
Существует множество различных подходов к классификации операционных систем. К основным признакам классификации ОС относятся:
-
Особенности алгоритмов управления ресурсами. В зависимости от особенностей использования алгоритма управления процессором, операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, поддерживающие многопоточную обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы.
-
Особенности аппаратных платформ. По типу аппаратуры различают операционные системы персональных компьютеров, миникомпьютеров, мейнфреймов, кластеров и сетей ЭВМ.
-
Особенности областей использования. В зависимости от областей использования различают на:
-
системы пакетной обработки;
-
системы разделения времени;
-
системы реального времени.
-
-
Особенности методов построения. Различают следующие методы построения ОС:
-
способы построения ядра системы – монолитное ядро или микроядерный подход;
-
построение ОС на базе объектно-ориентированного подхода;
-
наличие нескольких прикладных сред;
-
распределенная организация операционной системы.
-