Инструкций в секунду для операционных систем - PullRequest
0 голосов
/ 11 декабря 2010

Я новичок в области компьютерной архитектуры и дизайна. Мой вопрос был высокоуровневым программным набором инструкций, выполняемых в CPU один за другим. Включает ли это даже инструкции операционной системы в качестве издержек при выполнении этих инструкций? Например: если в процессоре 2 ГГц есть 2 * 10 ^ 9 инструкций, которые могут быть выполнены за 2 * 10 ^ 9 тактов. Тогда операционная система всегда выполняет около 1 * 10 ^ 9 инструкций в секунду. Всегда ли присутствуют эти накладные расходы, и только другие 1 * 10 ^ 9 инструкции доступны бесплатно для выполнения для других пользовательских запланированных программ?

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

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Чтобы немного расширить ответ г-на Мартина: (будьте осторожны, это очень упрощено) Задача ОС состоит в том, чтобы обрабатывать те вещи, которые программа не хочет создавать для себя - например, обрабатывать прерывания ввода-вывода и планировать несколько задач для совместного использования компьютера. В идеальном мире на машине, на которой выполняется одна прикладная программа, программа будет контролировать ЦП, пока ей не понадобится ОС, чтобы что-то для нее сделать, например, прочитать следующую запись из файла на диске (который вызывает многоуровневые «службы», чтобы выяснить, какой диск, какой файл, какую запись, какой байт и какой блок диска на какой дорожке запрашивать у контроллера диска. Типичная «реальная» машина также имеет кучу фоновых задач, сохраняя экран обновленным, считывая часы проверка новой почты, загрузка исправлений и т. д. Здесь возникают приоритеты. некоторые задачи выполняются с более низким приоритетом, потому что нам все равно, когда они выполняются, например, обновление значка на панели задач в Windows для уведомления о новой почте. Другие задачи выполняются с высоким приоритетом, но они очень короткие, например, следуют за мышью на экране и изменяют ее с указателя на руку. Имейте в виду, что типичная задача выполняет всего несколько сотен инструкций, прежде чем потребуется какая-то служба ОС и она будет спать, пока это происходит. Большие приложения могут иметь сотни тысяч «инструкций», но опять же тратят некоторое время на ожидание чего-то другого, от нажатия кнопки или ввода с клавиатуры до ответа от поиска в базе данных на другом компьютере. Наиболее ресурсоемкие приложения, такие как вычисление числа Пи до миллиона знаков после запятой, могут потреблять 99,9% процессора в течение длительных периодов, но ОС будет периодически прерывать его, чтобы посмотреть, нужно ли что-то еще делать. Еще во времена DOS (1980-е годы) программа могла на некоторое время принимать процессор CPU, но если ему нужно было прочитать, записать или напечатать что-нибудь на экране, то это было бы как BIOS, чтобы сделать это, если только программа не была запущена. написано, чтобы сделать эти основные операции сам. Отчасти это то, как реагируют компьютерные игры, выполняя определенные операции, необходимые для непосредственной модификации экрана и чтения непосредственно из буферов клавиатуры или устройства мыши, минуя ОС. Надеюсь, я вас больше не смущал ...

1 голос
/ 11 декабря 2010

Да на оба вопроса, в определенных пределах.

Во-первых, да, если ОС использует 1e9 инструкций в секунду, остается только 1e9 инструкций в секунду.

Во-вторых, даВы хотели бы уменьшить это как можно больше;это называется «накладные расходы».

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

...