- •Состояние процесса
- •3 И 4. Интерфейсы прикладного программирования (api)
- •7 И 8. Структура операционных систем:
- •5. Структура файлов.
- •Иерархия процессов
- •11. Критические области
- •18.Семафоры
- •Проблемы переполненного буфера.
- •17. Справедливое планирование
- •26. Планирование в системах реального времени
- •25. Приоритетное планирование
Состояние процесса
Есть 3 состояния процесса:
Выполнение
Готовность
Ожидание
Возможны переходы между состояниями:
Процесс блокируется, ожидая входных данных
Планировщик выбирает другой процесс
Планировщик выбирает этот процесс
Поступили выходные данные
Переходы 2 и 3 вызываются планировщиком процессов ОС, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов, есть 2 состояния: выполнение и ожидание. На серверах для ускорения ответа на запрос клиента часто загружают несколько процессов в режим ожидания и как только сервер получит запрос, процесс переходит из ожидания в выполнение. Этот переход выполняется намного быстрее, чем запуск нового процесса.
3 И 4. Интерфейсы прикладного программирования (api)
Системные вызовы
Fork-создание процесса
Exit-завершение процесса
Open-открывает файл
Close-закрывает файл
Read-читает данные из файла в буфер
Write-пишет данные из буфера в файл
Stat-получает информацию о состоянии файла
Mkdir-создать новый каталог (директорию)
Rmdir-удалить каталог
Link-создает ссылку
Unlink-удаляет ссылку
Mount-монтирует файловую систему
Unmount-демонтирует файловую систему
Chdir-изменяет рабочий каталог
Команды, используемы в ОС семейства Windows
Creatprocess – создание нового процесса
ExitProcess – завершение процесса
CreatFile – открыть файл
CloseHandle – закрыть файл
ReadFile – чтение файла
WriteFile – запись данных в файл
CreatDirectory – создание каталога (директории)
RemovDirectory – удаление каталога (директории)
SetCurrentDirectory – изменить рабочий каталог
Интерфейс Win32 API позволяет программам работать на всех версиях Windows.
7 И 8. Структура операционных систем:
Монолитные ОС
Структура системы:
Главная программа, вызывающая требуемые сервисные процедуры
Набор сервисных процедур, реализующих системные вызовы.
Набор утилит, обслуживающих сервисные процедуры
В этой модели для каждого системного вызова имеется 1 сервисная процедура. Утилиты выполняют функции, нужные нескольким сервисным процедурам.
Этапы обработки вызова:
Принимается вызов
Выполняется переход из режима пользователя в режим ядра
Операционная система проверяет параметры вызова для того, чтобы определить какой системный вызов должен быть выполнен.
После этого, ОС обращается к таблице, содержащие ссылки на процедуры и вызывает соответствующую процедуру.
5. Структура файлов.
Существуют 3 основные структуры файлов:
Последовательность байтов. ОС не интересуется содержимым файла, она видит только байты. Основное преимущество такой системы – гибкость использования.
Последовательность записей. Запись, фиксированной длины, считывающийся последовательно. Сейчас уже не используется.
Дерево записей. Каждая запись имеет ключ, записи считываются по ключу. Основное преимущество – скорость поиска
Иерархия процессов
В UNIX-системах заложена жесткая иерархия процессов. Каждый новый процесс, созданный системным вызовом, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистр и т.п. После вызова, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят, что являются родительскими. В таком случае в UNIX существует и прародитель всех процессов-процесс Init.
