extracted_text:
тема 3 вопрос 9
эволюция ос
Эволюция ОС
Первый период (1945 1955)
Известно, что компьютер был изобретен английским математиком Чарльзом Бэбиджем в конце
восемнадцатого века. Его "аналитическая машина" так и не смогла нонастоящему заработать, потому
что технологии того времени не удовлетворяли требованиям по изготовлению деталей точной
механики, которые были необходимы для вычислительной техники. Известно также, что этот
компьютер не имел операционной системы.
Некоторый прогресс в создании цифровых вычислительных машин произошел после второй мировой
войны. В середине 40х были созданы первые ламповые вычислительные устройства. В то время одна и
та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании
вычислительной машины. Это была скорее научноисследовательская работа в области
вычислительной техники, а не использование компьютеров в качестве инструмента решения каких
либо практических задач из других прикладных областей. Программирование осуществлялось
исключительно на машинном языке. Об операционных системах не было и речи, все задачи
организации вычислительного процесса решались вручную каждым программистом с пульта
управления. Не было никакого другого системного программного обеспечения, кроме библиотек
математических и служебных подпрограмм.1. Первый период (1945–1955 гг.)
Ламповые машины. Операционных систем нет
 электронновакуумная лампа
Мы начнем исследование развития компьютерных комплексов с появления электронных
вычислительных систем (опуская историю механических и электромеханических устройств). Первые
шаги в области разработки электронных вычислительных машин были предприняты в конце Второй
мировой войны. В середине 40х были созданы первые ламповые вычислительные устройства и
появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.).
В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в
программировании вычислительной машины. Это была скорее научноисследовательская работа в
области вычислительной техники, а не регулярное использование компьютеров в качестве
инструмента решения какихлибо практических задач из других прикладных областей.
Программирование осуществлялось исключительно на машинном языке. Об операционных
системах не было и речи, все задачи организации вычислительного процесса решались
вручную каждым программистом с пульта управления. За пультом мог находиться только один
пользователь.
Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью
панели переключателей. Вычислительная система выполняла одновременно только одну операцию
(вводвывод или собственно вычисления). Отладка программ велась с пульта управления с помощью
изучения состояния памяти и регистров машины.
В конце этого периода появляется первое системное программное обеспечение: в 1951–1952 гг.
возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat
Rochester разрабатывает Ассемблер для IBM701.
Существенная часть времени уходила на подготовку запуска программы, а сами программы
выполнялись строго последовательно. Такой режим работы называется последовательной
обработкой данных.
В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их
малым количеством и низкой эффективностью использования.
Второй период (1955  1965)
С середины 50х годов начался новый период в развитии вычислительной техники, связанный с
появлением новой технической базы  полупроводниковых элементов. Компьютеры второго
поколения стали более надежными, теперь они смогли непрерывно работать настолько долго, чтобы на
них можно было возложить выполнение действительно практически важных задач. Именно в этот период произошло разделение персонала на программистов и операторов, эксплуатационщиков и
разработчиков вычислительных машин.
В эти годы появились первые алгоритмические языки, а следовательно и первые системные
программы  компиляторы. Стоимость процессорного времени возросла, что потребовало уменьшения
непроизводительных затрат времени между запусками программ. Появились первые системы пакетной
обработки, которые просто автоматизировали запуск одной программ за другой и тем самым
увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом
современных операционных систем, они стали первыми системными программами, предназначенными
для управления вычислительным процессом. В ходе реализации систем пакетной обработки был
разработан формализованный язык управления заданиями, с помощью которого программист сообщал
системе и оператору, какую работу он хочет выполнить на вычислительной машине. Совокупность
нескольких заданий, как правило в виде колоды перфокарт, получила название пакета заданий.
2. Второй период (1955 г.–начало 60х)
Компьютеры на основе транзисторов. Пакетные операционные системы
С середины 50х годов начался следующий период в эволюции вычислительной техники, связанный с
появлением новой технической базы – полупроводниковых элементов. Применение транзисторов
вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров.
Теперь машины могут непрерывно работать достаточно долго, чтобы на них можно было возложить
выполнение практически важных задач. Снижается потребление вычислительными машинами
электроэнергии, совершенствуются системы охлаждения. Размеры компьютеров уменьшились.
Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование
ЭВМ коммерческими фирмами.
Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL60,
PL1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки
математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает
необходимость взваливать на одних и тех же людей весь процесс разработки и использования
компьютеров. Именно в этот период происходит разделение персонала на программистов и
операторов, специалистов по эксплуатации и разработчиков вычислительных машин.
Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными
данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает
название задания. Оператор загружает задание в память машины и запускает его на исполнение.
Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через
некоторое (довольно продолжительное) время.
Смена запрошенных ресурсов вызывает приостановку выполнения программ, в результате процессор
часто простаивает. Для повышения эффективности использования компьютера задания с похожими
ресурсами начинают собирать вместе, создавая пакет заданий.
Появляются первые системы пакетной обработки, которые просто автоматизируют запуск одной
программы из пакета за другой и тем самым увеличивают коэффициент загрузки процессора.
При реализации систем пакетной обработки был разработан формализованный язык управления
заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет
выполнить на вычислительной машине.
Системы пакетной обработки стали прообразом современных операционных систем, они были
первыми системными программами, предназначенными для управления вычислительным процессом
Третий период (1965  1980)
Следующий важный период развития вычислительных машин относится к 19651980 годам. В это
время в технической базе произошел переход от отдельных полупроводниковых элементов типа
транзисторов к интегральным микросхемам, что дало гораздо большие возможности новому, третьему
поколению компьютеров.
Для этого периода характерно также создание семейств программносовместимых машин. Первым
семейством программносовместимых машин, построенных на интегральных микросхемах, явилась
серия машин IBM/360. Построенное в начале 60х годов это семейство значительно превосходило машины второго поколения по критерию цена/производительность. Вскоре идея программно
совместимых машин стала общепризнанной.
Программная совместимость требовала и совместимости операционных систем. Такие операционные
системы должны были бы работать и на больших, и на малых вычислительных системах, с большим и с
малым количеством разнообразной периферии, в коммерческой области и в области научных
исследований. Операционные системы, построенные с намерением удовлетворить всем этим
противоречивым требованиям, оказались чрезвычайно сложными "монстрами". Они состояли из
многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи
ошибок, вызывающих нескончаемый поток исправлений. В каждой новой версии операционной
системы исправлялись одни ошибки и вносились другие.
Однако, несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные
операционные системы машин третьего поколения действительно удовлетворяли большинству
требований потребителей. Важнейшим достижением ОС данного поколения явилась реализация
мультипрограммирования. Мультипрограммирование  это способ организации вычислительного
процесса, при котором на одном процессоре попеременно выполняются несколько программ. Пока
одна программа выполняет операцию вводавывода, процессор не простаивает, как это происходило
при последовательном выполнении программ (однопрограммный режим), а выполняет другую
программу (многопрограммный режим). При этом каждая программа загружается в свой участок
оперативной памяти, называемый разделом.
Другое нововведение  спулинг (spooling). Спулинг в то время определялся как способ организации
вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск в том
темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное
задание завершалось, новое задание с диска загружалось в освободившийся раздел.
Наряду с мультипрограммной реализацией систем пакетной обработки появился новый тип ОС
системы разделения времени. Вариант мультипрограммирования, применяемый в системах разделения
времени, нацелен на создание для каждого отдельного пользователя иллюзии единоличного
использования вычислительной машины.
3. Третий период (начало 60х – 1980 г.)
 Компьютеры на основе интегральных микросхем. Первые многозадачные ОС
 Следующий важный период развития вычислительных машин относится к началу 60х – 1980 г. В это
время в технической базе произошел переход от отдельных полупроводниковых элементов типа
транзисторов к интегральным микросхемам. Вычислительная техника становится более надежной
и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается
производительность процессоров.
Повышению эффективности использования процессорного времени мешает низкая скорость работы
механических устройств вводавывода (быстрый считыватель перфокарт мог обработать 1200
перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения
пакета заданий с перфокарт в память начинают использовать его предварительную запись, сначала на
магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они
читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и
записывается на ленту или диск, а печатается только после завершения задания.
Вначале действительные операции вводавывода осуществлялись в режиме offline, то есть с
использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают
выполняться на том же компьютере, который производит вычисления, то есть в режиме online. Такой
прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или
подкачкиоткачки данных. Введение техники подкачкиоткачки в пакетные системы позволило
совместить реальные операции вводавывода одного задания с выполнением другого задания, но
потребовало разработки аппарата прерываний для извещения процессора об окончании этих
операций.
Магнитные ленты были устройствами последовательного доступа, то есть информация считывалась с
них в том порядке, в каком была записана. Появление магнитного диска, для которого не важен
порядок чтения информации, то есть устройства прямого доступа, привело к дальнейшему развитию
вычислительных систем. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске
появилась возможность выбора очередного выполняемого задания. Пакетные системы начинают
заниматься планированием заданий: в зависимости от наличия запрошенных ресурсов, срочности
вычислений и т.д. на счет выбирается то или иное задание.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью
мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока
одна программа выполняет операцию вводавывода, процессор не простаивает, как это
происходило при однопрограммном режиме, а выполняет другую программу. Когда операция
вводавывода заканчивается, процессор возвращается к выполнению первой программы.
Эта идея напоминает поведение преподавателя и студентов на экзамене. Пока один студент
(программа) обдумывает ответ на вопрос (операция вводавывода), преподаватель (процессор)
выслушивает ответ другого студента (вычисления). Естественно, такая ситуация требует наличия в
комнате нескольких студентов. Точно так же мультипрограммирование требует наличия в памяти
нескольких программ одновременно. При этом каждая программа загружается в свой участок
оперативной памяти, называемый разделом, и не должна влиять на выполнение другой программы.
(Студенты сидят за отдельными столами и не подсказывают друг другу.)
Появление мультипрограммирования требует настоящей революции в строении вычислительной
системы. Особую роль здесь играет аппаратная поддержка (многие аппаратные новшества появились
еще на предыдущем этапе эволюции), наиболее существенные особенности которой перечислены
ниже.








Реализация защитных механизмов.
Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к
появлению привилегированных и непривилегированных команд. Привилегированные команды,
например команды вводавывода, могут исполняться только операционной системой. Говорят, что
она работает в привилегированном режиме. Переход управления от прикладной программы к ОС
сопровождается контролируемой сменой режима. Кроме того, это защита памяти, позволяющая
изолировать конкурирующие пользовательские программы друг от друга, а ОС – от программ
пользователей.
Наличие прерываний.
Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например
завершилась операция вводавывода.
Внутренние прерывания (сейчас их принято называть исключительными ситуациями) возникают,
когда выполнение программы привело к ситуации, требующей вмешательства ОС, например деление
на ноль или попытка нарушения защиты.
Развитие параллелизма в архитектуре.
Прямой доступ к памяти и организация каналов вводавывода позволили освободить центральный
процессор от рутинных операций.
Не менее важна в организации мультипрограммирования роль операционной системы. Она отвечает
за следующие операции.
Организация интерфейса между прикладной программой и ОС при помощи
системных вызовов.
Организация очереди из заданий в памяти и выделение процессора одному из
заданий потребовало планирования использования процессора.
Переключение с одного задания на другое требует сохранения содержимого
регистров и структур данных, необходимых для выполнения задания, иначе говоря, контекста для
обеспечения правильного продолжения вычислений.
Поскольку память является ограниченным ресурсом, нужны стратегии управления
памятью, то есть требуется упорядочить процессы размещения, замещения и выборки информации из
памяти.
обеспечение доступа к конкретному файлу только определенным категориям пользователей.
Организация хранения информации на внешних носителях в виде файлов и 

Поскольку программам может потребоваться произвести санкционированный обмен
данными, необходимо их обеспечить средствами коммуникации.
Для корректного обмена данными необходимо разрешать конфликтные
ситуации, возникающие при работе с различными ресурсами и предусмотреть координацию
программами своих действий, т.е. снабдить систему средствами синхронизации.
Мультипрограммные системы обеспечили возможность более эффективного использования
системных ресурсов (например, процессора, памяти, периферийных устройств), но они еще долго
оставались пакетными. Пользователь не мог непосредственно взаимодействовать с заданием и
должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка
программ попрежнему занимала много времени и требовала изучения многостраничных распечаток
содержимого памяти и регистров или использования отладочной печати.
Появление электроннолучевых дисплеев и переосмысление возможностей применения клавиатур
поставили на очередь решение этой проблемы.
Логическим расширением систем мультипрограммирования стали timesharing системы, или
системы разделения времени.  В них процессор переключается между задачами не только на время
операций вводавывода, но и просто по прошествии определенного времени. Эти переключения
происходят так часто, что пользователи могут взаимодействовать со своими программами во время их
выполнения, то есть интерактивно. В результате появляется возможность одновременной работы
нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна
быть хотя бы одна программа в памяти.
Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея
неполного нахождения исполняемой программы в оперативной памяти. Основная часть
программы находится на диске, и фрагмент, который необходимо в данный момент выполнять, может
быть загружен в оперативную память, а ненужный – выкачан обратно на диск. Это реализуется с
помощью механизма виртуальной памяти. Основным достоинством такого механизма является
создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить
отладку программы в интерактивном режиме и записывать информацию на диск, не используя
перфокарты, а непосредственно с клавиатуры. Появление onlineфайлов привело к необходимости
разработки развитых файловых систем.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До
начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел
собственную операционную систему, свою систему команд и т. д. В результате программу, успешно
работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать
для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания
семейств программно совместимых машин, работающих под управлением одной и той же
операционной системы.
Первым семейством программно совместимых компьютеров, построенных на интегральных
микросхемах, стала серия машин IBM/360. Разработанное в начале 60х годов, это семейство
значительно превосходило машины второго поколения по критерию цена/производительность. За ним
последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала
PDP11.
Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции
(наличие всех моделей: от миникомпьютеров до гигантских машин; обилие разнообразной периферии;
различное окружение; различные пользователи) порождали сложную и громоздкую операционную
систему. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали
множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления.
Только в операционной системе OS/360 содержалось более 1000 известных ошибок. Тем не менее
идея стандартизации операционных систем была широко внедрена в сознание пользователей и в
дальнейшем получила активное развитие.
Четвертый период (1980  настоящее время) Следующий период в эволюции операционных систем связан с появлением больших интегральных
схем (БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление микросхем.
Компьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров. С точки
зрения архитектуры персональные компьютеры ничем не отличались от класса миникомпьютеров типа
PDP11, но вот цена у них существенно отличалась. Если миникомпьютер дал возможность иметь
собственную вычислительную машину отделу предприятия или университету, то персональный
компьютер сделал это возможным для отдельного человека.
Компьютеры стали широко использоваться неспециалистами, что потребовало разработки
"дружественного" программного обеспечения, это положило конец кастовости программистов.
На рынке операционных систем доминировали две системы: MSDOS и UNIX. Однопрограммная
однопользовательская ОС MSDOS широко использовалась для компьютеров, построенных на базе
микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная
многопользовательская ОС UNIX доминировала в среде "неинтеловских" компьютеров, особенно
построенных на базе высокопроизводительных RISCпроцессоров.
В середине 80х стали бурно развиваться сети персональных компьютеров, работающие под
управлением сетевых или распределенных ОС.
В сетевых ОС пользователи должны быть осведомлены о наличии других компьютеров и должны
делать логический вход в другой компьютер, чтобы воспользоваться его ресурсами, преимущественно
файлами. Каждая машина в сети выполняет свою собственную локальную операционную систему,
отличающуюся от ОС автономного компьютера наличием дополнительных средств, позволяющих
компьютеру работать в сети. Сетевая ОС не имеет фундаментальных отличий от ОС
однопроцессорного компьютера. Она обязательно содержит программную поддержку для сетевых
интерфейсных устройств (драйвер сетевого адаптера), а также средства для удаленного входа в
другие компьютеры сети и средства доступа к удаленным файлам, однако эти дополнения
существенно не меняют структуру самой операционной системы.
4. Четвертый период (с 1980 г. по настоящее время)
Персональные компьютеры. Классические, сетевые и распределенные системы
 Следующий период в эволюции вычислительных систем связан с появлением больших
интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и
снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP11, по цене и
простоте эксплуатации стал доступен отдельному человеку, а не отделу предприятия или
университета. Наступила эра персональных компьютеров.
Первоначально персональные компьютеры предназначались для использования одним пользователем в
однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их
операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования
заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки
«дружественного» программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах,
необходимость повышения надежности их работы привели к возрождению практически всех черт,
характерных для архитектуры больших вычислительных систем.
В середине 80х стали бурно развиваться сети компьютеров, в том числе персональных, работающих
под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого
сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в
сети работает под управлением своей локальной операционной системы, отличающейся от
операционной системы автономного компьютера наличием дополнительных средств (программной
поддержкой для сетевых интерфейсных устройств и доступа к удаленным ресурсам), но эти
дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система.
Пользователь не знает и не должен знать, где его файлы хранятся – на локальной или удаленной
машине – и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от
автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими
операционными системами.
Просмотрев этапы развития вычислительных систем, мы можем выделить шесть основных функций,
которые выполняли классические операционные системы в процессе эволюции:






Планирование заданий и использования процессора.
Обеспечение программ средствами коммуникации и синхронизации.
Управление памятью.
Управление файловой системой.
Управление вводомвыводом.
Обеспечение безопасности
Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным
компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по
своему, в различном объеме. Они не были изначально придуманы как составные части операционных
систем, а появились в процессе развития, по мере того как вычислительные системы становились все
более удобными, эффективными и безопасными.
Эволюция вычислительных систем, созданных человеком, пошла по такому пути, но никто еще не
доказал, что это единственно возможный путь их развития. Операционные системы существуют
потому, что на данный момент их существование – это разумный способ использования
вычислительных систем. Рассмотрение общих принципов и алгоритмов реализации их функций и
составляет содержание большей части нашего курса, в котором будут последовательно описаны
перечисленные подсистемы.
В обобщении темы «Эволюция операционных систем» предлагается краткая таблица, в которой
указаны основные вехи развития вычислительной техники и операционных систем.
Период
Развитие ОС
до 1955 г.
1955 – 1965 гг.
В XIX веке Чарльз Бэбидж предложил идею компьютера. Но технологии
того времени не могли обеспечить изготовление деталей точной
механики, которые были необходимы для этой машины. И его
«аналитическая машина» так и не смогла заработать.В середине 40х гг.
XX в. появились ламповые вычислительные устройства. Это была скорее
научноисследовательская работа в области вычислительной техники, а
не использование компьютеров в качестве инструмента решения каких
либо практических задач. Программирование таких вычислительных
машин осуществлялось исключительно на машинном языке, и все задачи
организации вычислительного процесса решались вручную каждым
программистом с пульта управления. Никакого системного
программного обеспечения, кроме библиотек математических и
служебных подпрограмм, не было.
Появление новой технической базы – полупроводниковых элементов.
Компьютеры второго поколения стали более надежными, теперь они
смогли непрерывно работать настолько долго, чтобы на них можно было
возложить выполнение действительно практически важных задач. В эти
годы появились первые алгоритмические языки, и первые системные
программы – компиляторы.Стоимость процессорного времени возросла,
что потребовало уменьшения непроизводительных затрат времени между
запусками программ. Появились первые системы пакетной обработки,
которые просто автоматизировали запуск одной программ за другой, и
тем самым увеличивали коэффициент загрузки процессора. Системы
пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными
для управления вычислительным процессом.
В технической базе произошел переход от отдельных полупроводниковых
элементов типа транзисторов к интегральным микросхемам. Для этого
периода характерно также создание семейств программносовместимых
машин. Первым семейством программносовместимых машин,
построенных на интегральных микросхемах, явилась серия машин
IBM/360.Программная совместимость требовала и совместимости
операционных систем. Такие операционные системы должны были
работать на больших и малых вычислительных системах с различными
периферийными устройствами, и обеспечивать применение
вычислительной системы в коммерческой области и в области научных
исследований. ОС, удовлетворяющие всем требованиям, были
громоздкими, сложными, они содержали множество ошибок, вызывающих
нескончаемый поток исправлений. Примером такой ОС может служить
OS/360 (фирма IBM).В этот период были реализованы почти все
основные механизмы, присущие современным ОС:
мультипрограммирование, мультипроцессирование, поддержка
многотерминального многопользовательского режима, виртуальная
память, разграничение доступа, работа в сети.Мультипрограммирование
– это способ организации вычислительного процесса, при котором на
одном процессоре попеременно выполняются несколько программ.
Мультипрограммирование было реализовано в системах пакетной
обработки и в системах разделения времени. Для возможности работы
с компьютером большого числа пользователей были разработаны
многотерминальные системы, когда каждый пользователь работает за
своим терминалом. Многотерминальный режим использовался и в
системах разделения времени, и в системах пакетной обработки. При
этом и пользователи, и оператор могли формировать свои задания и
управлять их выполнением со своего терминала. В режиме
мультипрограммирования каждая программа загружается в свой участок
оперативной памяти, называемый разделом.Другое нововведение в
машинах третьего поколения – спулинг (spooling) – способ организации
вычислительного процесса, в соответствии с которым задания
считывались с перфокарт на диск в том темпе, в котором они появлялись
в помещении вычислительного центра, а затем, когда очередное задание
завершалось, новое задание с диска загружалось в освободившийся
раздел. В это время ОС стали неотъемлемой частью компьютеров,
взявшей на себя большую часть действий по организации
вычислительного процесса.
В начале 70х гг. появились первые прототипы сетевых операционных
систем, которые в отличие от многотерминальных ОС позволяли не
только рассредоточить пользователей, но и организовать распределенное
хранение и обработку данных между несколькими компьютерами,
связанными электрическими связями.К середине 70х гг. получили
большое распространение миникомпьютеры: Nova, PDP11, HP. Их
архитектура стала значительно проще, что упростило и операционные
системы. ОС миникомпьютеров стали делать специализированными,
например, только для управления в реальном времени (RT11 для PDP11)
или только для поддержания режима разделения времени. Эти
операционные системы не были многопользовательскими.
1965 – начало 70х
гг.
70е – 1980 гг.
1980 – 90е гг.
Этот период в эволюции операционных систем связан с появлением
больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление микросхем. Компьютер
стал доступен отдельному человеку, и наступила эра персональных
компьютеров. Функционально они ничем не отличались от
миникомпьютеров типа PDP11, но цена у них была существенно ниже.
Что позволило иметь собственный компьютер практически каждому
человеку, а не отделу или институту. Компьютеры стали использоваться
неспециалистами, что потребовало «дружественности» от программного
обеспечения. На рынке операционных систем в эти годы доминировали
две системы: MSDOS и Unix. Однопрограммная однопользовательская
ОС MSDOS широко использовалась для компьютеров, построенных на
базе микропроцессоров Intel 8088, а затем 80286, 80386 и
80486.Мультипрограммная многопользовательская ОС Unix
использовалась, в основном, на «неинтеловских» компьютерах, особенно
построенных на базе высокопроизводительных RISCпроцессоров. Все
десятилетие происходило усовершенствование этой ОС, в результате
чего стали появляться ее новые разновидности: SunOS, HPUX, Irix,
AIX.Значительное распространение персональных компьютеров
послужило катализатором для бурного роста локальных сетей. Ещё
одной важной разработкой этого десятилетия стало появление стека
протоколов TCP/IP, становление Интернета, стандартизация технологий
локальных сетей, и более интенсивное развитие сетевых операционных
систем (OSNet фирмы Nowell, OS/2 фирм Microsoft и IBM).
В 90е годы почти все ОС становятся сетевыми, способными работать с
разнородными клиентами и серверами, поддерживают средства работы с
Интернетом. Появляются специализированные сетевые ОС,
предназначенные исключительно для выполнения коммуникационных
задач, например, систеliliмpа IOS фирмы CiscoSСистемы пакетной
обработки/emystн ли его компью тер к сети. Внутреннее строение ems
работающая в маршрутизаторах.Особое место уделяется корпоративным
ОС, им отводится основная роль в развитии ОС в ближайшем будущем.
Такая ОС должна устойчиво работать в крупных сетях больших
предприятий. Для корпоративных систем характерна высокая степень
масштабируемости, поддержка сетевой работы, развитые средства
обеспечения безопасности, способность работать в гетерогенной среде.К
корпоративным ОС в настоящее время относят Windows 2000,
WindowsNT, различные Unixсистемы.
Современный этап
развития ОС
Эволюция операционных систем состоит из следующих этапов:
 Последовательное выполнение заданий
 Простая пакетная обработка
 Мультипрограммирование в пакетных системах
 Разделение времени
 Современные ОС
Первая фаза развития ОС
Время ЭВМ дороже времени человека
Один пользователь в один момент времени работает напрямую с консолью
Первые «ОС» — общие библиотеки вв/выв
Простой монитор пакетной обработки – убрать пользователя от компьютера. ОС –
программа для загрузки и исполнения пользовательских заданий и сохранения результатов
Каналы данных, прерывания, одновременное выполнение операций вв/выв и
вычислений



 



















Защита памяти позволяет реализовывать многозадачность: несколько пользователей
используют одну систему
ОС должна управлять взаимодействием, параллельностью
К середине 60х ОС становятся большими и сложными
Область ОС становится важной дисциплиной со своими принципами
 Вторая фаза развития ОС
Время человека дороже времени ЭВМ
временем ответа
Интерактивное разделение времени: удобные файловые системы, проблемы с
Персональные компьютеры: они дешевые, поэтому каждый терминал – ПК
Сеть позволяет организовать общий доступ и взаимодействие между машинами
Встроенные устройства: компьютеры помещаются в сотовые телефоны, стерео
проигрыватели, телевизоры и пр.
Насколько там нужны сложные алгоритмы разделения времени.
Настоящее и будущее ОС
Будущее в научном развитии ОС
Очень маленькие ОС (для мобильных устройств)
Очень большие ОС (центр обработки данных, облачные вычисления)
Характеристики текущих ОС
Огромные миллионы строк исходного кода, 1001000 человеколет разработки
Сложные: асинхронные, зависимые от аппаратного обеспечения, ориентированные
на высокую производительность
Плохо понимаемые
Направление исследований
Постоянно возникают новые направления исследований
собственной унифицированной ОС)
Встраиваемые системы (iPоd – плеер компании Apple потребовал разработки
Системы сенсоров (очень низкое энергопотребление, жесткие требования в памяти)
Одноранговые сети
Беспроводные сети
Маштабируемые системы, кластерные системы
Старые проблемы требуют новых подходов к решению
Эволюция смартфонов повторяет эволюцию ПК, которая повторяла эволюцию
миникомпьютеров, а они в свою очередь минифреймов
Эволюция операционных систем | Эволюция ОС
Пытаясь понять основные требования, предъявляемые к операционным системам, а также
значение основных возможностей современных операционных систем, полезно проследить
за их эволюцией, происходившей на протяжении многих лет.

Последовательная обработка данных
В самых первых компьютерах, в период от конца 40х до средины 50х годов, программы
непосредственно взаимодействовали с аппаратным обеспечением машины; операционных
систем в то время еще не было. Эти компьютеры управлялись с пульта управления,
состоящего из сигнальных ламп, тумблеров, некоторого устройства для ввода данных и
принтера. Программы, машинные коды и данные загружались через устройство ввода
данных (например, устройство ввода с перфокарт). Если изза ошибки происходил останов
программы, о возникновении сбойной ситуации свидетельствовали аварийные сигнальные
лампы. Чтобы определить причину ошибки, программист должен был проверить состояние
регистров процессора и основной памяти. Если программа успешно завершала свою работу, ее выходные данные распечатывались на принтере.
Ранние системы имели две основные проблемы:
Расписание работы. На большинстве машин нужно было предварительно заказать
машинное время, записавшись в специальный график. Обычно пользователь мог заказать
время, кратное некоторому периоду, например, получасу. Тогда, записавшись на 1 час, он
мог закончить работу за 45 минут, что приводило к простою компьютера. С другой
стороны, если пользователь не укладывался в отведенное время, он должен был
прекращать работу, прежде чем задача завершит выполнение.
Время подготовки к работе. Для запуска каждой программы, называемой заданием (job),
нужно было загрузить в память компилятор и саму программу, обычно составленную на
языке высокого уровня (исходный текст), сохранить скомпилированную программу
(объектный код), а затем загрузить и скомпоновать объектный код с библиотечными
функциями. Для каждого из этих этапов могли понадобиться установка и съем магнитных
лент или загрузка колоды перфокарт. При возникновении фатальной ошибки
беспомощному пользователю не оставалось ничего другого, как начинать весь
подготовительный процесс заново. Таким образом, значительное время затрачивалось лишь
на то, чтобы подготовить программу к собственно исполнению.
Такой режим работы можно назвать последовательной обработкой данных. Это название
отражает тот факт, что пользовательские программы исполнялись на компьютере
последовательно. Спустя некоторое время в попытке повысить эффективность
последовательной обработки были разработаны различные системные инструменты. К ним
относятся библиотеки функций, редакторы связей, загрузчики, отладчики и драйверы
вводавывода, существующие в виде программного обеспечения, общедоступного для всех
пользователей.

Простые пакетные системы
Первые машины были очень дорогими, поэтому было важно использовать их как можно
эффективнее. Простои, происходившие изза несогласованности расписания, а также
время, затраченное на подготовку задачи, — все это обходилось слишком дорого; эти
непроизводительные затраты были непозволительной роскошью.
Чтобы повысить эффективность работы, была предложена концепция пакетной
операционной системы. Похоже, первые пакетные операционные системы (и вообще первые
операционные системы какого бы то ни было типа) были разработаны в средине 50х годов
в компании General Motors для машин IBM 701 [WEIZ81]. Впоследствии эта концепция
была усовершенствована и внедрена определенным кругом пользователей на IBM 704. В
начале 60х годов некоторые поставщики разработали пакетные операционные системы для
своих компьютеров. Одной из заметных систем того времени является IBSYS фирмы IBM,
разработанная для компьютеров 7090/7094 и оказавшая значительное влияние на другие
системы.
Главная идея, лежащая в основе простых пакетных схем обработки, состоит в
использовании программы, известной под названием монитор (monitor). Используя
операционную систему такого типа, пользователь не имеет непосредственного доступа к
машине. Вместо этого он передает свое задание на перфокартах или магнитной ленте
оператору компьютера, который собирает разные задания в пакеты и помещает их в
устройство ввода данных. Так они передаются монитору. Каждая программа составлена
таким образом, что при завершении ее работы управление переходит к монитору, который
автоматически загружает следующую программу.
Чтобы понять работу этой схемы, рассмотрим ее с точки зрения монитора и процессора.
Работа схемы с точки зрения монитора. Монитор управляет последовательностью
событий. Чтобы это было возможно, большая его часть должна всегда находиться в
основной памяти и быть готовой к работе (рис. 2.3). Эту часть монитора называют
резидентным монитором. Оставшуюся часть составляют утилиты и общие функции,
которые загружаются в виде подпрограмм, вызываемых программой пользователя в начале выполнения каждого задания (если они для него требуются). Монитор считывает с
устройства ввода данных (обычно это устройство ввода с перфокарт или магнитная лента)
по одному заданию. При этом текущее задание размещается в области памяти,
предназначенной для программ пользователя, и ему передается управление. По завершении
задания оно возвращает управление монитору, который сразу же начинает считывать
следующее задание. Результат исполнения каждого задания направляется на устройство
вывода, например принтер.
Работа схемы с точки зрения процессора. Допустим, в некоторый момент времени
процессор исполняет команды, которые находятся в той части основной памяти, которую
занимает монитор. Это приводит к тому, что в другую область памяти считывается новое
задание. После того как задание полностью считано, монитор отдает процессору команду
перехода, по которой он должен начать исполнение программы пользователя. Процессор
переходит к обработке программы пользователя и выполняет ее команды до тех пор, пока
не дойдет до конца или пока не возникнет сбойная ситуация.
В любом из этих двух случаев следующей командой, которую процессор извлечет из
памяти, будет команда монитора. Таким образом, фраза "контроль передается заданию"
означает, что процессор перешел к извлечению и выполнению команд программы
пользователя. Фраза же "контроль возвращается монитору" означает, что теперь процессор
извлекает из памяти и выполняет команды монитора.
Как видите, монитор решает проблему разработки графика. Задания в пакетах
выстраиваются в очередь и выполняются без простоев настолько быстро, насколько это
возможно. Кроме того, монитор помогает в подготовке программы к исполнению. В
каждое задание включаются простые команды языка управления заданиями (job control
language — JCL). Это специальный тип языка программирования, используемый для того,
чтобы отдавать команды монитору. Рассмотрим простой пример, в котором нужно принять
на обработку программу пользователя, составленную на языке FORTRAN, и
дополнительные данные, используемые этой программой. Все команды языка FORTRAN и
данные находятся на отдельных перфокартах или в отдельных записях на магнитной ленте.
Каждое задание, кроме операторов языка FORTRAN и данных, содержит команды
управления заданием, каждая из которых начинается знаком $. Формат задания в целом
выглядит следующим образом:
Чтобы выполнить это задание, монитор читает строку $FTN и загружает с запоминающего
устройства большой емкости (обычно это лента) компилятор соответствующего языка.
Компилятор преобразует программу пользователя в объектный код, который записывается
в память или на запоминающее устройство. Если этот код заносится в память, то операция
называется "компиляция, загрузка и запуск". Если же он записывается на магнитную ленту,
то нужна дополнительная команда $LOAD. Монитор, к которому вернулось управление
после компиляции, читает эту команду и обращается к загрузчику, который загружает
объектную программу в память (на место компилятора) и передает ей управление. В таком
режиме различные подсистемы совместно используют один и тот же участок основной
памяти, хотя в каждый момент времени работает только одна из этих подсистем.
Во время выполнения программы пользователя по каждой команде ввода считывается
только одна строка данных. Команда ввода программы пользователя обращается к
подпрограмме ввода, которая является составной частью операционной системы.
Подпрограмма ввода проверяет, не произошло ли случайное считывание строки языка JCL.
Если это произошло, управление передается монитору. При успешном (или неудачном)
завершении задания пользователя монитор проверяет строки задания, пока не дойдет до
строки с командой на языке управления, что защищает систему от программ, в которых
оказалось слишком много или слишком мало строк с данными (иначе очередным заданием
могли оказаться излишние данные предыдущего задания, или часть нового задания могла
бы рассматриваться как недостающие данные предыдущего задания).
Таким образом, монитор, или пакетная операционная система, — это обычная
компьютерная программа. Ее работа основана на способности процессора выбирать
команды из различных областей основной памяти; при этом происходит передача и возврат управления. Желательно также использование и других возможностей аппаратного
обеспечения.
Защита памяти. Во время работы программы пользователя она не должна носить
изменения в область памяти, в которой находится монитор. Если е такая попытка
предпринята, аппаратное обеспечение процессора должно обнаружить ошибку и передать
управление монитору. Затем монитор снимет задачу с выполнения, распечатает сообщение
об ошибке и загрузит следующее задание.
Таймер. Таймер используется для того, чтобы предотвратить ситуацию, когда одна задача
захватит безраздельный контроль над системой. Таймер выставляется в начале каждого
задания. По истечении определенного промежутка времени программа пользователя
останавливается и управление передается монитору.
Привилегированные команды. Некоторые команды машинного уровня имеют
повышенные привилегии и могут исполняться только монитором. Если процессор
натолкнется на такую команду во время исполнения программы пользователя, возникнет
ошибка, при которой управление будет передано монитору. В число привилегированных
команд входят команды вводавывода; это значит, что все устройства вводавывода
контролируются монитором. Это, например, предотвращает случайное чтение программой
пользователя команд управления, относящихся к следующему заданию. Если программе
пользователя нужно произвести вводвывод, она должна запросить для выполнения этих
операций монитор.
Прерывания. В первых моделях компьютеров этой возможности не было. Она придает
операционной системе большую гибкость при передаче управления программе
пользователя и его возобновлении.
Конечно, операционную систему можно разработать и без учета описанных выше
возможностей. Однако поставщики компьютеров скоро поняли, что это приведет к хаосу,
поэтому даже сравнительно простые пакетные операционные системы обращались к таким
возможностям аппаратного обеспечения.
При работе пакетных операционных систем машинное время распределялось между
исполнением программы пользователя и монитора. При этом в жертву приносились два
вида ресурсов: монитор занимал некоторую часть оперативной памяти, им же потреблялось
некоторое машинное время. И то и другое приводило к непроизводительным издержкам.
Несмотря на это, простые пакетные системы существенно повышали эффективность
использования компьютера.
 Многозадачные пакетные системы
Процессору часто приходилось простаивать даже при автоматическом выполнении заданий
под управлением простой пакетной операционной системы. Проблема заключается в том,
что устройства вводавывода работают намного медленнее, чем процессор. На рис. 2.4
представлены соответствующие расчеты, выполненные для программы, которая
обрабатывает файл с записями, причем для обработки одной записи требуется в среднем
100 машинных команд. В этом примере 96% всего времени процессор ждет, пока
устройства вводавывода закончат передачу данных в файл и из него. На рис. 2.5,а показана
такая ситуация для одной программы. Некоторое время процессор исполняет команды;
затем, дойдя до команды вводавывода, он должен подождать, пока она не закончится.
Только после этого процессор сможет продолжить работу.
Эффективность использования процессора можно повысить. Мы знаем, что памяти должно
хватить, чтобы разместить в ней операционную систему (резидентный монитор) и
программу пользователя. Представим, что в памяти достаточно места для операционной
системы и двух программ пользователя. Теперь, когда одно из заданий ждет завершения
операций вводавывода, процессор может переключиться на другое задание, для которого в
данный момент вводвывод, скорее всего, не требуется (рис. 2.5,6). Более того, если
памяти достаточно для размещения большего количества программ, то процессор может
выполнять их параллельно, переключаясь с одной на другую (рис. 2.5,в). Такой режим
известен как многозадачность (multiprogramming) и является основной чертой
современных операционных систем. Приведем простой пример, иллюстрирующий преимущества многозадачности. Рассмотрим
компьютер, имеющий 256 К слов памяти, не используемых операционной системой, диск,
терминал и принтер. На обработку одновременно приняты три программы, JOB1, JOB2 и
JOB3, атрибуты которых перечислены в табл. 2.1. Предположим, что для выполнения
заданий JOB2 и JOB3 использование процессора минимально, и задание JOB3 постоянно
обращается к диску и принтеру. В простой среде с пакетной обработкой эти задания
выполняются последовательно. Для завершения JOB1 требуется 5 мин. Задание JOB2
должно ждать, пока пройдут эти 5 мин, после чего оно выполняется в течение 15 мин. По
истечении 20 мин начинает работу задание JOB3; его выполнение заканчивается через 30
мин после того, как оно было принято на обработку. Средний процент использования
ресурсов, производительность и время отклика показаны в столбце табл. 2.2,
соответствующем однозадачности, а на рис. 2.6,а показано использование различных
устройств в этом режиме. Очевидно, что эффективность использования всех ресурсов,
усредненная по всему периоду времени (30 мин), является крайне низкой.
Теперь предположим, что задания выполняются одновременно под управлением
многозадачной операционной системы. Изза того что они используют разные ресурсы, их
совместное выполнение на компьютере длится минимальное время (при условии, что
заданиям J0B2 и J0B3 предоставляется достаточно процессорного времени для поддержки
осуществляемого ими ввода и вывода в активном состоянии). Для выполнения задания
J0B1 потребуется 5 мин, но к этому времени задание J0B2 будет выполнено на треть, а
задание J0B3 — на половину. Все три задания будут выполнены через 15 мин. Если
посмотреть на столбец табл. 2.2, соответствующий многозадачному режиму, его
преимущества станут очевидны, как и из гистограммы, приведенной на рис. 2.6,6.
Работа многозадачной пакетной системы, как и работа простой пакетной системы,
базируется на некоторых аппаратных особенностях компьютера. Наиболее значительными
дополнениями, полезными для многозадачности, являются аппаратное обеспечение,
поддерживающее прерывания вводавывода, и прямой доступ к памяти. Используя эти
возможности, процессор генерирует команду вводавывода для одного задания и
переходит к другому на то время, пока контроллером устройства выполняется вводвывод.
После завершения операции вводавывода процессор получает прерывание, и управление
передается программе обработки прерываний из состава операционной системы. Затем
операционная система передает управление другому заданию.
Многозадачные операционные системы сложнее систем последовательной обработки
заданий. Для того чтобы можно было обрабатывать несколько заданий одновременно, они
должны находиться в основной памяти, а для этого требуется система управления
памятью. Кроме того, если к работе готовы несколько заданий, процессор должен решить,
какое из них следует запустить, для чего необходим некоторый алгоритм планирования.
Эти концепции обсуждаются в следующих разделах данной главы.
 Системы, работающие в режиме разделения времени
Использование многозадачности в пакетной обработке может привести к существенному
повышению эффективности. Однако для многих заданий желательно обеспечить такой
режим, в котором пользователь мог бы непосредственно взаимодействовать с
компьютером. В самом деле, во многих случаях интерактивный режим является
обязательным условием работы.
Многозадачность не только позволяет процессору одновременно обрабатывать несколько
заданий в пакетном режиме, но может быть использована и для обработки нескольких
интерактивных заданий. Такую организацию называют разделением времени, потому что
процессорное время распределяется между различными пользователями. В системе
разделения времени несколько пользователей одновременно получают доступ к системе с
помощью терминалов, а операционная система чередует исполнение программ каждого
пользователя через малые промежутки времени. Таким образом, если нужно одновременно
обслужить n пользователей, каждому из них предоставляется лишь 1/и часть полной
скорости компьютера, не считая затрат на работу операционной системы. Однако,
принимая во внимание относительно медленную реакцию человека, время отклика на
компьютере с хорошо настроенной системой будет сравнимо со временем реакции пользователя.
Как пакетная обработка, так и разделение времени используют многозадачность. Основные
отличия этих двух режимов перечислены в табл. 2.3.
Одной из первых операционных систем разделения времени была система CTSS
(Compatible TimeSharing System) [CORB62], разработанная в Массачусетском
технологическом институте группой, известной как Project MAC. Первоначально система
была разработана для IBM 709, а затем перенесена на IBM 7094.
По сравнению с более поздними системами, CTSS была довольно примитивна. Она
работала на машине с основной памятью емкостью 32000 36битовых слов, из которых
5000 слов занимал монитор. Когда управление должно было быть передано очередному
интерактивному пользователю, его программа и данные загружались в остальные 27000
слов основной памяти. Программа всегда загружалась так, что ее начало находилось в
ячейке номер 5000, что упрощало управление как монитором, так и памятью.
Приблизительно через каждые 0.2 с системные часы генерировали прерывание. При каждом
прерывании таймера управление передавалось операционной системе, и процессор мог
перейти в распоряжение другого пользователя. Таким образом, данные текущего
пользователя через регулярные интервалы времени выгружались, а вместо них загружались
другие. Перед считыванием программы и данных нового пользователя программа и данные
предыдущего пользователя записывались на диск для сохранения до дальнейшего
выполнения. Впоследствии, когда очередь этого пользователя наступит снова, код и
данные его программы будут восстановлены в основной памяти.
Чтобы уменьшить обмен с диском, содержимое памяти, занимаемое данными пользователя,
записывается на него лишь в том случае, если для загрузки новой программы не хватает
места. Этот принцип проиллюстрирован на рис. 2.7.
Предположим, что всего работает четыре пользователя, которым нужны следующие
объемы памяти:
Сначала монитор загружает задание JOB1 и передает ему управление (о). Затем он
принимает решение передать управление заданию JOB2. Изза того, что JOB2 занимает
больше памяти, чем JOB1, сначала нужно сохранить данные JOB1, а затем можно загружать
JOB2 (б). Затем для обработки загружается JOB3. Но поскольку это задание меньше, чем
JOB2, часть задания JOB2 может оставаться в основной памяти, сокращая время записи на
диск (в). Позже монитор вновь передает управление заданию JOB1. Чтобы загрузить его в
память, на диск необходимо записать еще часть задания JOB2 (г). При загрузке задания
JOB4 в памяти остается часть заданий JOB1 и JOB2 (д). Если теперь будет активизировано
задание JOB1 или JOB2, то потребуется лишь частичная его загрузка. Следующим в этом
примере запускается задание JOB2. Для этого требуется, чтобы JOB4 и оставшаяся в
памяти часть JOB1 были записаны на диск, а в память была считана недостающая часть
JOB2.
Подход CTSS по сравнению с современными принципами разделения времени является
примитивным, но вполне работоспособным. Его простота позволяла использовать монитор
минимальных размеров. Изза того что задание всегда загружалось в одно и то же место в
памяти, не было необходимости применять во время загрузки методы перемещения
(которые рассматриваются позже). Необходим был лишь метод записи, позволяющий
уменьшить активность диска. Работая на машине 7094, CTSS могла обслуживать до 32
пользователей.
С появлением разделения времени и многозадачности перед создателями операционных
систем появилось много проблем. Если в памяти находится несколько заданий, их нужно
защищать друг от друга, иначе одно задание может, например, изменить данные другого
задания. Если в интерактивном режиме работают несколько пользователей, то файловая
система должна быть защищена, чтобы к каждому конкретному файлу доступ был только у
определенных пользователей. Нужно разрешать конфликтные ситуации, возникающие при
работе с различными ресурсами, например с принтером и устройствами хранения данных.
Нами будут рассмотрены эти и другие возможные проблемы, а также пути их решения.

file_name: тема 3 вопрос 9.docx

intro: Некоторый прогресс в создании цифровых вычислительных машин произошел после второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.

title: Лекция "Эволюция ОС"


extracted_text:
понятие мультипрограммирования. способы управления процессом в режиме
мульпрограммирования
тема 3 вопрос 10
Мультипрограммирование,
 или  многозадачность   (multitasking),   —  это   способ
организации вычислительного процесса, при котором на одном процессоре попеременно
выполняются сразу несколько программ. Эти программы совместно используют не только
процессор, но и другие ресурсы компьютера, оперативную и внешнюю память, устройства
вводавывода,   данные.   Мультипрограммирование   призвано   повысить   эффективность
использования   вычислительной   системы,   однако   эффективность   может   пониматься   по
разному.   Наиболее   характерными   критериями   эффективности   вычислительных   систем
являются:
∙         пропускная   способность   —  количество   задач,   выполняемых   вычислительной
системой в единицу времени;
∙         удобство работы пользователей,  заключающееся, в частности, в том, что они
имеют   возможность   интерактивно   работать   одновременно   с   несколькими
приложениями на одной машине;
∙         реактивность системы —  способность системы выдерживать заранее заданные
(возможно,   очень   короткие)   интервалы   времени   между   запуском   программы   и
получением результата.
В   зависимости   от   выбранного   критерия   эффективности   ОС   делятся   на   системы
пакетной обработки, системы разделения времени и системы реального времени. Каждый
тип   ОС   имеет   специфические   внутренние   механизмы   и   особые   области   применения.
Некоторые операционные системы могут поддерживать одновременно несколько режимов,
например   часть  задач   может   выполняться   в  режиме   пакетной   обработки,   а   часть   —  в
режиме реального времени или в режиме разделения времени.

 Операционные системы, поддерживающие мультипрограммирование, в зависимости
от   выбранного   критерия   эффективности   вычислительной   системы   можно   разделить   на
несколько основных типов:  системы пакетной обработки, системы разделения времени и
системы   реального   времени.   Некоторые   операционные   системы   могут   поддерживать
одновременно несколько режимов, например часть задач может выполняться в режиме па
кетной   обработки,   а   часть   –   в   режиме   реального   времени   или   в   режиме   разделения
времени.
Мультипрограммирование в системах пакетной обработки
Рациональный режим функционирования в системах пакетной обработки достигается
благодаря   использованию   следующей   схемы   функционирования:   в   начале   работы
формируется пакет заданий, каждое задание содержит требование к системным ресурсам;
из   этого   пакета   заданий   формируется  мультипрограммная   смесь,   т.е.   множество
одновременно   выполняемых   задач.   Причем   смесь   строится   таким   образом,   что
одновременно должны выполняться задачи, предъявляющие разные требования к ресурсам
с целью обеспечения сбалансированной загрузки всех устройств вычислительной машины.
Например,   в   мультипрограммной   смеси   желательно   одновременное   присутствие
вычислительных   задач   и   задач   с   интенсивным   вводомвыводом.   Таким   образом,   выбор
нового   задания   из   пакета   заданий   зависит   от   внутренней   ситуации,   складывающейся   в
системе,  т.е.  выбирается  “выгодное”  с точки  зрения  критерия  эффективности  системы задание.   Следствием   такой   схемы   организации   мультипрограммирования   в   вычисли
тельных   системах,   работающих   под   управлением   пакетных   ОС,   является   отсутствие
гарантии выполнения какоголибо задания в течение определенного периода времени.
Рассмотрим   более   детально   совмещение   во   времени   операций   вводавывода   и
вычислений.
Достигнуть описанного выше совмещения можно несколькими способами. Один из них
характерен для компьютеров, имеющих специализированный процессор вводавывода. В
компьютерах класса мэйнфреймов такие процессоры называют  каналами. Как правило,
канал имеет систему команд, отличающуюся от системы команд центрального процессора.
Эти   команды   специально   предназначены   для   управления   внешними   устройствами.   Ка
нальные   программы   могут   храниться   в   той   же   оперативной   памяти,   что   и   программы
центрального   процессора.   Однако   в   системе   команд   центрального   процессора
предусматривается   специальная   инструкция,   с   помощью   которой   каналу   передаются
параметры   и   указания   на   то,   какую   программу   вводавывода   он   должен   выполнить.
Начиная с этого момента центральный процессор и канал могут работать параллельно.
Существует и другой способ совмещения вычислений с операциями вводавывода. Он
реализован в компьютерах, управление внешними устройствами в которых осуществляется
так   называемыми   контроллерами.   Каждое   внешнее   устройство   (или   группа   внешних
устройств   одного   типа)   имеет   свой   собственный   контроллер,   который   автономно
отрабатывает команды, поступающие от центрального процессора. При этом контроллер и
центральный   процессор   работают   асинхронно.   Многие   внешние   устройства   включают
электромеханические   узлы,   вследствие   чего   контроллер   выполняет   свои   команды
управления   устройствами   существенно   медленнее,   чем   центральный   процессор   свои.
Именно   это   обстоятельство   используется   для   организации   параллельного   выполнения
вычислений и операций вводавывода: в промежутке между передачей команд контроллеру
центральный   процессор   может   выполнять   вычисления   (рис.1,б).   Контроллер   может
сообщить центральному процессору о том, что он готов принять следующую команду, с
помощью   специального   сигнала,
  центральный   процессор   узнает   об   этом,
периодически опрашивая состояние контроллера.
  либо
Таким   образом,   для   достижения   максимальной   эффективности   решения   задач
операционной   системой   необходимо   обеспечить   наиболее   возможное   совмещение
вычислений и вводавывода. Рассмотрим случай, когда процессор выполняет только одну
задачу. В этой ситуации степень ускорения зависит от природы данной задачи и от того,
насколько тщательно был выявлен возможный параллелизм при ее программировании. В
задачах,   в   которых   преобладают   либо   вычисления,   либо   вводвывод,   ускорение   почти
отсутствует.   Параллелизм   в   рамках   одной   задачи   невозможен   также,   когда   для
продолжения   вычислений   необходимо   полное   завершение   операции   вводавывода,
например, когда дальнейшие вычисления зависят от вводимых данных. В таких случаях
неизбежны простои центрального процессора или канала.
В том случае, когда критерием эффективности работы системы является удобство
работы   пользователя,   то   применяется   другой   способ   мультипрограммирования   –
разделения   времени.   В   системах   разделения   времени   пользователям   (или   одному
пользователю) предоставляется возможность интерактивной работы сразу с несколькими
приложениями. Для этого каждое приложение должно регулярно получать возможность
“общения”   с   пользователем.   Понятно,   что   в   пакетных   системах   возможности   диалога
пользователя с приложением весьма ограничены.
В   системах   разделения   времени   эта   проблема   решается   за   счет   того,   что   ОС
принудительно   периодически   приостанавливает   приложения,   не   дожидаясь,   когда   они
добровольно   освободят   процессор.   Всем   приложениям   попеременно   выделяется   квант
процессорного   времени,   вследствие   чего   пользователи,   запустившие   программы   на
выполнение, получают возможность поддерживать с ними диалог. В системах разделения времени исправлен основной недостаток пакетной обработки –
изолированность пользователя от процесса выполнения его задач. Каждому пользователю в
этом   случае   предоставляется   терминал,   с   которого   он   может   вести   диалог   со   своей
программой.   Время   ответа   в   таких   системах   оказывается   вполне   приемлемым   для
пользователей, поскольку каждой задаче выделяется только квант процессорного времени,
а следовательно, ни одна задача не занимает процессор надолго. Конечно, время реакции
напрямую   зависит   от   выбранного   в   системе   кванта   времени,   выделяемого   каждому
процессу.   Если   квант   выбран   достаточно   небольшим,   то   у   всех   пользователей,
одновременно   работающих   на   одной   и   той   же   машине,   складывается   впечатление,   что
каждый из них единолично использует машину.
Одной из основных причин, по которой системы разделения времени обладают меньшей
пропускной способностью, чем системы пакетной обработки,  является то, что на
выполнение принимается каждая запущенная пользователем задача, а не та, которая
“выгодна” ОС. Кроме того, производительность системы снижается изза возросших
накладных расходов вычислительной мощности на более частое переключение процессора
с задачи на задачу. Это вполне соответствует тому, что критерием эффективности систем
разделения времени является не максимальная пропускная способность, а удобство и
эффективность работы пользователя. Вместе с тем мультипрограммное выполнение
интерактивных приложений повышает и пропускную способность компьютера (пусть и не в
такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку в то
время, пока одно приложение ждет сообщения пользователя, другие приложения могут
обрабатываться процессором. МУЛЬТИПРОГРАММИРОВАНИЕ В СИСТЕМАХ
РЕАЛЬНОГО ВРЕМЕНИ
       Еще одна разновидность мультипрограммирования используется в системах
реального  времени,  предназначенных   для  управления   с  помощью   компьютера
различными   техническими   объектами   (например,   станком,   спутником,   научной
экспериментальной   установкой   и   т.   д.)   или   технологическими   процессами.   Во
всех этих случаях существует предельно допустимое время, в течение которого
должна   быть   выполнена   та   или   иная   управляющая   объектом   программа.   В
противном   случае   может   произойти   авария.   Таким   образом,   критерием
эффективности здесь является время реакции системы. Требования ко времени
реакции   зависят   от   специфики   управляемого   процесса.   Контроллер   робота
может требовать от встроенного компьютера ответ в течение менее 1 мс, в то
время как при моделировании полета может быть приемлем ответ в 40 мс.
        В   системах   реального   времени   мультипрограммная   смесь   отличается   от
рассмотренных   ранее   и   представляет   собой   фиксированный   набор   заранее
разработанных   программ,   а   выбор   программы   на   выполнение   осуществляется
исходя   из   текущего   состояния   объекта   или   в   соответствии   с   расписанием
плановых работ.
        Способность   аппаратуры   компьютера   и   ОС   к   быстрому   ответу   зависит   в
основном   от   скорости   переключения   с   одной   задачи   на   другую.   Время
переключения между задачами в системах реального времени часто определяет
требования к классу процессора даже при небольшой его загрузке.
        В   системах   реального   времени   не   стремятся   максимально   загружать   все
устройства,   наоборот,   при   проектировании   программного   управляющего
комплекса обычно закладывается некоторый "запас" вычислительной мощности
на   случай   пиковой   нагрузки.   Во   многих   ситуациях   для   систем   управления
неприменимы   статистические  гипотезы  о   малой  вероятности     одновременного
возникновения большого количества независимых событий.  Например, в системе
управления атомной электростанцией в случае возникновения крупной аварии атомного   реактора   многие   аварийные   датчики   сработают   одновременно   и
создадут   коррелированную   нагрузку.   Если   система   реального   времени   не
спроектирована для поддержки пиковой нагрузки, то может случиться так, что
система не справится с работой именно тогда, когда она нужна в наибольшей
степени.

file_name: тема 3 вопрос 10.docx

intro: Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера, оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются:

информатика

group: Дисциплины

title: Лекция "Понятие мультипрограммирования. "


extracted_text:
Логическая и физическая организация файловых систем
тема 3 вопрос 12
Одной   из   основных   задач   операционной   системы   является   предоставление   удобств
пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую
структуру хранящихся данных некоторой удобной для пользователя логической моделью. Базовым
элементом этой модели является файл, который так же, как и файловая система в целом, может
характеризоваться как логической, так и физической структурой.
Файл – это именованная область внешней памяти, в которую можно записывать и из которой
можно считывать данные. Файлы хранятся в памяти, не зависящей от энергопитания, обычно – на
магнитных   дисках.   Исключением   является   электронный   диск,   когда   в   оперативной   памяти
создается структура, имитирующая файловую систему.
Основными целями использования файла являются:
•
Долговременное и надежное хранение информации. Долговременность достигается за
счет  использования  запоминающих  устройств,  не зависящих  от  питания, а  высокая  надежность
определяется средствами защиты доступа к файлам и общей организацией программного кода ОС,
при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах.
•
Совместное использование информации. Файлы обеспечивают естественный и легкий
способ разделения информации между приложениями и пользователями за счет наличия понятного
человеку символьного имени и постоянства хранимой информации и расположения файла. Файл
может быть создан одним пользователем, а затем использоваться совсем другим пользователем, при
этом   создатель   файла   или   администратор   могут   определить   права   доступа   к   нему   других
пользователей. Эти цели реализуются в ОС файловой системой.
Файловая система (ФС) – это часть операционной системы, включающая:
•
•
совокупность всех файлов на диске;
наборы структур данных, используемых для управления файлами, такие, например, как
каталоги   файлов,   дескрипторы   файлов,   таблицы   распределения   свободного   и   занятого
пространства на диске;
•
комплекс   системных   программных   средств,   реализующих   различные   операции   над
файлами, такие, как создание, уничтожение, чтение, запись, именование и поиск файлов.
Файловая   система   распределяет   дисковую   память,   поддерживает   именование   файлов,
отображает имена файлов в соответствующие адреса во внешней памяти, обеспечивает доступ к
данным,   поддерживает   разделение,   защиту   и   восстановление   файлов.Таким   образом,   файловая
система играет роль промежуточного слоя, экранирующего все сложности физической организации
долговременного   хранилища   данных,   и   создающего   для   программ   более   простую   логическую
модель этого хранилища.
Задачи, решаемые  ФС, зависят от способа организации вычислительного процесса в целом.
Самый простой тип – это ФС в однопользовательских и однопрограммных ОС, к числу которых
относится, например, MSDOS. Основные функции в такой ФС нацелены на решение следующих
задач:
•
•
•
именование файлов;
программный интерфейс для приложений;
отображение   логической   модели   файловой   системы   на   физическую   организацию
хранилища данных;
•
устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных
средств.
Типы файлов
Файловые системы поддерживают несколько функционально различных типов файлов, в число
которых, как правило, входят обычные файлы, файлыкаталоги, специальные файлы, именованные
конвейеры, отображаемые в память файлы и другие.
Обычные  файлы,   или   просто  файлы,   содержат   информацию   произвольного   характера,
которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX,
Windows,   OS/2)   никак   не   ограничивает   и   не   контролирует   содержимое   и   структуру   обычного
файла.   Содержание   обычного   файла   определяется   приложением,   которое   с   ним   работает.
Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представ
ленных в какомлибо коде.  Каталоги  – это особый тип файлов, которые содержат системную
справочную   информацию   о   наборе   файлов,   сгруппированных   пользователями   по   какомулибо
неформальному признаку (например, в одну группу объединяются файлы, содержащие документы
одного договора, или файлы, составляющие один программный пакет). Каталоги устанавливают
соответствие между именами файлов и их характеристиками, используемыми файловой системой
для   управления   файлами  Специальные   файлы  –   это   фиктивные   файлы,   ассоциированные   с
устройствами вводавывода, которые используются для унификации механизма доступа к файлам и
внешним устройствам. Специальные файлы позволяют пользователю выполнять операции ввода
вывода   посредством   обычных   команд   записи   в   файл   или   чтения   из   файла.   Эти   команды
обрабатываются сначала программами файловой системы, а затем на некотором этапе выполнения
запроса   преобразуются   операционной   системой   в   команды   управления   соответствующим
устройством.
 Иерархическая структура файловой системы
Пользователи   обращаются   к   файлам   по   символьным   именам.   Однако   способности
человеческой   памяти   ограничивают   количество   имен   объектов,   к   которым   пользователь   может
обращаться   по   имени.   Иерархическая   организация   пространства   имен   позволяет   значительно
расширить   эти   границы.   Именно   поэтому   большинство   файловых   систем   имеет   иерархическую
структуру, в которой уровни создаются за счет того, что каталог более низкого уровня может
входить в каталог более высокого уровня .
Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют
дерево, если файлу разрешено входить только в один каталог (рис. 19, б), и сеть – если файл может
входить сразу в несколько каталогов
 Имена файлов
Все   типы   файлов   имеют   символьные   имена.   В   иерархически   организованных   файловых
системах  обычно используются  три типа имен  файлов: простые, составные и  относительные. в
файловых системах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя
файла может содержать до 255 символов.
Монтирование
В общем случае вычислительная система может иметь несколько дисковых устройств. Даже
типичный   персональный   компьютер   обычно   имеет   один   накопитель   на   жестком   диске,   один
накопитель на гибких дисках и накопитель для компактдисков. Мощные же компьютеры, как
правило,   оснащены   большим   количеством   дисковых   накопителей,   на   которые   устанавливаются
пакеты дисков. Более того, даже одно физическое устройство с помощью средств операционной
системы может быть представлено в виде нескольких логических устройств, в частности путем
разбиения   дискового   пространства   на   разделы.   Возникает   вопрос,   каким   образом   организовать
хранение файлов в системе, имеющей несколько устройств внешней памяти?
Первое решение состоит в том, что на каждом из устройств размещается автономная файловая
система, т. е. файлы, находящиеся на этом устройстве, описываются деревом каталогов, никак не
связанным   с   деревьями   каталогов   на   других   устройствах.   В   таком   случае   для   однозначной
идентификации   файла   пользователь   наряду   с   составным   символьным   именем   файла   должен
указывать идентификатор логического устройства. Примером такого автономного существования
файловых систем является операционная система MSDOS, в которой полное имя файла включает
буквенный идентификатор логического диска. Так, при обращении к файлу, расположенному на
диске А, пользователь должен указать имя этого диска: A:\privat\letter\uni\let1.doc.
Другим вариантом является такая организация хранения файлов, при которой пользователю
предоставляется возможность объединять файловые системы, находящиеся на разных устройствах, в единую файловую систему, описываемую единым деревом каталогов. Такая операция называется
монтированием. Рассмотрим, как осуществляется эта операция на примере ОС UNIX.
После   монтирования   общей   файловой   системы   для   пользователя   нет   логической   разницы
между   корневой   и   смонтированной   файловыми   системами,   в   частности,   именование   файлов
производится так же, как если бы она с самого начала была единой.

file_name: тема 3 вопрос 12.docx

intro:
Основными целями использования файла являются:
•	Долговременное и надежное хранение информации. Долговременность достига¬ется за счет использования запоминающих устройств, не зависящих от пита¬ния, а высокая надежность определяется средствами защиты доступа к файлам и общей организацией программного кода ОС, при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах.
•	Совместное использование информации. Файлы обеспечивают естественный и легкий способ разделения информации между приложениями и пользователями за счет наличия понятного человеку символьного имени и постоянства хранимой информации и расположения файла. Файл может быть создан од¬ним пользователем, а затем использоваться совсем другим пользователем, при этом создатель файла или администратор могут определить права доступа к нему других пользователей. Эти цели реализуются в ОС файловой системой

title: Лекция "Логическая и физическая организация файловых систем"


extracted_text:
тема 3 вопрос 13
основные средства защиты встроенные в ос
Средства защиты, встроенные в ОС, занимают особое место в системе безопасности. Их
основной задачей является защита информации, определяющей конфигурацию системы, и
затем – пользовательских данных. Такой подход представляется естественным, поскольку
возможность изменять конфигурацию делает механизмы защиты бессмысленными.
Проблема защиты информации в компьютерных системах напрямую связана с решением
двух главных вопросов:
 обеспечение сохранности информации,
 контроль доступа к информации (обеспечение конфиденциальности).
Эти вопросы тесно взаимосвязаны и не могут решаться в отдельности. Сохранность
информации означает защиту ее от разрушения и сохранение структуры хранимых данных.
Система контроля доступа к информации должна обеспечивать надежную идентификацию
пользователей и блокировать любые попытки несанкционированного чтения и записи
данных. В то же время система контроля не должна снижать производительность работы
информационных систем и сужать круг решаемых задач.
Системные средства аутентификации пользователей. Первое, что должна проверить
операционная система в том случае, если она обладает хотя бы минимальными средствами
защиты, – это следует ли ей взаимодействовать с субъектом, который пытается получить
доступ к какимлибо информационным ресурсам. Для этого существует список
именованных пользователей, в соответствии с которым может быть построена система
разграничения доступа.
Под идентификациейпонимается определение тождественности пользователя или
пользовательского процесса, необходимое для управления доступом. После
идентификации обычно производится аутентификация. Под
аутентификациейпользователя (субъекта) понимается установление его подлинности.
При входе в систему пользователь должен предъявить идентифицирующую информацию,
определяющую законность входа и права на доступ. Эта информация проверяется,
определяются полномочия пользователя (аутентификация), и пользователю разрешается
доступ к различным объектам системы (авторизация). Под
авторизацией(санкционированием) подразумевается предоставление разрешения доступа
к ресурсу системы.
В данной ситуации существенной оказывается политика управления пользовательскими
паролями, определяющая правила их назначения, хранения, изменения и другие связанные
с этим вопросы. Чем большие возможности по проведению подобной политики
предоставляет администратору операционная система, тем больше шансов на то, что
парольная аутентификация будет действенным инструментом защиты.
Пароли с течением времени становятся известными. Это вынуждает периодически
проводить их замену. Считается, что в информационных системах с низкими требованиями
к обеспечению безопасности пароль должен меняться каждые три месяца, а по мере
увеличения значимости вопросов, связанных с несанкционированным доступом, указанный
срок сокращается до шести недель.
Не менее важно и минимально допустимое время между двумя последовательными
изменениями паролей, поскольку такое изменение – типичное действие в случае получения
кемлибо несанкционированного доступа к системе либо ресурсам пользователя.
Одной из распространенных угроз безопасности информационной системы является
терминал, оставленный пользователем без присмотра во время работы. В качестве
контрмеры можно автоматически блокировать доступ либо прерывать сеанс работы в
системе спустя некоторое время после прекращения активности пользователя. Существуют утилиты, позволяющие проводить закрытие экрана автоматически, однако
применять их не рекомендуется, поскольку при этом возникают условия для установки
программы, эмулирующей закрытие экрана и считывающей пользовательский пароль.
Особую опасность представляет удаленный вход в систему через телефонную сеть.
Поскольку контролировать эту сеть невозможно, то необходима установка
дополнительных паролей на последовательные порты.
Разграничение доступа пользователей к ресурсам. Управление доступом может быть
достигнуто при использовании дискреционного или мандатного управления доступом
Дискреционное управление доступом – наиболее общий тип управления доступом.
Основной принцип этого вида защиты состоит в том, что индивидуальный пользователь или
программа, работающая от имени пользователя, имеет возможность явно определить типы
доступа, которые могут осуществить другие пользователи (или программы, выполняемые
от их имени) к информации, находящейся в ведении данного пользователя. Дискреционное
управление доступом отличается от мандатной защиты тем, что оно реализует решения по
управлению доступом, принятые пользователем.
Мандатное управление доступом реализуется на основе результатов сравнения уровня
допуска пользователя и степени конфиденциальности информации.
Существуют механизмы управления доступом, поддерживающие степень детализации
управления доступом на уровне следующих категорий:
 владелец информации;
 заданная группа пользователей;
 все другие авторизованные пользователи.
Это позволяет владельцу файла (или каталога) иметь права доступа, отличающиеся от прав
всех других пользователей и определять особые права доступа для указанной группы
людей или всех остальных пользователей.
В общем случае существуют следующие права доступа:
 доступ по чтению;
 доступ по записи;
 дополнительные права доступа (только модификацию или только добавление);
 доступ для выполнения всех операций.
Управление доступом пользователя может осуществляться на уровне каталогов или на
уровне файлов. Управление доступом на уровне каталога приводит к тому, что права
доступа для всех файлов в каталоге становятся одинаковыми. Например, пользователь,
имеющий доступ по чтению к каталогу, может читать (и, возможно, копировать) любой
файл в этом каталоге. Права доступа к каталогу могут также обеспечить явный запрет
доступа, который предотвращает любой доступ пользователя к файлам в каталоге.
В некоторых ОС можно управлять типами обращений к файлу помимо контроля за тем,
кто может иметь доступ к файлу. Реализации могут предоставлять опцию управления
доступом, которая позволяет владельцу помечать файл как разделяемый или
заблокированный (монопольно используемый).
Разделяемые файлы позволяют осуществлять параллельный доступ к файлу нескольких
пользователей одновременно. Блокированный файл будет разрешать доступ к себе только
одному пользователю в данный момент. Если файл доступен только по чтению, назначение
его разделяемым позволяет группе пользователей параллельно читать его.
Механизмы привилегий позволяют авторизованным пользователям игнорировать
ограничения на доступ или, другими словами, легально обходить управление доступом,
чтобы выполнить какуюлибо функцию, получить доступ к файлу, и т.д. Механизм
привилегий должен включать концепцию минимальных привилегий (принцип, согласно
которому каждому субъекту в системе предоставляется наиболее ограниченное множество
привилегий, необходимых для выполнения задачи).
Принцип минимальных привилегий должен применяться, например, при выполнении
функции резервного копирования. Пользователь, который авторизован выполнять функцию
резервного копирования, должен иметь доступ по чтению ко всем файлам, чтобы копировать их на резервные носители информации. Однако пользователю нельзя
предоставлять доступ по чтению ко всем файлам через механизм управления доступом.
Наличие нескольких путей получения повышенных привилегий является потенциально
уязвимым местом в защите операционной системы. Особенно опасно, когда переустановка
идентификатора пользователя производится не бинарным файлом, а программой ко
мандного интерпретатора, что объясняется легкостью ее модификации.
Указанное обстоятельство заставляет администратора системы контролировать штатные
пользовательские командные интерпретаторы. Поскольку большинство пользователей
обходится ограниченным набором приложений, в ряде случаев можно зафиксировать круг
доступных программ, что особенно актуально при проведении нормативной политики
безопасности. Свобода пользователя ограничивается пределами его каталога и
возможностью использовать программы только из разрешенных каталогов.
Иногда пользователь вообще не нуждается в непосредственном взаимодействии с
операционной системой, работая постоянно с какимлибо приложением, например
клиентом базы данных. В этом случае целесообразно использовать возможности
разграничения доступа, предоставляемые СУБД.
Средство проверки корректности конфигурации ОС. Операционная система имеет
большое количество настроек и конфигурационных файлов, что позволяет адаптировать
ОС для нужд конкретных пользователей информационной системы. Однако это создает
опасность появления слабых мест, поэтому для проверки целостности и корректности
текущей конфигурации в ОС должна быть предусмотрена специальная утилита.
При запуске утилита сначала проводит верификацию прав доступа к системным файлам.
Затем проверяет системные файлы и сравнивает их с описанием в мастерфайле, который
содержит установки, соответствующие избранному уровню безопасности. В ходе
выполнения задачи для системных файлов проверяются владелец и группа, права доступа,
размер и контрольная сумма, количество ссылок и время последней модификации.
Результаты выполнения программы записываются в текстовом виде в специальных файлах.
Все корректировки, проводимые программой, протоколируются, и систему можно в любой
момент вернуть к прежнему состоянию, что страхует администратора от необратимых
действий.
Инструмент системного аудита. Вопросы информационной безопасности не могут
успешно решаться, если нет средств контроля за происходящими событиями, поскольку
только имея хронологическую запись всех производимых пользователями действий, можно
оперативно выявлять случаи нарушения режима информационной безопасности,
определять причины нарушения, а также находить и устранять потенциально слабые места
в системе безопасности. Кроме того, наличие аудита в системе играет роль сдерживающего
фактора: зная, что действия фиксируются, многие злоумышленники не рискуют совершать
заведомо наказуемых действий.
Программные средства, осуществляющие такой контроль, называются средствами аудита.
Поскольку в информационной системе предприятия имеется несколько функциональных
уровней, на каждом из них желательны средства мониторинга событий. Сегодня наличие
механизмов аудита является обязательным требованием к крупным программным
продуктам, работающим на любом из уровней.
Аудит невозможен без идентификации и аутентификации пользователей. С этой целью при
входе в систему программой аудита пользователю присваивается уникальный
идентификатор. Регистрационные действия выполняются специализированным аудит
демоном, который проводит запись событий в регистрационный журнал в соответствии с
текущей конфигурацией. Аудитдемон стартует в процессе загрузки системы.
Каждое событие принадлежит какомулибо классу аудита. Такое деление упрощает анализ
большого количества событий. Принадлежность событий к классам и набор классов могут
быть сконфигурированы системным администратором.
Существует около двадцати классов отслеживаемых событий. Каждый класс имеет два
имени – полное и сокращенное. Для любого класса устанавливается один из трех флагов аудита: аудит в случае успешного выполнения действия, аудит неудачных попыток, безус
ловный аудит.
Сетевые средства защиты. Защита информации на сетевом уровне имеет определенную
специфику. Если на системном уровне проникнуть в систему можно было лишь в
результате раскрытия пользовательского пароля, то в случае распределенной
конфигурации становится возможен перехват пользовательских имени и пароля техничес
кими средствами. Например, стандартный сетевой сервис telnet пересылает
пользовательское имя и пароль в открытом виде. Это заставляет вновь рассматривать
задачу аутентификации пользователей, но уже в распределенном случае, включая и
аутентификацию машинклиентов. Высокая степень защиты достигается путем замены
стандартных открытых сервисов на сервисы, шифрующие параметры
пользователя/машиныклиента, чтобы даже перехват пакетов не позволял раскрыть эти
данные. Наконец, немаловажное значение имеет аудит событий, происходящих в
распределенной информационной среде, поскольку в этих условиях злоумышленник не
столь заметен и имеет достаточно времени и ресурсов для выполнения своих задач.
Стандартные средства защиты, существующие в ОС, не являются столь же объемлющими,
что и на системном уровне. Дело в том, что если на системном уровне однородность
гарантирована и любые изменения могут вводиться достаточно эффективно, то в условиях
локальной сети применяется, как правило, набор разнородного оборудования,
функционирующего под управлением различных ОС, производители которых априорно не
заинтересованы в соответствии средств этих систем концепции безопасности.

file_name: тема 3 вопрос 13.docx

intro:
Средства защиты, встроенные в ОС, занимают осо¬бое место в системе безопасности. Их основной задачей является защита ин¬формации, определяющей конфигурацию системы, и затем – пользовательских данных. Такой подход пред¬ставляется естественным, поскольку возможность из¬менять конфигурацию делает механизмы защиты бес¬смысленными.
Проблема защиты информации в компьютерных сис¬темах напрямую связана с решением двух главных вопросов:
 обеспечение сохранности информации,•
 контроль доступа к информации (обеспечение кон¬фиденциальности).•
Эти вопросы тесно взаимосвязаны и не могут ре¬шаться в отдельности. Сохранность информации озна¬чает защиту ее от разрушения и сохранение структуры хранимых данных.

title: Лекция "Основные средства защиты встроенные в ос"