#operating-system
Вопрос:
это мой первый пост здесь. В настоящее время я изучаю современные операционные системы и застрял на этом вопросе : в компьютерной системе достаточно места для хранения пяти программ в основной памяти. Эти программы простаивают в ожидании ввода-вывода половину времени. Какая доля процессорного времени тратится впустую? Ответ 1/32, но почему ?
Ответ №1:
Ответ 1/32, но почему ?
Предложение «Эти программы простаивают в ожидании ввода-вывода половину времени» неоднозначно. Давайте рассмотрим несколько различных способов интерпретации этого предложения и посмотрим, соответствуют ли они ожидаемому ответу:
а) «Каждая из 5 программ тратит 50% общего времени на ожидание ввода-вывода». В этом случае, пока одна программа ожидает ввода-вывода, процессор может использоваться другими программами; и все программы вместе взятые могут использовать 100% процессорного времени без потери времени. Фактически, вы сможете использовать 100% процессорного времени только с 2 программами (1-я программа использует процессор, в то время как 2-я программа ожидает ввода-вывода, затем 2-я программа использует процессор, в то время как 1-я задача ожидает ввода-вывода, затем …). Это не может быть предполагаемым значением «Эти программы простаивают в ожидании ввода-вывода половину времени«, потому что ответ (возможно, потраченное впустую нулевое время процессора) не соответствует ожидаемому ответу.
б) «Все программы простаивают в ожидании ввода-вывода одновременно, в течение половины времени». Это не может быть предполагаемым значением вопроса, потому что ответ, очевидно, будет «50% процессорного времени тратится впустую» и не соответствует ожидаемому ответу.
c) «Каждая программа тратит половину доступного ей времени на ожидание ввода-вывода». В этом случае первая программа 100% процессорного времени, но тратит 50% времени использования процессора и ожидания ввода-вывода на другие 50% времени, оставляя 50% процессорного времени на следующий программу; затем 2-Я программа использует 50% оставшегося времени процессора (25% от общего времени) с помощью процессора и 50% оставшегося времени процессора (25% от общего времени) в ожидании ввода-вывода, оставив 25% часть процессорного времени для следующей программы; затем третья программа использует 50% от оставшейся процессорного времени (12.5% от общего времени) использование процессора и 50% оставшегося времени процессора (12,5% от общего времени) ожидание ввода-вывода, после чего 12,5% времени процессора будет доступно для следующих программ…
В этом случае каждая программа уменьшает оставшееся время вдвое, поэтому вы получаете последовательность «отрицательная степень 2».(1/2, 1/4, 1/8, 1/16, 1/32) это приводит к ответу, который соответствует ожидаемому ответу.
Поскольку мы получили правильный ответ на эту интерпретацию, мы можем предположить, что именно это должно было означать «Эти программы простаивают в ожидании ввода-вывода половину времени«.