Многая задачность
От: mrhru Россия  
Дата: 06.02.03 11:19
Оценка:
Извиняюсь, задача на компьютерную тему.

Пусть многозадачная ОС работает на одном процессоре.

Одновременно на исполнение подошло десять одинаковых задач.
Для выполнения одной задачи в монопольном режиме требуется 1 с.

А теперь варианты выполнения задач.
Параллельный.
Процессор по очереди переключается с задачи на задачу через 0.01 с.
Время переключения пренебрежительно мало.
Процессор, проработав 10 с, выполнит все задачи.
В среднем, время ожидания завершения произвольной задачи составит ~10 с.

Последовательный.
Сначала исполняется одна задача, затем следующая и т.д.
Процессор, проработав 10 с, также выполнит все задачи.
Время ожидания завершения задач составит: 1 с для первой, 2 с для второй, ... 10 с — для последней.
В среднем выходит 5.5 с.

Вопросы:
1) Получается, что последовательное исполнение лучше (в смысле быстродействия), так?
2) Чем занимается процессор в "последовательном" режиме почти половину времени, если завершает свою работу через 10 с., а в среднем на задачу тратится вдвое меньше?

(Эту задачу придумал сам. Третий вопрос — можно ли ею гордиться? )
Евгений
Re: Многая задачность
От: Pushkin Россия www.linkbit.com
Дата: 06.02.03 11:37
Оценка:
Здравствуйте, mrhru, Вы писали:

M>1) Получается, что последовательное исполнение лучше (в смысле быстродействия), так?


Если результаты получаются в самом конце и они все самоценны, то да.
Если каждая задача сыплет ответами 10 раз в секунду или все ответы надо в итоге сложить, то по фигу.

M>2) Чем занимается процессор в "последовательном" режиме почти половину времени, если завершает свою работу через 10 с., а в среднем на задачу тратится вдвое меньше?


Ты нас не путай Каждой задачей процессор занимается ровно 1 с.
А ожидание — дело юзера. Чем занимается он — другой вопрос.

Вот ещё на эту тему.
10 машинисток печатают 10 докладов 10 дней.
Сколько дней потребуется 1 машинистке на один доклад?
Re: Многая задачность
От: Михаил Можаев Россия www.mozhay.chat.ru
Дата: 06.02.03 11:42
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Вопросы:

M>1) Получается, что последовательное исполнение лучше (в смысле быстродействия), так?

Немного изменим сценарий последовательного выполнения.
процессор по очереди выполняет все задачи, но за 0.01 с. до завершения приостанавливает выполнение задачи. А в последние 0.1 с. завершает все задачи.
Время ожидания выполнения задачи получается те же ~10 с.
... << RSDN@Home 1.0 beta 5 >>
Re[2]: Многая задачность
От: mrhru Россия  
Дата: 06.02.03 11:44
Оценка:
Здравствуйте, Pushkin, Вы писали:

...

P>Вот ещё на эту тему.

P>10 машинисток печатают 10 докладов 10 дней.
P>Сколько дней потребуется 1 машинистке на один доклад?

Ты нас не путай ((с) Pushkin).

Естественно, 1 день. А двум машинисткам — 2 дня, и т.д. Потому что, чем больше одновременно "работающих" машинисток, тем больше им надо времени на перемывание косточек друг другу и всем своим родственникам, знакомым, примериванию всяких кохточек, мухточек и пр.
Евгений
Re[2]: Многая задачность
От: MichaelP  
Дата: 06.02.03 11:46
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Вот ещё на эту тему.

P>10 машинисток печатают 10 докладов 10 дней.
P>Сколько дней потребуется 1 машинистке на один доклад?

Сколько же его произносить будут, если машинистке целых 10 дней печатать надо!
Re[2]: Многая задачность
От: andik  
Дата: 06.02.03 11:48
Оценка:
Здравствуйте, Pushkin, Вы писали:


P>10 машинисток печатают 10 докладов 10 дней.

P>Сколько дней потребуется 1 машинистке на один доклад?

1. считаем каждая машинистка печает один доклад
а) она его печатает 10 дней => ответ 10
б) печатает 1 день, потом может , а может ... кто ее знает => 1 день
в) одна 10 дней, а остальные
....

что с ними делать?
Re[3]: Многая задачность
От: Михаил Можаев Россия www.mozhay.chat.ru
Дата: 06.02.03 11:50
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Естественно, 1 день. А двум машинисткам — 2 дня, и т.д. Потому что, чем больше одновременно "работающих" машинисток, тем больше им надо времени на перемывание косточек друг другу и всем своим родственникам, знакомым, примериванию всяких кохточек, мухточек и пр.


Профессиональная машинистка вполне может печатать и при этом совершенно спокойно перемывать косточки.
А вот примеривание кофточек занимает необходимый для печатания ресурс — "руки".

Если без примеривания кофточек, то, думаю, что все же 10 дней.

С другой стороны, не сказано сколько машинок у них в распоряжении. Если одна, то получается 1 день.

А если несколько, но меньше 10?
... << RSDN@Home 1.0 beta 5 >>
Re: Многая задачность
От: Андрей Тарасевич Беларусь  
Дата: 07.02.03 17:48
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Одновременно на исполнение подошло десять одинаковых задач.

M>Для выполнения одной задачи в монопольном режиме требуется 1 с.

M>А теперь варианты выполнения задач.

M>Параллельный.
M>Процессор по очереди переключается с задачи на задачу через 0.01 с.
M>Время переключения пренебрежительно мало.
M>Процессор, проработав 10 с, выполнит все задачи.
M>В среднем, время ожидания завершения произвольной задачи составит ~10 с.

M>Последовательный.

M>Сначала исполняется одна задача, затем следующая и т.д.
M>Процессор, проработав 10 с, также выполнит все задачи.
M>Время ожидания завершения задач составит: 1 с для первой, 2 с для второй, ... 10 с — для последней.
M>В среднем выходит 5.5 с.

M>Вопросы:

M>1) Получается, что последовательное исполнение лучше (в смысле быстродействия), так?

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

С точки зрения реальной жизни, условие у тебя заметно "идеализировано". Твое условие предполагает запуск задач, которые на протяжении всего времени выполнения загружают процессор на 100%. В такой ситуации запускать более одной задачи в однопроцессорной системе нет никакого смысла. А в реальной жизни в процессе решения отдельной задачи процессор может часто простаивать. Например, при выполнении синхронной операции ввода-вывода. В такой ситуации имеет смысл запускать несколько задач на одном процессоре, и время параллельного выполнения задач будет меньше времени последовательного выполнения. Чем больше процент времни простоя процессора в рамках одной задачи, тем больше задач можно запустить одновременно и тем больше будет выигрыш параллельного выполнения над поледовательным.

M>2) Чем занимается процессор в "последовательном" режиме почти половину времени, если завершает свою работу через 10 с., а в среднем на задачу тратится вдвое меньше?


Не понял. Нет никакого смысла сравнивать среднее время ожидания с суммарным временем ожидания. Это сравнение ни о чем не говорит.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.