Модули которые загружаются в оперативную память только при необходимости
ОЗУ (оперативное запоминающее устройство), оно же RAM ("Random Access Memory" - память с произвольным доступом), представляет собой область временного хранения данных, при помощи которой обеспечивается функционирование программного обеспечения. Физически, оперативная память в системе представляет собой набор микросхем или модулей (содержащих микросхемы), которые обычно подключаются к системной плате.
В процессе работы память выступает в качестве временного буфера (в ней хранятся данные и запущенные программы) между дисковыми накопителями и процессором благодаря значительно большей скорости чтения и записи данных.
Примечание. Совсем новички часто путают оперативную память с памятью жесткого диска (ПЗУ - постоянное запоминающее устройство), чего делать не нужно, т.к. это совершенно разные виды памяти. Оперативная память (по типу является динамической - Dynamic RAM), в отличие от постоянной - энергозависима, т.е. для хранения данных ей необходима электроэнергия, и при ее отключении (выключение компьютера) данные удаляются. Пример энергонезависимой памяти ПЗУ - флэш-память, в которой электричество используется лишь для записи и чтения, в то время как для самого хранения данных источник питания не нужен.
По своей структуре память напоминает пчелиные соты, т.е. состоит из ячеек, каждая из которых предназначена для хранения мёда определенного объема данных, как правило, одного или четырех бит. Каждая ячейка оной имеет свой уникальный «домашний» адрес, который делится на два компонента – адрес горизонтальной строки (Row) и вертикального столбца (Column).
Ячейки представляют собой конденсаторы, способные накапливать электрический заряд. С помощью специальных усилителей аналоговые сигналы переводятся в цифровые, которые в свою очередь образуют данные.
Для передачи на микросхему памяти адреса строки служит некий сигнал, который зовется RAS (Row Address Strobe), а для адреса столбца — сигнал CAS (Column Address Strobe).
Статическая оперативная память
Статическая память используется в кэше центрального процессора, а динамическая в качестве системной оперативной памяти компьютера.
В современном мире чипы памяти комплектуются в компонент, именуемый модулем. Порой компьютерные специалисты называют его «планкой памяти». Один модуль или «планка» содержит несколько чипов памяти. Не исключено, что вам приходилось слышать такие определения, как «память 8×32» или «память 4×16». Разумеется, цифры могли быть иными. В этой простой формуле первым множителем является количество чипов в модуле, а вторым емкость каждого модуля. Только не в мегабайтах, а в мегабитах. Это значит, что результат действия умножения следует разделить на восемь, чтобы получить объем модуля в привычных нам мегабайтах.
К примеру: 4×32 означает, что модуль содержит четыре 32-мегабитных чипа. Умножив 4 на 32, получаем 128 мегабит. Поскольку нам известно, что в одном байте восемь бит, нам нужно разделить 128 на 8. В итоге узнаем, что «модуль 4×32» является 16-мегабайтным и устарел еще в конце минувшего века, что не мешает ему быть превосходным простым примером для тех вычислений, которые нам потребовались.
Принцип работы и функции
- на требуемую строку подается электрический сигнал;
- происходит открытие транзистора;
- электрический заряд, присутствующий в конденсаторе, подается на нужный столбец.
Каждый столбец подключен к чрезвычайно чувствительному усилителю. Он регистрирует потоки электронов, возникающие в случае, если конденсатор разряжается. При этом подается соответствующая команда. Таким образом, происходит осуществление доступа к различным ячейкам, расположенным на плате. Есть один важный нюанс, который следует обязательно знать. Когда подается электрический импульс на какую-либо строку, он открывает все её транзисторы. Они подключены к ней напрямую.
Из этого можно сделать вывод, что одна строка является минимальным объемом информации, который можно прочитать при осуществлении доступа. Основное назначение ОЗУ – хранить различного рода временные данные, которые необходимы, пока персональный компьютер включен и функционирует операционная система. В ОЗУ загружаются наиболее важные исполняемые файлы, ЦП осуществляет их выполнение напрямую, просто сохраняя результаты выполненных операций.
Также в ячейках хранятся:
- исполняемые библиотеки;
- коды клавиш, нажатие на которые было осуществлено;
- результаты различных математических операций.
При необходимости все, что находится в RAM, центральный процессор может сохранить на жесткий диск. Причем сделать это в том виде, в котором это необходимо.
Динамический тип
Ещё один вид микросхем обозначается как DRAM. Он является также полностью энергозависимым, доступ к битам записи осуществляется произвольным образом. Данная разновидность широко используется в большинстве современных ПК. Также она применяется в тех компьютерных системах, где высоки требования к задержкам – быстродействие DRAM на порядок выше SDRAM.
Чаще всего данная разновидность имеет форм-фактор типа DIMM. Такое же конструктивное решение используется и для изготовления статической схемы (SDRAM). Особенностью DIMM-исполнения является то, что контакты имеются с обеих сторон поверхности.
Принцип работы оперативной памяти компьютера, ноутбука
Оперативная память хранит в себе данные, необходимые для работы всей системы в определённый момент времени. При создании чипов оперативной памяти используют динамическую память, которая медленнее, но дешевле чем статическая, которая используется при создании кеш памяти процессоров. Если нам нужно прочитать память, то на определённую строку страницы памяти, подаётся сигнал, который открывает транзистор и пропускает электрический заряд, который содержится (или не содержится) в конденсаторе на соответствующий столбец. К каждому столбцу подключен чувствительный усилитель, который реагирует на незначительный поток электронов выпущенных с конденсатора. Но тут есть нюанс – сигнал, поданный на строку матрицы, открывает все транзисторы данной строки, так как они все подключены на данную строку, и таким образом происходит чтение всей строки. Исходя из вышесказанного, становится ясно, что строка в памяти, является минимальной величиной для чтения – прочитать одну ячейку, не затронув другие невозможно. Процесс чтения памяти является деструктивным, так как прочитанный конденсатор отдал все свои электроны, что бы его услышал чувствительный усилитель. И по этому, после каждого чтения строки, её нужно записать заново. онденсатор, который служит хранителем данных, имеет микроскопические размеры и как следствие маленькую ёмкость, и ввиду этого не может долго хранить заряд заданный ему, по причине саморазряда. Для борьбы с этой проблемой, используется регенерация памяти, которая, с определённой периодичностью считывает ячейки и записывает заново. Благодаря подобному явлению, эта память и получила название динамической.
EDO-DRAM (Extended Data Out DRAM) – динамическая память с усовершенствованным выходом. В этом типе памяти адрес следующего считываемого слова передавался до завершения считывания линии данных памяти, то есть до того, как считанные данные из памяти были переданы процессору.
Приступить к считыванию нового слова данных, до завершения чтения предыдущего, стало возможным, благодаря вводу, так называемых, регистров – защелок, которые сохраняли последнее считанное слово даже после того, как начиналось чтение или запись следующего слова.
Сочетая в себе также новшества памяти FPM RAM, новый тип памяти давал прирост производительности в пике, достигавший 15-20%.
Однако прогресс не стоял на месте, тактовые частоты работы процессоров, системной шины и естественно памяти росли. С повышением тактовой частоты все сложнее было добиваться стабильной работы памяти EDO-DRAM, так как из-за непредвиденных задержек чтение нового слова данных могло начаться прежде, чем предыдущее слово данных было сохранено с помощью регистров-защелок.
Любая сложная система должна иметь понятную и рациональную структуру, то есть разделятся на модули, имеющие законченное функциональное назначение с четко оговоренными правилами взаимодействия. Ясное понимание роли каждого отдельного модуля существенно упрощает работу по модификации и развитию системы, а вот сложную систему, не обладающую хорошей структурой, но с понятной, логичной организацией бывает проще разработать заново, чем модернизировать. Качественная проработка структуры и внутренних межмодульных взаимодействий ОС является одной из важнейших задач, встающих перед разработчиками системы. Ошибки на этом этапе могут оказать решающее влияние на дальнейшую судьбу системы.
Функциональная сложность ОС неизбежно приводит к сложности ее архитектуры, под которой понимают структурную организацию ОС на основе различных программных модулей.
Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Не существует какой-либо единой архитектуры, но есть универсальные подходы к структурированию ОС.
Наиболее общим подходом к структуризации ОС является разделение всех её модулей на две группы:
1)ядро – модули, выполняющие основные функции ОС;
2) модули ОС, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции, как управление процессами, памятью, устройствами ввода-вывода и т.д. Ядро составляет самую главную часть ОС, без которой она является полностью неработоспособной и не может выполнять ни одну из своих функций. В ядре решаются внутрисистемные задачи организации вычислительного процесса, недоступные для приложений. Особый класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами –системным вызовамидля выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API (Application Programming Interface).
В соответствии со своим назначением функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями ОС, поэтому скорость их выполнения влияет на общую производительность вычислительной системы. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными модулями ОС. Вследствие ограниченности такого ресурса системы, как оперативная память, важное значение имеет размер этих постоянно размещенных в памяти модулей. Если разработчик по каким-либо причинам сделает их слишком большими и громоздкими, то производительность ОС резко снизится, поскольку значительная часть ресурсов будет использоваться самой системой для обеспечения собственной работы.
Ядро – это основной элемент всех вычислительных процессов в системе, поэтому крах ядра приводит к краху всей вычислительной системы. Следовательно, разработчики ОС должны уделять надежности кодов ядра особое внимание, даже если при этом процесс их написания и отладки занимает очень длительное время. Как правило, ядро ОС оформляется в виде программного модуля специального формата, отличного от формата обычных пользовательских приложений.
Вспомогательные модули ОС выполняют не столь важные, как ядро, функции. Например, это могут быть программы архивирования данных, редактирования текстов и многое другое. Вспомогательные функции ОС, как правило, оформляются либо в виде пользовательских приложений, либо в виде библиотек процедур и функций. Вследствие того, что часть компонентов ОС разрабатывается в виде обычных приложений, имеющих стандартный для данной ОС формат, то зачастую очень сложно отделить вспомогательные модули ОС от обычных пользовательских приложений. По этой причине возникает некоторая размытость границ ОС. Решение о принадлежности какой-либо программы операционной системе принимает производитель ОС. Примером этого может являться web-браузер Internet Explorer компании Microsoft, который сначала поставлялся как отдельное приложение, а впоследствии стал частью ОС Windows 98 и Windows NT 4.0.
Вспомогательные модули ОС, в свою очередь, делятся на следующие основные группы:
1) утилиты – программы, решающие отдельные задачи управления и сопровождения вычислительной системы, например программы архивации данных, сжатия дисков, тестирования дисков;
2) системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики и другие программы, входящие в комплект поставки данной ОС;
3) программы предоставления пользователю дополнительных услуг – нестандартный вариант пользовательского интерфейса, включающий вспомогательные и даже игровые программы;
4) библиотеки процедур и функций различного назначения, облегчающие разработку пользовательских приложений, например библиотека математических функций, функций работы с устройствами ввода-вывода и т.д.
Как и обычные пользовательские приложения, все перечисленные группы вспомогательных модулей при выполнении своих задач обращаются к функциям ядра ОС. Схема взаимодействия ядра, вспомогательных модулей ОС и пользовательских приложений приведена на рисунке 1.
За счет разделения ОС на ядро и вспомогательные модули обеспечивается легкая расширяемость ОС. Действительно, для добавления новой высокоуровневой функции достаточно разработать соответствующее приложение, при этом не требуется модифицировать функции, составляющие ядро системы. С учетом того, что вспомогательные модули системы, как правило, оформляются в виде стандартных пользовательских приложений, их модификация или замена старых версий на более новые производится достаточно просто и может быть выполнена даже обычным пользователем с применением специальной системной утилиты – мастера обновлений. Достаточно только получить от производителя ОС файлы с обновленными модулями, запустить мастер обновления и указать ему расположение этих файлов. Гораздо более сложным является внесение изменений в функции ядра. Произвести такие действия по силам только квалифицированному специалисту, причем в зависимости от структурной организации ядра для этого может потребоваться даже полная его перекомпиляция.
Вспомогательные модули ОС обычно загружаются в оперативную память вычислительной системы только на время выполнения своих функций, то есть являются транзитными модулями ОС. Постоянно в оперативной памяти находятся лишь наиболее важные программы ОС, составляющие ее ядро. Применение подобной организации позволяет рационально использовать такой ресурс вычислительной системы, как оперативная память.
Требование обеспечения надежности выполнения приложений приводит к необходимости наличия у ОС некоторых привилегий. Необходимо предотвратить возможность вмешательства в работу ОС или разрушения какой-либо ее части вследствие выполнения некорректно работающих приложений. ОС должна обладать исключительными правами по отношению к другим приложениям. В мультипрограммных системах это просто необходимо для разрешения споров из-за ресурсов вычислительной системы между приложениями. Ни одно приложение не должно иметь возможности получать область оперативной памяти, занимать процессор или управлять другими ресурсами вычислительной системы без ведома ОС.
Несомненно, что обеспечение соответствующих привилегий ОС требует не только соответствующей программной, но и аппаратной поддержки. Аппаратура компьютера должна иметь возможность работать как минимум в двух режимах – пользовательском режиме (user mode) и привилегированном режиме, который также называется режимом ядра (kernel mode), или режимом супервизора (supervisor mode). В пользовательском режиме работы запрещено выполнение некоторых критичных для системы команд, связанных с переключением процессора между задачами, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Некоторые команды в пользовательском режиме запрещено выполнять безусловно (например, команду перехода к привилегированному режиму работы), тогда как выполнение других запрещено только при определенных условиях. Однако контроль за выполнением этих условий находится в ведении ОС и обеспечивается за счет набора команд, которые безусловно запрещены для пользовательского режима. Например, контроль за доступом к памяти достигается за счет того, что команды конфигурирования механизмов защиты памяти разрешается выполнять только в привилегированном режиме, при этом пользовательскому приложению запрещается обращение к областям памяти, занимаемым ОС или другими приложениями. Таким образом становится возможной локализации некорректно работающего приложения в собственной области памяти, и его ошибки не влияют на остальные приложения и ОС.
Поддержка хотя бы двух уровней привилегий на уровне аппаратуры позволяет ОС программным путем построить многоуровневую иерархическую систему привилегий, обеспечивающую более качественное распределение полномочий между модулями ОС. Такой подход применяется для повышения устойчивости ОС к внутренним ошибкам программных кодов. Кроме того, многоуровневая система привилегий позволяет разработчикам ОС создавать более сложные алгоритмы управления вычислительным процессом с целью повышения рациональности использования разделяемых ресурсов.
Как уже было сказано, в ядре ОС осуществляются все основные функции. Вследствие этого именно ядро становится той частью ОС, которая выполняется в привилегированном режиме, а пользовательские приложения, соответственно, – в пользовательском режиме. Повышение устойчивости и надежности ОС, обеспечиваемое за счет работы ядра в привилегированном режиме, тем не менее приводит к замедлению выполнения приложений, поскольку для переключения процессора из пользовательского режима в привилегированный и обратно требуется некоторое, пусть и небольшое, время (рис. 2). Следовательно, во всех типах процессоров из-за дополнительной двукратной задержки переключения переход на процедуру со сменой режима выполняется медленнее, чем вызов процедуры без смены режима.
Описанная выше архитектура, основанная на привилегированном ядре и приложениях пользовательского режима, стала классической. Ее применяют многие популярные ОС, в том числе версии UNIX, VAX VMS, IBM OS/390, OS/2.
В процессорах Intel, используемых в персональных компьютерах, возможность работы в привилегированном режиме появилась уже начиная с процессора 80286. Однако разработчики широко распространенной ОС MS-DOS не использовали это свойство и их ОС всегда работает в так называемом реальном режиме. Некорректно написанные приложения вполне могут разрушить основные модули MS-DOS, что приведет к краху системы.
Многослойная структура ОС
Любая ОС является комплексом аппаратных и программных средств со сложными внутрисистемными связями. Поэтому разработка подобных систем требует применения специальных подходов и методов, позволяющих хотя бы в какой-то мере облегчить процесс проектирования и уменьшить количество ошибок взаимодействия между различными компонентами системы.
Существует универсальный и эффективный подход к построению сложной системы любого типа – многослойный подход. В соответствии с ним система делится на иерархию слоев, каждый из которых обслуживает вышележащий слой, выполняя для него некоторый набор функций, образующих так называемый межслойный интерфейс. Основываясь на функциях, предоставляемых нижележащим слоем, вышележащий слой строит свои более мощные функции, являющиеся основой для создания функций еще более высокого в иерархии слоя. Межслойные интерфейсы, с помощью которых происходит взаимодействие слоев, строго оговорены, тогда как связи между модулями внутри одного слоя могут быть произвольными.
Описанная организация системы существенно упрощает разработку, поскольку позволяет сначала определить “сверху вниз” функции слоев и межслойные интерфейсы, а затем при детальной реализации постепенно нарастить мощность функций слоев, двигаясь “снизу вверх”. Также важную роль играет возможность модификации модулей внутри слоя без изменения связанных с ним слоев при условии, что межслойные интерфейсы останутся неизменными. Разработчик, например, может усовершенствовать алгоритм какого-либо модуля одного из слоев, обеспечив тем самым повышение надежности или скорости его работы. При этом ему не придется вносить никаких изменений ни в один из выше или нижележащих слоев.
Если применить описанный подход к вычислительной системе, работающей под управлением ОС, построенной по классической архитектуре, то ее можно представить как систему, состоящую из трех иерархически связанных слоев, каждый из которых взаимодействует только со смежным ему слоем (рис. 3). При этом нижний слой составляет аппаратура, средний включает в себя ядро, а самый верхний – утилиты, системные обрабатывающие программы и приложения.
Однако не только система в целом, но и ядро ОС является сложным многофункциональным комплексом программ, а значит к нему, в свою очередь, также можно применить многослойный подход. Как правило, в ядре классической ОС выделяют следующие основные слои (рис. 4):
— средства аппаратной поддержки ОС, к которым относятся аппаратные средства системы, напрямую участвующие в вычислительном процессе: средства поддержки привилегированного режима и защиты областей памяти, система прерываний и т.д. Их можно считать составляющей частью ОС. Набор и функциональные возможности аппаратных средств могут меняться и определяются разработчиком конкретной системы;
— машинно-зависимые компоненты ОС, включающие в себя программные модули, отражающие специфику аппаратной платформы компьютера. Теоретически именно этот слой должен делать вышележащие слои ядра полностью независимыми от особенностей аппаратуры, что позволяет разрабатывать машинно-независимые вышележащие слои и обеспечивать тем самым возможность переносимости ОС;
— базовые механизмы ядра, выполняющие наиболее примитивные операции ядра, например контекстное переключение процессов, перемещение участков памяти на диск и обратно и т.д. Модули данного ядра не принимают решения о распределении ресурсов вычислительной системы, а только отрабатывают принятые вышележащими слоями решения;
— менеджеры ресурсов, реализующие задачи по стратегическому управлению основными ресурсами вычислительной системы. Слой состоит из сложных и мощных функциональных модулей. Каждый менеджер ресурсов(называемый также диспетчером) ведет учет свободных и используемых ресурсов соответствующего типа и планирует их распределение в соответствии с запросами приложений. Менеджер должен отслеживать интенсивность обращений к ресурсу, длительность его применения и многие другие параметры с целью рационального планирования использования ресурсов. Взаимосвязь модулей внутри данного слоя обусловлена необходимостью доступа процесса к нескольким ресурсам одновременно. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить этому процессу определенную область памяти для размещения его кодов и данных. Для управления ресурсами менеджеры ресурсов используют функции нижележащего слоя – базовых механизмов ядра;
— интерфейс системных вызовов непосредственно взаимодействует с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы (API). Является самым верхним слоем в иерархи слоев ядра. Обслуживающие системные вызовы функции API предоставляют доступ к ресурсам вычислительной системы в удобной и компактной форме без указания деталей их физического расположения.
Приведенное деление ядра на слои является достаточно условным и в реальных ОС количество слоев, а также распределение функций между ними может быть несколько иным. Это обусловлено аппаратной платформой, для которой разрабатывается ОС, сферой использования ОС, соображениями разработчиков и т.п. Задача деления ядра на слои является крайне ответственной и важной. В самом деле, неоправданное увеличение числа слоев приводит к замедлению работы системы из-за увеличения времени межслойных взаимодействий. В целях ускорения работы ядра и ОС в целом разработчики могут прибегать к нарушению иерархии слоев, при этом возможны ситуации, когда вышележащий слой обращается к функциям нижних слоев, минуя промежуточные. Уменьшение количества слоев ядра оказывает отрицательное влияние на логичность и расширяемость ОС. Особенно сильно такие нарушения могут сказаться на переносимости ОС, если какой-либо из вышележащих слоев содержит машинно-зависимые функции. В этом случае особенности конкретной аппаратной платформы не локализуются в пределах одного из нижних слоев, и перенос такой системы с одного типа аппаратуры на другой является весьма трудновыполнимой задачей.
Статьи к прочтению:
Частота и скорость
Чем выше пропускная способность ОЗУ, тем больше её скорость. Частота является параметром, определяющим пропускную способность каналов, через которые осуществляется передача данных различного рода в ЦП через материнскую плату.
Желательно, чтобы данная характеристика совпадала с допустимой скоростью работы материнской платы.
Например, если планка поддерживает частоту 1600 МГц, а материнская плата – не более 1066 Мгц, то скорость обмена данными между ОЗУ и ЦП будет ограничена именно возможностями материнской платы. То есть скорость будет не более 1066 МГц.
Параметры ОП
- частота работы;
- тайминг;
- напряжение.
Все они зависят от типа конкретной модели. Например, ДДР 2 будет выполнять различные действия однозначно быстрее, чем планка ДДР 1, так как обладает более выдающимися рабочими характеристиками.
Таймингами называется время задержки информации между различными компонентами устройства. Маленькие тайминги позволяют увеличить скорость выполнения различных операций. Но чем выше быстродействие оперативно-запоминающего устройства, тем больше значения таймингов.
Выходом из данного положения служит повышение рабочего напряжения – чем оно выше, тем меньше становятся тайминги. Количество выполненных операций за единицу времени в то же время возрастает.
Зачем нужна оперативная память?
Как мы уже знаем, обмен данными между процессором и памятью происходит чаще всего с участием кэш-памяти. В свою очередь, ею управляет специальный контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их, т.е. кэш-контроллер загружает в кэш-память нужные данные из оперативной памяти, и возвращает, когда нужно, модифицированные процессором данные в оперативку.
После процессора, оперативную память можно считать самым быстродействующим устройством. Поэтому основной обмен данными и происходит между этими двумя девайсами. Вся информация в персональном компьютере хранится на жестком диске. При включении компа в ОЗУ с винта записываются драйверы, специальные программы и элементы операционной системы. Затем туда записываются те программы – приложения, которые мы будем запускать, при закрытии последних они будут стерты из оной.
Данные, записанные в оперативной памяти, передаются в CPU (он же не раз упомянутый процессор, он же Central Processing Unit), там обрабатываются и записываются обратно. И так постоянно: дали команду процессору взять биты по таким-то адресам (как то: обработатьих и вернуть на место или записать на новое) – он так и сделал (смотрите изображение).
Как работает оперативная память?
Работа оперативной памяти непосредственно связана с работой процессора и внешних устройств компьютера, так как именно ей последние «доверяют» свою информацию. Таким образом, данные сперва попадают с жесткого диска (или другого носителя) в саму ОЗУ и уже затем обрабатываются центральным процессором.
Обмен данными между процессором и памятью может происходить напрямую, но чаще все же бывает с участием кэш-памяти.
Кэш-память является местом временного хранения наиболее часто запрашиваемой информации и представляет собой относительно небольшие участки быстрой локальной памяти. Её использование позволяет значительно уменьшить время доставки информации в регистры процессора, так как быстродействие внешних носителей (оперативки и дисковой подсистемы) намного хуже процессорного. Как следствие, уменьшаются, а часто и полностью устраняются, вынужденные простои процессора, что повышает общую производительность системы.
Оперативной памятью управляет контроллер, который находится в чипсете материнской платы, а точнее в той его части, которая называется North Bridge (северный мост) - он обеспечивает подключение CPU (процессора) к узлам, использующим высокопроизводительные шины: ОЗУ, графический контроллер (смотрите изображение).
Примечание. Важно понимать, что если в процессе работы оперативной памяти производится запись данных в какую-либо ячейку, то её содержимое, которое было до поступления новой информации, будет безвозвратно утеряно. Т.е. по команде процессора данные записываются в указанную ячейку, одновременно стирая при этом то, что там было записано ранее.
Статический тип
Более дорогой на сегодняшний день является микросхема статическая. Маркируется она как SDRAM. Динамическая же является более дешевой.
Отличительными чертами SDRAM-разновидности являются:
- двоичные и троичные разряды сохраняются при положительной обратной связи;
- поддерживается постоянное состояние без осуществления регенерации.
Также отличительной особенностью RAM является наличие возможности осуществлять выбор того бита, в который будет осуществлена запись какой-либо информации.
К недостаткам можно отнести:
- малую плотность записи;
- относительно высокую стоимость.
Устройства оперативной памяти компьютера всевозможного вида (SDRAM и DRAM) имеют внешние отличия. Они заключаются в длине контактной части. Также имеет отличия её форма. Обозначение оперативной памяти находится как на этикетке-наклейке, так и пропечатано непосредственно на самой планке.
Сегодня существует множество различных модификаций SDRAM.
Обозначается она как:
Виды и объем памяти
Плата на сегодняшний день может иметь объем в несколько десятков гигабайт. Современные технические средства позволяют использовать её максимально быстро. Большинство операционных систем оснащаются возможностью взаимодействовать с такими устройствами. Имеется пропорциональная зависимость между объемом ОЗУ и стоимостью. Чем больше её размер, тем более она дорогая. И наоборот.
Все современные ОЗУ можно разделить на две разновидности:
01 — Модули ядра Linux. Введение
Похожие статьи:
Ядро и вспомогательные модули ОС Привилегированный режим Многослойная структура ОС, ядра ОС Аппаратная зависимость и переносимость ОС 7. Архитектура…
1.) Принцип модульности – под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему определению модуль предполагает возможность легкой замены его на другой при наличии заданных интерфейсов. В значительной степени разделение системы на модули определяется используемым методом проектирования ОС (снизу вверх или наоборот).
Особое значение при построение ОС имеют привилегированные, повторно входимые и реентерабельные модули (реентабель-ность – дословно повторновходимость; специальный термин для обозначения работоспособности программы; свойство программы корректно выполняться при рекурсивном (возвращаемом) вызове из прерывания).
Наибольший эффект от использования данного принципа достижим в случае одновременного распространения данного принципа на ОС, прикладные программы и аппаратуру.
2.) Принцип функциональной избиратель-ности – в ОС выделяется некоторая часть важных модулей, которые должны постоянно находится в оперативной памяти для более эффективной организации вычислительного процесса. Эту часть в ОС называют ядром, так как это – основа системы. При формировании состава ядра приходится учитывать два противоречивых требования. С одной стороны, в состав ядра должны войти наиболее часто используемые системные модули, с другой – количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, не был слишком большим. Помимо программных модулей, входящих в состав ядра и постоянно располагающихся в оперативной памяти, может быть много других системных программных модулей, которые получают название транзитных. Транзитные программные модули загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями.
3.) Принцип генерируемости ОС: суть принципа состоит в организации (выборе) такого способа исходного представления центральной системной управляющей программы ОС (ядра и постоянно находящихся в оперативной памяти основных компонентов), который позволял настраивать эту системную супервизорную часть исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач. Эта процедура проводится редко перед достаточно протяженным периодом эксплуатации ОС. Процесс генерации осуществляется с помощью специальной программы-генера-тора и соответствующего входного языка для этой программы, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерации получается полная версия ОС. Сгенерированная версия ОС представляет собой совокупность системных наборов модулей и данных.
4.) Принцип функциональной избыточности: Этот принцип учитывает возможность проведения одной и той же работы различными средствами. В состав ОС может входить несколько типов мониторов (модулей супервизора, управляющих тем или другим видом ресурса), различные средства организации коммуникаций между вычислительными процессами. Наличие нескольких типов мониторов, нескольких систем управления файлами позволяет пользователям быстро и наиболее адекватно адаптировать ОС к определенной конфигурации вычислительной системы, обеспечивать максимально эффективную загрузку технических средств при решении конкретного класса задач, получать максимальную производительность при решении заданного класса задач.
5.) Принцип виртуализации: построение виртуальных ресурсов, их распределение и использование в настоящее время применяется практически в любой ОС. Этот принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распредели-телей ресурсов (мониторов) и использовать единую централизованную схему распреде-ления ресурсов.
Наиболее естественным и законченным проявлением концепции виртуальности является понятие виртуальной машины. Виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представлении выступают с новыми или улучшенными характе-ристиками, как правило, упрощающими работу с системой. Характеристики могут быть произвольными, но чаще всего пользователи желают иметь собственную «идеальную» по архитектурным характерис-тикам машину в следующем составе:
— единообразная по логике работы виртуаль-ная память практически неограниченного объема.
— произвольное количество виртуальных процессоров, способных работать парал-лельно и взаимодействовать во время рабо-ты.
— произвольное количество внешних вирту-альных устройств, способных работать с памятью виртуальной машины параллельно или последовательно, асинхронно или синхронно по отношению к работе того или иного виртуального процессора, иници-ирующего работу этих устройств.
Одним из аспектов виртуализации является организация возможности выполнения в данной ОС приложений, которые разра-батывались для других ОС. Другими сло-вами, речь идет об организации нескольких операционных сред.
6.) Принцип независимости программ от внешних устройств: этот принцип реализу-ется сейчас в подавляющем большинстве ОС общего применения. Впервые наиболее последовательно данный принцип был реализован в ОС UNIX. Реализован он и в большинстве современных ОС для ПК. Этот принцип заключается в том, что связь программ с конкретными устройствами производится не на уровне трансляции программы, а в период планирования ее исполнения. В результате перекомпиляция при работе программы с новым устройством, на котором располагаются данные, не требуется.
7.) Принцип совместимости: одним из аспектов совместимости является способ-ность ОС выполнять программы, написан-ные для других ОС или для более ранних версий данной ОС, а также для другой аппаратной платформы. Необходимо разделять вопросы двоичной совмести-мости и совместимости на уровне исходных текстов приложений.
Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение на другой ОС. Для этого необходимы совместимость на уровне команд процессора, и совместимость на уровне системных вызовов, и даже на уровне библиотечных вызовов, если они являются динамически связываемыми.
Совместимость на уровне исходных текстов требует наличия соответствующего трансля-тора в составе системного программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имею- щихся исходных текстов в новый выполня-емый модуль.
Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например, программу для ПК типа IBM PC желательно выполнить на ПК типа Macintosh фирмы Apple), этот компьютер должен работать с машинными командами, которые ему изначально непо-нятны. В таком случае процессор типа 680×0 (или PowerPC) должен исполнять двоичный код, предназначенный для процессора i80x86. Процессор 80×86 имеет свои собственные дешифратор команд, регистры и внутреннюю архитектуру. Процессор 680×0 не понимает двоичный код 80×86, поэтому он должен выбрать каждую коман-ду, декодировать ее, чтобы определить, для
чего она предназначена, а затем выполнить эквивалентную подпрограмму, написанную для 680×0.
Одним из средств обеспечения совмести-мости программных и пользовательских интерфейсов является соответствие стан-дартам POSIX, использование которого позволяет создавать программы в стиле UNIX, легко переносимых впоследствии из одной системы в другую.
8.) Принцип открытости и наращиваемости : Открытая операционная система доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) ОС позволяяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т.д. Другими словами, следует обеспечить возможность легкого внесения дополнений и изменений в необходимых случаях без нарушения целостности системы. Прекрасные возмож-ности для расширения предоставляет подход к структурированию ОС по типу клиент-сервер с использованием микро-ядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программ-мы и набора непривилегированных услуг (серверов). Основная часть ОС остается неизменной, и в то же время могут быть добавлены новые серверы или улучшены старые. Этот принцип иногда трактуют как расширяемость системы.
9.) Принцип мобильности: операционная система относительно легко должна перено-
ситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа, которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера (архитектуру вычислительной системы), на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же. Создание переносимой ОС аналогично написанию любого перено-симого кода, при этом нужно следовать некоторым правилам:
— большая часть ОС должна быть выпол-нена на языке, имеющемся на всех системах, на которые планируется в даль-нейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой.
— важно минимизировать или, если возмож-но, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование регистрами и другими аппаратными средст-вами. Наконец, если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно-зависимую структуру в программ-мно задаваемые данные абстрактного типа.
Введение стандартов POSIX преследовало цель обеспечить переносимость создава-емого программного обеспечения.
10.) Принцип обеспечения безопасности вычислений: обеспечение безопасности при выполнении вычислений является жела-тельным свойством для любой много-пользовательской системы. Правила безопасности определяют такие свойства, как защиту ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользова-телем всех системных ресурсов, таких, например, как память.
Обеспечение защиты информации от несанкционированного доступа является обязательной функцией сетевых операци-онных систем.
Что такое POSIX: платформенно-незави-симый системный интерфейс для компьюте-рного окружения POSIX (Portable Operating System Interface for Computer Environments) – это стандарт IEEE(Institute of Electrical and Electronics Engineers − институт инженеров по электротехнике и радиоэлектронике.), описывающий системные интерфейсы для открытых ОС, в том числе оболочки, утилиты и инструментарии. Помимо этого, согласно POSIX, стандартизированными являются задачи обеспечения безопасно-сти, задачи реального времени, процессы администрирования, сетевые функции и обработка транзакций. Стандарт базируется на UNIX-системах, но допускает реализацию и в других ОС. POSIX возник как попытка всемирно известной организации IEEE пропагандировать переносимость прило-жений в UNIX-средах путем разработки абстрактного, платформенно-независимого стандарта. Например, известная ОС реального времени QNX соответствует спецификациям этого стандарта.
Этот стандарт подробно описывает систему виртуальной памяти VMS (Virtual Memory System,), многозадачность МРЕ (Multi-Process Executing) и технологию переноса операционных систем CTOS (An Operating System produced Convergent Technology …). Таким образом, на самом деле POSIX представляет собой множество стандартов, именуемых POSIX.I –POSIX.12. Следует также особо отметить, что в POSIX.1 предполагается язык С в качестве основного
языка описания системных функций API.
Таким образом, программы, написанные с соблюдением данных стандартов, будут одинаково выполняться на всех POSIX-совместимых системах. Однако стандарт в некоторых случаях носит лишь рекомен-дательный характер. Часть стандартов описана очень строго, тогда как другая часть только поверхностно раскрывает основные требования.
Реализации POSIX API на уровне операционной системы различны. Если UNIX-системы в своем абсолютном большинстве изначально соответствуют спецификациям IEEE Standard 1003.1-1990, то WinAPI не является POSIX-совместимым. Однако для поддержки данного стандарта в операционной системе MS Windows NT введен специальный модуль поддержки POSIX API, работающий на уровне привилегий пользовательских процессов.
Данный модуль обеспечивает конвертацию и передачу вызовов из пользовательской программы к ядру системы и обратно, работая с ядром через Win API. Прочие приложения, созданные с использованием WinAPI, могут передавать информацию POSIX-приложениям через стандартные механизмы потоков ввода/вывода (stdin, stdout).
Этот принцип основан на выделении в алгоритмах программ и в обрабатываемых массивах действий и данных по частоте их использования. Действия и данные, используемые часто, располагаются в оперативной памяти, т.к. к ним необходим быстрый доступ. К тому же стремятся наиболее часто выполняемые операции оптимизировать по времени выполнения и по занимаемой памяти.
Следствия от применения частотного принципа – это применение многоуровневого планирования при организации работы ОС. На уровень долгосрочного планирования выносятся редкие и длинные операции управления деятельностью системы. Краткосрочному планированию подвергаются часто используемые и короткие операции.
2. Принцип модульности.
Это принцип в равной степени отражает технологические и эксплуатационные свойства. Наибольший эффект от его использования достигается в том случае, когда принцип одновременно распространен на ОС, аппаратуру и прикладные программы.
Под модулем в общем случае понимают функциональный элемент рассматриваемой системы, имеющей законченное оформление и выполненный в пределах требования ОС, а также средства сопряжения с подобными элементами или элементами более высокого уровня данной или другой системы.
Модуль предполагает лёгкий способ его замены на другой модуль, при наличии заданных интерфейсов. Чаще всего разделение на модули происходит по функциональному признаку.
Модули могут быть восстанавливаемыми и невосстанавливаемыми. Если модуль после окончания работы не восстанавливается в исходное состояние, то он называется однократным. Если модуль в процессе работы искажает своё состояние, но перед окончанием работы восстанавливается в исходное состояние, то его называют многократным. Особое значение при построении ОС имеют модули, называемые параллельно используемыми или реентерабельными. Каждый такой модуль может использоваться одновременно несколькими программами. Это позволяет хранить в памяти только одну копию такого модуля.
3. Принцип функциональной избирательности.
В ОС выделяется некоторая часть особо важных модулей, которые должны быть в оперативной памяти постоянно для эффективной организации вычислительного процесса. Эту часть обычно называют ядром ОС.
При формировании ядра необходимо удовлетворить двум противоречивым требованиям:
– в состав ядра должны войти наиболее часто используемые модули;
– количество модулей должно быть таким, чтобы не занимать много оперативной памяти;
В состав ядра входят модули по управлению системой прерываний, средства перевода процессов с одного состояния в другое, средства распределения оперативной памяти. Программы, входящие в состав ядра, обычно загружаются в оперативную память и называются резидентными.
Помимо резидентных программ существуют транзитные модули или программы, которые загружаются только при необходимости и могут перекрывать в оперативной памяти друг друга.
4. Принцип генерируемости.
Определяет такой способ исходного представления ОС, который позволял бы настраивать эту системную программу, исходя из конкретной конфигурации используемой машины и круга решаемых задач.
Процедура генерации проводится достаточно редко, а процесс генерации осуществляется с помощью специальной программы-генератора и входного языка для неё, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерации получается полная версия ОС. Исходный набор программ ОС, из которого производится генерация называется дистрибутивом.
5. Принцип функциональной избыточности.
Предполагает возможность проведения одной и той же работы различными средствами, т.е. ОС допускает альтернативное выполнение одних и тех же заданий в различных режимах своего функционирования.
6. Принцип по умолчанию.
Принцип основан на хранении в системе некоторых базовых описании, структур процесса, модулей, конфигурации оборудования и данных, определяющих прогнозируемые объемы требуемой памяти, времени счета программы, потребности во внешних устройствах, которые характеризуют пользовательские программы и условия их выполнения.
Эту информацию пользовательская система использует в качестве заданной, если она не будет определена или сознательно конкретизирована. В целом применение этого принципа позволяет сократить число параметров, устанавливаемых пользователем, когда он работает с системой.
7. Принцип перемещаемости.
Предусматривает построение модулей таким образом, что их исполнение не зависит от места расположения в оперативной памяти. Настройка текста модуля в соответствии с его расположением в памяти осуществляется специальными механизмами либо непосредственно пред выполнением программы, либо по мере по мере ее выполнения.
Настройка заключается в определении фактических адресов, используемых в адресных частях команды, и определяется применяемым в конкретной машине способом адресации и алгоритмом распределения оперативной памяти, принятым для данной ОС.
Этот принцип целесообразно распространять и на пользовательские программы.
8. Принцип защиты.
Определяет необходимость разработки мер, ограждающих программы и данные пользователя от искажения и нежелательного влияния друг на друга, а также пользователя на ОС и наоборот. Особенно трудно обеспечить защиту, когда используется разделение ресурсов.
Программы должны быть гарантированно защищены как при выполнении, так и при хранении, хотя попыток испортить и нанести нежелательный эффект пользовательским программам совершается множество.
Реализуется несколько подходов для обеспечения защиты.
Одним из направлений является реализация двухконтекстности работы процессора: в каждый момент времени процессор может выполнять программу из состава ОС либо прикладную или служебную программу, не входящую в состав ОС.
Второе направление состоит в том, чтобы гарантировать невозможность непосредственного доступа к любому разделяемому ресурсу со стороны пользовательских и служебных программ, для чего в состав машинных команд вводятся специальные привилегированные команды, управляющие распределением и использованием ресурсов. Такие команды разрешается выполнять только ОС. Контроль за выполнением привилегированных команд производится аппаратно.
Для реализации принципов защиты может использовать контекстный механизм защиты данных и текста программ, находящийся в операционной памяти. Для программ пользователей выделяются определенные участки памяти и выход за пределы этих участков приводит к возникновению прерываний по защите. Механизм контроля реализуется аппаратным способом, путем применения ограничительных регистров или ключей памяти.
Третье направление реализует механизм защиты данных, хранящихся в памяти, используются подходы, основанные на разграничении прав доступа, введении паролей, контроле за правильной интерпретацией данных, записанных в файле.
9. Принцип независимости программ от внешних устройств.
Позволяет выполнять операции управления внешними устройствами независимо от их конкретных физических характеристик. Связь программ с конкретными устройствами производится не на уровне трансляции программ, а в период планирования ее выполнения. При подключении новых устройств или замене существующих, текст программ не изменяется, а осуществляется подключение нового устройства к ОС путём подключения специальной программы, обеспечивающей взаимодействие ОС с внешним устройством. Такие программы называются драйверами.
10. Принцип открытой и наращиваемой операционной системы.
Открытая ОС доступна пользователю и специалисту, обслуживающему машину, а возможность наращивания или модификации операционной системы позволяет использовать не только возможности генерации, но вводить в операционную систему новые модули или модифицировать существующие.
Компоновка модулей
Практически все модули памяти состоят из одних и тех же конструктивных элементов.
Для примера используем модули стандарта SD-RAM (1): DDR (1.1); DDR2 (1.2).
- Чипы (микросхемы) памяти
- SPD (Serial Presence Detect) – микросхема энергонезависимой памяти, в которую записаны базовые настройки любого модуля. Во время старта системы BIOS материнской платы считывает информацию, отображенную в SPD, и выставляет соответствующие тайминги и частоту работы ОЗУ;
- «Ключ» - специальная прорезь платы, по которой можно определить тип модуля. Механически препятствует неверной установке плашек в слоты, предназначенные для оперативной памяти;
- SMD-компоненты модулей (резисторы, конденсаторы). Обеспечивают электрическую развязку сигнальных цепей и управление питанием чипов;
- Cтикеры производителя - указывают стандарт памяти, штатную частоту работы и базовые тайминги;
- РСВ – печатная плата. На ней распаиваются остальные компоненты модуля. От качества зачастую зависит результат разгона: на разных платах одинаковые чипы могут вести себя по-разному.
Производительность
Быстродействие зависит от многих факторов. Очень большое влияние на данный параметр оказывает количество используемых планок. Двухканальная ОЗУ работает на порядок быстрее, чем одноканальная. Наличие возможности поддерживать режимы многоканальности обозначается на наклейке, расположенной поверх платы.
Данные обозначения имеют следующий вид:
- Single (одиночный);
- Dual (двойной);
- Triple (тройной).
Для определения того, какой режим является оптимальным для конкретной материнской платы, необходимо посчитать общее количество слотов для подключения, и разделить их на два. Например, если их 4, то необходимо 2 идентичных планки от одного производителя. При их параллельной установке активируется режим Dual.
Читайте также: