Содержание
- 2. План курса Введение Что такое ОС? Зачем они нужны? Основные идеи и принципы ОС Ядро ОС,
- 3. План лекции Многозадачность Понятие и виды многозадачности Потоки и процессы IPC в Windows и POSIX Средства
- 4. Перед началом… Где смотреть описание функций API ОС? для Microsoft Windows: MSDN (Microsoft Developer Network): https://docs.microsoft.com/en-us/windows/win32/
- 5. Многозадачность, типы, потоки и процессы, механизмы синхронизации: мьютекс, семафор, барьер, IPC Многозадачность
- 6. Многозадачность Одновременное выполнение нескольких подпрограмм (потоков) ОС сама переключает подпрограммы вытесняющая: ОС не ждёт завершения подпрограммы
- 7. Многозадачность Невытесняющая многозадачность (tickless-система) совместная, кооперативная многозадачность планировщик вызывается по окончанию очередной задачи (-) одна «повисшая»
- 8. Потоки и процессы Процесс – выполняется в отдельном виртуальном адресном пространстве и имеет приоритет исполнения. Поток
- 9. Создание процесса POSIX
- 10. Замещение тела процесса POSIX Новая программа загружается в память вместо старой, вызвавшей exec(). Старой программе больше
- 11. POSIX: функция system() : int system(const char *command);
- 12. POSIX: функция spawn() Функция spawn() запускает исполнимый файл и передает управление обратно вызвавшему процессу Подождать завершение
- 13. Создание процесса Windows
- 14. Создание процесса Windows Можно, как и в POSIX, использовать функцию system() (объявлена в ): Нужно учитывать,
- 15. Создание потока в POSIX
- 16. Управление потоками POSIX
- 17. Создание потока Windows
- 18. Управление потоками Windows
- 19. IPC Межпроцессное взаимодействие (inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется
- 20. Работа с файлами
- 21. Сигналы в POSIX Сигналы могут быть посланы: ядром системы для информирования приложения об ошибках или событиях
- 22. Неименованный канал (pipe) Доступен только связанным процессам – родительскому и дочернему Использует стратегию работы с данными
- 23. Именованный канал (named pipe) В POSIX именованный канал существует независимо от использующих его процессов и имеет
- 24. Разделяемая память в POSIX Область памяти, одновременно доступная в разных процессах Самый быстрый IPC В POSIX
- 25. Разделяемая память в Windows CreateFileMapping() для создания глобально именованной области, с указанием размера OpenFileMapping() для открытия
- 26. Сокеты Беркли Сокеты впервые появились в ОС Berkeley UNIX 4.2 BSD (1983 г) Сокет в POSIX-системе
- 27. Операции с сокетами
- 28. Сторонние средства IPC/RPC DCE/RPC (Distributed Computing Environment / Remote Procedure Calls) — бинарный протокол на базе
- 29. Механизмы синхронизации При работе с общей памятью из разных потоков или процессов необходимо использовать механизмы синхронизации.
- 30. Mutex
- 31. Семафор
- 32. Барьер
- 33. Синхронизация в POSIX Семафоры (#include ) – для синхронизации процессов Неименованный: int sem_init(sem_t *sem, int pshared,
- 34. Синхронизация в Windows Для синхронизации процессов используются именованные примитивы: Мьютексы: HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR
- 35. Принцип устройства таймера, работа с датой и временем Таймеры
- 36. Таймеры ОС Аппаратные таймеры ограниченное число таймеров всего два программируемых события (будильника) на один таймер ограниченная
- 37. Работа со временем в ОС Аппаратно время отсчитывается RTC (realtime clock) В настольных компьютерах размещены на
- 38. Время в POSIX Ожидание (#include ): unsigned sleep(unsigned seconds); int usleep(useconds_t useconds); #include : int nanosleep(const
- 39. Время в Windows Ожидание: VOID Sleep(DWORD dwMilliseconds); DWORD SleepEx(DWORD dwMilliseconds, BOOL bAlertable); Получить время: #include :
- 40. Предопределенные макросы компиляторов, средства автоматизации сборки, функции библиотек Boost и QT для реализации IPC и работы
- 41. Макросы компиляторов Кроссплатформенный код на C/C++ обычно пишется с использованием макросов, определяющих ОС, компилятор, аппаратное обеспечение
- 42. Автоматизация сборки Система автоматизации сборки решает множество задач разработки ПО: Компиляция объектных модулей Определение ОС или
- 43. Boost и QT Boost.Threads Boost.Process Boost.Interprocess Boost.Filesystem Boost.Date_Time QThread QProcess QSharedMemory, QTcpSocket, QTcpServer,… QFile QDateTime https://www.boost.org/doc/libs/1_78_0/?view=categorized
- 44. С++11 и С++17 С++11: std::thread из std::mutex, std::recursive_mutex, std::condition_variable std::shared_ptr std::atomic С++17: std::filesystem из boost::filesystem Далее:
- 46. Скачать презентацию
 Slaidy.com
 Slaidy.com











































 23300d05f87647a29c863aedd5792379
 23300d05f87647a29c863aedd5792379 Учебная практика на НИУ МЭИ. Овладение приемами работы в наиболее распространенных инструментальных программных средствах
 Учебная практика на НИУ МЭИ. Овладение приемами работы в наиболее распространенных инструментальных программных средствах Кодирование информации. Основные термины
 Кодирование информации. Основные термины Здоровым быть здорово
 Здоровым быть здорово История создания смайликов
 История создания смайликов Организация структуры базы данных
 Организация структуры базы данных Создание движущихся изображений
 Создание движущихся изображений День защиты информации
 День защиты информации Проект Coursera
 Проект Coursera Теория прототипирования
 Теория прототипирования Короли игровой индустрии
 Короли игровой индустрии Стратегия развития информационного общества
 Стратегия развития информационного общества Модуль обнаружения вредоносного ПО в сетевом трафике
 Модуль обнаружения вредоносного ПО в сетевом трафике Кантриболз .История
 Кантриболз .История Реализация программы Компьютер для школьника
 Реализация программы Компьютер для школьника 1__NodeJS._NodeJS
 1__NodeJS._NodeJS Объявление как речевой жанр
 Объявление как речевой жанр Презентация "NetSchool" - скачать презентации по Информатике
 Презентация "NetSchool" - скачать презентации по Информатике Логические основы вычислительной техники
 Логические основы вычислительной техники Две ритм-игры с душой - Cytus и Deemo
 Две ритм-игры с душой - Cytus и Deemo Игра лабиринт
 Игра лабиринт Учебно-ознакомительная практика в Ё-медиа
 Учебно-ознакомительная практика в Ё-медиа Кибернетические системы. Лекция 3
 Кибернетические системы. Лекция 3 Дополнительное образование в интернате
 Дополнительное образование в интернате Информация и информационные процессы. 8 класс
 Информация и информационные процессы. 8 класс ETE2AE+ETZ09E – Operating systems and Computer Networks (Lecture 1)
 ETE2AE+ETZ09E – Operating systems and Computer Networks (Lecture 1) Presentation Template
 Presentation Template Программа - Ты предприниматель
 Программа - Ты предприниматель