- •Лекция №1
- •История операционных систем.
- •Управление памятью.
- •Однозадачные системы.
- •Лекция №2
- •Способы учета участков памяти.
- •2 Алгоритм (наиболее подходящий).
- •3 Алгоритм (наименее подходящий).
- •4 Алгоритм (алгоритм двоичного разбиения).
- •Лекция №4
- •Принципы
- •Лекция №5
- •Лекция №6 Управление процессами.
- •Алгоритмы планирования системы.
- •Лекция №7
- •Два подхода к планированию.
- •Синхронизация.
- •Лекция №8
- •Тупики.
- •Способы взаимодействия между процессами.
- •Лекция №9 Управление процессами в среде Window’s.
- •Лекция №10
- •Волокна
- •Лекция №11 Синхронизация процессов.
- •Ссобытия
- •Способы взаимодействия процессов.
- •Серверная сторона
- •Второй семестр Управление процессами в среде unix Лекция №1
- •Лекция №2
- •Сигналы.
- •Способ взаимодействия общая память.
- •Лекция №3
- •Семафоры.
- •Лекция №4 Файлы как средства сообщения.
- •Файловыe системы.
- •Примеры файловых систем
- •Лекция № 6
- •Система ext 2
- •Лекция № 7
- •Лекция № 8 Функции работы с файлами в unix.
- •Лекция № 9 Java — скрипт.
- •Лекция № 10
- •Лекция № 11
Ссобытия
HANDLE CreatEveut(LPSECURITY ATTRIBUTES ProcAttr,
BOOL ManualReset,
BOOL InitState,
LPCTSTR Name)
параметры безопасности
есть два типа событий: ручной и автоматический сброс
начальное состояние события
системное имя объекта
BOOL [Set/Reset]Eveut(HANDLE h)
установить / сбросить событие.
Способы взаимодействия процессов.
Общие файлы
HANDLE CreateFile(
LPCTSTR Name, // имя файла
DWORD DesiredAccess, //требуемый режим доступа
DWORD SharedMode,//какой режим совместного использования //мы допускаем: 0 – никакого доступа, FILE_SHARE_READ – параллельное чтение,
//FILE_SHARE_WRITE – писать, FILE_SHARE_DELETE – удалить
LPSECURITY ATTRIBUTES ProcAttr,//атрибуты безопасности
DWORD CreationFlag,//что мы хотим сделать с физическим //файлом на диске: OPEN_EXISTING – открыть существующий файл, //CREATE_ALWAYS – создавать всегда, CREATE_NEW, OPEN_ALWAYS, //TRUNCATE_ EXISTING – если файл есть, он будет открыт – содержимое //уничтожено, если нет, то нет.
DOWRD FlagsAttr,
//FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_READONLY,
//FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_SYSTEM,
//FILE_ATTRIBUTE_TEMPORARY – временный файл,
// FILE_ATTRIBUTE_OFFLINE, FILE_ATTRIBUTE_ENCRYPTED,
//Флаги: FILE_FLAG_DELETE_ON_CLOSE, FILE_FLAG_NO_BUFFERING,
// FILE_FLAG_OPEN_REPARSE_POINT, FILE_FLAG_OVERLAPPED,
// FILE_FLAG_RANDOM_ACCESS – подсказка ОС, что мы будем читать и писать в //случайных местах
// FILE_FLAG_SEQUENTIAL_SCAN – последовательно читать и писать
// FILE_FLAG_WRITE_THROUGH – не кэшировать, только запись
DWORD Bytes,
HANDLE hTemplate)
Чтение из файла:
BOOL ReadFile(
HANDLE h,
LPVOID Buf, //куда читать
DWORD BytesToRead,//сколько хотим прочитать
LPDWORD BytesRead,//сколько реально прочитали
LPOVERLAPPED ov
)
Запись в файл:
BOOL WriteFile(
HANDLE h,
LPVOID Buf,
DWORD BytesToWrite,..сколько хотим записать
LPDWORD BytesWrite,//сколько реально записали
LPOVERLAPPED ov
)
отображение файлов на память.
Создать специальный объект отображения.
HANDLE CreateFileMapping(
HANDLE hfile,// дескриптор системного файла
LPSECURITY ATTRIBUTES ProcAttr,//атрибуты безопасности
DWORD protect, // атрибуты защиты страницы:
//PAGE_READONLY, PAGE_WRITECOPY
DWORD maxsizehigh,
DWORD maxsizelow,
LPCTSTR sysname) // системное имя
INVALID_HANDLE
создаем участок общей памяти:
LPVOID MapViewOfFile(
HANDLE hmap,
DWORD access // параметр доступа
DWORD ofshigh, // начальное смещение
DWORD ofslow,
DWORD bytestomap) ..длина отображения
Начинать отображения можно только с границы гранулярности.
Процедура отображения:
BOOL UnmapViewOfFile(LPVOID Ptr)
Именованные каналы.
Каналы – способ локального и сетевого взаимодействия.
функции сервера
функции клиента
Каналы должны быть с одним именем.
СЕРВЕР
Создать канал: 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 – время ожидания