Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Технологии многопользовательских операционных систем

Покупка
Артикул: 440288.02.99
Доступ онлайн
2 000 ₽
В корзину
В монографии представлено описание основных технологий современных операционных систем: методы, алгоритмы и средства управление памятью современного компьютера, организация подсистемы ввода-вывода, архитектура и средства управления файловой системой, этапы загрузки операционных систем, файлы, сохраняющие параметры операционных систем, средства языка программирования оболочки Linux, безопасность, диагностика и восстановление операционных систем после отказов. Рассматриваемые технологии иллюстрируются примерами из двух наиболее распространенных представителей программных систем этого класса: семейств UNIX/Linux и Windows. Издание рассчитано в первую очередь на специалистов, которые обеспечивают реализацию технологий многопользовательских операционных систем, а также будет полезно для студентов разных специальностей, обучающихся по информационным технологиям.
Назаров, С. В. Технологии многопользовательских операционных систем : монография / С. В. Назаров, А. И. Широков ; под. ред. С. В. Назаров. - Москва : Изд. Дом МИСиС, 2012. - 296 с. - ISBN 978-5-87623-633-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232401 (дата обращения: 20.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ  
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» 

 

 
 
 

 

 

 

 
 

 

 

С.В. Назаров, А.И. Широков 
 

Технологии 
многопользовательских  
операционных систем 

Монография 

Под редакцией профессора С.В. Назарова 

Москва  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. Большое количество задач, необходимое для высокой загрузки процессора, требует большого объема оперативной памяти. В 
условиях, когда для обеспечения приемлемого уровня мультипрограммирования имеющейся памяти недостаточно, был предложен метод 
организации вычислительного процесса, при котором образы некоторых процессов целиком или частично временно выгружаются на диск. 

Рис. 1.2. Загрузка процессора при различном числе процессов 

Очевидно, что имеет смысл временно выгружать неактивные процессы, находящиеся в ожидании каких-либо ресурсов, в том числе 
очередного кванта времени центрального процессора. К моменту, 
когда пройдет очередь выполнения выгруженного процесса, его образ возвращается с диска в оперативную память. Если при этом обнаруживается, что свободного места в оперативной памяти не хватает, то на диск выгружается другой процесс.  
Такая подмена (виртуализация) оперативной памяти дисковой памяти позволяет повысить уровень мультипрограммирования, поскольку объем оперативной памяти теперь не столь жестко ограничивает число одновременно выполняемых процессов. При этом суммарный объем оперативной памяти, занимаемой образами процессов, 
может существенно превосходить имеющийся объем оперативной 
памяти. 
В данном случае в распоряжение прикладного программиста предоставляется виртуальная оперативная память, размер которой намного превосходит реальную память системы и ограничивается 
только возможностями адресации используемого процесса (в ПК на 
базе Pentium 232 = 4 Гбайт). Вообще виртуальным (кажущимся) называется ресурс, обладающий свойствами (в данном случае большим 
объемом ОП), которых в действительности у него нет. Виртуализация оперативной памяти осуществляется совокупностью аппаратных 
и программных средств вычислительной системы (схемами процессора и операционной системой) автоматически без участия программиста и не сказывается на логике работы приложения. 

Виртуализация памяти возможна на основе двух возможных подходов [2]: 
• свопинг (swapping) – образы процессов выгружаются на диск и 
возвращаются в оперативную память целиком; 
• виртуальная память (virtual memory) – между оперативной памятью и диском перемещаются части образов (сегменты, страницы, 
блоки и т.п.) процессов. 
Недостатки свопинга: 
• избыточность перемещаемых данных и, как следствие, замедление работы системы и неэффективное использование памяти; 
• невозможность загрузить процесс, виртуальное пространство 
которого превышает имеющуюся в наличии свободную память. 
Достоинство свопинга по сравнению с виртуальной памятью – 
меньшие затраты времени на преобразование адресов в кодах программ, поскольку оно производится один раз при загрузке с диска в 
память (однако это преимущество может быть незначительным, так 
как при очередной загрузке выполняется только часть кода и полного 
преобразования кода в большинстве случаев не требуется). 
Виртуальная память не имеет указанных недостатков, но ее ключевой проблемой является преобразование виртуальных адресов в 
физические, что приводит к существенным затратам времени на этот 
процесс, если не принять специальных мер. 

1.2. Функции ОС по управлению памятью 

Под памятью в данном случае подразумевается оперативная (основная) память компьютера. В однопрограммных операционных системах основная память разделяется на две части. Одна часть предназначена для операционной системы (резидентный монитор, ядро), а 
вторая – для выполняющейся в текущий момент времени программы. 
В многопрограммных ОС «пользовательская» часть памяти – важнейший ресурс вычислительной системы – должна быть распределена для размещения нескольких процессов, в том числе процессов ОС. 
Эта задача распределения выполняется динамически специальной 
подсистемой управления памятью (memory management) операционной системы. Эффективное управление памятью жизненно важно для 
многозадачных систем. Если в памяти будет находиться небольшое 
число процессов, то значительную часть времени процессы будут 

находиться в состоянии ожидания ввода-вывода и загрузка процессора будет низкой. 
В первых ОС управление памятью сводилось просто к загрузке 
программы и ее данных из некоторого внешнего накопителя (перфоленты, магнитной ленты или магнитного диска) в ОЗУ. При этом память разделялась между программой и ОС. На рис. 1.3 показаны три 
варианта такой схемы. Первый вариант раньше применялся в мэйнфреймах и мини-компьютерах. Второй вариант сейчас используется 
в некоторых карманных компьютерах и встроенных системах, третий 
вариант был характерен для первых персональных компьютеров с 
MS DOS. 

 

Рис. 1.3. Варианты распределения памяти 

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

Доступ онлайн
2 000 ₽
В корзину