Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
39.27 Кб
Скачать

Процессы и потоки

Процесс – это программа в стадии выполнения.

Более мелкая единица работы – поток (thread).

Процесс состоит как минимум из одного потока.

Процессорное время разделяется между потоками, а все остальные ресурсы между процессами.

Процессы работают изолированно друг от друга. Потоки, все до одного процесса делят его адресное пространство между собой, т.е. могут работать одновременно с одними и теми же данными.

Создание процессов подразумевает создание одной или нескольких информационных структур, называется это описатель (дескриптор) HANDLER. Затем ос загружает код проги или часть кода проги в память.

Для потоков ос создает спец. структуру данных, которая называется контекст потока. В ней хранится инфо, необходимая для возобновления работы потока, если он был прерван.

Планирование и диспетчеризация потоков.

Планирование – это работа по определению того, в какой момент нужно прервать текущий поток и какому потоку предоставить выполняться.

Существует множество алгоритмов планирования. Оно мб динамическим, те выполняться каждый раз когда прерывается текущий поток, и мб статическим, это когда расписание создается заранее и изредка корректируется (например, расписание поездов)

Диспетчеризация – это переключение процессора с одного потока на другой.

Диспетчеризация состоит из трех шагов:

  1. Сохранение контекста потока, который требуется сменить.

  2. Загрузка контекста нового потока.

  3. Запуск нового потока на выполнение.

Поток может находиться в одном из трех состояниях:

  1. Выполнение: процессор выполняет команды данного потока.

  2. Ожидание: поток заблокирован по своим внутренним причинам

  3. Готовность: поток готов, но процессор занят выполнением другого потока.

Алгоритмы планирования бывают вытесняющие и невытесняющие. Вытесняющие алгоритмы используют принудительное прерывание потоков. в вытесняющих алгоритмах может использоваться:

  • Квантование (ед.времени) время разбивается на кванты равной длины, которые выделяются потоком

  • задается числом и определяет степень важности. Приоритет может динамически изменяться.

  • Смешанный алгоритм (и то и др)

Синхронизация процессов и потоков

Синхронизация – это согласование работы потоков.

Ос предоставляют несколько механизмов предназначенных для синхронизации:

  1. Критическая секция – так называется фрагмент кода, который будет выполняться, если некоторый объект не занят, а если занят, текущий поток блокируется до его освобождения.

  2. Симофор – это флаг занятости какого-либо ресурса, который устанавливается и сбрасывается автоматически.

  3. Mutex

  4. Сигналы

  1. Подсистема управления памятью.

Типы адресов:

  • Символьные имена (имена переменных)

  • Виртуальные адреса (логические)

  • Физические адреса

Вся память, выделенная в программе, называется виртуальным адресным пространством.

Адресное пространство мб организованно по-разному:

  • Плоская модель (flat) – адрес задается одним числом

  • Модель «сегмент - смещение» (segment - offset) – смещение это адрес относительно начала сегмента, под сегментом понимается базовый адрес.

Номер сегмента хранится в спец.внутренних ячейках процессора (в сегментных регистрах) записывается туда программно.

  • Многокомпонентные модели

Существует 2 подхода к преобразованию виртуальных адресов в физические:

  1. В момент загрузки проги в память все адреса, упоминаемые в командах, заменяются на физические

  2. Прога загружается в неизменном виде, но при ее выполнении при каждом обращении к оперативной памяти виртуальный адрес заменяется на физический.

Вся память выделенная процессору, называется образом процесса.

Алгоритмы распределения памяти.

Алгоритмы делятся на 2 класса:

  • С использованием внешней памяти

  • Без использования внешней памяти

Алгоритмы без использования внешней памяти:

  1. Распределение динамическими разделами

  2. Распределение перемещаемыми разделами

При загрузке нового процесса фрагменты памяти могут перемещаться с изменением содержащихся в них адресов.

Алгоритмы с использованием внешней памяти делятся на три группы:

  1. Страничное распределение

Страница – фрагмент памяти, фиксированного размера, сравнительно небольшой.

По номеру страницы легко найти адрес

  1. Сегментное распределение

Сегмент – фрагмент памяти произвольного размера, для которого учитывается смысловое значение данных.

  1. Сегментно-страничное распределение

Вся память делится на сегменты, а сегменты – на страницы. Сегмент мб размера, кратного странице.

Ос ведет таблицу размещения памяти и для каждого процесса свою собственную таблицу. При подмене адресов, которое осуществляется в момент обращения к ячейки памяти, учитывается данные из глав.таблицы размещения и собственной таблицей процессов.

Главная таблица размещения GDT и ее адрес находится в регистре процессора GDTR (регистр глобал. таблицы дескрипт). Таблица, принадлежащая процессору называется LDT, ее адрес загружается в регистр LDTR, когда процесс активен.

Виртуализация памяти может подходить на основе одного из двух подходов:

  1. Подход – свопинг

Образы процессов выгружаются на диск и обратно целиком.

  1. Подход – виртуальная память

Между памятью и диском перемещаются фрагменты образов.

  1. Подсистема ввода/вывода

Основные компоненты это драйверы и файловая система.

Задачи по управлению файлами и устройствами:

  1. Организация параллельной работы, устройств ввода/вывода и процессора.

DMA – прямой доступ к памяти.

  1. Согласование скоростей обмена и кэширование данных.

Широко используется буферизация в оперативной памяти.

  1. Разделение устройств и данных между процессами

Решается с помощью очередей и таблиц, которые поддерживает ос.

  1. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы.

  2. Поддержка широкого спектра драйверов с возможностью простого включения нового драйвера в систему.

  3. Динамическая загрузка и выгрузка драйверов.

  4. Поддержка нескольких файловый систем.

  5. Поддержка синхронных и асинхронных операций ввода/вывода.

Специальные файлы

Все устройства делятся на два класса: блочные и символьные. Символьные устройства работают по принципу потоков данных. У блочных устройств есть адресуемость.

Спец файл – это виртуальный объект, связанный с некоторым устройством ввода/вывода.

Интерфейс взаимодействия со спец.файлом такой же как и с обычным, т.е. чтение – запись.

Логическая организация файловой системы

Файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.

Файловая система – часть ос включающая: 1) совокупность всех файлов на диске; 2) наборы структур данных, используемые для управления файлами; 3) комплекс системного по, реализующего различные операции над файлами.

Основные функции ФС:

  • Именование файлов (привязка имени к файлу)

  • Предоставление программного интерфейса для приложений (набор функций)

  • Отображение логической модели ФС на физическую организацию хранилища данных

  • Устойчивость к сбоям питания, ошибкам аппаратных и программных средств

Средства блокировки файла и его частей, согласование копий.

  • Защита файлов одного пользователя от несанкционированного доступа другого.

Типы файлов:

  1. Обычные файлы (сборища инфо, зависят от проги, создающая этот файл)

  2. Каталоги (инфо о др файлах в каталогах)

  3. Специальные (фиктивные)

Имена файлов:

  • Простое символьное имя (само имя файла без указателя пути, идентифицирует файл в пределах каталога)

  • Полное имя (полный путь к файлу, цепочка простых символьных имен всех каталогов, в которых лежит этот файл)

  • Относительное имя (определяется через понятие «текущий каталог»)

В некоторых системах существуют псевдофайлы (псевдонимы), у которых короче путь.

Объединение файловых систем, находящихся на разных устройствах называется монтированием.

Атрибуты файлов:

Понятие файл вкл помимо данных и имени еще и атрибуты, это инфо о свойствах файлов.

  1. Тип файла

  2. Владелец файла (номер, идентификатор пользователя, создавшего файл)

  3. Создатель файла

  4. Инфо о разрешенных операциях

  5. Времена создания, доступа, изменения

  6. Текущий размер файла (храниться отдельно от содержимого)

  7. Признак:

  • «R» - только для чтения,

  • «» - скрытый файл,

  • «» - архивный файл,

  • «» - системный файл,

  • Двоичный/символьный файл,

  • Временный файл

Атрибуты хранятся либо в каталогах либо в спец файлах.