Операционные системы I
Published:
Вот мои конспекты по ОС:
- Системное программирование (см. Конспекты по ASP)
- Планирование процессов
- Управление памятью
- Диски и ввод-вывод
Эти конспекты не велись аккуратно или организованно, потому что:
- Формат слайдов делает невероятно сложным процесс выделения и объединения ключевых концепций в режиме реального времени.
- Существует множество отличных материалов по конкретным темам, см. ниже
- Большая часть моего понимания приходит во время позднего ночного дебаггинга, а не во время осознанного ведения конспектов.
Некоторые заметки по домашним заданиям и семинарам опущены, так как они напрямую ведут к готовым решениям.
Подача материала
Если вы проходите ОС у Костиса (или у последователей его версии), вам придется нелегко. Лично мне не нравится использование слайдов для преподавания учебной программы по ОС в Колумбийском университете.
Системы лучше всего воспринимаются как непрерывный, неразрывный поток концепций. Слайды в корне зажимают знания в искусственные прямоугольные рамки, что приводит к таким проблемам, как:
- Текст-пустышка и излишне подробный бэкграунд просто для того, чтобы заполнить пустое пространство шаблона слайда.
- Попытки втиснуть несколько текстов/диаграмм/схем сложной темы на один единственный слайд.
- Неполные или разбитые на части фрагменты кода на нескольких слайдах.
- Плохая переносимость (нельзя чисто скопировать код из макета слайда).
Эти особенности усложняют обучение как для студентов, так и для преподавателей.
- Существуют также споры по поводу логистики и системы оценивания, но это заслуживает отдельного обсуждения…
Ресурсы
Рекомендую обращаться к странице курса по ОС от Джея за весну 2023 года — старые добрые времена! (Она находится в открытом доступе через домашнюю страницу Джея)
Вот также несколько очень полезных руководств, написанных бывшим главным ассистентом (Head TA) Алексом Цзякай Сюй, которые ранее публиковались на EdStem.
Вы можете найти еще больше крутых статей на его странице GitHub
Вот диаграмма состояний планировщика, которую я сделал при подготовке к финальному экзамену: 
- Зеленый: стандартный цикл (выбор — выполнение — вытеснение — возврат в очередь)
- Красный: процедура ожидания — сна — пробуждения
- Желтый: балансировка нагрузки (между 2 CPU/очередями выполнения)
- Синий: переключение задач между классами планирования
