- Что произойдет с остальными потоками если в одном из них возникнет ошибка, например необработанное исключение?
- Что такое Data race, пример
- Процессу поступил сигнал SIGPIPE что произошло?
- Что такое маска сигналов, что происходит при fork()
- Что гарантирует TCP протокол
- Какие протоколы используются при DNS
- В чем отличие Level-Triggered and Edge-Triggered epoll?
- Задача придумать свое решение для передачи данных. Есть tracerout
- https://medium.com/german-gorelkin/race-8936927dba20
- https://man7.org/linux/man-pages/man2/fork.2.html
- https://man7.org/linux/man-pages/man7/signal.7.html
- https://man7.org/linux/man-pages/man7/epoll.7.html
- про модель osi и какие вервисы работают на каждом уровне запись выложу ночью, как дома буду
- и про 4-х уровневую модель тоже
- Что такое иерархия памяти? (кэш, RAM, SSD и тд, диспетчер(менеджер) памяти)
- Модели управления памятью? (с самой простой до самой сложной как есть сейчас) //объяснение:
######the main points:
- регистры работают с обычной физической памятью.
- в памяти может одновременно выполняться только одна программа.
- три вида расположения основных блоков в памяти: операционная система в нижних адресах, выше программа пользователя программа пользователя, а потом операционная система в пзу или опер сист, потом программа пользователя, потом драйверы в пзу первый и третий способ опасны, потому что можно программой затереть операционку.
единственный способ параллельности - это использовать потоки. 3) свопинг - это ... ?
(адресные пространства) ######the main points:
-
адресное пространство - это набор адресов, который может быть использован процессом для обращения к памяти.
-
у каждого процесса есть свое адресное пространство.
-
идея, как каждой программе выделяем адресное пространство. (т к адрес 28 есть одно место для одной программы и есть совершенно иное место для другой программы)
-
динамическое перераспределение памяти (адресное пространство каждой программы проецируется просто на какой-то участок физической памяти)
-
(базовый и ограниченный регистр) в базовый регистр загружается адрес начала программы, в ограничительный длина программы. использование этих регистров решает проблему того, что мы присваиваем базовому и ограничительному регистру некоторые блоки памяти.
-
виртуальная память это (это подход, который позволяет запускаться программам даже если они присутствуют в ОЗУ памяти только частично)
-
уплотнение памяти (зачастую не юзается, т к занимает оч много процессорного времени) свопинг имеет минус если например процесс не знает заранее сколько ему нужно памяти, например если это программа на с++, где есть динамическое выделение памяти
-
если память выделяется в динамическом режиме, то этим занимается оперционная система, т е есть два способа отслеживания использования памяти: битовые матрицы и списки свободного пространства.
-
битовые матрицы - (каждому блоку памяти размерром от машинного слова до блока размера несколько килобайт соотносится 1 бит в битовой матрице)
- Что такое файловый дескриптор?
- Для чего нужны файловые дескрипторы? (https://timeweb.com/ru/community/articles/chto-takoe-faylovyy-deskriptor-prostymi-slovami)
- что такое буфферизированный и небуфферезированный файловый ввод-вывод? какие библиотечные функции работают с буферизацией? а какие без? (getch(), putch() из conio) Какие преимущества буферизации перед небуфферизацией и наоборот?
- что такое синхронизация передачи данных?
- О чем говорит ошибка bad file descriptor?
- fcntl что делает, какие аргументы?
- что делают команды dup, dup2? в чем разница?
- что такое канал? зачем нужен? зачем придуман?
- что происходит с записью и чтением в/из канал(а)?
- Что такое deadlock?
- Приведи примеры race conditional
- Что такое сигнал? Каков механизм их работы?
- Что может делать процесс при получении сигнала? (какой обработчик сигнала стоит по умолчанию почти на всех процессах?)
- Какой код возврата у процесса, который был завершен с помощью сигнала?
- Как отправить сигнал? Какие сигналы умеет отправлять терминал (достаточно 2 примеров)? Какой системный вызов есть для отправки сигнала? какие тонкости работы? int kill(pid_t pid, int signum); // возвращает 0 или -1, если ошибка.
- Raise для каких нужд? Abort -> SIGABRT (assert)?
- Alarm как системный вызов?
- Функции-обработчики сигналов?
- что такое сокет? зачем нужен?
- команда для создания сокета, ее аргументы, о каждом подробнее: пространства имен какие бывают? типы взаимодействия какие? (что такое системный вызов?) TCP и UDP протоколы о чем? в чем разница?
- зачем нужна такая сущность, как пара сокетов? в чем отличие от канала?
- В чем мотивация использования неблокирующего файлового ввода-вывода?
- Флаг O_NONBLOCK
- что будет, если писать в файловый дескриптор, где нет места? или читать тот, где ничего нет?
- что такое epoll, в чем идея?
- что такое очередь ядра операционной системы?