
- •Лекции «Операционные системы» 4 семестр, 2 курс Содержание
- •Лекция №1 История развития ос
- •Операционная система. Общая характеристика.
- •Лекция №2 Требования к ос
- •Ресурсы, виды ресурсов. Управление памятью. Виртуальная память.
- •Методы распределения памяти
- •Лекция №3
- •Cash-ирование данных
- •Понятие процесса. Управление процессами. Синхронизация процессов. Тупики и способы борьбы с ними.
- •Лекция №4 Алгоритмы планирования процессов
- •Средства синхронизации при взаимодействии процессов
- •Файловые системы
- •Лекция №5 Общая модель файловой системы
- •Файловая система fat (таблица распределения файлов)
- •Структура
- •Формат кода каталога
- •Файловая система hpfs
- •Лекция №6
- •Файловая система ntfs(кратко)
- •Операционная система ms-dos
- •Лекция №7 Прерывание. Обработка прерываний
- •Лекция №8
- •Программирование последовательного порта
- •Лекция №9
- •Планирование процесса
- •Многоуровневые очереди
- •Лекция №10
- •Лекция №11 Архитектура Windows nt
- •Лекция №12 Процессы и нити
- •Лекция №13 Алгоритмы планирования процессов и нитей
- •Процесс
- •Распределение процессорного времени между потоками
- •Лекция №14
- •Лекция №15
- •Журнал аудита
- •Политика аудита
- •Лекция №16
- •Настройка и конфигурация windows nt
- •Лекция №17
- •Структура сетевой ос
- •Лекция №18
- •Лекция №19
- •Лекция №20 Динамически подключаемая библиотека (dynamic_link_library dll)
- •Лекция №21 Внедрение dll
Лекция №13 Алгоритмы планирования процессов и нитей
При выборке нитей просматриваются те, которые готовы.
Первоочередная готовность – знаем, какой процесс выполняется следующим.
Ожидание – какие – либо ресурсы заняты.
Для определения смены порядка выполнения нитей используются алгоритмы, основанные на квантовании и приоритете (32-приоритетный).
При создании процесса процессу присваивается базовый приоритет. Нити наследуют его.
Нить покидает процесс, если:
-
переходит в состояние ……..
-
заканчивается
-
заканчивается квант времени
-
более приоритетная нить
Win 32 API (application programming interface)
API содержит совокупность функций, использующихся для приложений.
Реализован на 4-х платформах:
-
Win 32S
-
Windows NT
-
Windows 95
-
Windows CM (для работы с 4 Мб памяти, дополнительные функции)
Win 32S – 32- разрядная настройка, 16- разрядные функции. Наиболее полный набор реализован для NT.
-
многопроцессорная NT.
Структура:
Тип объекта определяет данные и набор действий, которые можно производить. Диспетчер объектов поддерживает несколько полей данных.
Объект состоит из:
-
заголовок (содержит поля:
-
имя объекта
-
директории
-
дескриптор безопасности
-
кванты (набор ограничений на использование процессами объектов)
-
счетчик дескриптора (счетчик одновременно открытых)
-
база данных (список процессов, получающих дескриптор)
-
временный или постоянный тип (определяет время жизни объекта)
-
ядро или пользователи
-
указатель типа)
-
тело
Процесс
Процесс задается функцией:
Create Process (
LPCTSTR Lpsz Application name
LPCTSTR Lpsz Command Line
LPSECURITY ATRIBUTES l’psa Process
LPSECURITY ATRIBUTES l’psa Thread
BOOL fInherit Mandles
PWORD fdw create
LPVOID Ipv Environment
LPTSIR Ipsz CurDir
LPSTARTUPINFO IpsiStartInfo
LPPROCESS INFORMATION Ippriproc Info
)
LP – указатель
STR – структура
1 параметр – имя, командная строка, переданная файлу. Можно указать полную строку; (системный каталог Windows, основной каталог Windows).
2 параметр – объекты ядра, с ними связаны атрибуты защиты (SECURITY ATRIBUTES).
Флаг fdw имеет несколько значений (определяет, как будет создаваться процесс):
-
DEBUG PROCESS (позволяет родительскому процессу проводить отладку дочернего; если флаг установлен, родительский процесс – отладчик)
-
DEBUG ONLY_THUS_PROCESS (аналогичен; родительский процесс уведомляется только об одном дочернем процессе)
-
CREATE_SUSPENDED (позволяет создавать процесс и приостанавливать его текущий поток)
-
CREATE_NEW_CONSOLE (приводит к созданию нового консольного приложения)
-
CREATE_NEW_WINDOW (приводит к созданию нового консольного кольца для нового процесса)
-
CREATE_SEPARATE_WOW_VDM (позволяет запускать без окон)
Только при запуске 16-разрядного Windows – приложения.
3 параметр – поставить свое переменное окружения.
4 параметр – позволяет изменить строку окружения.
5 параметр – текущий каталог
6 параметр – указатель на структуру
Структура содержит:
-
X-size
-
Y-size
-
Атрибуты и т.д.
7 параметр – указывает на структуру (2 описания – процесс и поток:
-
идентификатор процесса
-
идентификатор потока).
Структура:
PROCESS INFORMATION {
HANDLE hPROCESS
Handle hTHREAD
DWORD dw PROCESS ID
DWORD dw THREAD ID
}
Каждому процессу присваивается уникальный идентификатор и сохраняется на протяжении всей его жизни.
Завершение процесса:
2 функции:
VOID EXIT PROCESS (UINT fv EXIT code)
TER mihate PROCESS (handle hprocess
VINT fv EXIT code)
Функция:
GetExit Process (Handle hProcess
LPOWORD lpdwEXIT code)
Функция:
Create Read – создание первичного потока
Завершение потока:
EXIT THREAD
TERMINATThread – завершение потока