
- •1. Задачи и функции операционной системы компьютера. Классификация ос. Основные современные ос.
- •2, 4. Архитектура современных ос. Структура ос unix.
- •3. Архитектура современных ос. Структура ос Windows nt.
- •4. Архитектура современных ос. Системы с монолитным (макро-) ядром и с микроядром.
- •5. Архитектура современных ос. Ос с множественными интерфейсами прикладных программ на примере ос Windows nt.
- •6. Процессы и потоки в ос. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ос.
- •7, 6. Процессы и потоки в ос. Понятие процесса. Жизненный цикл процесса. Различные состояния процесса.
- •8. Процессы и потоки в ос. Понятие нити (thread). Основные отличия нити от процесса.
- •9, 11, 12. Процессы и потоки в ос. Необходимость синхронизации при работе с общими ресурсами. Способы синхронизации.
- •10. Механизмы синхронизации. Понятие семафора (semaphore) и основные операции с ним. Двоичный семафор.
- •11. Механизмы синхронизации. Понятие мьютекса (mutex) и основные операции с ним. Пример использования мьютекса для синхронизации нитей.
- •12. Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
- •13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
- •14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.
- •15. Управление оперативной памятью в современных ос. Виртуальная память процесса и ее отображение в реальную оперативную память компьютера. Файл подкачки.
- •16. Цели и задачи файловой системы ос. Многоуровневая организация файловой системы. Логическая и физическая фс.
- •17. Управление виртуальной памятью в современных ос. Алгоритмы подкачки и вытеснения.
- •18. Логическая файловая система ос Windows nt.
- •19. Логическая файловая система ос unix.
- •20. Физическая организация файловой системы. Файловая система fat.
- •21. Физическая организация файловой системы. Файловая система System V (s5fs).
- •22. Физическая организация файловой системы. Файловая система ntfs.
- •23. Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
- •24. Управление вводом/выводом. Синхронный и асинхронный ввод/вывод.
- •25. Управление безопасностью. Пользователь, его атрибуты и права доступа.
- •26. Управление безопасностью. Задача администрирования вычислительной системы и компьютерной сети.
- •27. Управление доступом к файлам в ос unix.
- •28. Управление доступом к файлам в ос Windows nt. Списки прав доступа.
- •29. Язык программирования Java. Виртуальная машина Java. Технология Java.
- •30. Платформа .Net. Основные идеи и положения. Языки программирования .Net.
- •31. Функциональные компоненты ос. Управление файлами
- •32. Функциональные компоненты ос. Управление процессами.
- •33. Функциональные компоненты ос. Безопасность и защита данныx.
- •34. Функциональные компоненты ос. Пользовательский интерфейс.
- •35. Функциональные компоненты ос. Управление оперативной памятью.
- •36. Компьютерные сети. Сетевые ос и их задачи.
- •37. Компьютерные сети. Протоколы tcp/ip. Интернет.
- •38. Переносимость программного обеспечения. Стандарты операционных систем.
- •1. Стандарт cp/m
- •2. Операционные системы типа dos
- •3. Стандарт msx
- •4. Операционные системы, основанные на графическом интерфейсе
- •6. Операционные системы семейства unix
2, 4. Архитектура современных ос. Структура ос unix.
Архитектура ОС — ее структура и принципы построения.
Т
ипы
архитектуры ОС:
Монолитная (макроядерная).
Модульная (многоуровневая?).
Микроядерная.
Экзоядерная.
Наноядерная.
Гибридная.
Монолитная (макроядерная).
По сути дела, ОС — обычная программа, поэтому было бы логично и организовать ее так же, как устроено большинство программ, т. е. составить из процедур и функций. В этом случае компоненты ОС являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура ОС называется монолитным ядром. Монолитное ядро — набор процедур, каждая из которых может вызвать каждую. Служебные процедуры работают в привилегированном режиме, ПП — непривилегированном. Т. к. ядро является одной программой, перекомпиляция — единственный способ добавить в него новые компоненты или исключить неиспользуемые. Ядро всегда полностью располагается в оперативной памяти.
Монолитное ядро (monolithic) — схема ОС, при которой все ее компоненты являются составными частями одной программы, использующие общие структуры данных и взаимодействующие друг с другом путем вызова процедур. Для монолитной ОС ядро совпадает со всей системой (ядро и есть ОС?). Старейший (классический) способ организации ОС.
Достоинства:
Простота разработки (не нужно разрабатывать приложения для разных уровней).
Высокая скорость работы (нет необходимости переключаться между уровнями для взаимодействия модулей ОС).
Недостатки:
Ядро занимает большой объем памяти, поэтому требования к ресурсам компьютера высокие.
Т. к. все модули работают в одном адресном пространстве, сбой одного модуля может привести к краху всей системы.
#: Многие Unix, Novell Netware, Mac OS, IBM OS/370.
Модульная (многоуровневая?).
Модуль ядра (загружаемый модуль) — объект, содержащий код, расширяющий функциональность базового ядра ОС. Большинство современных ОС, поддерживают загружаемые модули ядра, хотя могут называться по-разному (#: kernel loadable — FreeBSD, kernel extension — Mac OS X). Модули также работают в одном адресном пространстве.
Модульное ядро — улучшенная модификация монолитного ядра. В отличие от монолитных, модульные ядра обычно не требуют полной перекомпиляции ядра при изменении состава «железа» компьютера. Вместо этого модульные ядра предоставляют механизм подгрузки модулей ядра (#: драйверов), поддерживающих «железо». При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС), так и статической (выполняемой при перезагрузке ОС, после переконфигурирования системы на загрузку модулей).
Недостатки у модульной архитектуры те же, что у монолитной.
#
:
Windows, Linux.
Микроядерная.
Микроядро — урезанное, минимальная реализация функций ядра. Аналог с классами: микроядро аналогично базовому классу.
В привилегированном режиме работает только ядро, модули и приложения — в непривилегированном.
Классическое микроядро — небольшой набор системных вызовов, реализующих базовые сервисы ОС. [Системный вызов — обращение ПП к ядру.]
Базовые сервисы ОС: управление адресным пространством оперативной и виртуальной памяти, управление процессами и потоками (нитями), средства межпроцессной коммуникации.
Достоинства:
Независимость ядра от ОС. [?]
Стабильность и безопасность. Зависят только от ядра (небольшой размер кода ядра позволяет тщательно его отладить), остальные компоненты не являются критическими и их можно перезапустить в случае сбоя.
Недостатки:
Низкое быстродействие. Взаимодействие между модулями и приложениями возможно только через ядро. Необходимо много раз переключаться между уровнями привилегий, что занимает много процессорного времени.
Виртуальные машины. Построение виртуальных ресурсов, их распределение и использование в настоящее время имеет место почти в каждой ОС. Этот принцип позволяет представить структуру системы в виде набора планировщиков процессов и распределителей ресурсов и использовать единую схему распределения ресурсов.
Понятие виртуальная машина является итогом концепции виртуальности. Любая ОС, являясь средством распределения ресурсов и организуя по определенным правилам управление процессами, скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их абстракциями. Пользователь видит виртуальную машину как некое устройство, способное воспринимать его программы и команды. Пользователя не интересует реальная конфигурация выч. системы и способы управления ее компонентами. Он оперирует с теми ресурсами, которые ему предоставлены в рамках виртуальной машины.
Структура ОС Unix:
Особенности UNIX, отличающие данное семейство от других ОС:
Файловая система древовидная, чувствительная к регистру символов в именах, слабые ограничения на длину имён.
Нет поддержки структурированных файлов ядром ОС, на уровне системных вызовов файл — поток байт.
Командная строка находится в адресном пространстве запускаемого процесса, а не извлекается системным вызовом из процесса интерпретатора команд.
Запуск процессов вызовом fork(), то есть возможность клонирования текущего процесса со всем состоянием.
Понятия stdin/stdout/stderr (input, output, error).
Ввод / вывод только через дескрипторы файлов.
Традиционно крайне слабая поддержка асинхронного ввода / вывода, по сравнению с VMS и Windows NT.