Структура каталога ffs
Поддержка длинных имен файлов.
Любая запись содержит:
номер индексного дескриптора;
длина записи в каталоге;
длина имени файла;
имя файла (дополненное до кратности слова).
Структура каталога немного изменяется. К двум содержательным полям добавляется номер индексного дескриптора, размер записи, т.е. записи каталога, тип файла, длина имени и имени разрешается быть длиной до 256 символов. Соответственно может возникнуть некоторое недопонимание, т.к. есть параметр размер записи и длина имени. Суть использования того и другого параметра заключается в том, что при удалении информации (какого-то имени) из каталога свободное пространство присоединяется к предыдущей записи и получается, что размер больше той содержательной информации, которая имеется. Соответственно может появиться внутренняя фрагментация.
Управление процессами
Определение процесса. Основные понятия
Процесс - совокупность машинных команд и данных,которая исполняется в рамках вычислительной системы и обладает правами на владение некоторым набором ресурсов.
Ресурсы могут принадлежать только одному процессу, либо ресурсы могут разделяться между процессами – разделяемые ресурсы
Выделение ресурсов процессу:
-предварительная декларация – до начала выполнения
- динамическое пополнение списка принадлежащих
- процессу ресурсов
Количество допустимых процессов в системе – ресурс ВС.
Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать жизненным циклом процесса в системе.
Жизненный цикл процесса содержит этапы:
•образование (порождение) процесса;
•обработка (выполнение) процесса;
•ожидание (по тем или иным причинам) постановки на выполнение;
•завершение процесса.
Рассмотрим модельную ОС.
Пусть имеется специальный буфер ввода процессов (БВП) – пространство, в котором размещаются и хранятся сформированные процессы от момента их образования, до момента начала выполнения. На данном этапе происходит формирование всех необходимых структур данных, соответствующих процессу. В частности, на данном этапе ОС формирует информацию о предварительно заказанных данным процессом ресурсах. Основная задача БВП – «подпитка» системы новыми процессами, готовыми к исполнению.
После начала выполнения процесса он попадает в буфер обрабатываемых процессов (БОП). В данном буфере размещаются все процессы, находящиеся в системе в мультипрограммной обработке.
Жизненный цикл процесса.
0. Поступление процесса в очередь на начало обработки ЦП
(процесс попадает в БВП).
1. Начало обработки процесса на ЦП (из БВП в БОП).
2. Приостановка обработки процесса на ЦП по той или инойпричине (попадает в БОП). Переход в состояние ожидания дальнейшего выполнения.
3. Возобновление выполнения процесса на ЦП.
4. Завершение выполнения процесса, освобождение системных ресурсов.
Модель пакетной однопроцессной системы
Обработка ЦП Завершение Ожидание начала обработки
2
1 0
0 Поступление процесса в очередь на начало обработки ЦП
(процесс попадает в БВП).
1. Начало обработки процесса на ЦП (из БВП в БОП).
2. Завершение выполнения процесса, освобождение системных ресурсов.
Модель пакетной мультипроцессной системы
0. Поступление процесса в очередь на начало обработки ЦП (процесс попадает в БВП)
1. Начало обработки процесса на ЦП (из БВП в ВОП)
2. Процесс прекращает обработку ЦП по причине ожидания операции в/в, поступает в очередь завершения операции обмена (БОП).
3. Операция обмена завершена и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП).
4. Выбирается процесс для выполнения на ЦП.
6. Завершение выполнения процесса, освобождение системных ресурсов.
5. Процесс прекращает обработку ЦП, но в любой момент может
быть продолжен(истек квант времени ЦП, выделенный
процессу). Поступает в очередь процессов, ожидающих
продолжения выполнения центральным процессором (БОП).
БОП
Обработка ЦП
БВП Завершение 6
0 1 Ожидание начала обработки
4 2
5
Очередь на выполнение
Ожидания операции в/в
3
Заблокированный процесс может быть перекачен (своппирован) на внешний носитель, а на освободившееся место может быть подкачен процесс со внешнего носителя, который был откачен ранее, либо взят новый.
Типы процессов.
В мультипрограммной среде управление такими процессами тесно связано с управлением и защитой памяти, поэтому переключение процессора с выполнения одного процесса на выполнение другого является достаточно дорогой операцией.
«Полновесные процессы» - это процессы, выполняющиеся внутри защищенных участков памяти операционной системы, то есть имеющие собственные виртуальные адресные пространства для статических и динамических данных. ОС берет на себя функцию разделения ресурсов между конкурирующими процессами.
В дальнейшем, используя термин процесс будем подразумевать полновесный процесс.
Легковесные процессы, называемые еще как нити или сопрограммы, не имеют собственных защищенных областей памяти. Они работают в мультипрограммном режиме одновременно с активировавшей их задачей и используют ее виртуальное адресное пространство, в котором им при создании выделяется участок памяти под динамические данные (стек), то есть они могут обладать собственными локальными данными. Нить описывается как обычная функция, которая может использовать статические данные программы. Для одних операционных систем можно сказать, что нити являются некоторым аналогом процесса, а в других нити представляют собой части процессов.
Однонитевая организация процесса – «один процесс – одна нить»:
одному процессу соответствует одна нить. Управление планированием там происходит по одной ниточке
Многонитевая организация процесса:
много нитевая модель организации процессов, т.е. когда есть процесс, процессу принадлежат ресурсы, в частности ОП. И внутри процесса реализована относительно произвольное количество нитей и в этом случае нити друг с другом могут взаимодействовать через соответствующие интерфейсы (интерфейсы взаимодействия параллельных процессов) и соответственно планирование выполнения это может являться одной из функций ОС, т.о. ОС может планировать как выполнение процессов, так и выполнение нитей внутри процессов. Однако существуют решения, в которых много нитевая модель организуется так, когда процесс сам устанавливает стратегию управления нитями, в этом случае в функции ОС входит порождение нитей внутри процесса и обеспечение взаимодействия нитей (взаимодействие может быть не по модели вызова подпрограммы, а через передачу каких-то воздействий, событий, сигналов).
Понятие процесса может включать в себя понятие исполняемой нити, т. е. однонитевую организацию – «один процесс – одна нить». В данном случае понятие процесса жестко связано с понятием отдельной и недоступной для других процессов виртуальной памяти.
С другой стороны, в процессе может несколько нитей, т.е. процесс может представлять собой многонитевую организацию.
Ос планирует выполнение нитей внутри процесса.
В функции ОС входят обеспечение взаимодействия нитей.
- Конспект по курсу лекций Операционные системы
- Структура вычислительной системы
- Аппаратный уровень вычислительной системы
- Системы программирования
- Модель организации прерываний с использованием регистра «слово состояние процессора»
- 3.6.1.1 Устройство последовательного доступа
- Организация управления внешними устройствами
- Иерархия памяти
- Аппаратная поддержка ос и систем программирования
- Некоторые проблемы
- 1. Вложенные обращения к подпрограммам
- 2. Накладные расходы при смене обрабатываемой программы:
- 4. Фрагментация памяти
- 4.2.1 Регистровые окна ( register window )
- Системный стек
- Виртуальная память.
- Базирование адресов.
- Страничная память.
- Многомашинные, многопроцессорные ассоциации.
- Терминальные комплексы
- Компьютерные сети.
- Семейство протоколов tcp/ip
- Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- Транспортный уровень
- Уровень прикладных программ
- Сетевые, распределенные ос
- Операционные системы Основные понятия
- Структура ос.
- Модельная ос
- Жизненный цикл процесса
- Типы операционных систем
- Системы разделения времени
- Управление внешними устройствами. Архитектура.
- Программное управление внешними устройствами
- Буферизация обмена
- Планирование дисковых обменов
- Raid системы.
- Файлы устройств, драйверы
- Управление оперативной памятью
- Двухуровневая организация
- Структурная организация файлов
- Атрибуты файла
- Типовые программные интерфейсы работы с файлами
- Подходы в практической реализации файловой системы Структура «системного» диска
- Модели реализации файлов Непрерывные файлы
- Файлы, имеющие организацию связанного списка.
- Индексные узлы (дескрипторы)
- Модели организации каталогов
- Варианты соответствия: имя файла – содержимое файла
- Координация использования пространства внешней памяти
- Учет свободных блоков файловой системы Связный список свободных блоков
- Использование битового массива
- Организация фс Unix
- Логическая структура каталогов
- Внутренняя организация фс Модель версии System V Структура фс
- Работа с массивами номеров свободных блоков
- Работа с массивом свободных ид
- Индексные дескрипторы
- Адресация блоков файла
- Файл каталог
- Установление связей
- Недостатки фс модели версии System V
- Модель версии ffs bsd
- Стратегии размещения
- Внутренняя организация блоков
- Структура каталога ffs
- Понятие «процесс».
- Процессы в ос Unix Системно-ориентированное определение процесса
- Базовые средства организации и управления процессами
- Семейство системных вызовов exec()
- Использование схемы fork-exec
- Формирование процессов 0 и 1
- . Планирование Основные задачи планирования
- Планирование очереди процессов на начало обработки
- Кванты постоянной длины.
- Кванты переменной длины
- Класс подходов, использующих линейно возрастающий приоритет.
- Разновидности круговорота.
- Смешанные алгоритмы планирования
- Планирование в системах реального времени
- Общие критерии для сравнения алгоритмов планирования
- Планирование в ос unix
- Планирование в Windows nt.
- Планирование свопинга в ос Unix
- Взаимодействие процессов: синхронизация, тупики Параллельные процессы
- Проблемы организации взаимного исключения
- Тупики (deadlocks)
- Способы реализации взаимного исключения
- Семафоры Дейкстры
- Мониторы
- Обмен сообщениями
- Классические задачи синхронизации процессов
- Задача «читателей и писателей»
- Задача о «спящем парикмахере»
- Реализация взаимодействия процессов
- Сигналы
- Системный вызов kill()
- Системный вызов signal()
- Пример 1.
- Пример 2.
- 5 Пример. Программа “Будильник”.
- Пример. Двухпроцессный вариант программы “Будильник”.
- Пример. Использование канала.
- Пример. Схема взаимодействия процессов с использованием канала.
- Пример. Реализация конвейера.
- Пример. Совместное использование сигналов и каналов – «пинг-понг».
- Именованные каналы. Особенность именованных каналов в ос Unix.
- Пример. «Клиент-сервер».
- Межпроцессное взаимодействие, проводимое по модели «главный-подчинённый».
- Системный вызов ptrace()
- Общая схема трассировки процессов
- Пример. Использование трассировки.
- Система межпроцессного взаимодействия ipc.
- Очередь сообщений
- Системный вызов msgget()
- Функция msgsnd()
- Функция msgrcv()
- Функция msgctl()
- Пример. Использование очереди сообщений.
- Пример. Очередь сообщений. Модель «клиент-сервер».
- Разделяемая память.
- Пример. Работа с общей памятью в рамках одного процесса.
- Семафоры
- Пример. Использование разделяемой памяти и семафоров.
- 1Й процесс:
- 2Й процесс:
- Механизм сокетов
- Типы сокетов.
- Функция создания сокета
- Запрос на соединение
- Прослушивание сокета
- Подтверждение соединения
- Прием и передача данных
- Закрытие сокета
- Пример. Работа с локальными сокетами
- Пример работы с сокетами в рамках сети.