Технологии многопользовательских операционных систем
Покупка
Издательство:
Издательский Дом НИТУ «МИСиС»
Год издания: 2012
Кол-во страниц: 296
Дополнительно
Вид издания:
Монография
Уровень образования:
ВО - Магистратура
ISBN: 978-5-87623-633-3
Артикул: 440288.02.99
В монографии представлено описание основных технологий современных операционных систем: методы, алгоритмы и средства управление памятью современного компьютера, организация подсистемы ввода-вывода, архитектура и средства управления файловой системой, этапы загрузки операционных систем, файлы, сохраняющие параметры операционных систем, средства языка программирования оболочки Linux, безопасность, диагностика и восстановление операционных систем после отказов. Рассматриваемые технологии иллюстрируются примерами из двух наиболее распространенных представителей программных систем этого класса: семейств UNIX/Linux и Windows. Издание рассчитано в первую очередь на специалистов, которые обеспечивают реализацию технологий многопользовательских операционных систем, а также будет полезно для студентов разных специальностей, обучающихся по информационным технологиям.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» С.В. Назаров, А.И. Широков Технологии многопользовательских операционных систем Монография Под редакцией профессора С.В. Назарова Москва 2012 Кафедра инженерной кибернетики
УДК 004.45 Н19 Р е ц е н з е н т к.т.н., с.н.с., доц. кафедры моделирования в экономике и управлении РГГУ В.В. Муромцев Назаров, С.В. Н19 Технологии многопользовательских систем : моногр. / С.В. Назаров, А.И. Широков ; под ред. С.В. Назарова. – М. : Изд. Дом МИСиС, 2012. – 296 с. ISBN 978-5-87623-633-3 В монографии представлено описание основных технологий современных операционных систем: методы, алгоритмы и средства управление памятью современного компьютера; организация подсистемы ввода-вывода; архитектура и средства управления файловой системой; этапы загрузки операционных систем; файлы, сохраняющие параметры операционных систем; средства языка программирования оболочки Linux; безопасность, диагностика и восстановление операционных систем после отказов. Рассматриваемые технологии иллюстрируются примерами из двух наиболее распространенных представителей программных систем этого класса: семейств UNIX/Linux и Windows. Издание рассчитано в первую очередь на специалистов, которые обеспечивают реализацию технологий многопользовательских операционных систем, а также будет полезно для студентов разных специальностей, обучающихся по информационным технологиям. УДК 004.45 ISBN 978-5-87623-633-3 © Назаров С.В., Широков А.И., 2012
ОГЛАВЛЕНИЕ Предисловие..............................................................................................6 Глава 1. Управление памятью. Методы, алгоритмы и средства ..........8 1.1. Организация памяти современного компьютера........................8 1.2. Функции ОС по управлению памятью......................................12 1.3. Распределение памяти ................................................................15 1.4. Страничная организация виртуальной памяти........................22 1.5. Оптимизация функционирования страничной виртуальной памяти ...........................................................................28 1.6. Сегментная организация виртуальной памяти.........................39 1.7. Сегментно-страничная виртуальная память.............................44 Глава 2. Подсистема ввода-вывода.......................................................49 2.1. Устройства ввода-вывода...........................................................49 2.2. Назначение, задачи и технологии подсистемы ввода-вывода.......................................................................................51 2.3. Согласование скоростей обмена и кэширования данных........56 2.4. Разделение устройств и данных между процессами................58 2.5. Обеспечение логического интерфейса между устройствами и системой ......................................................60 2.6. Поддержка широкого спектра драйверов .................................60 2.7. Динамическая загрузка и выгрузка драйверов.........................63 2.8. Поддержка синхронных и асинхронных операций ввода-вывода.......................................................................................63 2.9. Многослойная (иерархическая) модель подсистемы ввода-вывода.......................................................................................64 2.10. Драйверы....................................................................................67 Глава 3. Файловые системы...................................................................71 3.1. Основные понятия. Цели и задачи файловой системы............71 3.2. Архитектура файловой системы................................................74 3.3. Организация файлов и доступ к ним. Типы, именование и атрибуты файлов .............................................................................75 3.4. Логическая организация файлов первых операционных систем ........................................................................79 3.5. Каталоговые системы..................................................................84 3.6. Логическая организация файловых систем персональных компьютеров..............................................................87
3.7. Физическая организация файловой системы. Информационная структура магнитных дисков ...........................100 3.8. Физическая организация и адресация файла..........................105 3.9. Физическая организация FAT-системы ..................................110 3.10. Физическая организация ФС Mac OS....................................116 3.11. Технологии RAID-массивов...................................................120 3.12. Файловые операции ................................................................125 3.13. Контроль доступа к файлам ...................................................130 Глава 4. Загрузка и средства сохранения информации о параметрах операционных систем персональных компьютеров .........................................................................................135 4.1. Загрузка операционных систем ...............................................135 4.2. Программирование в оболочке Linux .....................................151 4.3. Системные сценарии Linux ......................................................166 4.4. Реестр Windows XP...................................................................173 4.4.1. Назначение и структура реестра.......................................173 4.4.2. Средства управления реестром.........................................178 4.4.3. Резервное копирование и восстановление реестра.........185 4.4.4. Альтернативные методы резервного копирования реестра Windows XP ....................................................................187 4.4.5. Очистка реестра .................................................................188 4.4.6. Редактирование реестра ....................................................191 4.4.7. Повышение производительности системы......................195 Глава 5. Безопасность, диагностика и восстановление операционных систем после отказов..................................................198 5.1. Информационная безопасность в экономике .........................198 5.2. Понятие безопасности. Требования безопасности.................200 5.3. Классификация угроз безопасности........................................208 5.3.1. Виды угроз и атак ..............................................................208 5.3.2. Злоумышленники. Взломщики. Методы вторжения......213 5.3.3. Случайная потеря данных.................................................219 5.4. Атаки на систему снаружи. Зловредное программное обеспечение ..........................................220 5.5. Системный подход к обеспечению безопасности..................224 5.6. Политика безопасности ............................................................228 5.7. Выявление вторжений ..............................................................234 5.8. Базовые технологии безопасности ..........................................236 5.8.1. Шифрование.......................................................................236
5.8.2. Односторонние функции шифрования ............................243 5.8.3. Аутентификация, пароли, авторизация, аудит................245 5.8.4. Технология защищенного канала.....................................249 5.9. Технологии аутентификации....................................................253 5.9.1. Сетевая аутентификация на основе многоразового пароля..................................................................253 5.9.2. Аутентификация с использованием одноразового пароля....................................................................255 5.9.3. Аутентификация информации..........................................257 5.9.4. Система Kerberos................................................................261 5.10. Средства восстановления и защиты ОС от сбоев и отказов.............................................................................264 5.10.1. Защита системных файлов операционных систем........264 5.10.2. Безопасный режим загрузки операционной системы...267 5.10.3. Консоль восстановления .................................................268 5.10.4. Резервное копирование и восстановление данных.......270 5.10.5. Аварийное восстановление системы..............................276 5.10.6. Точки восстановления системы......................................282 Библиографический список.................................................................289
ПРЕДИСЛОВИЕ Монография состоит из пяти глав, содержание которых достаточно подробно освещает основополагающие принципы технологий многопользовательских операционных систем. В первой главе рассматривается архитектура памяти современных персональных компьютеров, в том числе методы, алгоритмы и средства управления памятью. Особое внимание уделено методам реализации виртуальной памяти: рассмотрена страничная и сегментная организация виртуальной памяти, а так же их комбинация. Уделено внимание вопросам оптимизации функционирования виртуальной памяти. Во второй главе описывается эволюция технологий подсистем ввода-вывода и многоуровневая архитектура таких подсистем. Уделяется внимание вопросам согласования скоростей работы ядра компьютера и периферийных устройств. Подробно рассмотрены назначение, задачи и технологии подсистемы ввода-вывода; организация логического интерфейса между внешними устройствами и системой; назначение и способы реализации драйверов. В третьей главе обсуждаются методы и средства организации файловых систем. Подробно рассмотрены технологии, связанные с файловыми системами современных персональных компьютеров. Освещены такие вопросы, как архитектура файловых систем, организация файлов и доступа к ним, логическая и физическая организация файловых систем современных компьютеров, реализация файловых операций и контроля доступа к файлам. Четвертая глава содержит четыре части. Первая из них посвящена загрузке операционных систем. Подробно описаны этапы такого процесса для операционных систем Linux и Windows XP. Далее приводятся средства языка программирования, поддерживаемого оболочкой Linux. Это необходимо для понимания устройства системных файлов операционных систем семейства UNIX/Linux, описанных в третьей части. И в заключительной части рассматривается описание реестра Windows. Последняя, пятая, глава описывает технологии обеспечения безопасности операционных систем, их диагностики и восстановления после отказов. В этой части на основе системного подхода даны основные определения безопасности компьютерных систем, классификация угроз для компьютерных систем и зловредного программного
обеспечения. Приводятся основные технологии, обеспечивающие безопасное функционирование современных компьютеров, методы и средства из восстановления. Работа над монографией распределилась следующим образом. Первая, вторая, третья и пятая главы написаны С.В. Назаровым. В третьей главе разделы 3.6, 3.10 и 3.11 написаны А.И. Широковым. В четвертой главе раздел 3.4 написан С.В. Назаровым, а разделы 4.1, 4.2 и 4.3 – А.И. Широковым. Общее редактирование книги выполнено С.В. Назаровым.
ГЛАВА 1. УПРАВЛЕНИЕ ПАМЯТЬЮ. МЕТОДЫ, АЛГОРИТМЫ И СРЕДСТВА 1.1. Организация памяти современного компьютера Со времен создания первых ЭВМ основная память в компьютерной системе организована как линейное (одномерное) адресное пространство, состоящее из последовательности слов, а начиная с машин третьего поколения – байтов [1]. Аналогично организована и внешняя память. Такая организация отражает особенности используемого аппаратного обеспечения, но в недостаточной степени соответствует современной технологии создания программ. Большинство программ организованы в виде модулей, некоторые из них неизменны (только для чтения, только для исполнения), а другие содержат данные, которые могут быть изменены. Если операционная система и аппаратное обеспечение могут эффективно работать с пользовательскими программами и данными, представленными модулями, то это обеспечивает ряд преимуществ: • модули могут быть созданы и скомпилированы независимо друг от друга, при этом все ссылки из одного модуля в другой разрешаются системой во время работы программы; • разные модули могут получать разные степени защиты (только чтение, только исполнение) за счет весьма умеренных накладных расходов; • возможно применение механизма, обеспечивающего совместное использование модулей разными процессами (для случая сотрудничества процессов в работе над одной задачей). Память – важнейший ресурс вычислительной системы, требующий эффективного управления. Несмотря на то что в наши дни память среднего домашнего компьютера в тысячи раз превышает память больших ЭВМ 1970-х гг., программы увеличиваются в размере быстрее, чем память. Достаточно сказать, что только операционная система занимает сотни и тысячи мегабайт, не говоря о прикладных программах и базах данных, которые могут занимать в вычислительных системах десятки и сотни гигабайт. Перефразированный закон Паркинсона гласит: «Программы расширяются, стремясь заполнить весь объем памяти, доступный для их
поддержки» (сказано это было об ОС). В идеале программисты хотели бы иметь неограниченную по размеру и скорости обращения память, которая была бы энергонезависимой, т.е. сохраняла свое содержимое при отключении электричества, а также недорого бы стоила. Однако в реальности пока такой памяти нет. В то же время на любом этапе развития технологии производства запоминающих устройств действуют следующие достаточно устойчивые соотношения: • чем меньше время доступа, тем дороже бит; • чем выше емкость, тем ниже стоимость бита; • чем выше емкость, тем больше время доступа. Чтобы найти выход из сложившийся ситуации, необходимо опираться не на отдельно взятые компоненты или технологию, а выстроить иерархию запоминающих устройств, показанную на рис. 1.1. При перемещении слева направо происходит следующее1: • снижается стоимость бита; • возрастает емкость; • возрастает время доступа; • снижается частота обращений процессора к памяти. Рис. 1.1. Иерархия видов памяти ––––––––– 1 Даны примерные характеристики офисного ПК 2008–2011 г.
Предположим, процессор имеет доступ к памяти двух уровней. На первом уровне содержится Е1 слов, и он характеризуется временем доступа Т1 = 1 нс. К этому уровню процессор может обращаться непосредственно. Однако если требуется получить слово, находящееся на втором уровне, то его сначала нужно передать на первый уровень. При этом передается не только требуемое слово, но и блок данных, содержащий это слово. Поскольку адреса, к которым обращается процессор, имеют тенденцию собираться в группы (циклы, подпрограммы), процессор обращается к небольшому повторяющему набору команд. Таким образом, работа процессора с вновь полученным блоком памяти будет осуществляться в течение достаточно длительного времени. Обозначим через Т2 = 10 нс время обращения ко второму уровню памяти, а через Р – отношение числа нахождений нужного слова в быстрой памяти к числу всех обращений. Пусть в нашем примере Р = 0,95 (т.е. 95 % обращений приходится на быструю память, что вполне реально), тогда среднее время доступа к памяти можно выразить так: Tср = 0,95 · 1 нс + 0,05 · (1 нс + 10 нс) = 1,50 нс. Этот принцип можно применять не только к памяти с двумя уровнями. В реальности так и происходит. Объем оперативной памяти существенно сказывается на характере протекания вычислительного процесса, так как он ограничивает число одновременно выполняющихся программ, т.е. уровень мультипрограммирования. Если предположить, что процесс проводит часть р своего времени в ожидании завершения операции ввода-вывода, то степень загрузки Z центрального процессора (ЦП) в идеальном случае будет выражаться зависимостью Z = 1 – pn, где n – число процессов. На рис. 1.2 показана зависимость Z = p(n) для различного времени ожидания завершения операции ввода-вывода (20, 50 и 80 %) и числа процессов n. Большое количество задач, необходимое для высокой загрузки процессора, требует большого объема оперативной памяти. В условиях, когда для обеспечения приемлемого уровня мультипрограммирования имеющейся памяти недостаточно, был предложен метод организации вычислительного процесса, при котором образы некоторых процессов целиком или частично временно выгружаются на диск.