ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 184
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
14 интерактивной разработки, известные по компьютерам первого поколения на новых системах, привело к появлению режима разде- ления времени.
Режим разделения времени – вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал.
Так как пользователи чаще выдают короткие команды компиляции при отладке программ, компьютер может обеспечить быстрое ин- терактивное обслуживание нескольких пользователей.
Первая система разделения времени CTSS (Compatible Time-
Sharing System) была разработана Фернандо Корбато и его командой в Массачусетском технологическом институте (M.I.T.) на специаль- но переделанном компьютере IBM 7094. Впоследствии в 1962 году решения, использовавшиеся в демонстрационной системе CTSS, легли в основу проекта первой полноценной системы с разделением времени, названной Multiplexed Information and Computer System
(Multics) на компьютере GE-645, позднее Honeywell 6180.
Работа над системой Multics продолжалась вплоть до 1969 го- да, но коммерческого успеха она не имела. Однако этот проект имел определяющее значение для дальнейшего развития компьютерных технологий. В системе Multics впервые реализованы: сегментно- страничная виртуальная память; отображение файлов на адресное пространство процессов; динамическое связывание исполняемой программы с библиотеками. В ней применялись даже более сложные и гибкие механизмы взаимодействия процессов через разделяемые сегменты, чем в современных системах. Использовалось «горячее» реконфигурирование системы с заменой процессоров, блоков памя- ти, жестких дисков без остановки обслуживания пользователей.
Multics – одна из первых мультипроцессорных систем. Multics была также одной из первых систем, в которой большое внимание уделя- лось безопасности взаимодействия между программами и пользова- телями. Более того, она была самой первой операционной системой, задуманной изначально и реализованной как безопасная. Дополни- тельно к этому в Multics одной из первых была реализована иерар- хическая файловая система, имена файлов могли быть практически произвольной длины и содержать любые символы. Файл или ди- ректория могли иметь несколько имён (короткое и длинное), были доступны для использования символьные ссылки (symlink) между директориями. В Multics был впервые реализован (теперь уже
15 стандартный) подход использования стеков для каждого вычисли- тельного процесса в ядре системы: с отдельным стеком для каждо- го уровня безопасности вокруг ядра. Multics явилась одной из пер- вых операционных систем, написанных на языке высокого уровня
PL/I. Можно сказать, что идея «облачных» вычислений, популяр- ная в настоящее время, также берет начало от системы Multics – компьютерного предприятия общественного пользования 60-70 годов прошлого века.
Важным моментом развития компьютерной индустрии во времена третьего поколения был феноменальных рост миникомпью- теров, начиная с выпуска корпорацией DEC в 1961 году компьютера
PDP-1 и наиболее коммерчески успешной модели PDP-11. Особен- ностью этого семейства являлась низкая цена ($120,000, что состав- ляло 5% цены мейнфрейма IBM) и сопоставимая с мейнфреймами производительность на нечисловых задачах. Кроме этого, PDP-11 отличалась удачной «ортогональной» системой команд: можно было отдельно запоминать команды, и отдельно – методы доступа к опе- рандам. Все регистры, в том числе служебные (указатель стека, счетчик команд), одинаково использовались со всеми командами.
Все эти факторы способствовали очень широкому распростра- нению компьютеров этого семейства, а вместе с ними и операцион- ной системы Unix. Операционная система UNIX была разработана сотрудниками Bell Labs, в первую очередь Кеном Томпсоном, Ден- нисом Ритчи и Дугласом Макилроем. В 1969 году Кен Томпсон, стремясь реализовать идеи, которые были положены в основу Mul- tics, но на более скромном аппаратном обеспечении (DEC PDP-7), написал первую версию новой операционной системы. Брайан Кер- ниган придумал для неё название – UNICS (UN-multiplexed Infor- mation and Computing System – примитивная информационная и вычислительная служба) – в противовес Multics. Позже это назва- ние сократилось до UNIX. В ноябре 1971 года вышла версия для
PDP-11. Эта версия получила название «первая редакция» (Edition 1) и была первой официальной версией. Системное время все реализа- ции UNIX отсчитывают с 1 января 1970 года.
UNIX-системы имеют большую историческую важность.
UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Еще од- ной инновацией Multics, популяризированной UNIX, являлся интер-
16 претатор команд. Так как интерпретатор и команды операционной системы – обычные программы, пользователь мог выбирать их в со- ответствии со своими предпочтениями или даже написать собствен- ную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции ядра. Предложенный в командной строке UNIX способ создания цепочек программ, последовательно обрабатываю- щих данные (конвейер, pipeline), способствовал использованию па- раллельной обработки данных.
Существенными особенностями UNIX были полная ориента- ция на текстовый ввод-вывод и предположение, что размер машин- ного слова кратен восьми битам. Первоначально в UNIX не было даже редакторов двоичных файлов – система полностью конфигу- рировалась с помощью текстовых команд. Наибольшей и наимень- шей единицей ввода-вывода служил текстовый байт, что полностью отличало ввод-вывод UNIX от ввода-вывода других операционных систем. Ориентация на текстовый восьмибитный байт сделала UNIX более масштабируемой и переносимой, чем другие операционные системы. UNIX способствовала широкому распространению регу- лярных выражений, которые были впервые реализованы в текстовом редакторе ed для UNIX. Возможности, предоставляемые UNIX- программами, стали основой стандартных интерфейсов операцион- ных систем (POSIX).
Среди примеров известных UNIX подобных операционных систем: BSD, Solaris, Linux, Minix, Android, MeeGo, NeXTSTEP, macOS.
Отметим, что в нашей стране также были распространены компьютеры, аналогичные семействам IBM /360 и DECPDP. В конце
70-х начале 80-х годов в СССР и ряде соцстран разрабатывалось се- мейство управляющих ЭВМ (СМ ЭВМ). Наиболее развитой линией в семействе СМ ЭВМ был ряд машин, совместимых по системе ко- манд и архитектуре с машинами PDP-11фирмы DEC. На них, например, использовались операционные системы РАФОС (аналог
RT-11, системы реального времени для компьютера PDP-11), ДЕ-
МОС (советско-российский клон Unix, созданный на основе BSD).
Аналогом серии мейнфреймов IBM /360 и /370 в СССР яв- лялась «Единая система электронных вычислительных машин»
(ЕС ЭВМ). Операционная система ОС ЕС разрабатывалась как клон OS /360 путем дизассемблирования и адаптации исходных ко-
17 дов. Версия ОС ЕС 7 использовала концепцию гипервизора (вир- туальной машины). Эта версия – аналог операционной системы
VM, еще одного типа операционных систем компьютеров серии
/360 /370.
В целом можно отметить, что третье поколение компьютеров являлось источником основных архитектурных инноваций, исполь- зуемых в современных операционных системах. Роль четвертого поколения заключается в широком внедрении этих инноваций.
Четвертое поколение компьютеров и операционных си-
стем (с 1980 года), персональные вычисления. Следующий этап эволюции операционных систем связан с появлением больших инте- гральных схем (БИС), по-английски large scale integration (LSI). С точки зрения аппаратной архитектуры персональные компьютеры
(микрокомпьютеры) были похожи на PDP-11, но значительно усту- пали по цене. Теперь каждый желающий получил возможность ку- пить собственный компьютер.
Первой операционной системой для микрокомпьютеров была
CP/M (Control Program for Microcomputers), разработчик Гари
Килдэлл, Digital Research. Она работала на первых 8-разрядных си- стемах с процессором Intel 8080, Zilog Z80. С появлением в 1981 го- ду новой серии IBM PC – совместимых компьютеров, на базе 16 разрядного процессора Intel 8088, на рынке программного обеспече- ния микрокомпьютеров операционную систему CP/M сменила си- стема MS- DOS компании Microsoft.
Операционные системы для первых микрокомпьютеров пол- ностью основывались на вводе команд с клавиатуры. Однако еще в
60-е годы в научно-исследовательском институте Стэнфорда (Stan- ford ResearchInstitute) Дугласом Энгельбартом был изобретен графи- ческий интерфейс пользователя (GUI, Graphical User Interface), в ко- тором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графи- ческих изображений. Графический интерфейс был реализован в про- тотипе современных персональных компьютеров Xerox Alto, разра- ботанном в исследовательском центре Xerox PARC в 1973 году.
На Xerox Alto использовались программы с графическими ме- ню, пиктограммами и другими элементами, ставшие привычными лишь с появлением операционных систем Mac OS и Microsoft
Windows. Для Xerox Alto были разработаны текстовые процессоры
18
Bravo и Gypsy, работавшие по принципу WYSIWYG (предшествен- ники Microsoft Word), редакторы графической информации (растро- вых изображений, печатных плат, интегральных схем и др.), среда
Smalltalk (объектно-ориентированное программирование).
Первой успешной коммерческой реализацией GUI для пер- сональных компьютеров была система Apple Macintosh, изготов- ленная под руководством Стива Джобса в 1984 году. Под влиянием успехов Apple фирма Microsoft в 1985 году выпускает свою реали- зацию GUI – систему Windows. На протяжении 10 лет система Win- dows исполняла роль графической оболочки поверх MS-DOS. Были разработаны еще две линейки настольных операционных систем.
Семейство Windows 9x включает в себя Windows 95, Windows 98 и
Windows ME. Оно являлось промежуточным семейством 32-разрядных систем. Семейство Windows NT – современные версии операцион- ной системы Windows, берущие начало от системы Windows NT 3.1, выпущенной в 1993 году. Наиболее популярные версии операцион- ных систем этого семейства: Windows NT 4.0; Windows 2000 (NT
5.0); Windows XP (NT 5.1); Windows Vista (NT 6.0); Windows 7 (NT
6.1); Windows 8 (NT 6.2)
); Windows 10 (NT 10.0).
Главными конкурентами систем Windows в персональных вы- числениях становятся различные производные системы Unix: семей- ство операционных систем Apple macOS (BSD), Google Android
(Linux), Ubuntu (Linux). Для серверных приложений и высокопроиз- водительных вычислений операционная система Unix (в частности,
Linux) является доминирующей операционной системой.
Современные компьютеры и операционные системы. Раз- витие аппаратных технологий приводит к уменьшению размеров, повышению быстродействия, увеличению коммуникационных воз- можностей, снижению стоимости и распространению вычислитель- ной техники. В распоряжении крупнейших компаний, таких как
Google, Amazon, Facebook, Microsoft и др. находится огромная вы- числительная инфраструктура, включающая центры обработки и хранения данных, сети передачи данных, спутники связи и перифе- рийное оборудование. Важнейшим видом периферийного оборудо- вания являются мобильные устройства, включая смартфоны, план- шетные компьютеры, автомобильные компьютеры, встраиваемые системы. По некоторым оценкам с данной инфраструктурой непо- средственно взаимодействует примерно 90% всего населения Земли.
19
Новые технологии в области операционных систем, по-видимому, будут связаны с развитием методов управления и внедрением вы- числений во все сферы человеческой жизни. Для такой формы вы- числений используется термин ubiquitous computing – «вездесущие вычисления». «Вездесущие вычисления» охватывают широкий набор направлений, связанных с операционными системами, вклю- чая распределённые вычисления, мобильные вычисления, мобиль- ные сети, сенсорные сети, человеко-машинное взаимодействие и искусственный интеллект.
Рассмотрим некоторые классификационные признаки и при- меры операционных систем.
По признаку поддержки многозадачности различают одноза- дачные и многозадачные операционные системы. Однозадачные си- стемы в основном выполняют функцию предоставления расширен- ной машины. Из рассмотренных операционных систем однозадач- ными являются MS-DOS, CP/M, RT-11 (версии SJ, SL), ранние вер- сии Unix. Примеры многозадачных систем – Unix, Windows, опера- ционная система персональных компьютеров с графическим интер- фейсом IBM OS/2.
По числу пользователей операционные системы делятся на однопользовательские и многопользовательские. Главное отличие многопользовательских систем – это наличие средств защиты ин- формации одного пользователя от несанкционированного доступа со стороны других пользователей. Многозадачные системы могут быть однопользовательскими, например, Windows 3.1. Теоретически воз- можны однозадачные многопользовательские системы. Одной из первых многопользовательских систем с развитыми механизмами защиты была система Multics. Пример другой однопользовательской системы Microsoft – MS-DOS. В системах на базе ядра NT реализо- ваны полноценные механизмы защиты многопользовательского ре- жима.
По аппаратным средствам, на которых функционируют опе- рационные системы, их можно разделить на системы для мейн- фреймов, миникомпьютеров, микрокомпьютеров. Примеры этих операционных систем были рассмотрены в историческом обзоре.
Существуют также встраиваемые системы. Они работают непосред- ственно в устройствах, которыми управляют: средствах управления техническими процессами; станках с ЧПУ; банкоматах, платежных
20 терминалах; телекоммуникационном оборудовании (Windows IoT,
QNX). В отдельную группу можно выделить операционные системы мобильных устройств: смартфонов, планшетных компьютеров, ум- ных часов и др. (iOS, Android, Windows 10 Mobile). Самые произво- дительные компьютеры нашего времени (суперкомпьютеры и кла- стерные системы) в основном работают под управлением Linux. В классификации, основанной на аппаратных средствах, разделение идет по возможности работы с устройствами ввода-вывода и пери- ферийным оборудованием. Наименьшие возможности у встраивае- мых систем интеллектуальных смарт-карт (Java Card, MULTOS).
Наибольшие возможности – у суперкомпьютеров.
По особенностям работы в сети операционные системы де- лятся на сетевые и распределенные. Сетевая операционная система – это обычная система, расширенная поддержкой сетевого взаимодей- ствия. По методам реализации сетевых функций системы различа- ются по способам реализации справочной информации о сетевых ресурсах и адресации; механизмам обеспечения прозрачности до- ступа. В линейке Windows первой сетевой системой была Windows for Workgroups 3.1. Распределённая операционная система, динами- чески и автоматически распределяя работы по различным машинам системы для обработки, заставляет набор сетевых машин обрабаты- вать информацию параллельно. Пользователь распределённой опе- рационной системы не имеет сведений, на какой машине выполня- ется его работа. Примеры распределенных систем – Plan 9, Amoeba.
Существует несколько вариантов реализации многозадачных операционных систем. В зависимости от способа переключения с
задачи на задачу различают системы с не вытесняющей многозадач- ностью и вытесняющей многозадачностью. Вытесняющая многоза- дачность предполагает использование прерываний от таймера как основной способ переключения задач. Операционные системы се- мейств Windows 1.0-3.11 использовали не вытесняющую многоза- дачность, а Windows 9x, WindowsNT – вытесняющую.
Еще одним аспектом реализации многозадачности является
использование концепции нитей (потоков) исполнения – многоза- дачности внутри одного процесса. Нити использовались в Windows, начиная с Windows 95.
Многозадачные системы можно разделить на три большие группы по критерию эффективности алгоритма планирования и, что
21 эквивалентно, по областям применения многозадачных операцион- ных систем.
Критерии эффективности системы пакетной обработки ори- ентированы на обеспечение максимальной пропускной способности, максимально полной загрузки вычислительной системы. Критерий характеризуется процентом загрузки центрального процессора; ко- личеством заданий, выполняемых в единицу времени; оборотным временем (среднее время вычисления задачи). В таких системах вы- бор нового задания для выполнения определяется от текущей внут- ренней ситуации, складывающейся в системе. Время выполнения задачи зависит от того, какие задачи загружены одновременно с ней и как в них происходит ввод-вывод. Поэтому невозможно гаранти- ровать выполнение некоторого задания в течение определенного интервала времени, что является недостатком.
Система разделения времени устраняет данный недостаток пакетных систем. В таких системах распределение времени процес- сора организовано на основе квантования: периодического пере- ключения управления между всеми одновременно запущенными задачами. С точки зрения задачи это создает иллюзию монопольного использования процессора (концепция терминала). Эффективность систем разделения времени определяется эргономическими показа- телями, связанными с субъективными ощущениями пользователя, как быстро система обрабатывает команды терминала. Системы раз- деления времени обладают меньшей пропускной способностью из-за того, что ресурсы процессора тратятся на постоянное переключение между задачами.
Реальное время в операционных системах – это способность операционной системы обеспечить требуемый уровень сервиса в определённый промежуток времени. Системы реального времени применяют для управления техническими объектами. В них суще- ствует предельно допустимое время, в течение которого должна быть выполнена программа управления объектом. Это время назы- вается временем реакции, а свойство операционных систем опера- тивно реагировать на события – реактивностью. Различают системы жёсткого реального времени – с режимом работы системы, при ко- тором нарушение временных ограничений равнозначно отказу си- стемы (RTLinux); системы мягкого реального времени – с режимом
22 работы системы, при котором нарушения временных ограничений приводят к снижению качества работы (QNX, RT-11, Windows IoT).
Другими важными классификационными признаками являют- ся: возможность исполнения операционной системы на разном типе компьютеров; особенности архитектур и типов ядра; используемые методы управления памятью; организация файловых систем. Они рассматриваются в следующих разделах лекционного курса.
Экзаменационные вопросы по разделу I
1. Определение операционной системы и ее функции. Понятие виртуальной машины. Управление ресурсами.
2. История разработки операционных систем, поколения ЭВМ и операционных систем. Влияние аппаратуры на развитие опера- ционных систем. Лампы – коммутационные панели. Транзисто- ры – пакетные системы. Интегральные схемы – многозадач- ность. СБИС – персональные компьютеры.
3. Классификация и примеры операционных систем. Многозадач- ность. Вид многозадачности. Многопоточная обработка. Крите- рии эффективности многозадачных операционных систем.
23