- •1.Архитектура операционных систем
- •1.1Общие вопросы архитектуры операционных систем
- •1.2Архитектура Windows
- •1.2.1История возникновения Windows
- •1.2.2Архитектура ос Windows
- •1.2.3История возникновения ос Linux
- •1.2.4Архитектура Linux
- •1.2.5Интерфейсы системы unix
- •1.2.6Файловая система unix
- •1.2.7Аутентификация в unix
- •1.2.8Сценарии командной оболочки unix
- •1.3Операционная система qnx
- •1.3.1 Архитектура qnx
- •1.4Выводы
- •1.5Вопросы для самоконтроля
- •2.Типы и алгоритмы работы с оперативной памятью
- •2.1Общие принципы функционирования подсистемы памяти в ос
- •2.1.1Обобщённые принципы управления памятью
- •2.1.2Однозадачная система без подкачки на диск
- •2.1.3Многозадачность с фиксированными разделами
- •2.1.4Подкачка
- •2.1.5Управление памятью с помощью битовых массивов
- •2.1.6Управление памятью с помощью связанных списков
- •2.1.7Виртуальная память
- •2.1.8Многоуровневые таблицы страниц
- •2.1.9Алгоритмы замещения страниц
- •2.2Виртуальная память ос Windows
- •2.2.1Архитектура памяти в ос Windows
- •2.2.2Работа с виртуальной памятью в ос Windows
- •2.2.3Использование виртуальной памяти в приложениях
- •2.3Пример организации страничной памяти на примере linux
- •2.3.1Страничная организация памяти в Linux
- •2.3.2Права доступа к области памяти
- •2.3.3Работа с областями памяти в Linux
- •3.Процессы и потоки
- •3.1Процессы
- •3.1.1Модель процесса
- •3.1.2Создание процесса
- •3.1.3Завершение процесса
- •3.1.4Состояния процессов
- •3.1.5Реализация процессов
- •3.2Потоки
- •3.2.1Реализация потоков
- •3.2.2Реализация потоков на уровне ядра
- •3.2.3Смешанная реализация
- •3.2.4 Метод управления «Активация планировщика»
- •3.2.5Всплывающие потоки
- •3.3Межпроцессное взаимодействие
- •3.3.1Состояние состязания
- •3.3.2Критические секции (Критические области)
- •3.3.3Взаимное исключение с активным ожиданием
- •3.3.4Примитивы межпроцессного взаимодействия
- •3.4Семафоры
- •3.5Мьютексы
- •3.6Организация многопоточной обработки в среде Windows
- •3.6.1Объекты ядра Windows
- •3.6.2Потоки Windows
- •3.6.3Синхронизация потоков в Windows
- •3.6.4Синхронизация потоков с помощью объектов ядра
- •3.6.5Сравнение объектов, используемых для синхронизации потоков
- •3.7Организация процессов и потоков в Linux
- •3.7.1Среда окружения в Linux
- •3.7.2Создание нового процесса. Системный вызов exec.
- •3.7.3Потоки unix. Функции потоков стандарта posix.
- •3.8Синхронизация потоков в unix
- •3.8.1Мьютексы
- •3.8.2Семафоры
- •0,0,0, //Ожидать обнуления семафора
- •0,1,0 // Затем увеличить значение семафора на 1};
- •0,1, 0 // Увеличитьзначение семафора на 1};
1.2Архитектура Windows
1.2.1История возникновения Windows
Операционная система Microsoft Windows представляет собой наиболее распространённую на современном этапе операционную систему. По состоянию на ноябрь 2008 г. соотношение основных ОС на рынке выглядит следующим образом: Windows - 89,6% рынка, Mac OS — 8,9%, Linux — 0,83%. Данное исследование, проведенное компанией NetApplications (www. Netapplications.com), базируется на мониторинге крупнейших Интернет-сайтов и порталов (в исследовании участвует аудитория 160 млн. сайтов). На рынке серверных ОС ситуация такова (данные 2007 г.): у Windows — 70%, у Linux — 20%, у UNIX — менее 10%, а Netware уже почти незаметно.
История Windows берет свое начало в 1986 году, когда появилась первая версия системы. Она представляла собой набор программ, расширяющих возможности существующих операционных систем для большего удобства в работе. Через несколько лет вышла вторая версия, но особой популярности система Windows не завоевала. Однако в 1990 году вышла новая версия - Windows 3.0, которая стала использоваться на многих персональных компьютерах. Популярность новой версии Windows объяснялась несколькими причинами. Графический интерфейс позволяет работать с объектами компьютера не с помощью команд, а с помощью наглядных и понятных действий над значками, обозначающими эти объекты. Возможность одновременной работы с несколькими программами значительно повысила удобство и эффективность работы. Кроме того, удобство и легкость написания программ для Windows привели к появлению все больше разнообразных программ, работающих под управлением Windows. Наконец, лучше была организована работа с разнообразным компьютерным оборудованием, что также определило популярность системы. Последующие версии Windows были направлены на повышение надежности, а также поддержку средств мультимедиа (версия 3.1) и работу в компьютерных сетях (версия 3.11).
Параллельно с разработкой Windows компания Microsoft в 1988 году начала работу над новой операционной системой, названной Windows NT (Windows New Technology). Перед новой системой были поставлены задачи существенного повышения надежности и эффективной поддержки сетевой работы. При этом интерфейс системы не должен был отличаться от интерфейса Windows 3.0. Интересно, что самой распространенной версией Windows NT также стала третья версия. В 1992 году появилась версия Windows NT 3.0, а в 1994 году - Windows NT 3.5.
Система Windows NT не является дальнейшим развитием ранее существовавших продуктов. Её архитектура создавалась с нуля с учётом предъявляемых к современной операционной системе требований. Особенности новой системы, разработанной на основе этих требований, перечислены ниже:
1. Совместимость (Compatibility). Система может иметь привычный интерфейс ОС семейства Windows, с некоторыми добавлениями и расширениями, поддержку файловых систем NTFS5, NTFS4, FAT16 и FAT32. Большинство приложений, написанных под MSDOS, W9x, NT4, а также некоторые программы под OS/2 и POSIX запускаются и функционируют без проблем. При проектировании NT учитывалась возможность работы системы в различных сетевых средах, поэтому в поставку входят средства для работы в Unix- и Novell-сетях.
2. Переносимость (Portability). Система работает на различных процессорах семейства x86 производства Intel и AMD. Уже существует 64-битная версия WindowsXP и WindowsNET, предназначенная для работы на Intel Itanium и других 64-разрядных процессорах. Реализация поддержки процессоров других архитектур возможна, но потребует некоторых усилий.
3. Масштабируемость (Scalability). В WindowsXP реализована поддержка технологии SMP. В Windows 2003 Advanced Server и Datacenter Server кроме этого есть поддержка COW (Cluster Of Workstations) – создания кластеров на базе рабочих станций пользователей.
4. Система безопасности (Security). В NT реализована система безопасности на уровне пользователей.
5. Распределённая обработка (Distributed processing). Windows имеет встроенные в систему сетевые возможности, что обеспечивает возможность связи с различными типами компьютеров-хостов благодаря наличию разнообразных транспортных протоколов и технологии "клиент-сервер".
6. Надёжность и отказоустойчивость (Reliability and robustness). Архитектура ОС защищает приложения от повреждения друг другом и самой операционной системой. При этом используется отказоустойчивая структурированная обработка особых ситуаций на всех архитектурных уровнях, которая включает восстанавливаемую файловую систему NTFS и обеспечивает защиту с помощью встроенной системы безопасности и усовершенствованных методов управления памятью.
7. Локализация (Localization). Система предоставляет возможности для работы во многих странах мира на национальных языках, что достигается применением стандарта ISO Unicode.
8. Расширяемость (Extensibility). Благодаря модульному построению системы становится возможно добавление новых модулей на различные архитектурные уровни ОС, кроме ядра системы.
Параллельно с разработкой Windows NT, продолжается разработка и усовершенствование ОС Win 3.x. Как результат этих разработок в 1995 г. появилась система Windows 95. По сравнению с Windows 3.1 значительно изменился интерфейс, выросла скорость работы программ. Одной из новых возможностей Windows 95 была возможность автоматической настройки дополнительного оборудования компьютера для работы без конфликтов друг с другом (известный как механизм Plug and Play, см. ниже).
Интерфейс Windows 95 стал основным для всего семейства Windows, и в 1996 появляется переработанная версия Windows NT 4.0, имеющая такой же интерфейс, как и Windows 95. Продолжением развития Windows 95 стала операционная система, появившаяся в 1998 году. При сохранившемся интерфейсе внутренняя структура была значительно переработана. Много внимания было уделено работе с Интернетом, а также поддержке современных протоколов передачи информации - стандартов, обеспечивающих обмен информацией между различными устройствами. Кроме того, особенностью Windows 98 является возможность работы с несколькими мониторами.
Следующим этапом в развитии Windows стало появление Windows 2000 (результат развития ОС NT) и Windows Me (Millennium Edition - редакция тысячелетия, развитие Windows 9x). Система Windows 2000 разработана на основе Windows NT и унаследовала от нее высокую надежность и защищенность информации от постороннего вмешательства. Операционная система Windows Me стала наследницей Windows 98, но приобрела многие новые возможности. Прежде всего, это улучшенная работа со средствами мультимедиа, возможность записывать не только аудио, но и видеоинформацию, средства восстановления информации после сбоев и многое другое. Однако надёжность ядра ОС Windows 9x/Me значительно ниже, чем у ОС Windows 2000 в виду отсутствия целого ряда функций связанных с безопасностью системы и ограничением доступа. Поэтому дальнейшее развитие линейки Win9x/Me было прекращено, и дальнейшее развитие получила линейка ОС, базирующаяся на ядре Windows NT. В 2002 г. была выпущена новая версия ОС Windows - Windows XP. Первоначально этот проект назывался Whisler, но затем он разделился на две линии WindowsXP позиционирующуюся на замену Win9x/Me и Win 2000 Professional , и Windows .NET, позиционирующуюся на замену Windows NT/2000 Server всех сортов. Линейку 9x/Me заменила операционная система Windows XP Home Edition, а линейку Windows 2000 Professional – Windows XP Professional. Вне зависимости от названия, все они является прямыми наследниками Windows2000, и продолжателями линейки Windows NT. Этот факт и определяет основные особенности WindowsXP. Это полностью 32-разрядная ОС с приоритетной многозадачностью. В её основе лежат те же принципы, на которых базировались все NT: совместимость, переносимость, масштабируемость и т.п. В дальнейшем будет рассматриваться средства операционной системы Windows XP. Если не оговорено иное, то подразумевается, что указанные функции работают и в Win 9x/NT/2000.