- •Программа фонового копирования с размещением заданий в каталоге.
- •Программа фонового копирования с получением заданий по каналу
- •Серверная сторона
- •Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "лотерейное планирование".
- •Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "циклическое планирование".
- •Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "случайный выбор".
- •Эмуляция планировщика процессов с использованием волокон (Fiber). Алгоритм "приоритетные счетчики".
- •Cервер шифрации данных на основе именованных каналов
- •Серверная сторона
- •Cервер шифрации блоков данных на основе сокетов
- •Модель файловой системы fat16 в файле
- •Структура системы fat
- •Модель файловой системы ext2 в файле
- •Логическая организация файловой системы ext2
- •Физическая организация файловой системы ext2 Структура дискового раздела
- •Система адресации данных
- •Cетевой чат на основе именованных каналов с выделенным сервером
- •Серверная сторона
Эмуляция планировщика процессов с использованием волокон (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) – переключиться на указанное волокно
Эмуляция планировщика процессов с использованием волокон (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) – переключиться на указанное волокно
Алгоритм "приоритетные счетчики".
Планировщик использует для определения порядка выполнения потоков алгоритм, основанный на приоритетах, в соответствии с которым каждому потоку присваивается число - приоритет, и потоки с более высоким приоритетом выполняются раньше потоков с меньшим приоритетом.
Процесс получает базовый приоритет в тот момент, когда его создает подсистема той или иной прикладной среды. Значение базового приоритета присваивается процессу системой по умолчанию, или системным администратором, или указывается при вызове родительским процессом. Поток наследует этот базовый приоритет и может изменить его, немного увеличив или уменьшив. На основании получившегося в результате приоритета, называемого приоритетом планирования, производится планирование выполнения потоков.
Cервер шифрации данных на основе именованных каналов
Для работы с именованным каналом используется функция CreateNamePipe
Именованные каналы.
Каналы – способ локального и сетевого взаимодействия.
функции сервера
функции клиента
Каналы должны быть с одним именем.
СЕРВЕР
Создать канал: 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 – время ожидания