- •Задачи и интерфейсы Unix-подобных систем.
- •2.Структура ядра ос Linux.
- •3. Процессы в ос Linux. Общие понятия.
- •4. Процессы в ос Linux. Этапы создания процесса.
- •5. Взаимодействие процессов в ос Linux.
- •6. Реализация потоков в ос Linux.
- •7. Планирование в ос Linux.
- •8.Загрузка в ос Linux
- •14.Алгоритм замещения страниц в ос Linux.
- •13.Подкачка в ос Linux.
- •15.Ввод-вывод в ос Linux. Общие понятия.
- •17. Файловые системы в ос Linux. Общие понятия.
- •18. Файловые системы в ос Linux. Файловая система Ext2.
- •19. Файловые системы в ос Linux. Файловая система Ext3.
- •20. Файловые системы в ос Linux. Файловая система nfs.
- •21.Архитектура ос windows nt/2000/xp
- •22. Архитектура ос windows vista
- •23.Структура пользовательского режима. Программный интерфейс Win32 api.
- •24.Реестр ос Windows Vista.
- •25. Реализация объектов в oc windows Vista. Структура объектов.
- •26. Реализация объектов в oc windows Vista. Типы объектов.
- •27. Реализация объектов в oc windows Vista. Пространство имён.
- •Структура пространства имен
- •28. Задания, процессы, потоки, волокна в oc windows Vista.
- •29. Межпроцессное взаимодействие в oc windows Vista.
- •30. Реализация процессов и потоков в oc windows Vista.
- •31. Планирование в oc windows Vista. Условия вызова планировщика.
- •32. Планирование в oc windows Vista. Система приоритетов.
- •33. Планирование в oc windows Vista. Условия изменения приоритетов.
- •34. Технология dll. Структура dll-библиотеки. Наиболее важные dll-библиотеки.
- •35. Технология dll. Преимущества и недостатки dll. Win32 и dll
- •38. Конфигурация виртуального адресного пространства для пользовательского
- •39. Реализация, поддержка, особенности виртуальной памяти в oc windows Vista.
- •40. Реализация управления памятью в oc windows Vista. Обработка страничных
- •41. Алгоритм замещения страниц в oc windows Vista.
- •42. Управление физической памятью в oc windows Vista.
- •44. Файловая система fat. Загрузочный сектор.
- •45. Файловая система fat. Таблица размещения файлов.
- •46. Файловая система ntfs. Структура тома.
- •47. Файловая система ntfs. Структура главной файловой таблицы mft
- •48. Файловая система ntfs. Файловая запись mft для малого и большого файла.
- •49. Файловая система ntfs. Файловая запись mfTдля малого и большого каталога.
- •50. Файловая система ntfs. Файлы метаданных.
8.Загрузка в ос Linux
Точные детали процесса загрузки варьируется от системы к системе, однако общая схема этапов сохраняется. При включении компьютера начинается работа bios, которая производит тестирование при включении, а также начальное обнаружение устройств и их инициализацию. Затем, в память считывается и исполняется первый сектор загрузочного диска. Этот сектор содержит небольшую программу, считывающую автономную программу с загрузочного устройства (boot). Программа сначала копирует сама себя в старшие адреса памяти. после этого она считывает корневой каталог из загрузочного устройства. для этого она должна понимать формат файловой системы (существую загрузчики, которым не обязательна эта инфомарция). После этого программа boot считывает ядро операционной системы и передает ему управление. На этом этапе команда boot завершает свою работу.
Начальный код ядра написан на ассемблере. И является машинно-зависимым. Данный код выполняет следующие действия:
а) настраивает стэк ядра;
б) определяет тип центрального процессора;
в) вычисляет количество имеющейся оперативной памяти;
г) инициализирует прерывания;
д) разрешает работу блока управления памятью;
е) вызывает процедуру main. (написана на языке C).
Процедура main проделывает работу по инициализации остальной части операционной системы. В первую очередь выделяется память под буфер сообщений. В данный буфер записываются сообщения о ходе инициализации системы. Далее выделяется память для структур данных ядра. Большенство структур имеет фиксированный размер. Однако существуют такие, которые зависят от размера оперативной памяти (кэш страниц,таблица страниц). Далее операционная система начинает определение конфигурации компьютера. Для этого OS считывает файлы конфигурации, в которых сообщаются возможные устройства ввода\вывода, и проверяет, какие из них присутствуют на самом деле. Если устройство присутствует, оно добавляется в таблицу подключенных устройств. Иначе, устройство игнорируется.
После завершения конфигурации всего аппаратного обеспечения нужно настроить стек и загрузить процесс 0 (с самым высоким приоритетов). Процесс - продолжает инициализацию:
а) программирование таймера;
б) монтирование корневой файловой системы;
в) создание процесса 1 (init);
г) создание процесса 2 (page deamon).
Процесс init проверяет свои флаги, в зависимости от которых он запускает систему в однопользовательском или многопользовательском режиме.
Однопользовательский режим - в этом случае init создает процесс исполняющий оболочку и ждет, когда тот завершит свою работу.
Многопользовательский режим - в этом случае init создает процесс rc, который проверяет противоречивость файловой системы. Далее считывается файл ttys, в котором перечисляются терминалы и некоторые их свойства. для каждого из разрешенных терминалов он создает копию самого себя и запускает программу getty. Эта программа устанавливает для каждой линии скорость и прочие свойства, а также выводит сообщение для приглашения в систему (login:). Далее она считывает данные логина с клавиатуры, запускает программу login и завершает свою работу. Login запращивает у пользователя пароль, сравнивает с зашифрованным паролем. Если пароль верен, то логин запускает оболочку, если нет, то процесс запроса повторяется.
9. Структура памяти процесса в ОС Linux
10.Управление памятью в ОС Linux. Карта памяти.
11.Алгоритмы выделения памяти в ОС Linux.
12.Виртуальное адресное пространство в ОС Linux.
Виртуальные адресные пространства делятся на однородные, непрерывные, выровненные по границам области. Каждая область состоит из участка смежных страниц с одинаковой защитой и страничной организацией. Между областями виртуального адресного пространства могут быть пустые промежутки. Ссылка на такой промежуток приводит к фатальной страничной ошибке. Каждая область описывается в ядре, структурой vm_area_struct. Все эти элементы связываются вместе в список, отсортированный по виртуальным адресам. Когда список становится слишком длинным (более, чем 32 элемента), для ускорения поиска по нему создается дерево. В элементе vm_area_struct перечислены свойства области, например режим защиты, направление роста сегмента, информация о том, закреплен (не подкачивается) ли он в памяти, является ли данная область приватной для какого-либо процесса, имеет ли область резервное хранение на диске, и, если имеет, то где.
