-
Notifications
You must be signed in to change notification settings - Fork 0
/
questions.html
188 lines (184 loc) · 12.4 KB
/
questions.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<!DOCTYPE html>
<!-- THIS IS GENERATED FILE, DO NOT EDIT DIRECTLY -->
<script>window.texme = {
style: 'none',
useMathJax: false,
protectMath: false,
}</script>
<script src="https://cdn.jsdelivr.net/npm/texme@0.9.0"></script><textarea>
# Список вопросов
1. Введение
1. Определение операционной системы
2. История по Таненбауму
3. История по Хансену, Open Shop
4. Batch Processing: tape batching; first-in, first-out scheduling
5. Multiprogramming: processor multiplexing, indivisible operations, demand paging, input/output spooling, priority scheduling, remote job entry
6. Timesharing: simultaneous user interaction, on-line file systems
7. Concurrent Programming: hierarchical systems, extensible kernels, parallel programming concepts, secure parallel languages
8. Personal Computing: graphic user interfaces
9. Distributed Systems: remote servers
2. Управление памятью
1. Управления памятью, типы, иерархия
2. Ручное выделение памяти, фрагментация
3. Последовательный поиск, выбор свободного, организация списка свободных
4. Слияние, реализация
5. Граничные маркеры
6. Двоичные близнецы, свойства
7. Раздельные списки свободных, индексированный поиск, поиск по битовой шкале
8. Отложенное слияние
9. Специализированные аллокаторы, obstack, pool
10. slab
3. Системные вызовы
1. Взаимодействие c ОС, статическая линковка, динамическая линковка
2. Системные вызовы
3. Исключения, обработка исключений
4. Системный вызов, режимы работы CPU
5. Типы ядер ОС
4. Невытесняющее планирование
1. Процесс, планирование, невытесняющее планирование, задача, реализация
2. Политика, FIFO, самая короткая, приоритетная, с учётом пользователей, deadline
3. Планирование и ввод/вывод, активное ожидание, пассивное ожидание, кооперативное планирование
4. Реализация кооперативного планирования
5. Кооперативные политики
5. Таймеры и прерывания
1. Аппаратный таймер
2. Отмерение временных интервалов
3. Программные таймеры, реализация
4. Оптимизации реализации программных таймеров, обхода таймеров, прерываний
5. Определение текущего реального времени
6. Три режима CPU, реализация обработчика прерываний таймера
7. Обработка прерываний в два этапа, обработчик таймера
6. Вытесняющее планирование
1. Мотивация для вытесняющее планирования, определения
2. Принудительное переключение, реализация
3. Добровольное переключение
4. Ожидание события, реализация
5. Системный вызов и квант времени
6. Планируемость, Aномалии планирования
7. Earliest Deadline First
7. Виртуальная память
1. Определения, виртуальная память, процесс, адресное пространство, потоки
2. Размещение процессов в памяти, обработка абсолютных адресов, swapping
3. Сегментная модель памяти
4. Страничная модель
5. Программная реализация страничной модели
6. Аппаратный кеш
7. Отображение с помощью MMU
8. Многоуровневые таблицы отображения
9. Paging, выбор жертвы, идеальный выбор
10. Алгоритмы выбора, First In First Out (FIFO), Второй шанс (Second chance), Часы (Clock)
11. Least Recently Used (LRU), Not Recently Used (NRU)
12. Not Frequently Used (NFU), Уменьшение набора сканирования страниц
13. Рабочий набор, WSClock
14. Отображенные файлы
15. Совместно используемая память, Реализация стека
16. Трюки со страничной моделью, Implicit Null Exception, Safepoint (barrier)
8. Процессы
1. Системные вызовы для управления адресным пространством
2. Жизненный цикл процесса, определение fork
3. Иерархия процессов, идентификация процессов, exec
4. Copy-on-Write
5. Завершение процесса, сигналы, подбор, waitpid
6. Реализация sh
7. Файловые дескрипторы, реализация перенаправлений, создание, изменение, удаление элементов таблицы
8. Реализация `cmd > file`, `cmd | cmd`, `$(cmd)`, `stderr`
9. Взаимное исключение
1. Состязательная ситуация, взаимное исключение, выключение прерываний
2. Алгоритмическая реализация критической секции, lock 1, lock 2, алгоритм Петерсона
3. Блокирующая переменная, корректная реализация, проблемы (в т.ч. инверсия приоритетов)
4. Семафор, реализация
5. Инверсия приоритета, наследование приоритета
6. Монитор, барьер
10. Задачи взаимодействия процессов
1. Задача обедающих философов, решение c глобальной, c дополнительной синхронизацией
2. Задача читателя/писателя, решение с приоритетом читателям
3. Читатель/писатель: Честное распределение
4. Читатель/писатель: приоритет писателям
5. Ресурсы и взаимоблокировки, условия возникновения
6. Предотвращение взаимоблокировок, взаимное исключение, удержание и запрос, невыгружаемость, циклическое ожидание
7. Уклонение, алгоритм банкира
8. Обнаружение и восстановление
11. Блочные устройства и файловые системы
1. Иерархия памяти, взаимодействие с блочными устройствами
2. Файл, взаимодействие с файлами
3. Дерево файлов, текущий каталог, абсолютный путь, "`.`", "`..`"
4. Операции файловым деревом, ссылки, жёсткие, мягкие
5. Файловая система, непрерывное размещение
6. Связный список блоков, связный список в таблице
7. inode (i-узлы), журнальная структура
8. Восстановление после сбоев, журналирование
9. Производительность
10. Виртуальная файловая система, драйвера ФС
11. FUSE
12. Многопроцессорные системы
1. Мультипроцессоры, UMA с шиной, UMA c координатным коммутатором, omega network
2. NUMA
3. ОС для мультипроцессоров, собственная ОС
4. AMP (Assymetric Multiprocessor)
5. SMP (Symmetric Multiprocessor)
6. Планирование мультипроцессоров
7. Реентерабельность, spinlock
8. Мультикомпьютеры, посылка сообщений, удалённый вызов, обмен страницами
13. Кеши и мультипроцессирование
1. Кеш
2. Полноассоциативный кеш
3. С прямым отображением
4. Устройство
5. Запись
6. Кеши и мультипроцессоры, компиляторный барьер
7. Согласование кешей, MESI
8. Буфер записи
9. проблемы с буфером записи, барьер
10. Буфер инвалидации
11. барьер чтения
12. Read-Copy-Update, пример
13. Простая реализация RCU
14. RCU для преимущественного чтения
15. Раскраска кеша
14. Сетевое программирование
1. История, телефонная сеть, ARPANET, TCP/IP, Internet
2. Коммутация, типы передачи, размеры сетей
3. Свойства протоколов, адресация, логические каналы, контроль ошибок
4. Стек OSI, TCP/IP
5. Канальный уровень
6. Сетевой уровень
7. Транспортный уровень
8. TCP
9. Berkeley сокеты
10. Серверный сокет
11. HTTP, реализация сетевых серверов
15. Распределенные системы
1. Распределённые системы, мультикомпютер, распределенная система
2. Cильносвязанная, слабосвязанная система
3. Асинхронность
4. Построение остовного дерева с известным корнем
5. Остновное дереве без выделенного корня
6. Задача определения лидера, лидер в кольце
7. Взаимное исключение
8. Синхронизация времени, NTP, логическое время
9. Алгоритм Лампорта
10. Векторные часы
11. Отказы
12. Консенсус при авариях
13. Консенсус при византийских отказах, Отказоустойчивость
14. Транзакции, реализации на одном узле
15. Реализация транзакций в распределённой системе
16. Восстановление после отказа
16. Безопасность
1. Безопасность, задачи
2. Модели построения политик
3. Авторизация
4. Авторизация в UNIX
5. Криптография, задачи
6. Криптографические алгоритмы, атаки
7. Шифры-подстановки
8. Симметричные алгоритмы
9. Асимметричные алгоритмы
10. Криптографический протокол
11. Криптография в симметричной системе
12. Криптография в асимметричной системе
13. Гибридные криптосистемы
14. Атака Man-in-the-Middle, алгоритм Interlock
15. Цифровая подпись, пример с выделенным арбитром
16. Подпись с асимметричным алгоритмом
17. Генерация случайных чисел