Аппаратные средства и программное обеспечение


1. Аппаратные средства. Центральный процессор и его режимы работы. Мультипроцессорная обработка. Расслоение памяти. Регистр перемещения. Прерывания и опрос состояний. Буферизация. Защита памяти. Периферийные устройства и их режимы. Каналы ввода-вывода. Захват цикла памяти. Относительная адресация. Виртуальная память. Прямой доступ к памяти. Иерархия памяти. 
2. Программное обеспечение.
Аппаратные средства
Аппаратные средства — это устройства компьютера: процессоры, устройства памяти, устройства ввода-вывода, а также средства приема-передачи данных.
Мы рассмотрим различные виды аппаратных средств и режимы их работы, которые имеют важное значение с точки зрения работы ОС.

Центральный процессор и его режимы работы
Следует обратить внимание на два основных режима: режим задачи (problem state) и режим супервизора (supervisor state). Операционной системе обычно присваивается статус самого полномочного пользователя и работает она в режиме супервизора, имея доступ ко всем командам, предусмотренным в машине. Программы пользователя имеют доступ лишь к ограниченному числу команд и, в обычном случае, работают в режиме задачи. Команды, которые не могут выполняться в режиме задачи, носят название привилегированных команд.

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

Расслоение памяти
Метод расслоения памяти (storage interleaving) применяется для увеличения скорости доступа к оперативной памяти. В обычном случае во время обращения к какой-либо области памяти никакие другие обращения к памяти производиться не могут. При расслоении памяти соседние по адресам ячейки размещаются в различных модулях памяти, так что появляется возможность производить несколько обращений одновременно. Например, при расслоении на два направления ячейки с нечетными адресами оказываются в одном модуле памяти, а с четными — в другом. Таким образом, расслоение памяти позволяет обращаться сразу к нескольким ячейкам, поскольку они относятся к различным модулям.

Регистр перемещения
Регистр перемещения (relocation register) обеспечивает возможность динамического перемещения программ в памяти. В регистр перемещения заносится базовый адрес программы, хранящейся в основной памяти. Содержимое регистра перемещения прибавляется к каждому указанному в выполняемой программе адресу. Благодаря этому пользователь может писать программу так, как если бы она начиналась с нулевой ячейки памяти, но реально в памяти программа может размещаться совсем не в тех местах, которые она должна была бы занимать согласно адресам, указанным при трансляции.

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

Буферизация
Буфер (buffer) — это область оперативной памяти, предназначенная для промежуточного хранения данных при выполнении операций ввода-вывода.
Существует несколько способов буферизации. При простой буферизации процесс обработки данных процессором и процесс занесения новых данных в буфер разделены во времени, т.е. в момент занесения новых данных процесс обработки производиться не может, и наоборот. Метод двойной буферизации позволяет совмещать эти процессы, т.е. когда канал заносит данные в один буфер, процессор может обрабатывать данные другого буфера. Такое поочередное использование буферов называют буферизацией с переключением или триггерной буфферизацией (flip-flop buffering). Ввод-вывод с буферизацией носит название спулинг (spooling).