Задачи на расчет процессорного времени - Morozov-5F/operational-system-docs GitHub Wiki
Q: Рассмотрим систему, имеющую два центральных процессора, у каждого из которых есть два потока (работающих в режиме гипертрейдинга). Предположим, есть три запущенные программы: P0, P1 и P2 со временем работы 5, 10 и 20 мс соответственно. Сколько времени займет полное выполнение этих программ? Следует принять во внимание, что все три программы загружают центральный процессор на 100%, не осуществляют блокировку во время выполнения и не меняют центральный процессор, назначенный для их выполнения.
A: Может занять 20, 25, 30 и 35 мс в зависимости от того, как ОС распланирует выполнение этих программ. Если P0 и P1 запланированны на выполнение на один и тот же процессор, а P2 – на другой, то исполнение займет 20 мс. Если P0 и P2 будут запланированны на одном процессоре, а P1 – на другом, то исполнение займет 25 мс. Если P1 и P2 будут запланированны на одно процессе, а P0 – на другом, то исполнение займет 30 мс. В случае же, когда все три программы запланированны на один процессор, выполнение займет 35 мс.
Q: У компьютерной системы достаточно места, чтобы хранить в основной памяти n программ. Предположим, что каждый процесс проводит p своего времени в ожидании ввода-вывода. Какую часть времени будет задействован центральный процессор/какая часть тратится впустую?
A: Время задействования ЦП = 1 - p ^ n. Соответственно, время, потраченное впустую – p ^ n
Источники:
- Современные опреационные системы, Э. Таненбаум, 4-е изд.
- Ответы к заданиям, Э. Таненбаум, 3-е изд.