Фрагмент для ознакомления
2
ВВЕДЕНИЕ
Операционные системы (ОС) являются фундаментальной частью современной вычислительной техники, обеспечивая эффективное управление аппаратными ресурсами и предоставляя надежную платформу для работы приложений. Они выполняют множество ключевых функций: от распределения процессорного времени и управления памятью до обеспечения работы устройств ввода-вывода и поддержки удобных пользовательских интерфейсов. Благодаря ОС пользователи получают доступ к широкому спектру возможностей устройств, что делает их использование интуитивно понятным и удобным.
1 Основная часть
2. Основная часть
2.1 Архитектура вычислительной системы
Вычислительная система — это комплекс аппаратных и программных компонентов, которые совместно работают для выполнения различных вычислений. Архитектура вычислительной системы включает в себя центральный процессор (ЦП), память, устройства ввода-вывода, а также другие элементы, обеспечивающие взаимодействие и выполнение различных задач. Система строится на основе многих взаимосвязанных блоков, каждый из которых выполняет свою специализированную функцию.
2.1.1 Центральный процессор (ЦП)
Центральный процессор (ЦП) — это основной элемент вычислительной системы, который отвечает за выполнение вычислений, обработку данных и управление другими компонентами системы. Он является "мозгом" компьютера, осуществляя выполнение команд и координируя работу всех частей системы.
Процессор выполняет арифметические и логические операции, управляет потоками данных и контролирует взаимодействие с памятью и внешними устройствами. Современные процессоры поддерживают многозадачность и многопоточность, что позволяет эффективно выполнять несколько задач одновременно. В этом проекте особое внимание будет уделено архитектуре ARM, которая широко используется в мобильных устройствах, таких как смартфоны и планшеты.
2.1.2 Память
Память — один из основных компонентов вычислительной системы, предназначенный для хранения данных и инструкций, к которым процессор обращается в ходе выполнения программ. Память делится на два типа: оперативная (RAM) и постоянная (HDD/SSD). Оперативная память используется для временного хранения данных, тогда как постоянная память предназначена для долговременного хранения.
2.1.2.1 Оперативная память
Оперативная память (RAM) является высокоскоростным временным хранилищем, используемым для размещения данных и инструкций, к которым процессор обращается наиболее часто. Она обеспечивает быстрый доступ к данным, что позволяет эффективно выполнять задачи. Оперативная память критически важна для производительности системы, так как она служит промежуточным звеном между процессором и долговременными накопителями, такими как жесткий диск или SSD.
Основные характеристики оперативной памяти:
• Скорость доступа — высокая скорость доступа к информации, что минимизирует задержки и ускоряет выполнение операций. Быстрая память необходима для современных приложений, где важен быстрый отклик.
• Объём памяти — объём оперативной памяти напрямую влияет на количество данных и программ, которые могут быть одновременно обработаны. Современные системы обычно используют от 8 до 64 ГБ памяти в зависимости от типа задач.
• Канальность памяти — использование нескольких каналов памяти (например, двухканальный или четырёхканальный режим) значительно увеличивает пропускную способность и производительность системы, особенно при выполнении ресурсоёмких задач.
• Тип памяти — современные компьютеры используют модули памяти DDR4 и DDR5, которые отличаются высокой пропускной способностью и энергоэффективностью.
• Форм-фактор — модули памяти бывают разных форматов, например, DIMM (для настольных ПК) и SO-DIMM (для ноутбуков).
Оперативная память обладает одним ключевым отличием — её энергозависимостью: при отключении питания вся информация, сохранённая в RAM, теряется. Таким образом, оперативная память является важнейшей для обеспечения многозадачности и многопоточности в современных вычислительных системах.
Для работы гипотетической операционной системы, минимальный объём оперативной памяти оценивается в 1024 мегабайта (1 ГБ), что обеспечит базовую функциональность и стабильную работу системы.
2.1.2.2 Постоянная память
Постоянная память используется для долговременного хранения данных и информации, которая сохраняется даже после выключения питания. В отличие от оперативной памяти, постоянная память обеспечивает хранение данных в течение длительного времени, что делает её критически важным элементом системы.
Существует два основных типа постоянной памяти:
1. Жёсткие диски (HDD) — традиционные устройства хранения данных, которые используют вращающиеся магнитные пластины для записи и считывания информации. Несмотря на их большую ёмкость и относительно низкую цену, жёсткие диски имеют низкую скорость доступа к данным по сравнению с твердотельными накопителями.
2. Твердотельные накопители (SSD) — более современные устройства, которые используют флеш-память для хранения данных. SSD обеспечивают гораздо более высокую скорость чтения и записи, чем HDD, что значительно ускоряет работу системы.
2.1.3 Процессор
Процессор (Центральный процессорный блок, ЦП) является основным элементом вычислительной системы, выполняющим все арифметические и логические операции, а также управлением данными. Процессор интерпретирует и выполняет инструкции программного обеспечения, что позволяет запускать и управлять приложениями и операционной системой.
Основные характеристики процессора:
• Тактовая частота — это скорость, с которой процессор выполняет операции, измеряемая в гигагерцах (ГГц). Высокая частота позволяет процессору быстрее обрабатывать инструкции.
• Количество ядер — современные процессоры имеют несколько ядер, что позволяет одновременно выполнять несколько операций или задач (многозадачность и многопоточность).
• Кэш-память — встроенная в процессор память, используемая для хранения часто запрашиваемых данных. Кэш позволяет уменьшить задержки при доступе к данным и ускорить выполнение инструкций.
• Микроархитектура — описание внутренней организации процессора, включая его ядра, кэш-память, способ выполнения инструкций и оптимизацию производительности.
Процессоры делятся на несколько типов:
1. Одноядерные процессоры — имеют одно вычислительное ядро и ограничены в многозадачности, однако для простых приложений и низкопроизводительных задач их вполне достаточно.
2. Многоядерные процессоры — включают несколько ядер, которые могут работать параллельно. Это позволяет значительно увеличить производительность при выполнении многозадачных операций.
3. Многоядерные процессоры с гиперпоточностью (Hyper-Threading) — могут одновременно обрабатывать два потока данных на одно ядро, что улучшает многозадачность и общую производительность системы.
В проектируемой системе предполагается использование многоядерного процессора с частотой от 2,5 ГГц и не менее 4 ядер для выполнения параллельных вычислений и оптимизации многозадачности.
2.1.4 Видеокарта
Видеокарта (GPU) отвечает за обработку графической информации и вывод изображения на экран. Видеокарты подразделяются на две категории: интегрированные и дискретные. Интегрированные видеокарты встроены в процессор или материнскую плату и обычно имеют ограниченные возможности для обработки сложных графических операций. Дискретные видеокарты — отдельные устройства, которые значительно более мощные и обеспечивают более высокую производительность при работе с графикой.
Основные характеристики видеокарты:
• Графический процессор — основная часть видеокарты, которая выполняет вычисления, связанные с графикой. Мощность графического процессора зависит от количества ядер и тактовой частоты.
• Объём видеопамяти (VRAM) — память, предназначенная для хранения текстур, шейдеров и других данных, используемых при рендеринге изображений. Чем больше объём VRAM, тем лучше видеокарта справляется с обработкой сложных и высококачественных графиков.
• Шина памяти — ширина канала, через который данные передаются между видеопамятью и процессором. Чем шире шина памяти, тем быстрее данные передаются, что улучшает производительность.
• Поддержка технологий — видеокарты могут поддерживать различные графические API, такие как DirectX, Vulkan или OpenGL, а также современные технологии, такие как трассировка лучей (ray tracing) и апскейлинг с использованием искусственного интеллекта (DLSS).
Для эффективной работы системы, особенно при обработке графики и видео, требуется видеокарта с поддержкой современных стандартов, объём видеопамяти от 4 ГБ и поддержка технологий для улучшения качества изображения.
2.1.10 Корпус системы
Корпус компьютера выполняет роль защиты внутренних компонентов и обеспечения их правильного расположения и вентиляции. Он должен быть достаточно просторным для размещения всех компонентов, таких как материнская плата, видеокарта, блок питания, накопители и система охлаждения, а также обеспечить эффективную циркуляцию воздуха.
Основные характеристики корпуса:
• Размер — корпус должен быть достаточно большим для размещения всех выбранных компонентов. Для стандартной сборки рекомендуется использовать корпуса формата ATX, так как они предлагают оптимальное сочетание пространства и удобства в сборке.
• Охлаждение — корпус должен поддерживать установку нескольких вентиляторов (обычно на передней, верхней и задней панелях), а также предусматривать достаточные отверстия для оптимальной вентиляции. Некоторые корпуса поставляются с предустановленными вентиляторами для улучшения охлаждения.
• Конструкция и материалы — качественные корпуса часто изготовлены из стального или алюминиевого сплава, а передняя панель может быть выполнена из пластика или стекла для эстетического вида. Также важно обратить внимание на возможность установки окон из закалённого стекла для визуализации внутренней части системы.
• Управление кабелями — в корпусе должны быть предусмотрены каналы для укладки кабелей, что помогает улучшить циркуляцию воздуха и внешний вид системы.
2.3 Архитектура ОС
Архитектура операционной системы (ОС) представляет собой структурный дизайн и способ компоновки её компонентов. В зависимости от архитектуры меняется схема взаимодействия и функционирования отдельных частей системы, а также всей системы в целом.
Основные компоненты операционной системы включают:
• Ядро — управляет основными ресурсами компьютера, такими как процессорное время, память и взаимодействие с устройствами ввода-вывода.
• Менеджер процессов — координирует создание, выполнение и завершение процессов, обеспечивая многозадачность.
• Менеджер памяти — распределяет оперативную память между процессами, обеспечивая эффективное использование и защиту памяти.
• Файловая система — организует хранение, доступ и управление файлами на накопителях.
• Системы ввода-вывода — управляют взаимодействием между устройствами ввода-вывода и системой.
• Драйверы устройств — обеспечивают взаимодействие ОС с аппаратными устройствами, такими как принтеры, жесткие диски и другие периферийные устройства.
• Пользовательский интерфейс — обеспечивает взаимодействие пользователя с системой через графические интерфейсы, командные оболочки и другие элементы.
2.3.1 Монолитное ядро
Монолитное ядро представляет собой архитектуру ОС, в которой большинство системных функций выполняются в одном пространстве ядра. В этой архитектуре все компоненты системы, такие как управление памятью, драйверы устройств, файловые системы и сетевые стеки, интегрированы в ядро. Этот подход обеспечивает высокую производительность и тесную интеграцию компонентов, однако требует сложного управления и тщательного тестирования.
2.4 Подсистема управления процессами
Подсистема управления процессами отвечает за создание, выполнение и завершение процессов, а также их взаимодействие. Управление процессами включает планирование использования процессорного времени, синхронизацию и предотвращение конфликтов между задачами.
2.4.1 Алгоритм планирования процессов
Алгоритмы планирования процессов определяют, как операционная система распределяет процессорное время между активными задачами. Основная цель планировщика — обеспечить эффективность, справедливость и минимальное время ожидания для процессов.
Типы планирования процессов:
• Дискретное (или независимое) планирование — процесс получает полный доступ к процессору и выполняется до завершения или до возникновения блокировки.
• Квантованное планирование — каждому процессу выделяется определённый интервал времени (квант), после чего управление передаётся следующему процессу.
2 Проектная часть
3.1 Организация взаимодействия процессов
3.1.1 Проектирование планирования процессов
Алгоритм планирования без вытеснения на основе приоритетов обеспечивает выполнение процессов в зависимости от их приоритетов, но без прерывания работы текущего процесса. Процесс с более высоким приоритетом будет ожидать завершения текущего процесса, прежде чем начнется его выполнение.
Принципы работы алгоритма:
• Каждому процессу присваивается числовой приоритет, где более низкое значение означает более высокий приоритет.
• Приоритеты могут быть как статическими, так и динамическими.
• Процессы с одинаковыми приоритетами обрабатываются по принципу FIFO (первым пришел — первым обслужен).
Средняя работа алгоритма:
• Новый процесс поступает в очередь.
• Процесс оценивается по своему приоритету относительно других процессов.
• Если текущий процесс выполняется, а новый имеет более высокий приоритет, то система все равно завершит текущий процесс, прежде чем начнется выполнение нового.
• После завершения текущего процесса система выбирает новый процесс с учетом приоритета.
3.1.2 Проектирование организации взаимодействия процессов
Семафоры — это механизм синхронизации, который используется для управления доступом к общим ресурсам, чтобы избежать состояний гонки и обеспечить корректную работу нескольких процессов.
Основные операции с семафорами:
• Ожидание (P) — уменьшение значения семафора, что может привести к блокировке процесса, если значение семафора равно нулю.
• Сигнал (V) — увеличение значения семафора, что может разблокировать процесс.
• Типы семафоров:
• Двоичные — значения 0 или 1, аналогичны мьютексам.
• Десятичные — позволяют многократный доступ к ресурсу.
3.2 Решение задачи синхронизации процессов
Задача "Обедающие философы" демонстрирует проблему синхронизации нескольких процессов при ограниченном количестве ресурсов.
Условия задачи:
На столе сидят n философов, каждый из которых периодически ест или размышляет. Для того чтобы поесть, философу нужны две вилки, которые являются общими ресурсами. Количество вилок ограничено и равно количеству философов.
3.3 Решение задачи борьбы с тупиками
Алгоритм обхода тупиков позволяет динамически контролировать ресурсы и предотвращать взаимные блокировки между процессами. Этот подход включает:
• Мониторинг состояния системы для анализа занятых и свободных ресурсов.
• Прогнозирование тупиков и принятие решений о перераспределении ресурсов.
Преимущества:
• Гибкость и адаптивность системы.
• Предотвращение взаимных блокировок.
Недостатки:
• Высокие вычислительные затраты.
• Сложности в прогнозировании тупиков.
________________________________________
3.4 Проектирование подсистемы управления памятью
В проектируемой операционной системе применяется метод распределения памяти фиксированными разделами, что делает управление памятью предсказуемым и простым. Каждый процесс загружается в фиксированный блок памяти.
Преимущества:
• Простота реализации.
• Минимальные накладные расходы.
Недостатки:
• Внешняя фрагментация.
• Ограничения на размер процессов.
3.5 Проектирование сетевой иерархии
Сетевая иерархия каталогов представляет собой гибкую систему организации файлов, где файлы и каталоги могут быть связаны множественными путями. Это позволяет строить более сложные и гибкие взаимосвязи между данными, в отличие от традиционной древовидной структуры. В сетевой иерархии используется концепция ссылок и виртуальных каталогов.
Особенности:
• Множественные пути доступа: Каждый файл или каталог может быть доступен через несколько путей, благодаря использованию ссылок.
• Виртуальные каталоги. Они позволяют связывать различные объекты, создавая логические структуры данных, которые могут быть более сложными, чем в традиционной древовидной иерархии.
• Гибкость в управлении доступом: В сетевой иерархии легче контролировать права доступа, создавая сложные структуры.
Преимущества:
• Удобство работы с большими объемами данных.
• Гибкость в организации и управлении данными.
• Возможность создания логических структур данных для различных типов информации.
Пример: Использование ссылок в файловой системе для организации данных. Например, каталог с фотографиями может быть представлен несколькими путями через различные символические ссылки.
3.6 Проектирование логической организации файловой системы
Логическая организация файлов предполагает разбиение данных на записи переменной длины. Каждая запись может содержать как данные, так и метаинформацию, что позволяет эффективно использовать доступное пространство и минимизировать пустоты.
3.6.2 Проектирование графического интерфейса
Графический интерфейс (GUI) операционной системы обеспечивает визуальное взаимодействие с пользователем. Проектирование GUI включает несколько уровней, таких как ядро, промежуточный слой, обработчики графики (например, Vulkan), и оконный сервер.
Структура:
• Ядро ОС: Управляет аппаратными ресурсами и координирует работу компонентов системы.
• Драйверы оборудования (например, Vulkan): Обеспечивают низкоуровневое взаимодействие с видеокартой и обеспечивают высокую производительность.
• Промежуточный слой: Предоставляет API и библиотеки для упрощения работы с графическими компонентами.
• Оконный сервер (X11): Отвечает за отображение окон, их взаимодействие и пользовательский ввод.
Причины выбора X11:
Зрелость и универсальность: X11 используется десятилетиями, имеет поддержку многих платформ.
Поддержка удалённого доступа: Через X-клиенты и X-серверы.
Интеграция с OpenGL и Vulkan: Подходит для различных графических приложений.
3.7 Проектирование командного языка
Проектирование командного языка для операционной системы включает в себя создание команд для взаимодействия с системой, файловой системой и процессами.
5. Подсистема управления памятью
5.1 Распределение памяти фиксированными разделами
В гипотетической операционной системе используется метод распределения памяти фиксированными разделами, который позволяет эффективно управлять доступом к памяти и минимизировать сложности с перераспределением ресурсов.
Распределение памяти фиксированными разделами означает, что вся оперативная память (RAM) разделяется на несколько частей (или разделов), каждый из которых имеет заранее определённый размер. Этот метод не использует динамическое перераспределение памяти между процессами, что упрощает управление, но ограничивает гибкость, особенно если размеры процессов существенно различаются. Каждый процесс получает один или несколько разделов памяти, которые могут использоваться им для хранения данных и выполнения кода.
ЗАКЛЮЧЕНИЕ
В рамках выполнения курсового проекта была спроектирована гипотетическая операционная система, которая учитывает основные аспекты работы операционных систем, такие как архитектура, управление процессами, памятью, файловыми системами, а также взаимодействие с пользовательскими интерфейсами и загрузка приложений. Проект позволил получить не только теоретические знания о функционировании ОС, но и практические навыки разработки ключевых её компонентов, таких как синхронизация процессов, управление памятью и файловыми системами.