Операционные системы

                    _____________________________
                    |   Операционная система    |

+-----------------------------------------------------------------------------------+ | - Это системное программное обеспечение, управляет абстракцией над аппаратными ресурсами (кроме cpu, mem), | другими аппаратными частями управляет драйвер | - Слой между аппаратным обеспечением компьютера и прикладными программами | - Предоставляет простой и удобный интерфейс для эффективного взаимодействия | с ресурсами системы для user_mode и прикладных программ | - Работает в kernel_mode (имеет полный доступ ко всему аппаратному обеспечению | и может задействовать любую инструкцию процессора) +-----------------------------------------------------------------------------------+

                        [ Уровень в иерархии ЭВМ ]

|- 1. Аппаратное обеспечение (процессоры, память, устройства ввода/вывода) |- 2. Микропрограммы (микрокод, встроенные систем ы) |- 3. ОПЕРАЦИОННАЯ СИСТЕМА (ядро, драйверы, системные утилиты) |- 4. Системные библиотеки (стандартные библиотеки, динамические библиотеки) |- 5. Прикладные программы (приложения, пользовательские программы)

                            [ Задачи ОС ]
- Управление процессами
- Управление памятью
- Управление файлами
- Управление устройствами ввода/вывода
- Управление безопасностью и доступом
- Обработка ошибок
- Интерфейс пользователя

                            [ Состав ОС ]
- Ядро (Kernel)
    Менеджер процессов, памяти, устройств, Файловая система, Сетевой стек
- Драйверы устройств
    Драйверы ввода/вывода, Драйверы сетевых устройств, Драйверы хранения
- Файловая система
- Системные утилиты
    Средства управления файлами (копирование, удаление)
    Средства мониторинга (диспетчер задач)
    Средства резервного копирования
- Интерфейс пользователя
    Графический интерфейс пользователя (GUI), Интерфейс командной строки (CLI)



    Взгляд сверху вниз

на каждое ВУ есть драйвер, он находится в ОС и предоставляет интерфейс для использования его функционала в прикладных программах задача операционной системы заключается в создании хорошей абстракции, а затем в ее реализации и управлении.

    Взгляд снизу вверх

операционная система существует для управления всеми частями сложной системы задача ос заключается в распределения процессоров, памяти и устройств ввода-вывода между различными программами, претендующими на их использование.

Загрузка компьютера: На материнской плате находится программа - BIOS (Basic Input Output System) Хранится в энергонезависимой флеш-памяти: (flash memory. ПЗУ - постоянное запоминающее устройство, ROM)

BIOS начинает работать первый.
BIOS определяет устройство, с которого будет вестись загрузка, по очереди
проверив устройства из списка, сохраненного в CMOS-памяти.
С загрузочного устройства в память считывается загрузчик, который запускает
операционную систему.
Ось запрашивает BIOS, чтобы получить информацию о конфигурации компьютера.
Ось проверяет наличие драйвера для каждого устройства.
Ось загружает в ядро драйвера.
Ось создает все необходимые процессы и запускает программу
входа в систему или графический интерфейс пользователя.

Типы осей: - ОС мейнфреймов компьютеры, занимающие огромные размеры (центры обработки данных) огромные объемы ввода-вывода данных тысячи дисков и петабайты данных мощные веб-серверы, серверы крупных магазинов ориентированы на одновременную обработку заданий - ОС серверов мощные персональные компьютеры одновременно обслуживают по сети юзеров - ОС персональных пк - ОС карманных персональных пк - Встроенные ОС - ОС сенсорных узлов - ОС реального времени время для них является ключевым параметром. эти системы должны давать абсолютные гарантии того, что определенные действия будут осуществляться в конкретный момент времени (станки на заводе и тд)

Понятия ОС и ее абстракции: - Процессы Процессом, по существу, является программа во время ее выполнения. С каждым процессом связано его адресное пространство — список адресов ячеек памяти от нуля до некоторого максимума, откуда процесс может считывать данные и куда может записывать их. Адресное пространство содержит выполняемую программу, данные этой программы и ее стек. Кроме этого, с каждым процессом связан набор ресурсов, который обычно включает регистры (в том числе счетчик команд и указатель стека), список открытых файлов, необработанные предупреждения, список связанных процессов и всю остальную информацию, необходимую в процессе работы программы. Таким образом, процесс — это контейнер, в котором содержится вся информация, необходимая для работы программы. Во многих операционных системах вся информация о каждом процессе, за исключением содержимого его собственного адресного пространства, хранится в таблице операционной системы, которая называется таблицей процессов и представляет собой массив (или связанный список) структур, по одной на каждый из существующих на данный момент процессов. -- межпроцессное взаимодействие (дополнить)

  • Адресные пространства ram используется для хранения программ во время их выполнения каждому процессу ОСЬ выделяет память из ram проблема - это управление адресным пространством процессов, чтобы один процесс не имел доступ к памяти другого процесса. -- виртуальная память (дополнить) [ --------------- Отформатировать --------------- Виртуальная память (которая будет рассмотрена в главе 3) позволяет запускать программы, размер которых превышает объем установленной на машине физической памяти, за счет быстрого перемещения фрагментов адресного пространства между оперативной памятью и диском. Она прошла похожий путь развития, появившись впервые на универсальных машинах, затем переместившись на мини- и микрокомпьютеры. Виртуальная память также позволяла программам во время работы динамически компоноваться с библиотеками, вместо того чтобы быть скомпилированными со всеми необходимыми библиотеками в единую программу. MULTICS была первой системой, позволявшей работать с такими программами. Со временем эта идея получила распространение и теперь широко используется на большинстве UNIX- и Windows-систем. Во всех приведенных примерах развития мы видели идеи, которые изобретались в одном контексте, а позже в связи со сменой обстановки отметались (программирование на ассемблере, однозадачный режим, одноуровневые каталоги и т. д.), чтобы вновь появиться уже в другом контексте, зачастую спустя десятилетие. Поэтому в данной книге мы будем иногда рассматривать идеи и алгоритмы, которые могут показаться устаревшими для современных персональных компьютеров, оснащенных гигабайтной памятью, но имеют шанс на скорое возвращение во встроенных компьютерах и смарткартах. --------------- Отформатировать --------------- ] есь виртаульная память, которая ограничивает каждую выделенную память только своему процессу ось хранит часть адресного пространства в оперативной памяти, а часть — на диске, по необходимости меняя их фрагменты местами. По сути, операционная система создает абстракцию адресного пространства в виде набора адресов, на которые может ссылаться процесс. Адресное пространство отделено от физической памяти машины и может быть как больше, так и меньше нее. Управление адресными пространствами и физической памятью является важной частью работы операционной системы.

  • Файловая система основная функция операционной системы — скрыть специфику дисков и других устройств ввода-вывода и предоставить программисту удобную и понятную абстрактную модель, состоящую из независимых от устройств файлов. Вполне очевидно, что для создания, удаления, чтения и записи файлов понадобятся системные вызовы. Перед тем как файл будет готов к чтению, он должен быть найден на диске и открыт, а после считывания — закрыт. Для проведения этих операций предусмотрены системные вызовы. (остальное - база про файловую систему и так понятно)

  • Ввод-вывод подсистемы ввода-вывода

  • Безопасность права на доступ к файлам, root/админимтратор

  • Оболочка ОСь представляет собой программу, выполняющую системные вызовы. Графическая оболочка/консольная оболочка интерфейсом между пользователем, сидящим за своим терминалом, и операционной системой. Оболочка запускается после входа в систему.

  • Системные вызовы

[ВОПРОСЫ]: - как ось решает проблему мультиплексирования (одновреименного распределения ресурсов) - многопоточность и гиперпоточность процессора

  • прерывания, вектор прерывания, обработчики прерывания, аппаратные прерывания
  • память, виртуальная память, страницы памяти
  • системные вызовы
  • режимы работы процессора и ОС
  • планировщик в ос
  • планирование исполнение задач, как на одном процессоре исполняются несколько программ, а где крутится в процессорном времени сама ос? нужно ли исполнение для самой ОС, или она -- просто реагирующая программа? ос нужен только для выполнения системных вызовах?
  • таймеры в ос
  • file, файловый дескриптор, файловый интерфейс, все - есть файл в unix