Современные операционные системы

Современные операционные системы
Что такое операционная система / Процессоры

Процессоры




Центральный процессор (ЦП) — это «мозг» компьютера. Он выбирает команды из памяти и выполняет их. Обычный цикл работы центрального процессора выглядит так: выборка из памяти первой команды, ее декодирование для определения ее типа и операндов, выполнение этой команды, а затем выборка, декодирование и выполнение последующих команд. Этот цикл повторяется до тех пор, пока не закончится программа. Таким образом осуществляется выполнение программ.

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

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

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



Полное описание: Процессоры




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


Библиотечная процедура
Библиотечная процедура, возможно написанная на ассемблере, обычно помещает номер системного вызова туда, где его ожидает операционная система, например в регистр (шаг 5). Затем она выполняет команду TRAP для переключения из пользовательского режима в режим ядра, и выполнение продолжается с фиксированного адреса, находящегося внутри ядра операционной системы (шаг 6). Фактически команда TRAP очень похожа на команду вызова процедуры, в том смысле, что следующая за ней команда берется из удаленного ... Читать

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

Команда TSL
А теперь давайте рассмотрим предложение, для реализации которого требуется небольшая помощь со стороны оборудования. Некоторые компьютеры, в особенности те, которые разрабатывались с прицелом на работу нескольких процессов, располагают следующей командой: TSL REGISTER.LOCK (TSL — Test and Set Lock, то есть проверь и установи блокировку), которая работает следующим образом. Она считывает содержимое слова памяти lock в регистр, а по адресу памяти, отведенному для lock, записывает ненулевое значени ... Читать

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

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