Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Мультипрограммирование в операционных системах

Мультипрограммирование

Следующий важный период развития операционных систем относится к 1965–75 годам. В это время в технической базе вычислительных машин произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что открыло путь к появлению следующего поколения компьютеров, представителем которого является, например, IBM/360.

В этот период были реализованы практически все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. Начинается расцвет системного программирования. Из направления прикладной математики, представляющего интерес для узкого круга специалистов, системное программирование превращается в отрасль индустрии, оказывающую влияние на практическую деятельность миллионов людей.

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

Мультипрограммирование — это способ организации вычислительного процесса, при котором в памяти компьютера находится одновременно несколько программ, попеременно выполняющихся на одном процессоре. Мультипрограммирование было реализовано в двух вариантах: пакетная обработка и разделение времени.

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

Для достижения этой цели в системах пакетной обработки используется следующая схема функционирования (рис.1.2): в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета формируется мультипрограммный набор, то есть множество одновременно выполняемых задач, предъявляющих к ресурсам различные требования, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Например, в мультипрограммном наборе желательно присутствие и вычислительных задач, и задач с интенсивным вводом-выводом. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.

Рис. 1.2 Централизованный характер вычислений в системах пакетной обработки

В системах пакетной обработки переключение процессора с одной задачи на другую происходит по инициативе самой активной задачи, например, когда она «отказывается» от процессора из-за необходимости выполнить операцию ввода-вывода. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор, а выполнение интерактивных задач станет невозможным. Взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что пользователь приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Такой порядок повышает эффективность функционирования аппаратуры, но снижает эффективность работы пользователя. К тому же в пакетных системах возможности диалога пользователя с приложением ограничены.

В системах разделения времени пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно взаимодействовать с пользователем. ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они сами освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени, поэтому пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.

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

Системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе. Кроме того, производительность системы снижается из-за дополнительного расходования вычислительной мощности на более частое переключение процессора с задачи на задачу. Поэтому критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Вместе с тем, мультипрограммное выполнение интерактивных приложений повышает и пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процессором.

Дата добавления: 2016-01-03 ; просмотров: 734 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Мультипрограммирование

Мультипрограммирование — способ организации выполнения нескольких программ на одном компьютере.

Разделяют мультипрограммирование в пакетных системах, системах реального времени и мультипрограммирование в системах разделения времени.

Содержание

Пакетная обработка

Пакетная обработка используется для достижения максимальной эффективности использования ресурсов вычислительной машины при выполнении вычислительных задач путём сбалансированной загрузки её компонентов, как например, АЛУ и УВВ. Задачи, планируемые к выполнению, называются пакетом. Переключение между задачами в пакетном режиме инициируется выполняющейся в данный момент задачей, поэтому промежутки времени выполнения той или иной задачи неопределены.

Системы разделения времени

Системы разделения времени используются для «одновременного» выполнения нескольких программ в интерактивном режиме. В отличие от пакетного режима, все программы получают определённые временные промежутки времени для выполнения, затем система инициирует переключение. Выделяемые временные интервалы могут быть равными для всех задач, а могут определяться их приоритетами

См. также

Ссылки

  • Современное программирование. Мультипрограммирование и разделение времени, Пашкеев С. Д.
  • Основы мультипрограммирования для специализированных вычислительных систем, Поспелов Д. А.
  • Введение в теорию вычислительных систем, Бертэн Ж., Риту М., Ружие Ж.

Wikimedia Foundation . 2010 .

Смотреть что такое «Мультипрограммирование» в других словарях:

мультипрограммирование — мультипрограммирование … Орфографический словарь-справочник

Читать еще:  Оператор в программировании

МУЛЬТИПРОГРАММИРОВАНИЕ — метод одновременного выполнения на одной ЭВМ нескольких программ, относящихся к различным задачам или различным ветвям одной и той же задачи. Работа отдельного устройства ЭВМ при этом координируется диспетчер программой … Большой Энциклопедический словарь

мультипрограммирование — сущ., кол во синонимов: 1 • программирование (9) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

Мультипрограммирование — многопрограммная работа, метод одновременного выполнения на ЦВМ нескольких программ (См. Программа), относящихся к различным задачам. Повышение быстродействия процессоров, увеличение объёмов памяти и состава разнообразных устройств ввода… … Большая советская энциклопедия

мультипрограммирование — метод одновременного выполнения на одной ЭВМ нескольких программ, относящихся к различным задачам или различным ветвям одной и той же задачи. Работа отдельного устройства ЭВМ при этом координируется диспетчер программой. * * *… … Энциклопедический словарь

Мультипрограммирование — 40. Мультипрограммирование Multiprogramming Режим обработки информации, при котором ресурсы вычислительной машины или системы обработки информации используются более чем одним процессом обработки информации Источник: ГОСТ 15971 90: Системы… … Словарь-справочник терминов нормативно-технической документации

МУЛЬТИПРОГРАММИРОВАНИЕ — способ орг ции выполнения на одной ЭВМ двух или более программ одновременно. Обеспечивается за счёт разделения времени работы процессора между выполняемыми программами; при этом либо остальные устройства ЭВМ закрепляются за отд. программами, либо … Большой энциклопедический политехнический словарь

МУЛЬТИПРОГРАММИРОВАНИЕ — метод одноврем. выполнения на одной ЭВМ неск. программ, относящихся к разл. задачам или разл. ветвям одной и той же задачи. Работа отд. устройства ЭВМ при этом координируется диспетчер программой … Естествознание. Энциклопедический словарь

мультипрограммирование — (см. мульти. ) способ организации работы электронных цифровых вычислительных машин, обеспечивающий одновременное выполнение нескольких программ. Новый словарь иностранных слов. by EdwART, , 2009 … Словарь иностранных слов русского языка

мультипрограммирование — мультипрограмм ирование, я … Русский орфографический словарь

Мультипрограммирование

Мультипрограммирование — способ организации выполнения нескольких программ на одном компьютере.

Разделяют мультипрограммирование в пакетных системах, системах реального времени и мультипрограммирование в системах разделения времени.

Содержание

Пакетная обработка

Пакетная обработка используется для достижения максимальной эффективности использования ресурсов вычислительной машины при выполнении вычислительных задач путём сбалансированной загрузки её компонентов, как например, АЛУ и УВВ. Задачи, планируемые к выполнению, называются пакетом. Переключение между задачами в пакетном режиме инициируется выполняющейся в данный момент задачей, поэтому промежутки времени выполнения той или иной задачи неопределены.

Системы разделения времени

Системы разделения времени используются для «одновременного» выполнения нескольких программ в интерактивном режиме. В отличие от пакетного режима, все программы получают определённые временные промежутки времени для выполнения, затем система инициирует переключение. Выделяемые временные интервалы могут быть равными для всех задач, а могут определяться их приоритетами

См. также

Ссылки

  • Современное программирование. Мультипрограммирование и разделение времени, Пашкеев С. Д.
  • Основы мультипрограммирования для специализированных вычислительных систем, Поспелов Д. А.
  • Введение в теорию вычислительных систем, Бертэн Ж., Риту М., Ружие Ж.

Wikimedia Foundation . 2010 .

Смотреть что такое «Мультипрограммирование» в других словарях:

мультипрограммирование — мультипрограммирование … Орфографический словарь-справочник

МУЛЬТИПРОГРАММИРОВАНИЕ — метод одновременного выполнения на одной ЭВМ нескольких программ, относящихся к различным задачам или различным ветвям одной и той же задачи. Работа отдельного устройства ЭВМ при этом координируется диспетчер программой … Большой Энциклопедический словарь

мультипрограммирование — сущ., кол во синонимов: 1 • программирование (9) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

Мультипрограммирование — многопрограммная работа, метод одновременного выполнения на ЦВМ нескольких программ (См. Программа), относящихся к различным задачам. Повышение быстродействия процессоров, увеличение объёмов памяти и состава разнообразных устройств ввода… … Большая советская энциклопедия

мультипрограммирование — метод одновременного выполнения на одной ЭВМ нескольких программ, относящихся к различным задачам или различным ветвям одной и той же задачи. Работа отдельного устройства ЭВМ при этом координируется диспетчер программой. * * *… … Энциклопедический словарь

Мультипрограммирование — 40. Мультипрограммирование Multiprogramming Режим обработки информации, при котором ресурсы вычислительной машины или системы обработки информации используются более чем одним процессом обработки информации Источник: ГОСТ 15971 90: Системы… … Словарь-справочник терминов нормативно-технической документации

МУЛЬТИПРОГРАММИРОВАНИЕ — способ орг ции выполнения на одной ЭВМ двух или более программ одновременно. Обеспечивается за счёт разделения времени работы процессора между выполняемыми программами; при этом либо остальные устройства ЭВМ закрепляются за отд. программами, либо … Большой энциклопедический политехнический словарь

МУЛЬТИПРОГРАММИРОВАНИЕ — метод одноврем. выполнения на одной ЭВМ неск. программ, относящихся к разл. задачам или разл. ветвям одной и той же задачи. Работа отд. устройства ЭВМ при этом координируется диспетчер программой … Естествознание. Энциклопедический словарь

мультипрограммирование — (см. мульти. ) способ организации работы электронных цифровых вычислительных машин, обеспечивающий одновременное выполнение нескольких программ. Новый словарь иностранных слов. by EdwART, , 2009 … Словарь иностранных слов русского языка

мультипрограммирование — мультипрограмм ирование, я … Русский орфографический словарь

Появление мультипрограммных операционных систем

Следующий важный период развития ОС — это 1965-1975 годы.

В технической базе ЭВМ был переход к интегральным микросхемам и, фактически, к новому поколению. Большие функциональные возможности интегральных схем сделали воз­можным реализацию на практике сложных компьютерных архитектур, как, например, IBM/360.

Тогда были реализованы практически все основные механизмы, прису­щие современным ОС: мультипрограммирование, мультипроцессирование, под­держка многотерминального многопользовательского режима, виртуальная па­мять, файловые системы, разграничение доступа и сетевая работа. Начинается расцвет системного программирования. Из области прикладной математики (для узкого круга специалистов) системное программирование превращается в отрасль индустрии, оказывающую непо­средственное влияние на практическую деятельность миллионов людей.

Читать еще:  Методология структурного программирования

Революционным событием стала промышленная реализация мультипрограммирования. Мультипрограммирова­ние — способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выпол­няющихся на одном процессоре. Это значительно улуч­шило эффективность ЭВМ. Она теперь могла исполь­зоваться почти постоянно, а не менее половины рабочего времени, как это было раньше.

Мультипрограммирование было реализовано в двух вариантах — в системах па­кетной обработки и разделения времени.

Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной за­грузки аппаратуры компьютера, но решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при после­довательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. Этим до­стигалась сбалансированная загрузка всех устройств компьютера, а, следователь­но, увеличивалось число задач, решаемых в единицу времени.

Но и здесь пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими програм­мами. Для того чтобы хотя бы частично вернуть пользователям ощущение непо­средственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем — системы разделения времени. Этот вариант рас­считан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых ОС разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного време­ни. В системах разделения времени эффективность использования оборудова­ния ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

Многотерминальный режим использовался не только в системах разделения вре­мени, но и в системах пакетной обработки. Теперь и оператор, и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие ОС получили название систем удаленного ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей — модемных соединений телефонных сетей или выделенных каналов.

К этому времени можно констатировать существенное изменение в распределе­нии функций между аппаратными и программными средствами компьютера. ОС становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикато­ров, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычисли­тельного процесса взяла на себя ОС. (В большинстве совре­менных компьютеров не предусмотрено даже теоретической возможности выпол­нения какой-либо вычислительной работы без участия ОС. После включения питания автоматически происходит поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто останавлива­ется.)

Важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Программная совместимость требовала и совместимости ОС. Однако такая совместимость подразумевает возможность работы на больших и малых вычислительных системах, с большим и с малым количеством разно­образной периферии, в коммерческой области и в области научных исследо­ваний. ОС, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они со­стояли из многих миллионов ассемблерных строк, написанных тысячами про­граммистов, и содержали тысячи ошибок, вызывающих нескончаемый поток ис­правлений. ОС этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.

Операционные системы и глобальные сети

В начале 70-х годов появились первые сетевые ОС, которые в отличие от многотерминальных позволяли не только рассредоточить поль­зователей, но и организовать распределенное хранение и обработку данных меж­ду несколькими компьютерами, соединенными каналами связи. Любая сетевая ОС, с одной стороны, выполняет все функции локаль­ной, а с другой — обладает некоторыми дополни­тельными средствами. Они позволяют ей взаимодействовать по сети с ОС других компьютеров. Программные модули, реализующие сетевые функции, появлялись в ОС постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки.

Хотя теоретические работы по созданию концепций сетевого взаимодействия ве­лись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены в конце 60-х годов. Тогда с помощью глобальных связей и техники коммутации пакетов удалось реа­лизовать взаимодействие рядовых машин и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычисли­тельных центров.

Операционные системы мини-компьютеров

И первые локальные сети

К середине 70-х годов широкое распространение полу­чили мини-компьютеры, такие как PDP-11, Nova, HP. Мини-компьютеры пер­выми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимо­сти компьютера.

Архитектура мини-компьютеров была значительно упрощена, что нашло отражение и в их ОС. Многие функции мультипрограммных многопользовательских ОС были усечены, учитывая ограниченность ресурсов мини-компьютеров. ОС мини-компьютеров часто стали делать специализированными, например, только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержания режима разделения времени (RSX-11M для тех же компьютеров). Эти ОС не всегда были многополь­зовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров.

Важной вехой в истории мини-компьютеров и вообще в истории ОС явилось создание UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени про­граммный код для UNIX был на 90 % написан на языке высокого уровня Си. Широ­кое распространение эффективных Си-компиляторов сделало UNIX уникальной для того времени ОС, обладающей возможностью сравнительно легкого переноса на различные типы компьютеров. Поскольку она поставлялась вместе с исход­ными кодами, то стала первой открытой ОС, которую могли совершенство­вать простые пользователи-энтузиасты. Хотя UNIX была первоначально разра­ботана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех клас­сах компьютеров: суперкомпьютерах, больших компьютерах, мини-компьютерах, серверах и рабочих станциях, персональных компьютерах.

Читать еще:  Высшие и низшие языки программирования

Доступность мини-компьютеров и вследствие этого их распространенность на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находя­щихся в одном здании или даже в одной комнате. Первое сетевое приложение для ОС UNIX появилось в 1976 году и начало распространяться с версией 7 UNIX с 1978 года.

Мультипрограммирование в системах разделения времени

В том случае, когда критерием эффективности работы системы является удобство работы пользователя, то применяется другой способ мультипрограммирования – разделения времени. В системах разделения времени пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно получать возможность “общения” с пользователем. Понятно, что в пакетных системах возможности диалога пользователя с приложением весьма ограничены.

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

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

Одной из основных причин, по которой системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, является то, что на выполнение принимается каждая запущенная пользователем задача, а не та, которая “выгодна” ОС. Кроме того, производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу. Это вполне соответствует тому, что критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Вместе с тем мультипрограммное выполнение интерактивных приложений повышает и пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку в то время, пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процессором.

Мультипрограммирование в системах

Еще одна разновидность мультипрограммирования используется в системах реального времени, предназначенных для управления с помощью компьютера различными техническими объектами (например, станком, спутником, научной экспериментальной установкой и т. д.) или технологическими процессами. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная управляющая объектом программа. В противном случае может произойти авария. Таким образом, критерием эффективности здесь является время реакции системы. Требования ко времени реакции зависят от специфики управляемого процесса. Контроллер робота может требовать от встроенного компьютера ответ в течение менее 1 мс, в то время как при моделировании полета может быть приемлем ответ в 40 мс.

В системах реального времени мультипрограммная смесь отличается от рассмотренных ранее и представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.

Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения с одной задачи на другую. Время переключения между задачами в системах реального времени часто определяет требования к классу процессора даже при небольшой его загрузке.

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

Статьи к прочтению:

Лекция 6: Планирование заданий. Взаимодействие и синхронизация процессов и потоков

Похожие статьи:

Концепция процессов и потоков. Задание, процессы, потоки (нити), волокна Одним из основных понятий, связанных с операционными системами, являетсяпроцесс…

Основной особенностью ОСРВ является обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Поток…

Ссылка на основную публикацию
Adblock
detector