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

Но мои учебники никогда не доходят до того, почему существует линия (и где эта линия проведена), где каждое оборудование и ОС говорят «хорошо, эта часть задачи - моя ответственность», и почему ОС просто не выполняет все это само по себе, или аппаратное обеспечение просто не делает все это само по себе?

Я понимаю, что этот вопрос можно сформулировать лучше, но мне было довольно сложно передать то, что я пытался задать. Вопрос должен быть простым, и я думаю , вы можете подвести итог , как «почему некоторые вещи , как правило , заботятся аппаратными средствами, в то время как другие вещи , как правило , ОС?"

1 ответ1

3

Почему об определенных вещах обычно заботится аппаратное обеспечение, а об остальном - ОС?

Это не та или иная ситуация, а случай, когда «программное обеспечение (ОС и пользовательские программы) определяет, как и что должно делать оборудование». Другими словами, программное обеспечение всегда что-то делает, а оборудование всегда что-то делает.

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

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

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

добавление

Возможно, ваш оригинальный вопрос основан на запросах «как работает X?", и есть ответы типа" ОС делает это "или" оборудование делает это ". Проблема с (упрощенными) ответами может привести к исходному вопросу. Эти ответы основаны на точке зрения респондента или где функциональность была (по существу) реализована или легко объяснена.

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

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

Обратите внимание, что есть тонкая (или нечеткая) линия относительно того, где должна быть реализована функциональность. Большинство программистов считают, что язык высокого уровня должен быть скомпилирован (в машинный язык), но были компьютеры, которые могут напрямую выполнять "язык высокого уровня" (то есть "прямое выполнение"). Поскольку стоимость аппаратного обеспечения удешевляется и / или возникает потребность в скорости, существует миграция некоторых функций, которые ранее были в программном обеспечении, для реализации в кремнии (например, аудио- и видеокодеры и декодеры). Процессоры RISC выбрали противоположный подход, сделав набор инструкций довольно простым, что добавляет некоторую сложность программному обеспечению и ОС. Иногда то, что "делается аппаратно", - это "черный ящик" или специализированная интегральная схема, которая, если смотреть глубже, состоит из встроенного процессора с ОЗУ, ПЗУ (для встроенного ПО) и периферийных устройств, составляющих подсистему.

пример

Если спросить "как работает виртуальная память?«вы, вероятно, получите набор ответов, некоторые с решительной точки зрения программного обеспечения или ОС (« ОС делает ... »), а некоторые с аппаратной точкой зрения (« аппаратные средства ... »). В идеале ответы должны показать, как программное и аппаратное обеспечение должны взаимодействовать (и как должна разрабатываться вся операционная система) для достижения чего-то вроде виртуальной памяти. Например:

  • Инструкция в пользовательской программе ссылается на область памяти;
  • Это местоположение вызывает ошибку страницы:
  • Программа пользователя приостановлена, и обработчик прерываний PF выполняется.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .