Введение в курс операционных систем 0:00 Обсуждение сложности построения курса операционных систем из-за их complexity. Проблема выбора начала изучения: процессы, память, ядро. План курса: спиральное движение от общих понятий к деталям.
Определение операционной системы 2:37 Операционная система — базовое системное программное обеспечение, управляющее работой вычислительного узла. Посредник между аппаратным обеспечением, прикладным ПО и пользователями. Важность ОС для работы прикладного ПО.
Роль ОС в распределении ресурсов 4:37 Множество приложений используют общие ресурсы: процессор, память, хранилища. Необходимость распределения ресурсов для эффективной работы ПО. Многопользовательские системы требуют разграничения доступа к ресурсам.
Этапы развития операционных систем 7:37 Исследователи выделяют четыре или пять этапов развития ОС. Первый этап: архитектура фон Неймана.
Архитектура фон Неймана 9:19 Основные компоненты: центральный процессор, оперативная память, устройство ввода-вывода, постоянное запоминающее устройство. Принципы: однородность памяти, адресность, произвольный доступ, программное управление.
Принципы архитектуры фон Неймана 11:19 Однородность памяти: код и данные находятся в единой памяти. Адресность: линейная система адресов в оперативной памяти. Произвольный доступ: процессор может получить доступ к любой ячейке памяти. Программное управление: последовательность команд в памяти, выбор следующей команды на каждом шаге.
Принцип работы программы 12:19 Программа начинается с точки входа. На каждом такте выбирается следующая команда для исполнения. Команда может быть точкой ветвления: проверка условия и переход в другую область кода.
Принцип кодирования 13:19 Используется двоичное кодирование для кодов команд и данных. Первый этап эволюции операционных систем — программы-диспетчеры.
Повторное использование кода 14:19 Проблема: необходимость повторного использования фрагментов кода. Решение: фиксация кода часто используемых подпрограмм в оперативной памяти. Проблема: трудоемкость и риск ошибок при повторном написании кода.
Система управления 18:15 Необходимость системы управления для идентификации адресов подпрограмм. Передача параметров подпрограммам. Создание специального программного обеспечения для автоматизации загрузки и линковки.
Оптимизация взаимодействия с устройствами 20:15 Увеличение размеров обрабатываемых данных. Ограниченность оперативной памяти и необходимость оптимизации взаимодействия с долговременной памятью. Идея подгрузки данных по мере необходимости и потоковой обработки.
Синхронизация операций 22:00 Синхронизация действий центрального процессора для предотвращения коллизий. Ограничения базовой архитектуры: невозможность распараллеливания операций. Неэффективность текущей архитектуры с точки зрения эффективности вычислительного процесса.
Параллельный поток данных 24:00 Идея создания параллельного потока для перемещения данных между хранилищем и оперативной памятью. Введение аппаратного контроллера для управления подкачкой и откачкой данных. Проблема прогнозирования времени выполнения операций из-за различий в технологиях хранилищ и оперативной памяти.
Синхронизация работы контроллера 25:57 Необходимость синхронизации работы контроллера с центральным процессором. Механизм прерываний для управления передачей данных между контроллером и процессором. Прерывание как сигнал от контроллера к процессору о завершении операции.
Механизм прерываний 26:57 Процессор продолжает выполнять код во время передачи данных контроллером. При завершении операции контроллер генерирует прерывание, которое останавливает текущий набор команд процессора. Обработка прерывания позволяет процессору перейти к следующей ветке кода.
Спулинг 27:57 Оптимизация взаимодействия с периферийными устройствами через спулинг. Прерывание ввода-вывода как первое применение механизма прерываний. Определение прерывания: сигнал от внешнего устройства к процессору, приостанавливающий выполнение текущего набора команд.
Однопрограммная пакетная обработка 30:57 Необходимость структурирования программного обеспечения в пакеты для эффективного выполнения. Пакеты включают программные компоненты и структуры данных. Загрузка и выполнение пакетов последовательно, без остановки.
Очередь пакетов 34:54 Использование очереди для управления пакетами в памяти. Возможность вызова любого пакета из очереди после завершения обработки предыдущего. Подчёркивание однопрограммного выполнения пакетов без параллелизма.
Управление очередью пакетов 35:54 Пакеты могут иметь разных владельцев и требовать управления очередью. Необходимо вводить приоритизацию для ускорения выполнения некоторых пакетов. Логика выполнения пакетов может зависеть от их характеристик.
Пример из супермаркета 36:54 В очереди в супермаркете разные люди имеют разные потребности: кто-то с большой тележкой, кто-то с маленькой корзинкой, кто-то с одной бутылкой воды. Эффективное управление очередью позволяет пропустить вперёд тех, кто быстрее выполняет свои задачи. Это повышает эффективность системы в целом.
Механизмы управления очередью 38:54 Управление очередью позволяет повторно использовать идентификаторы и завершать сессии взаимодействия. Эта функция реализуется операционными системами для управления доступом к ресурсам, включая время центрального процесса.
Задачи первого этапа 39:54 Повторное использование кода, автоматизация загрузки и линковки. Оптимизация взаимодействия с устройствами ввода-вывода, появление пулинга и прерываний ввода-вывода.
Мультипрограммные операционные системы 40:54 Программы имеют разный профиль использования ресурсов, например, векторная и растровая графика. Растровая графика требует быстрой обработки больших объёмов данных, а векторная — быстрых вычислений. Вычислительный узел должен быть универсальным для разных задач.
Параллельная работа программ 42:50 Параллельная работа нескольких программ позволяет эффективнее использовать ресурсы. Возникают проблемы с переключением между программами, разделением памяти и правами доступа. Мультипрограммные ОС решают эти проблемы, становясь универсальным интерфейсом между железом, ресурсами, ПО и пользователями.
Введение в мультипрограммные ОС 44:50 Следующая лекция будет посвящена мультипрограммным ОС и решениям, найденным для описанных проблем. ОС становится базовым системным ПО, обеспечивающим интерфейс между железом и пользователями.