Содержание
- 2. Причины популярности UNIX Код написан на Си Многозадачная, многопользовательская с широким спектром услуг Наличие стандартов Мощный
- 3. Архитектура UNIX
- 4. Ядро системы обеспечивает базовую функциональность: управление процессами, распределение памяти, доступ к файлам и периферийным устройствам
- 5. Структура ядра
- 6. Основные подсистемы ядра Файловая подсистема Подсистема управления процессами и памятью Подсистема ввода/вывода
- 7. Файловая подсистема Поддержка унифицированного интерфейса к обычным файлам и периферийным устройствам Проверка прав доступа
- 8. Подсистема управления процессами Создание и удаление процессов Распределение системных ресурсов Синхронизация процессов Межпроцессное взаимодействие
- 9. Подсистема ввода/вывода Обеспечение работы с периферийными устройствами Буферизация данных Взаимодействие с драйверами
- 10. Инфраструктура процесса ОС UNIX
- 11. Основные структуры данных процесса
- 12. Структура proc
- 13. Граф состояний процесса
- 14. Состояния процесса (1) Режим задачи. Выполнение прикладных инструкций процесса Режим ядра. Выполнение системных инструкций от имени
- 15. Состояния процесса (2) Сон (ожидание недоступного ресурса) При переходе из режима ядра в режим задачи может
- 16. Контекст процесса АП в режиме задачи Управляющая информация Окружение процесса Аппаратный контекст
- 17. Переключение контекста Текущий процесс переходит в состояние сна, ожидая недоступного ресурса Текущий процесс завершает свое выполнение
- 18. Прерывание от таймера (1) Обновление статистики использования процессора для текущего процесса Выполнение ряда функций, связанных с
- 19. Прерывание от таймера (2) Обработка отложенных вызовов Обработка алармов Пробуждение системных процессов (своппер, диспетчер страниц) Нотация
- 20. Планирование процессов Системы пакетной обработки данных Интерактивные системы (системы разделения времени) Системы реального времени
- 21. Системы пакетной обработки данных Пропускная способность – максимальной количество задач в единицу времени Оборотное время –
- 22. Системы разделения времени Время отклика – быстрая реакция на запросы Соразмерность – выполнение пожеланий пользователя
- 23. Системы реального времени Окончание работы к сроку – предотвращение потери данных Предсказуемость – предотвращение деградации качества
- 24. Классы приложений Интерактивные Фоновые Реального времени
- 25. Принципы управления памятью Примитивное управление памятью (специализированные микропроцессорные системы) Расширенное управление (чаще всего виртуальная память)
- 26. Примитивное управление Нет защиты программ друг от друга и от ОС Заранее на этапе компиляции надо
- 27. Виртуальная память (1) Выполнение задач, размер которых превышает размер ОП Выполнение частично загруженных в память задач.
- 28. Виртуальная память (2) Размещение задач в произвольном месте ОП Размещение задачи в нескольких различных частях ОП
- 29. Виртуальная и физическая память
- 30. Селектор сегмента
- 31. Дескриптор сегмента (1)
- 32. Дескриптор сегмента (2)
- 33. Трансляция адреса с использованием механизма сегментации
- 34. Трансляция адреса с использованием страничного механизма
- 35. Адресное пространство процесса 32-разрядный линейный адрес (4Г) Старший (1Г) АП ядра – 256 элементов каталога страниц
- 36. Виртуальная память процесса в режиме задачи
- 37. Страничный механизм в основном реализуется за счет аппаратной поддержки, но ОС отвечает за: Размещение в памяти
- 38. Ранние версии UNIX (свопинг)
- 39. Принципы страничного замещения Принцип загрузки (fetch policy) Принцип размещения (placement policy) Принцип замещения (replacement policy)
- 40. Страничное замещение по требованию
- 41. Возможное местонахождение страниц процесса
- 42. Преимущества страничного замещения Размер программы ограничивается только разрядностью адреса Запуск программы происходит очень быстро Большее число
- 43. Алгоритмы замещения страниц (1) Оптимальный алгоритм (практически неосуществим) NRU (Not Recently Used) не использовавшаяся в последнее
- 44. Алгоритмы замещения страниц (2) Часы (другая реализация алгоритма «Вторая попытка») LRU (Least Recently Used) страница, не
- 45. Оптимальный алгоритм Выгрузить страницу, которая не будет использована больше всего. Можно реализовать только для конкретной программы
- 46. NRU (1) Используется 2 бита: R (Referenced) обращение M (Modified) изменение
- 47. NRU (2) 4 класса страниц: Не было обращений и изменений Не было обращений, страница изменена Было
- 48. NRU (3) Удаление страницы в непустом классе с наименьшим номером
- 49. FIFO Ведется список всех страниц, находящихся в данный момент в памяти. При страничном прерывании выгружается страница
- 50. Вторая попытка Модифицированный алгоритм FIFO. При попытке удаления у страницы проверяется бит R. Если он равен
- 51. Часы Модифицированный алгоритм «Вторая попытка». Список страниц является кольцевым, что снижает затраты на перемещение страниц из
- 52. LRU Выгружается из памяти страница, не использовавшаяся больше всего. Сложно реализовать алгоритм, так как необходимо после
- 53. NFU Для каждой страницы ведется счетчик. После каждого прерывания от таймера к счетчику прибавляется значение бита
- 54. Старение Модификация алгоритма NFU. Каждый счетчик перед прибавлением R сдвигается вправо на один разряд. Прибавление осуществляется
- 55. Рабочий набор Все программы характеризуются локальностью обращений к памяти. Можно использовать опережающую подкачку страниц из «рабочего
- 56. WSClock Модификация алгоритма «рабочего набора». Используются «часы» в виде кольцевого списка. С каждой страницей связано время
- 57. Лучшими алгоритмами являются: старение и WSClock
- 58. Создание процесса Системный вызов fork() Создается точная копия родительского процесса за некоторыми отличиями
- 59. Отличия родительского и дочернего процессов (1) Уникальный идентификатор PID Отличается идентификатор родителя PPID Дочерний процесс получает
- 60. Отличия родительского и дочернего процессов (2) Очищаются ожидающие доставки сигналы Обнуляется временная статистика (время выполнения в
- 61. Отличия родительского и дочернего процессов (3) Возвращаемое значение fork() родительский процесс – PID потомка дочерний процесс
- 62. Действия, выполняемые fork() (1) Резервирует место в области свопинга для сегмента данных и стека Размещает и
- 63. Действия, выполняемые fork() (2) Размещает карты отображения, необходимые для трансляции адреса Размещает u-area и копирует ее
- 64. Действия, выполняемые fork() (3) Инициализирует аппаратный контекст, копируя его с родительского процесса Устанавливает возвращаемое значение fork()
- 65. Запуск новой программы Системный вызов exec() Не порождает нового процесса Происходит замещение кода текущего процесса Анализирует
- 66. Действия, выполняемые exec() (1) Производит трансляцию имени файла Анализирует заголовок файла Обрабатывает биты setuid и setgid
- 67. Действия, выполняемые exec() (2) Резервирует место в области свопинга для сегмента данных и стека Освобождает старые
- 68. Действия, выполняемые exec() (3) Размещает и инициализирует карты отображения, необходимые для трансляции адреса (может совместно использоваться
- 69. Действия, выполняемые exec() (4) Копирует сохраненные аргументы и переменные окружения в новый стек процесса Устанавливает обработчики
- 70. Завершение выполнения процесса Добровольно exit() Принудительно по сигналу Процесс освобождает все ресурсы и переходит в состояние
- 71. Действия, выполняемые при завершении (1) Отключает все сигналы Закрывает все открытые файлы Сохраняет статистику использования вычислительных
- 72. Действия, выполняемые при завершении (2) Состояние – зомби Процесс init – родитель для всех потомков данного
- 74. Скачать презентацию