Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Раздел 1. Архитектура вычислительных систем



Тема 1.1. АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ И ПРИНЦИП ЕЕ ФУНКЦИОНИРОВАНИЯ

Архитектура фон Неймана

В основе архитектуры современных ЭВМ лежит идея представления алгоритма решения задачи в виде программы последовательных действий. Программа наряду с данными для решения задачи хранится в памяти компьютера. Такая модель вычислительной машины получила название вычислительная машина с хранимой в памяти программой. В законченном виде эта идея была изложена в 1945 году в статье фон Неймана и получила название архитектуры фон Неймана. Сущность фон-неймановского типа архитектуры сводится к четырем принципам:

· двоичного кодирования;

· программного управления;

· однородности памяти;

· адресности.

Двоичное кодирование предполагает запись как данных, так и команд с помощью двоичных кодов с использованием символов «0» и «1». В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды выделяют поле кода операции (КОП) и поле адресов.

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

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

Адресность предполагает, что все ячейки памяти пронумерованы. Доступ к ячейке осуществляется по ее номеру – адресу.

Типичная фон-неймановская структура вычислительной машины представлена на рис. 4.

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

 
 
Вторичная (внешняя) память  


           
   
 
Порты ввода
   
Порты вывода  


 
 


Рис. 4. Структура вычислительной машины с архитектурой фон Неймана

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

Классификация архитектур системы команд

По составу и сложности команд различают три типа архитектур:

· архитектуру с полным набором команд CISC (Complex Instruction Set Computer);

· архитектуру с сокращенным набором команд RISC (Reduced Instruction Set Computer);

· архитектуру с командными словами сверхбольшой длины VLIW (Very Long Instruction Word).

К типу CISC относят практически все вычислительные машины, выпускавшиеся до середины 80-ых годов. Для этой архитектуры характерно наличие в процессоре небольшого числа регистров общего назначения, большое количество машинных команд, в ряде случаев – аппаратная реализация сложных операторов языков программирования высокого уровня, использование команд разных форматов и разной разрядности, разнообразие способов адресации, обращение к памяти при обработке команд. Несмотря на ряд положительных сторон этой архитектуры, ее дальнейшее развитие ведет к значительному усложнению аппаратуры компьютера, в первую очередь – устройства управления.

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

VLIW-архитектура базируется на RISC-архитектуре, где несколько простых RISC-команд объединяются в одну сверхдлинную команду и выполняются параллельно.

По месту хранения операндов (данных, обрабатываемых при выполнении команды) архитектуры систем команд делятся на стековые, аккумуляторные, регистровые и с выделенным доступом к памяти.

Стек образуется последовательным рядом ячеек, взаимодействующих по принципу «последним вошел, первым вышел». Верхнюю ячейку называют вершиной стека. Для работы со стеком достаточно всего две операции: push – запись данных в стек (при этом новые данные записываются в вершину стека, а уже находящиеся в стеке – смещаются на одну ячейку дальше от вершины) и pop – чтение данных из стека (при этом считывается информация из вершины стека, а все хранящиеся в стеке данные сдвигаются на одну ячейку ближе к вершине). Верхние ячейки стека, где хранятся операнды и результаты операций обычно делаются быстродействующими и являются составной частью процессора, остальная часть стека может находиться в памяти.

Приведем пример использования стека для вычисления выражения a+b•(c+d) (рис. 5).

push a push b push c push d add mul add

a b c d c+d b•(c+d) a+b•(c+d)
  a b c b a  
    a b a    
      a      

Рис 5. Использование стека для организации вычислений

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

Архитектура на базе аккумулятора предполагает выделение для выполнения операций специального регистра – аккумулятора. В нем хранится один из операндов арифметической или логической операции, сюда же записывается результат операции. Таким образом, для выполнения операции с двумя операндами достаточно указать адрес только второго из них. Для загрузки в аккумулятор информации из ячейки x используется команда load x, для записи результата операции в ячейку y – команда store y. Достоинство такой структуры – короткие команды, не перегруженные адресами операндов. Однако наличие только одного регистра – аккумулятора для выполнения операций создает необходимость постоянного использования команд обмена информацией с памятью.

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

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

Концепция мультипрограммирования

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

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

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

Развитие идей параллелизма вычислительных процессов нашло свое отражение в создании двухядерных процессоров. Фактически двухядерный процессор представляет собой два процессора, объединенных в одном чипе. В отличие от одноядерного, двухядерный процессор может работать с многопоточными приложениями, его операционная система умеет распределять программные потоки отдельно по каждому ядру. Это, в свою очередь, существенно увеличивает производительность системы.

Тема 1.2. СТРУКТУРА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА И НАЗНАЧЕНИЕ ОСНОВНЫХ УЗЛОВ

Процессор вычислительной машины

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

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

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

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

· указатель стека – содержит адрес вершины стека. В реальных машинах стек реализуется в основной памяти в области малых адресов. Заполнение стека производится записью числа в ячейку предшествующую прежней вершине стека, при этом содержимое указателя стека должно быть уменьшено на 1. При считывании числа из стека вершина стека смещается на следующую ячейку памяти, т. е. содержимое указателя стека увеличивается на 1;

· регистр адреса памяти – содержит адрес ячейки основной памяти, из которой считывается или в которую записывается в данный момент информация;

· дешифратор кода операции – устройство, преобразующее код операции в форму, требуемую для выполнения этой операции (например, адрес первой команды соответствующей микропрограммы). Информация, получаемая в результате декодирования, определяет все последующие действия по реализации данной команды;

· микропрограммный автомат – центральное исполнительное устройство процессора, формирует последовательность сигналов управления для других устройств, необходимую для выполнения поступившей команды.

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

· операционный блок, организующий выполнение и вырабатывающий результат арифметических и логических операций,

· регистры операндов, содержащие данные для выполнения текущей операции;

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

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

Организация памяти

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

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

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

Система программирования

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

Рис. 6. Отображения в памяти

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

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

Организация ввода-вывода

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

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

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

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

· соответствующее устройство может оказаться занятым другим процессом;

· единое управление вводом-выводом позволит повысить его эффективность за счет использования стандартных процедур, рационального распределения ресурсов;

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

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

Системный интерфейс

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

При этом обеспечивается решение следующих проблем:

· управление системными процессами со стороны оператора (прежде всего запуск или остановка программ);

· организация оперативного ввода данных;

· контроль за состоянием процесса, получение информации о ходе процесса;

· управление параметрами системы, назначение уровней доступа.

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

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

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

Тема 1.3. ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА В ПК

В вычислительных машинах используются три метода организации ввода-вывода информации:

· программно управляемый ввод-вывод;

· ввод-вывод по прерываниям;

· ввод-вывод с прямым доступом к памяти.

Рассмотрим более подробно эти методы.

Программно-управляемый ввод-вывод

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

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

На период выполнения внешним устройством поступившей команды, модуль ввода-вывода устанавливает соответствующий регистр (флаг) в состояние «1» («занято»). Для определения момента окончания выполнения операции процессор должен периодически опрашивать, в каком состоянии находится данный регистр. Только после того, как модуль ввода-вывода переведет регистр в положение «0», процессор отдаст команду на ввод-вывод следующего блока информации.

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

Ввод-вывод с прерываниями

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

Сохранение

параметров

прерванной

Выполнение программы

программы

Выполнение

программы

Сигнал на прерывание обработки

прерывания

 
 


Восстановление

параметров

прерванной

программы

Рис. 7. Механизм обработки прерываний

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

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

Прямой доступ к памяти

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

Для организации ввода-вывода процессор в этом случае передает на контроллер команду, включающую следующие параметры: вид запроса (чтение/запись), номер порта ввода-вывода, адрес начальной ячейки памяти для обмена данными, количество слов для чтения или записи. Этой информации оказывается достаточно для обеспечения операции ввода-вывода контроллером без дальнейшего привлечения центрального процессора. Контроллер ведет подсчет количества переданных слов в соответствующем регистре, выполняет буферизацию данных для согласования скорости работы основной памяти и внешнего устройства. сообщает центральному процессору о завершении ввода-вывода.

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

Тема 1.4. ОРГАНИЗАЦИЯ ПАМЯТИ

Принципы организации памяти

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

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

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

Область памяти для размещения операционной системы Раздел № 0
Задача А     Раздел № 1
Неиспользуемая область  
Задача В   Раздел № 2
  Неиспользуемая область  
  Задача С     Раздел № 3  
Неиспользуемая область

Рис. 8. Распределение памяти на статические разделы

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

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

Значительного сокращения времени обращения позволяет добиться использование двухуровневой памяти, когда между основной памятью и процессором размещается небольшая по объему быстродействующая буферная память – кэш-память (cashe – убежище, тайник). В процессе работы в кэш-память копируются те участки основной памяти, к которым в данное время производится обращение процессора. Для получения информации в этом случае процессор обращается вначале в кэш-память, и только если там требуемая информация не размещена, переадресует свое обращение в основную память. Существует несколько способов выбора и отображения участков основной памяти в кэш. Наиболее эффективный объем кэш-памяти для решения разных задач колеблется в пределах от 1 до 512 Кбайт.

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

Сегментная организация памяти

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

Обращение к элементам программы в виртуальном адресном пространстве будет состоять из имени сегмента и адреса смещения относительно начала сегмента. Физический адрес ячейки определится суммой адреса начального элемента сегмента и смещения относительно этого базового адреса.

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

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

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

Последний недостаток устраняется при страничном способе организации памяти.

Страничный способ организации памяти

При страничной организации памяти все фрагменты программы, на которые она разбивается, имеют одинаковый размер. Эти фрагменты и называют страницами, при этом память разбивается на физические страницы, а программа – на виртуальные. При нехватке объема запоминающего устройства часть страниц располагается в памяти, а часть – на внешнем носителе. Записываемый при этом на диск файл подкачки называют страничным файлом или swap-файлом. Тем самым в этом случае идет речь о свопинге страниц.

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

Для поиска нужной страницы также используется таблица дескрипторов, однако ее структура упрощается, так как в ней не надо указывать длину блоков (она одинакова для всех страниц).

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

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





Дата публикования: 2014-11-29; Прочитано: 3282 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.024 с)...