Дана модель клиент-серверной системы с кэширующим сервером, приведенная на схеме:
Модель работает по следующим принципам.
1. На двух серверах данных S1 и S2 хранятся 4 файла с данными (F1 и F2 на сервере S1, F3 и F4 на сервере S2). Файлы F1 и F4 имеют размер по 30 МБайт каждый, а файлы F2 и F3 – по 60 МБайт каждый. Сервера данных связаны с кэширующим сервером каналами передачи данных со скоростями 6 МБайт/с. Кэширующий сервер связан с тремя клиентами каналами передачи данных со скоростями 30 МБайт/с.
2. Три клиента должны скачать все 4 файла каждый. У каждого клиента есть свой план, определяющий последовательность скачивания файлов. Клиенты в соответствие со своими планами присылают запросы на
кэширующий сервер для скачивания конкретного файла. Клиент посылает запрос для скачивания следующего файла в момент, когда закончил скачивание предыдущего. Кэширующий сервер получает запрос мгновенно и сразу же начинает передачу данных клиенту из своей памяти или с сервера данных в соответствии с правилами, указанными ниже. Любой сервер может одновременно передавать данные нескольким клиентам.
3. Если в памяти кэширующего сервера в момент поступления запроса нет целиком нужного файла (в том числе, если он сейчас кэшируется, но кэширование не завершено), файл будет целиком скачан с сервера
данных, на котором хранится этот файл. В этом случае скорость передачи данных клиенту равна скорости передачи данных в канале между сервером данных и кэширующим сервером. Скорость передачи данных между клиентом и кэширующим сервером в этом случае не учитывается.
4. Если передача некоторого файла запрашивается в первый раз, то кэширующий сервер начинает параллельно с передачей этого файла клиенту кэшировать его в свою память. Кэширование происходит с той же скоростью, что и передача файла клиенту и завершается в момент завершения передачи этого файла клиенту. Одновременные процессы кэширования нескольких файлов никак не влияют друг на друга. Процесс
кэширования никак не влияет на процессы скачивания файлов. Кэширующий сервер имеет достаточно памяти для хранения всех четырех файлов и после кэширования хранит их сколь угодно долго.
5. Если в памяти кэширующего сервера в момент поступления запроса находится нужный файл, то он будет скачан с кэширующего сервера. Скорость скачивания клиентом файла с кэширующего сервера постоянная, зависит только от скорости передачи данных в канале между клиентом и кэширующим сервером и не зависит от количества одновременно выполняющихся операций скачивания данных клиентами или кэширования других файлов.
6. Если одновременно происходит передача нескольких файлов с одного сервера данных клиентам или передача одного и того же файла с сервера данных нескольким клиентам, то канал между сервером данных и кэширующим сервером на это время делится поровну на количество одновременных потоков передачи данных. Это значит, что скорость передачи уменьшается пропорционально количеству одновременных потоков получения данных. Даже если передается один и тот же файл одновременно нескольким клиентам, передача происходит независимыми потоками с разделением канала передачи данных.
Известно, что у клиентов были следующие планы скачивания файлов:
Клиент |
Первый файл |
Второй файл |
Третий файл |
Четвертый файл |
K1 |
F1 |
F2 |
F3 |
F4 |
K2 |
F3 |
F4 |
F1 |
F2 |
K3 |
F1 |
F3 |
F2 |
F4 |
Все клиенты начали одновременно скачивать файлы в соответствии со своими планами. Определите время, через которое у всех клиентов будут скачаны все файлы. В ответе укажите целое число секунд.