Имя физического участка в памяти компьютера называют

Память процесса

Самые первые версии Unix работали на компьютерах без аппаратной поддержки виртуальной памяти, однако очень скоро такая поддержка появилась в большинстве процессорных архитектур и стала обязательным условием для возможности запуска Unix/Linux на соответствующей платформе. В линейке Intel аппаратная поддержка виртуальной памяти появилась в процессорах i286. С выходом этих процессоров на рынок связано появление лицензионной версии Unix для ПК — Xenix от Microsoft.

Несмотря на то, что современные процессоры адресуют память с точностью до байта, основными единицами управления памятью в Unix являются страницы.

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

Страничная организация памяти поддерживается специализированным аппаратным устройством — модулем управления памятью (MMU, Memory Management Unit), которое выполняет преобразование виртуальных адресов в физические. MMU может быть интегрировано в процессор или входить в чипсет.

Размеры страниц отличаются для различных аппаратных платформ.Можно считать, что для 32-разрядных аппаратных платформ размер страницы равен 4 Кбайта, а для 64-разрядных платформ — 8 Кбайт. Современные процессоры от Intel позволяют выбирать размер страницы, и, соответственно, ядро Linux позволяет управлять этим выбором.

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

Для каждого процесса в момент его создания инициализируется своя таблица страниц. Таким образом одни и те же адреса в виртуальной памяти различных процессов ссылаются на различные адреса физической памяти. Благодаря этому, физические страницы памяти одного процесса становятся недоступными для других процессов. Таблица страниц ядра отображает часть адресов на физическую память, в которой расположено само ядро, а вторую часть — на страницы памяти какого-либо процесса. Такая таблица позволят ядру получить доступ к физической памяти процессов для копирования входных/выходных данных системных вызовов. Например, при вызове read(fd,buf,size) код в ядре имеет доступ к буферу buf для заполнения его данными, прочитанными из файла.

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

Интересное замечание: существуют процессорные архитектуры, в которых физическая память может быть больше виртуальной. Так серверные материнские платы на процессорах x32 позволяют устанавливать больше чем 4 Гбайта оперативной памяти, в этом случае ядру приходится модифицировать часть собственной таблицы страниц, чтобы получить доступ к нужным участкам физической памяти.

Часть ссылок в таблице страниц может иметь специальное значение, указывающее на то, что страница не отображается на физическую память. Данный механизм используется для реализации файлов подкачки (swap). При попытке обращения к такой «несуществующей» странице, возникает аппаратное прерывание, которое обрабатывается в ядре. Код ядра может выделить процессу свободную страницу физической памяти, загрузить в неё данные из файла подкачки, поменять таблицу страниц так, чтобы требуемая виртуальная память отображалась на свежеподготовленную физическую ти вернуть управления процессу. Выполнение процесса начнётся с той же инструкции доступа к памяти, на которой возникло прерывание, но теперь эта инструкция выполнится нормально, поскольку изменилась ТС.

В некоторых случаях возможно отображение одной физической страницы памяти в виртуальную память нескольких процессов. Такое совместное использование физической памяти называется разделяемой памятью (shared memory). Данный механизм используется для обмена данными между процессами и требует аппаратной или программной поддержки в виде семафоров, для синхронизации параллельного доступа к памяти.

Часть физической памяти используется для хранения файлового кеша. В кеше хранится блоки данных файла размерами кратными странице памяти. При операциях считывания/записи в ядре происходит копирование нужного числа страниц между памятью процесса и кешем, а операции с файловой системой откладываются по времени. Если физическую память требуется освободить, то она сохраняется в файл, если кто-то обращается к странице, отсутствующей в кеше, она считывается из файла. Как правило, страницы кеша доступны только ядру, однако существует несколько случаев, когда они отображаются непосредственно в виртуальную память процессов. Механизм отображения страниц кеша в память процесса называется отображением файлов в память (memory mapped file). Данный механизм может использоваться как альтернатива разделяемой памяти (анонимные файлы в памяти), а так же как механизм совместного использования кода программ, путём отображения секции кода из исполняемого файла в виртуальное адресное пространство процессов, которые этот код исполняют.

При создании нового процесса вызовом fork()Linux фактически вызывается clone()) таблица страниц копируется в дочерний процесс и некоторое время родительский и дочерний процесс совместно используют общую физическую память. В дальнейшем, при изменении какой-либо страницы в одном из двух процессов для этого процесса создаётся копия страницы в физической памяти и соответственно изменяется таблица страниц. Данный механизм позволяет экономить время при создании нового процесса. Этот механизм называется «копирование при записи» (Copy on write, COW).

Созданиие новых потоков в Linux вызовом clone() аналогично созданию нового процесса, но дочерний процесс наследует от родительского процесса таблицу страниц. Таким образом, потоки в Linux можно рассматривать как дочерние процессы, использующие общую с родительским процессом виртуальную память. Главным отличием между процессами является размещение стека в виртуальной памяти.

Вызов execve(«prog_file»), загружающий в память процесса новую программу, полностью изменяет таблицу страниц, освобождая занятую физическую память и выделяя новую, которая инициализируется в соответвии с данными, хранящимися в исполняемом файле.

Имя физического участка в памяти компьютера называют

8(495)912-63-37
gmc@edu.mos.ru

Носитель информации (информационный носитель) – любой материальный объект, используемый человеком для хранения информации. Это может быть, например, камень, дерево, бумага, металл, пластмассы, кремний (и другие виды полупроводников), лента с намагниченным слоем (в бобинах и кассетах), фотоматериал, пластик со специальными свойствами (напр., в оптических дисках) и т. д., и т. п.

Носителем информации может быть любой объект, с которого возможно чтение (считывание) имеющейся на нём информации.

Носители информации применяются для:

  • записи;
  • хранения;
  • чтения;
  • передачи (распространения) информации.

Зачастую сам носитель информации помещается в защитную оболочку, повышающую его сохранность и, соответственно, надёжность сохранения информации (например, бумажные листы помещают в обложку, микросхему памяти – в пластик (смарт-карта), магнитную ленту – в корпус и т. д.).

К электронным носителям относят носители для однократной или многократной записи (обычно цифровой) электрическим способом:

  • оптические диски (CD-ROM, DVD-ROM, Blu-ray Disc);
  • полупроводниковые (флеш-память, дискеты и т. п.);
  • CD-диски (CD – Compact Disk, компакт диск), на который может быть записано до 700 Мбайт информации;
  • DVD-диски (DVD – Digital Versatile Disk, цифровой универсальный диск), которые имеют значительно большую информационную ёмкость (4,7 Гбайт), так как оптические дорожки на них имеют меньшую толщину и размещены более плотно;
  • диски HR DVD и Blu-ray, информационная ёмкость которых в 3–5 раз превосходит информационную ёмкость DVD-дисков за счёт использования синего лазера с длиной волны 405 нанометров.

Электронные носители имеют значительные преимущества перед бумажными (бумажные листы, газеты, журналы):

  • по объёму (размеру) хранимой информации;
  • по удельной стоимости хранения;
  • по экономичности и оперативности предоставления актуальной (предназначенной для недолговременного хранения) информации;
  • по возможности предоставления информации в виде, удобном потребителю (форматирование, сортировка).

Есть и недостатки:

  • хрупкость устройств считывания;
  • вес (масса) (в некоторых случаях);
  • зависимость от источников электропитания;
  • необходимость наличия устройства считывания/записи для каждого типа и формата носителя.

Накопитель на жёстких магнитных дисках или НЖМД (англ. hard (magnetic) disk drive, HDD, HMDD), жёсткий диск – запоминающее устройство (устройство хранения информации), основанное на принципе магнитной записи. Является основным накопителем данных в большинстве компьютеров.

В отличие от «гибкого» диска (дискеты), информация в НЖМД записывается на жёсткие пластины, покрытые слоем ферромагнитного материала – магнитные диски. В НЖМД используется одна или несколько пластин на одной оси. Считывающие головки в рабочем режиме не касаются поверхности пластин благодаря прослойке набегающего потока воздуха, образующейся у поверхности при быстром вращении. Расстояние между головкой и диском составляет несколько нанометров (в современных дисках около 10 нм), а отсутствие механического контакта обеспечивает долгий срок службы устройства. При отсутствии вращения дисков головки находятся у шпинделя или за пределами диска в безопасной («парковочной») зоне, где исключён их нештатный контакт с поверхностью дисков.

Также, в отличие от гибкого диска, носитель информации обычно совмещают с накопителем, приводом и блоком электроники. Такие жёсткие диски часто используются в качестве несъёмного носителя информации.

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

DVD-диски могут быть двухслойными (емкость 8,5 Гбайт), при этом оба слоя имеют отражающую поверхность, несущую информацию. Кроме того, информационная емкость DVD-дисков может быть еще удвоена (до 17 Гбайт), так как информация может быть записана на двух сторонах.

Накопители оптических дисков делятся на три вида:

  • без возможности записи — CD-ROM и DVD-ROM (ROM – Read Only Memory, память только для чтения). На дисках CD-ROM и DVD-ROM хранится информация, которая была записана на них в процессе изготовления. Запись на них новой информации невозможна;
  • с однократной записью и многократным чтением – CD-R и DVD±R (R – recordable, записываемый). На дисках CD-R и DVD±R информация может быть записана, но только один раз;
  • с возможностью перезаписи – CD-RW и DVD±RW (RW – Rewritable, перезаписываемый). На дисках CD-RW и DVD±RW информация может быть записана и стерта многократно.

Основные характеристики оптических дисководов:

  • емкость диска (CD – до 700 Мбайт, DVD – до 17 Гбайт)
  • скорость передачи данных от носителя в оперативную память – измеряется в долях, кратных скорости 150 Кбайт/сек для CD-дисководов;
  • время доступа – время, нужное для поиска информации на диске, измеряется в миллисекундах (для CD 80–400 мс).

В настоящее время широкое распространение получили 52х-скоростные CD-дисководы – до 7,8 Мбайт/сек. Запись CD-RW дисков производится на меньшей скорости (например, 32х-кратной). Поэтому CD-дисководы маркируются тремя числами «скорость чтения х скорость записи CD-R х скорость записи CD-RW» (например, «52х52х32»).
DVD-дисководы также маркируются тремя числами (например, «16х8х6»).

При соблюдении правил хранения (хранение в футлярах в вертикальном положении) и эксплуатации (без нанесения царапин и загрязнений) оптические носители могут сохранять информацию в течение десятков лет.

Флеш-память (flash memory) – относится к полупроводникам электрически перепрограммируемой памяти (EEPROM). Благодаря техническим решениям, невысокой стоимости, большому объёму, низкому энергопотреблению, высокой скорости работы, компактности и механической прочности, флеш-память встраивают в цифровые портативные устройства и носители информации. Основное достоинство этого устройства в том, что оно энергонезависимое и ему не нужно электричество для хранения данных. Всю хранящуюся информацию во флэш-памяти можно считать бесконечное количество раз, а вот количество полных циклов записи, к сожалению, ограничено.

У флеш-памяти есть как свои преимущества перед другими накопителями (жесткие диски и оптические накопители) , так и свои недостатки, с которыми вы можете познакомиться из таблицы, расположенной ниже.

Примеры употребления слова ячейка в литературе.

Меня и Настю Рассказову от нашей комсомольской ячейки включили в агитбригаду по созданию колхозов в Новском сельском Совете.

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

На базаре уже давно по восемьдесят копеек, — сказала девочка, входя в комнату с солонкой, в одной ячейке которой лежала аджика, а в другой соль.

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

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

Как в ОЗУ записывается и читается информация

Понять, как в ОЗУ происходит запись и считывание данных будет проще, если представить её в виде обычной таблицы. Чтобы считать данные из ячейки, на горизонтальную строку выдаётся сигнал выбора адреса строки (RAS). После того как он подготовит все конденсаторы выбранной строки к чтению, по вертикальной колонке подаётся сигнал выбора адреса столбца (CAS), что позволяет считать данные с конкретной ячейки матрицы.

Ячейки матрицы

Характеристика, определяющая количество информации, которое может быть записано или прочитано за одну операцию чтения/записи, именуется разрядностью микросхемы или по-другому шириной шины данных. Как нам уже известно, перед тем как быть переданной на шину микросхемы, а затем в центральный процессор, информация сначала попадает в выходной буфер. С ядром он связывается внутренним каналом с пропускной способностью равной ширине шины данных. Другой важной характеристикой ОЗУ является частота шины памяти. Что это такое? Это периодичность, с которой происходит считывание информации, а она совсем не обязательно должна совпадать с частотой подающегося на матрицу памяти сигнала, что мы и увидим на примере памяти DDR.

DDR

В современных компьютерах используется так называемая синхронная динамическая оперативная память — SDRAM. Для передачи данных в ней используется особый синхросигнал. При его подаче на микросхему происходит синхронное считывание информации и передача её в выходной буфер.

Представим, что у нас есть микросхема памяти с шириной шины данных 8 бит, на которую с частотой 100 МГц подаётся синхросигнал. В результате за одну транзакцию в выходной буфер по 8-битовому каналу попадает ровно 8 бит или 1 байт информации. Точно такой же синхросигнал приходит на выходной буфер, но на этот раз информация попадает на шину микросхемы памяти. Умножив частоту синхросигнала на ширину шины данных, мы получим ещё один важный параметр — пропускную способность памяти.

8 бит * 100 МГц = 100 Мб/с

Распределение памяти фиксированными разделами

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

Подсистема управления памятью в этом случае выполняет следующие задачи:

  1. сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел.
  2. осуществляет загрузку программы и настройку адресов.

При очевидном преимуществе — простоте реализации — данный метод имеет существенный недостаток. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов не зависимо от того, какой размер имеют программы. Даже если программа имеет небольшой объем, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.

Распределение памяти разделами переменной величины

В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рисунке ниже показано состояние памяти в различные моменты времени при использовании динамического распределения. Так в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причем задача П4, завершаясь, покидает память. На освободившееся после задачи П4 место загружается задача П6, поступившая в момент t3.

Задачами операционной системы при реализации данного метода управления памятьюявляется:

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

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

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

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

Перемещаемые разделы

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

Распределение памяти перемещаемыми разделами иллюстрирует следующий рисунок:

Хотя процедура сжатия и приводит к более эффективному использованию памяти, она может потребовать значительного времени, что часто перевешивает преимущества данного метода.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector