Your AI powered learning assistant

Операционные системы, урок 7: Организация памяти. Виртуальная память.

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

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

Организация памяти Организация памяти в операционной системе должна учитывать все требования и делать ее удобной для программ. Однако физическая организация памяти сложна и сбивает с толку. Идея разделения памяти на разделы фиксированного размера возникла как простое решение для эффективного распределения памяти.

Постоянное распределение "Непрерывное распределение" относится к выделению части основной памяти исключительно одному процессу в любой момент времени. Это позволяет процессам использовать всю доступную память, не беспокоясь о том, что другие процессы получают к ней одновременный доступ. Когда процесс завершается, выделенное ему пространство может быть освобождено для другого процесса.

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

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

Виртуальная память и обмен страницами "Виртуальная память" - это концепция, которая позволяет процессам видеть свою собственную выделенную часть памяти, называемую страницами. Эта идея привела к разработке систем подкачки страниц и управления виртуальной памятью.

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

Механизм перевода страниц "Блоки управления" используют таблицу страниц, хранящуюся в операционной системе, для преобразования виртуальных адресов в физические. Каждый процесс имеет свой собственный набор страниц, которые соответствуют определенным местоположениям в физической памяти. При доступе к адресу для перевода используются как номер страницы, так и смещение.

Оптимизация доступа к страницам Чтобы повысить скорость, программы или операционные системы могут предсказывать, какие страницы понадобятся в следующий раз, основываясь на принципе локальности. Это обеспечивает более быструю загрузку последующих страниц и эффективную обработку запросов на страницы.

Концепция "копирования при записи" в операционных системах "Копирование при записи" - это концепция, используемая в Unix-подобных операционных системах, где процессы создаются путем клонирования существующего процесса с использованием функции fork. Когда процесс клонируется, его данные также необходимо скопировать, но это копирование может занять некоторое время. Чтобы оптимизировать этот процесс и сэкономить ресурсы, оба процесса изначально совместно используют одну и ту же память до тех пор, пока кто-то не захочет записать в нее что-то новое.

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