Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursOS.doc
Скачиваний:
4
Добавлен:
20.11.2019
Размер:
162.82 Кб
Скачать
  1. Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "случайный выбор".

---------------------------------------------------------------------------

Для работы с волокнами используется функция CreateFiber

LPVOID CreateFiber(

SIZE_T StackSize,

LPFIBER_START_ROUTINE Func,

LPVOID Params) – создаем волокно.

VOID DeleteFiber(LPVOID f) – удаление волокны

LPVOID ConvertThreadToFiber (LPVOID Params) – прежде чем начать работу один поток превратить в волокно.

BOOL ConvertFiberToThread() – уничтожаем структуру волокна и превращаем его в поток

VOID SwitchToFiber(LPVOID f) – переключиться на указанное волокно

  1. Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "приоритетные счетчики".

---------------------------------------------------------------------------

Для работы с волокнами используется функция CreateFiber

LPVOID CreateFiber(

SIZE_T StackSize,

LPFIBER_START_ROUTINE Func,

LPVOID Params) – создаем волокно.

VOID DeleteFiber(LPVOID f) – удаление волокны

LPVOID ConvertThreadToFiber (LPVOID Params) – прежде чем начать работу один поток превратить в волокно.

BOOL ConvertFiberToThread() – уничтожаем структуру волокна и превращаем его в поток

VOID SwitchToFiber(LPVOID f) – переключиться на указанное волокно

Алгоритм "приоритетные счетчики".

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

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

  1. Cервер шифрации данных на основе именованных каналов

Для работы с именованным каналом используется функция CreateNamePipe

Именованные каналы.

Каналы – способ локального и сетевого взаимодействия.

  1. функции сервера

  2. функции клиента

Каналы должны быть с одним именем.

  1. СЕРВЕР

Создать канал: HANDLE CreateNamePipe(

LPCTSRT pipename,

DWORD openmode, // режим открытия

DWORD pipemode,

DWORD maxinstance,

DWORD outbufsize,

DWORD inbufsize,

LPSECURITY ATTRIBUTES ProcAttr,//атрибуты безопасности

)

Имя канала: \\.\pipe\<имя > - до 256 символов

FILE_FLAG_FIRST_PIPE_INSTANCE – может присутствовать во втором параметре:

PIPE_ACCESS_DUPLEX, PIPE_ACCESS_INBOUND, PIPE_ACCESS_OUTBOUND

FILE_FLAG_WRITE_THROUGH – если процессы находятся на разных машинах в сети

FILE_FLAG_OVERLAPPED – асинхронный режим (для канала)

PIPE_TYPE_BYTE и PIPE_TYPE_MESSAGE – каждая запись в канал – пакет

PIPE_READMODE_BYTE, PIPE_READMODE_MESSAGE

MAXINSTANCES – max допустимое число каналов с таким именем

PIPE_UNLIMITED_INSTANCES

DEFOULTTimeout – время ожидания

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]