
- •Дисциплины замещения сегментов в памяти
- •Дисциплины замещения страниц в Unix и Windows системах.
- •Классификация ос. Архитектурные особенности ос
- •Контекст процесса и его состояния
- •Простейшая диаграмма состояний процесса
- •Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
- •Механизмы синхронизации: блокирующие переменные, семафоры, мониторы. Блокирующие переменные (мьютексы):
- •Семафоры
- •Мониторы (условные переменные)
- •Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой
- •1) Реализация защитных механизмов.
- •2) Наличие прерываний.
- •3) Развитие параллелизма в архитектуре.
- •Общая схема обработки прерываний в однопрограммной ос.
- •Оверлейный способ распределения памяти.
- •Основное отличие процессов и потоков.
- •Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой.
- •12. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование.
- •Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.
- •Планирование процессов и потоков: критерии, виды, алгоритмы планирования.
- •Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
- •Понятие пространственной и временной локальности
- •Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков.
- •Понятия дорожки, сектора, блока на жестком диске
- •Принцип работы ассоциативной памяти. Ассоциативная память
- •Принципы построения файловой системы: интерфейс, функциональная схема, типовая структура файловой системы.
- •Проблемы синхронизации (тупики) и способы их разрешения
- •Распределение памяти: общие принципы управления памятью в однопрограммных ос, распределение памяти фиксированными, динамическими, перемещаемыми разделами.
- •Роль прерываний при мультипрограммировании.
- •Сегментное распределение памяти
- •Способы выделения дискового пространства. Управление дисковым пространством. Размер логического блока
- •Страничное распределение памяти
- •Управление памятью: задачи управления, типы адресации.
- •Физическая организация жесткого диска
- •Что понимается под «пробуксовкой» страниц памяти?
Понятие пространственной и временной локальности
В реальных системах вероятность попадания в кэш составляет примерно 0,9. Высокое значение вероятности нахождения данных в кэш-памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.
Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.
Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.
Все предыдущие рассуждения справедливы и для других пар запоминающих устройств, например, для оперативной памяти и внешней памяти. В этом случае уменьшается среднее время доступа к данным, расположенным на диске, и роль кэш-памяти выполняет буфер в оперативной памяти
Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков.
Понятие процесса
Понятие процесса характеризует некоторую совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д.) и текущего момента его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных), находящуюся под управлением ОС.
Понятие потока
Потоки – последовательности команд.
Поток можно определить как часть процесса, включающую управляющую последовательность команд и использующую системные ресурсы этого процесса.
Существует две основных категории реализации потоков:
Пользовательские потоки – потоки, реализуемые через специальные библиотеки потоков.
Потоки уровня ядра – потоки, реализуемые через системные вызовы.
Каждый процесс имеет как минимум один поток, при этом самый первый поток, создаваемый при рождении нового процесса, принято называть начальным или главным потоком этого процесса.
Основное отличие процесса от потока заключается в способе использования системных ресурсов. Дочерний процесс практически независим от родительского, для него системой выделяется отдельное адресное пространство, и он на равных правах с родительским процессом «конкурирует» за процессорное время. При этом можно уничтожить родительский процесс, не затронув дочерний, который может выполняться и после завершения родительского процесса. В отличие от дочернего процесса, поток, порожденный данным процессом, полностью зависим от процесса и завершение процесса влечет уничтожение всех созданных им потоков, поскольку происходит освобождение системных ресурсов, выделенных для этого процесса. Еще одним отличием является невозможность изменить права доступа для потока, тогда как дочерний процесс в редких случаях (например, при смене пароля для входа в систему) может обладать правами доступа отличными от прав родительского процесса.
Потоки, как и процессы, могут порождать дочерние потоки, правда, только внутри своего процесса, и переходить из одного состояния в другое. Состояния потоков аналогичны состояниям процессов. Поскольку потоки одного процесса разделяют существенно больше ресурсов, чем различные процессы, то операции создания нового потока и переключения контекста между потоками одного процесса занимают значительно меньше времени, чем аналогичные операции для процессов в целом.
Создать процесс – создать описатель процесса(контекст), в качестве которого выступает одна или несколько информационно управляющих структур, содержащих все сведения о процессе, необходимые ОС для управления им.
Управляющие структуры процессов
Для управления процессами ОС должна располагать всей необходимой для этого информацией, для чего каждому процессу необходим дескриптор, содержащий:
• идентификатор процесса (PID);
• тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;
• приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы (в рамках одного класса процессов в первую очередь, обслуживаются более приоритетные процессы);
• переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, исполняется, ожидает устройства ввода-вывода и т.д.);
• контекст задачи, т.е. защищённую область памяти (или адрес такой области), в которой хранятся текущие значения регистров процессора, когда процесс прерывается, не закончив работу;
• информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершённых операциях ввода-вывода и др.);
• место (или его адрес) для организации общения с другими процессами;
• параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);
• адрес задачи на диске (в случае отсутствия системы управления файлами) в её исходном состоянии и адрес на диске, куда она выгружается из ОП, если её вытесняет другая задача.
Операции над процессами
Изменением состояния процессов занимается ОС, совершая операции над ними.Основные операции над процессами удобно объединить в три пары:
• создание процесса – завершение процесса (одноразовые);
• приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);
• блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).
Необходимо помнить, что существует еще одна (непарная) операция: изменение приоритета процесса