Лена скачивает дистрибутив ОС Linux (задача по информатике)

Лена скачивает дистрибутив ОС Linux (задача по информатике)

0
Лена скачивает дистрибутив ОС Linux с зарубежного сайта-репозитория, пользуясь односторонним каналом цифровой передачи данных через телевизионное эфирное вещание, обеспечивающим прием информации со скоростью 4 Мбит/с. При этом информация передается фрагментами по 10 Мбайт. Для начала передачи каждого фрагмента компьютер Лены должен отправить на сервер сообщение-запрос объемом 32 Кбайт, а после получения фрагмента подтвердить его безошибочный прием отдельным сообщением объемом 16 Кбайт. Для отправки таких сообщений Лена пользуется радиомодемом GPRS, который обеспечивает скорость передачи информации 128 кбит/с. Определить минимально возможное время, за которое Лена может скачать файл дистрибутива объемом 350 Мбайт.

Не смотря на то, что подобный вопрос является оффтопиком для нашего сайта, нам очень приятно, что на информатике в школе есть задачи, в которых упоминается Linux, поэтому мы решили оставить этот вопрос и привести свое решение.

Итак, у нас есть следующие данные:

  • Размер файла: 350Mb
  • Размер фрагмента файла: 10Mb
  • Скорость скачивания: 4Mbit/s
  • Исходящие пакеты: 32Kb (запрос) и 16Kb (подтверждение)
  • Скорость отправки данных: 128Kbit/s

Решение:

  1. Определим, сколько всего фрагментов файла нам нужно скачать.
    Размер файла 350Mb, данные передаются фрагментами по 10Mb, значит всего мы должны скачать 350 / 10 = 35 фрагментов.
    Итог: всего нужно скачать 35 фрагментов.
  2. Определим, сколько секунд мы потратим на скачивание (загрузку) одного фрагмента файла.
    Скорость скачивания 4Mbit/s. Нам нужно определить, сколько мегабайт данных мы скачиваем при такой скорости за 1 секунду. Один мегабит равен 0.125 мегабайт, значит 4 мегабита равны 0.125 * 4 = 0,5Mb. Получается, что за 1 секунду мы скачиваем 0.5Mb. Отсюда получаем, что 1 фрагмент размером 10Mb мы скачиваем за 10 / 0.5 = 20 сек.
    Итог: 1 фрагмент размером 10Mb скачивается за 20 сек.
  3. Определим, сколько данных мы отправляем при скачивании 1 фрагмента.
    Чтобы скачать один фрагмент файла нам нужно сначала отправить запрос размером 32Kb, затем мы скачиваем фрагмент и отправляем подтверждение размером 16Kb. Получается, что на каждый фрагмент мы в сумме отправляем 32Kb + 16Kb = 48Kb.
    Итог: на 1 фрагмент мы отправляем 48Kb данных.
  4. Определим, сколько времени мы тратим на отправку данных (48Kb) при скачивании 1 фрагмента.
    Скорость отправки данных 128Kbit/s. Нам нужно определить сколько килобайт данных мы отправляем при такой скорости за 1 секунду. Один килобит равен 0.125 килобайт, значит 128 килобит равны 0.125 * 128 = 16Kb. Получается, что за 1 секунду мы скачиваем 16Kb. Отсюда получаем, что отправка 48Kb данных будет выполняться 48 / 16 = 3 сек.
    Итог: При скачивании 1 фрагмента файла мы отправляем 48Kb за 3 сек.
  5. Определим, сколько всего времени мы тратим на скачивание 1 фрагмента файла, включая исходящие данные (запрос и подтверждение).
    Из результатов, полученных выше в пунктах 2 и 4, в сумме на скачивание 1 фрагмента файла, включая отправку запроса и подтверждения мы тратим 20 сек + 3 сек = 23 сек.
    Итог: На скачивание 1 фрагмента файла, включая отправку запроса и подтверждения, мы тратим 23 сек.
  6. Определим, сколько мы потратим всего времени на скачивание всех фрагментов файла, включая отправку запросов и подтверждений.
    В пункте 1 мы получили, что всего нам нужно скачать 35 фрагментов. В пункте 5 мы определили, что на 1 фрагмент мы тратим 23 сек. Получается, что на скачивание 35 фрагментов мы потратим 35 * 23 = 805 сек.
    Итог: Всего на скачивание файла (всех фрагментов файла), включая отправку запросов и подтверждений, мы потратим 805 сек.

Ответ: Лена может скачать файл за 805 секунд.

Примечание: При расчете мы учитывали время на отправку последнего пакета-подтверждения. То есть, когда мы скачали последний фрагмент файла, мы отправляем последний пакет-подтверждение. Но, непосредственно перед отправкой последнего пакета-подтверждения, файл у нас уже загружен целиком. Поэтому, если не учитывать последний пакет-подтверждение, время на загрузку файла составит не 805 сек, а 804 сек, так как на отправку 1 пакета-подтверждения (размером 16Kb) со скоростью 128Kbit затрачивается 16 / 16 = 1 сек (напомним, что 128Kbit=16Kb).

Ответ, если не учитывать последний пакет-подтверждение: 804 секунды.

Лайков: 0
войдите, чтобы ставить лайки

Комментарии

Комментариев пока не было.

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила