Вопросы к зачету по курсу «Системное программное обеспечение»
1. Процессы в Linux
1.1. Что делает функция fork:
1.2. азначение функции waitpid:
1.3. Чем можно заменить код порожденного процесса:
1.4. В каком диапазоне пользователь Linux может изменить приоритет своего процесса:
2. System V IPC
2.1. Какое значение можно использовать в качестве ключа нового объекта IPC:
2.2. Для чего при создании объекта IPC применяют флаги IPC_CREAT и IPC_EXCL:
2.3. Когда проверяются разрешения на доступ к объекту IPC
2.4. Когда возможно повторное использование идентификатора объекта IPC
3. Программные и именованные каналы
3.1. Какие действия необходимо выполнить для передачи данных через программный канал из родительского процесса в дочерний
3.2. Зачем нужна функция рореn
3.3. В чем разница между программными и именованными каналами
3.4. Что дает флаг 0_NONBLOCK
4. Очереди сообщений
4.1. Каковы допустимые флаги функции msgget
4.2. Когда вызов функции msgsnd приводит к блокировке вызвавшего ее процесса
4.3. Сообщение с каким типом вернет функция msgrcv, если в ней указан тип со значением меньше нуля
4.4. Что позволяет сделать с очередью функция msgctl
5. Разделяемая память
5.1. В чем преимущества разделяемой памяти по сравнению с другими объектами IPC
5.2. Для чего предназначена функция shmget
5.3. Какое значение аргумента shmaddr рекомендуется указывать в функции shmat
5.4. Что позволяет сделать с сегментом разделяемой памяти функция shmctl
6. Семафоры System V IPC
6.1. Для чего предназначены семафоры
6.2. Что позволяет сделать с семафором функция semctl
6.3. Каково назначение полей структуры struct sembuf
6.4. Что происходит с процессом, вызывающим функцию semop с аргументом struct sembuf res = {0, -1, 0};
7. Потоки в Linux
7.1. Когда программа будет ждать завершения потока?
7.2. Какие функции принудительно завершают работу потока?
7.3. В каком состоянии создаваемый поток начинает свою жизнь?
7.4. Какие атрибуты потоков может изменить обычный пользователь Linux?
8. Взаимные исключения и условные переменные
8.1. Когда необходимо инициализировать взаимное исключение функцией pthread_mutex_init?
8.2. Когда происходит блокировка потока, использующего взаимное исключение?
8.3. Какой второй параметр необходим в функции pthread_cond_wait
8.4. Какие функции нужно вызвать процессам для совместного использования взаимного исключения?


