ЗАНЯТИЕ 2. «Понятие операционной системы»

2.1 Операционная система
Операционная система, ОС (англ. operating system) — базо¬вый комплекс компьютерных программ, обеспечивающий управле¬ние аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и ути¬лит.
При включении компьютера операционная система загру¬жается в память раньше остальных программ и затем служит плат¬формой и средой для их работы. Помимо вышеуказанных функций ОС может осуществлять и другие, например, предоставление поль¬зовательского интерфейса, сетевое взаимодействие и т. п.
С 1990-х наиболее распространёнными операционными си¬стемами являются ОС семейства Microsoft Windows и системы класса UNIX (особенно Linux).
2.2 Функции ОС
Интерфейсные функции:
 Управление аппаратными средствами, устройствами ввода/вывода
 Файловая система
 Поддержка многозадачности (разделение использования памяти, времени выполнения)
 Ограничение доступа, многопользовательский режим ра¬боты
 Компьютерная сеть
Внутренние функции:
 Обработка прерываний
 Виртуальная память
 Планировщик задач
 Буферы ввода-вывода
 Обслуживание драйверов устройств
2.3 Понятие операционной системы
Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность про¬грамм, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
Есть приложения вычислительной техники, для которых ОС излишни. Напр., встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер по¬стоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляю¬щие собой специализированные микрокомпьютеры — могут обхо¬диться без ОС, запуская по включении программу, записанную на вставленном в устройство «картридже» или компакт-диске. (Мно¬гие встроенные компьютеры и даже некоторые игровые приставки на самом деле работают под управлением своих ОС).
Операционные системы, в свою очередь, нужны, если:
 вычислительная система используется для различных за¬дач, причём программы, исполняющие эти задачи, нуж¬даются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма со¬хранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Со¬временные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы со вводом другой, минуя относительно медленные диско¬вые операции;
 различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потре¬бовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каж¬дый раз заново, ОС предоставляют системные библио¬теки часто используемых подпрограмм (функций);
 между программами и пользователями системы необхо¬димо распределять полномочия, чтобы пользователи могли защищать свои данные от чужого взора, а возмож¬ная ошибка в программе не вызывала тотальных непри¬ятностей;
 необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляе¬мой с помощью приёма, известного как «разделение вре¬мени». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на ко¬роткие отрезки и предоставляет их поочередно различ-ным исполняющимся программам (процессам);
 наконец, оператор должен иметь возможность так или иначе управлять процессами выполнения отдельных про¬грамм. Для этого служат операционные среды, одна из которых — оболочка и набор стандартных утилит — яв¬ляется частью ОС (прочие, такие, как графическая опе¬рационная среда, образуют независимые от ОС приклад¬ные платформы). Таким образом, современные универ¬сальные ОС можно охарактеризовать прежде всего как

  1. использующие файловые системы (с универсальным механизмом доступа к данным),
  2. многопользовательские (с разделением полномочий),
  3. многозадачные (с разделением времени).
    Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В со¬ставе ОС различают три группы компонентов:
     ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевую подсистему, файловую систему;
     системные библиотеки
     оболочку с утилитами.
    Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользо¬вательском») режиме работы процессора и получают доступ к обо¬рудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудо¬ванием.
    Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов и других библиотечных подпро¬грамм (часть из которых должна реализоваться только в опреде¬лённых классах систем; напр., в системах «реального времени») и около 200 команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относи¬тельно способов их реализации.
    Стандарт, кроме этого, определяет способ адресации файлов в системе, локализацию (установки, касающиеся национально-спе-цифических моментов, таких, как язык сообщений или формат даты и времени), совместимый набор символов, синтаксис регулярных выражений, структуру каталогов в файловой системе, формат ко¬мандной строки и некоторые другие аспекты поведения ОС.
Рис. 13. Иерархическая структура программно-аппаратных средств компьютера

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

2.4 Эволюция операционных систем и основные идеи
Предшественником ОС следует считать служебные про¬граммы (такие, как загрузчики), а также библиотеки часто исполь¬зуемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и системы
Пакетный режим
Необходимость оптимального использования дорогостоя¬щих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим пред¬полагает наличие очереди программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполне¬ния предыдущей программы, что позволяет избежать простоя про¬цессора.
Разделение времени и многозадачность
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распро¬странении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих дан¬ных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорого¬стоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользова¬тельские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
Разделение полномочий
Распространение многопользовательских систем потребо¬вало решения задачи разделения полномочий, позволяющей избежать возможности модификации исполняемой программы или данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно подготовленной) программы, а также модификации самой ОС прикладной программой.
Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняе¬мой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
Реальный масштаб времени
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реаль¬ного масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции реального масштаба времени в ОС позволило создавать системы, одновременно обслуживающие про¬изводственные процессы и решающие другие задачи (в пакетном режиме и (или) в режиме разделения времени).
2.5 Файловые системы и структуры
Постепенная замена перфорационных носителей (лент и карт) накопителями произвольного доступа (на магнитных дисках) поставило задачу организации данных на таких носителях, с тем, чтобы данные, введённые оператором или сформированные одной программой могли использоваться другой.
Эта задача была решена (и решается в подавляющем большинстве ОС сегодня) путём реализации файловой структуры (способа однозначной адресации определенной совокупности данных (файла) в ОС) и файловой системы (физической организации дискового пространства, соответствующей файловой структуре или её части).
2.6 «Юникс», стандартизация ос и открытые ос
К концу 1960-х гг. отраслью и научно-образовательным со-обществом был создан целый ряд ОС, реализующих все или часть очерченных выше функций. К ним относятся «Atlas» (Манчестерский университет), «CTTS» и «ITSS» (Массачусетский технологический институт(МТИ)), «THE» (Эйндховенский технологический университет), «RS4000» (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).
Наиболее развитые ОС, такие как «OS/360» (компания «IBM»), «SCOPE» (компания «CDC») и завершённый уже в 1970-х годах «MULTICS» (МТИ и компания «Bell Labs»), предусматри¬вали возможность исполнения на многопроцессорных компьютерах.
Эклектичный характер разработки ОС привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. ОС были плохомасштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и тотально несовместимыми между собой, их разработка и совершенствование затягивалась.
Задуманная и реализованная в 1969 году Кеном Томсоном при участии нескольких коллег (включая Денниса Ричи, и Брайана Кернигана), ОС «Юникс» («Unix»; первоначально «UNICS», что обыгрывало название «MULTICS») вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих её от большинства предшественниц:
 простая метафорика (два ключевых понятия: вычислительный процесс и файл);
 компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («обо¬лочка»);
 минимизация ядра (кода, выполняющегося в «реальном» («привилегированном») режиме процессора) и количества системных вызовов;
 независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык про-граммирования «Си» стал «побочным продуктом» разра¬ботки «Юникс»);
 унификация файлов.
«Юникс», благодаря своему удобству прежде всего в каче¬стве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.
В конце 70-х годов XX века сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD — «Berkeley Systems Distribution».
Задачу разработать независимую (от авторских прав «Bell Labs») реализацию той же архитектуры поставил и Ричард Столл¬мен, основатель проекта «GNU».
Благодаря конкурентности реализаций архитектура ОС «Юникс» стала вначале фактическим отраслевым стандартом, а за¬тем обрела статус и стандарта юридического — ISO/IEC 9945 [1].
ОС, следующие стандарту или опирающиеся на него, назы¬вают «открытыми ОС» (иногда встречается словоупотребление «Юникосоподобные» или «семейство „Юникс“», но оно противо¬речит статусу торгового знака «Юникс», принадлежащего консор¬циуму «The Open Group» и зарезервированному для обозначения ОС, строго следующих стандарту).
К открытым ОС относятся системы, базирующиеся на по¬следней версии «Юникс», выпущенной «Bell Labs» («System V»), на разработках Университета Беркли («FreeBSD», «OpenBSD»,«NetBSD»), а также ОС «GNU/Linux», разработанная в части утилит и библиотек проектом «GNU» и в части ядра — со¬обществом, возглавляемым Линусом Торвальдсом.
Стандартизация ОС гарантирует возможность безболезненной замены самой ОС и/или оборудования при развитии вычислительной системы или сети и дешёвого переноса прикладного про¬граммного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между открытыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 90-х годах.
2.7 Альтернативные операционные системы
С разработкой и введением стандарта разработка альтерна¬тивных ОС не прекратилась.
Отчасти это обусловлено объективными причинами (огра-ниченностью ресурсов и специализированным применением вновь создаваемых классов вычислительных устройств, таких как персо¬нальные компьютеры (ПК) в 1980-х годах, портативные компью¬теры в 1990-хили карманные компьютеры и мобильные телефоны в 2000-х), отчасти это связано с антиконкурентными целями их раз¬работчиков, стремящихся ограничить или сделать невозможными перенос прикладных программ и (или) преемственность опыта пользователей таких классов устройств.
Так, в 1970-е годы продолжалась разработка альтернатив¬ных ОС для миникомпьютеров (таких, как «RT-11» (известной в СССР как «РАФОС» и «ФОБОС») и «RSX-11» (известной в СССР как «ОС РВ»)). В 1980-е был создан целый ряд ОС специально для ПК, включая «CP/M», «MS-DOS»/«PC/DOS», «MacOS» (в «класси¬ческом варианте» — вплоть до версии 9), а уже в 1990-е — «Microsoft Windows NT» (также существующая и в серверных ва¬риантах), «OS/2», «BeOS». Сейчас продолжают создаваться альтер¬нативные ОС для карманных компьютеров, мобильных телефонов, игровых приставок и медиацентров, служебного коммуникацион¬ного оборудования.
Определённое значение также сохраняют ОС, разработан¬ные до или одновременно с зарождением открытых систем, либо происходящие от них непосредственно или концептуально: уже упомянутая «Microsoft Windows NT» (дальний концептуальный по¬томок «RSX-11» и «VMS»), «MVS» (потомок «OS/360»), «VM/CMS» (потомок «CTSS»).
Для альтернативных ОС характерна ориентация на одну или несколько аппаратных архитектур, неполнота функций (специали-зированность). Большинство альтернативных ОС несвободны.
«Постъюниксовские» архитектуры ос
Коллектив, создавший ОС «Юникс», попытался позднее по¬вторить свой успех, обобщив и дополнив исходную концепцию. Таким образом появились ОС «Plan9» и «Inferno», не получившие, впрочем, широкого распространения..
Позднее на основе «Plan9» в Испании были разработаны ОС «Off++» и «Plan B», носящие экспериментальный характер.
К попыткам создать постъюниксовскую архитектуру можно также отнести разработку системы программирования и операци¬онной среды «Оберон» в Швейцарском федеральном технологиче¬ском институте (ETH Zurich) под руководством проф. Никласа Вирта.

Оставить комментарий

avatar
  Подписаться  
Уведомление о