Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проблемы оценки конфигурации систем. Выбор конфигурации сервераСУБД↑ Стр 1 из 6Следующая ⇒ Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Основные характеристики РС В распределенных системах, удаленные компьютеры взаимодействуют друг с другом имитируя локальную сеть. В РС хранение данных и вычислит процессы распределяются между отдельными компьютерами сети. РС нужны для повышения производительности ПК (т.е. вычислительной мощности и объема хранения данных). РС позволяют обращаться огромному количеству пользователей к одному и тому же набору файлов, гарантируя надежность и эффективность. Свойства РС (атрибуты): I. Быстродействие и расширяемость. В распределённых системах запросы могут быть отправлены по параллельным серверам, с целью повышения производительности. Расширяемость – означает способность системы увеличиваться в масштабах, т.е подключаться к системе не влияя на работу существующих приложений пользователей II. Связанность и безопасность. РС обеспечивают прямое обращение к ресурсу, несмотря на то, что все его части могут быть распределены по сети. Связанность в РС требует наличия коммуникационных протоколов, обеспечивающих общий доступ (интерфейс) для всех ПК системы. III. Надёжность и отказоустойчивость. Надёжность и отказоустойчивость в РС реализуется за счёт репликации отдельных пк в составе системы (резервное копирование). В таком случае сбой на одном ПК не повлияет на работу других. IV.Прозрачность Обеспечивает доступ пользователя к РС, скрывая от него аспекты распределенной реализации. Существует 8 типов прозрачности: Прозрачность доступа – позволяет компонентам различных программных и аппаратных платформ взаимодействовать между собой. Прозрачность местоположения – основано на прозрачности доступа и предназначено для скрытия физического местоположения ресурса в РС от желающих ими воспользоваться. Прозрачность сбоев – Представляет собой метод обеспечения отказоустойчивости, путём применения репликации. Прозрачность репликации – позволяет скрывать от пользователя факт существования нескольких копий того или иного ресурса. Прозрачность постоянства – позволяет скрывать от пользователя информацию о месте хранения ресурса (операционное запоминающие устройства, либо дисковый накопитель) Прозрачность транзакций – позволяет системе добиваться непротиворечивости скрывая выполнение согласований в группе ресурсов. Транзакция часто требует создание контрольных точек, либо выполнение репликации. Транзакция – это последовательность операции над БД, рассматривает БД как единое целое. Это означает следующее: либо успешно выполняются все составляющие транзакционные операции и СУБД фиксирует результат их выполнения (команда COMMIT), либо происходит откат всех транзакции(COLLBACK). Прозрачность миграций и местоположения – скрывает от пользователя перемещение компонентов в системе с одного сервера на другой. Существует шесть основных характеристик распределенных систем. 1.Совместное использование ресурсов. Распределенные системы допускают совместное использование как аппаратных (жестких дисков, принтеров), так и программных (файлов, компиляторов) ресурсов. 2.Открытость. Это возможность расширения системы путем добавления новых ресурсов. 3.Параллельность. В распределенных системах несколько процессов могут одновременно выполнятся на разных компьютерах в сети. Эти процессы могут взаимодействовать во время их выполнения. 4.Масштабируемость. Под масштабируемостью понимается возможность добавления новых свойств и методов. 5.Отказоустойчивость. Наличие нескольких компьютеров позволяет дублирование информации и устойчивость к некоторым аппаратным и программным ошибкам. Распределенные системы в случае ошибки могут поддерживать частичную функциональность. Полный сбой в работе системы происходит только при сетевых ошибках. 6.Прозрачность. Пользователям предоставляется полный доступ к ресурсам в системе, в то же время от них скрыта информация о распределении ресурсов по системе.
Технология построения распределенной системы Corba Типовая архитектура брокер объектных запросов представляет стандартную технологию построения РС, получившую широкое распространение принятом в начале 90х годов рабочей группой по развитию стандартов OMG объектного программирования CORBA превратилось в открытый стандарт, призванный обеспечить взаимодействие между программами как в однородных так и в неоднородных системах, подобно RMI. CORBA поддерживает передачу и прием объектов в виде параметров вызова и возвращаемых значений в удаленных процедурах во время взаимодействия между процессами, однако, в отличии от технологии RMI(основана на использовании языка JAVA), CORBA является самостоятельным системно-независимым языком, что позволяет различным ОС и приложениям написанном на разных языках программирования работать с общим языком CORBA. РС основные на технологии CORBA обладают относительно простой структурой. Процесс на системе клиенты передает вызов вместе с необходимыми аргументами в клиентскую заглушку. Клиентская заглушка выполняет упаковку параметров и передачу вызовов через брокер объектных запросов(ORB), взаимодействующим с ORB на сервере ORB,на сервере в свою очередь передаст вызов на скелетный уровень сервера, где выполняется процедура распаковки параметров и последующая передача запроса в вызываемую процедуру. Независимость от языка пользователя обеспечивается CORBA благодаря наличию языка описания интерфейса IDL. Язык IDL позволяет программистам четко определять процедуры вызовов которых допустили для данного объекта. Приложения, написанные на разных языках получают возможность взаимодействовать друг с другом через CORBA следуя спецификацией IDL для каждого объекта.
Взаимные исключение в распределенных системах, широковещание. Взаимное исключение описывает причинно зависимые отношения. Используется для однопроцессорных и многопроцессорных систем с общим доступом к памяти. Мультипроцессоры Norma(широковещание FIFO гарантирует,что два сообщения, отправленные одно вслед за другим достигнут адресата в том же порядке в каком были отправлены). Причинное широковещание - гарантирует что если сообщение М1 является причинно зависимым от М2, то не один процесс не примет сообщ М2 пока не получит сообщение М1. Атомарное широковещание – все сообщения в системе будут получены всеми процессами в одном и том же порядке.
Миграция процессов в распределенных системах Альтернативой удаленной связи является миграция процессов(передача процесса между 2мя ПК). Миграция процессов позволяет организовать доступ к ресурсам, при клонировании процесса на удаленной системе создается его копия. Поскольку при клонировании процесса оригинальный процесс продолжает свое существование в этом случае может понадобиться синхронизация доступа к разделению памяти между этими двумя процессами
Основные понятия информационных сетей. Информационная сеть — сеть, предназначенная для обработки, хранения и передачи данных. Информационная сеть состоит из: - абонентских и административных систем; - связывающей их коммуникационной сети. В зависимости от расстояния между абонентскими системами, информационные сети подразделяются на глобальные, территориальные и локальные. Различают универсальные и специализированные информационные сети. Локальная сеть - это коммуникационная система, поддерживающая в пределах здания и некоторых других ограниченных территорий, включающая от 2 и более ПК. Длина линии связи не более 1000 метров, другие ЛС в состоянии обслужить целый город. Городская сеть- как правило охватывают целую группу зданий и реализуются на оптоволокне(асинхронная передача данных) или широкополосных кабелях. Глобальная сеть - совокупность сетей, объединяющих компы находящихся в различных городах и странах. (интернет) Каналы связи: 1.Кабельные; 2.Оптоволоконные; 3.Спутниковая радиосвязь. Связь между сетями осуществляется с помощью шлюзов. Сеть разделена на 2 части: 1.MilNet- для военных целей США 2.Internet-общедоступная сеть Сети бывают: высокоскоростные и низкоскоростные, проводные и беспроводные, одноранговые и с выделенным сервером.
Управление памятью. Память - важнейший ресурс, требующий тщательного управления. Цель управления памятью: уменьшить пустые пространства памяти (фрагментация), увеличить производительность ЭВМ. Механизм управления памятью: размещение с фиксированного адреса, с любого адреса, размещение участками, размещение программы вразброс(участками),частичное размещение программы в ОП. Типы адресов: 1.Логические имена- написанные на алгоритмическом языке или ассендере. 2.Виртуальные адреса- программа будет размещена начиная с нулевого адреса. 3.Физически адреса- соответствуют номером ячеек ОП. Классификация процессоров (CISC и RISC).
Архитектура набора команд служит границей между аппаратурой и программным обеспечением и представляет ту часть системы, которая видна программисту или разработчику. В широком смысле архитектура охватывает понятия организации системы, включающая высокоуровневые аспекты разработки ПК: структуру системной шины, организацию ввода/вывода и т.д. Двумя основными архитектурами набора команд используемого промышленностью на современном этапе развития вычислительной техники, являются архитектуры CISC и RISC. Лидером в разработке микропроцессоров с полным набором команд CISC(Complete instruction Set Computer) считается компания Intel. Для CISC процессоров характерно: сравнительно небольшое число регистров общего назначения; большое количество машинных команд, некоторые из которых нагружены семантически аналогично оператору высокоуровневых языков программированию и выполняются за много тактов; большое количество методов адресации; большое количество форматов команд различной разрядности; преобладание двух адресного формата команд; наличие команд обработки типа «регистр-память». Основой архитектуры современных рабочих станций и серверов является архитектура ПК с сокращенным набором команд RISC (Reduced Instruction Set Computer). Зачатки этой архитектуры уходят своими корнями к ПК CDS 6600 разработчики которых Порнтон и Крей. Окончательное понятие RISC в современном его понимании сформировалось на базе трех исследовательских проектов ПК: процессора 801 компании Intel, процессора RIS- университет Беркли и процессора MIPS Стенфордского универа. Разработка экспериментального проекта компании IBM началось в конце 70х годов, но его результаты никогда не публиковались и ПК на его основе в промышленных масштабах не изготавливался. В 1980г. Паттерсон со своими коллегами из Берклинского университета начали свой проект и изготовили 2 машины с названиями RISC I и RISC II – главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и изготовление регистровых окон. В 1981г. Хеннеси со своими коллегами опубликовали описание Стенфордской машины MIPS, основным аспектом разработки которой была эффективная реализация конвейерной обработки посредством тщательного планирования компилятора его загрузки. Особенности RISC архитектур следует отметить наличие достаточно большого регистров файла (в типовых RISC процессоров реализуется 32 и, более число регистров по сравнению с 8-16 регистрами в CISC архитектуры), что позволяет большому объему данных хранится в регистрах на процессорном кристалле большее время и упрощает работу ПК по распределению регистров под переменные. Развитие архитектуры RISC в значительной степени определялось прогрессом в области создания оптимизирующих компиляторов. Современные компиляторы используют также преимущественно другой оптимизированной техники для повышения производительности, обычно применяемых в процессорах RISC: реализацию задержанных переходов и суперскалярной обработки, позволяющий в один и тот же момент времени выдавать на выполнении нескольких команд. На сегодняшний день CISC процессоры почти монопольно занимают на ПК рынке сектор ПК. Однако RISC процессора нет равных в секторе высокопроизводительных серверов и рабочих станций. Одним из важных преимуществ RISC архитектуры является высокая скорость арифметических вычислений; RISC процессоры первыми достигли планки наиболее распространенного стандарта IEEE754. Организация реестровой строки- основное достоинство и основная проблема RISC. Практически любая реализация RISC архитектуры использует трех местную операции обработки в которых результат и 2 операнда имеет самостоятельную адресацию. Это позволяет без существенных затрат времени, выбрать операнды из адресуемых оперативных регистров и записать в регистр результат операции. Архитектура СISC использует типовые двух местные операции формата «регистр-память». В сочетании с быстродействующей арифметикой RISC-операции типов «регистр-регистр» становится очень мощным средством повышения производительности процессора. Вместе с тем опора на регистры являются «ахиллесовой пятой» RISC архитектуры. Проблема в том, что в процессе выполнения задачи RISC система неоднократно вынуждена обновлять содержимое регистров процессора, при чем за мин время, чтобы не вызывать длительных простоев арифметического устройства. Для СISC систем подобной проблемы не существует, поскольку модификация регистров может происходить на фоне обработки команд формата «память- память»
Пример распределенной файловой системы –Sprite. Sprite - разработана в Калифорнийском университете. Она обслуживает большое количество мощных, но недорогих ПК, объединенных между собой с помощью ЛВС. Каждая РС в составе Sprite обслуживает свое состояние, чтобы вовремя обнаруживать простои, если система не получает команд от устройства ввода в течении 30 секунд и более, а количество запущенных процессов меньше количества процессоров, рабочая станция сообщает о простое серверу центральных миграций, который хранит сведения обо всех простаивающих ПК. Когда центральный сервер миграций осуществляет передачу процесса над этой рабочей станцией называется целевым ПК. Когда пользователю целевого ПК возвращается на свое рабочее место, тогда рабочая станция уведомляет центральный сервер миграций и незавершенный процесс передается назад на ПК, где был инициирован его запуск, называемый домашним для данного процесса на каждой рабочей станции в составе сетей которой может взаимодействовать со всеми остальными станциями при помощи удаленных вызовов процедур RPC. Для обеспечения надежной доставки в сеть сообщений в системе Sprite используется неявное уведомление. Для обеспечения сокрытия деталей от пользователя в ядре Sprite различают 2 типа вызовов: 1. Зависимое от место положения – дают различный результат при выполнении на разных станциях. 2.Независимые – дают один и тот же результат на разных РС. Система старается создавать большое количество независимое от места положения вызовов, обеспечивая одинаковое представление файловой системы для всех станций сети. Файловая система Sprite напоминает FS Unix для любого клиента, их иерархическая структура выглядит одинаково. В Sprite файлы кэшируются как на сервере так и на системе клиента. Кеш память – быстродействующая дорогая и малая по общему объему, где хранятся копии данных и программ для ускорения доступа к ним. Основные характеристики РС В распределенных системах, удаленные компьютеры взаимодействуют друг с другом имитируя локальную сеть. В РС хранение данных и вычислит процессы распределяются между отдельными компьютерами сети. РС нужны для повышения производительности ПК (т.е. вычислительной мощности и объема хранения данных). РС позволяют обращаться огромному количеству пользователей к одному и тому же набору файлов, гарантируя надежность и эффективность. Свойства РС (атрибуты): I. Быстродействие и расширяемость. В распределённых системах запросы могут быть отправлены по параллельным серверам, с целью повышения производительности. Расширяемость – означает способность системы увеличиваться в масштабах, т.е подключаться к системе не влияя на работу существующих приложений пользователей II. Связанность и безопасность. РС обеспечивают прямое обращение к ресурсу, несмотря на то, что все его части могут быть распределены по сети. Связанность в РС требует наличия коммуникационных протоколов, обеспечивающих общий доступ (интерфейс) для всех ПК системы. III. Надёжность и отказоустойчивость. Надёжность и отказоустойчивость в РС реализуется за счёт репликации отдельных пк в составе системы (резервное копирование). В таком случае сбой на одном ПК не повлияет на работу других. IV.Прозрачность Обеспечивает доступ пользователя к РС, скрывая от него аспекты распределенной реализации. Существует 8 типов прозрачности: Прозрачность доступа – позволяет компонентам различных программных и аппаратных платформ взаимодействовать между собой. Прозрачность местоположения – основано на прозрачности доступа и предназначено для скрытия физического местоположения ресурса в РС от желающих ими воспользоваться. Прозрачность сбоев – Представляет собой метод обеспечения отказоустойчивости, путём применения репликации. Прозрачность репликации – позволяет скрывать от пользователя факт существования нескольких копий того или иного ресурса. Прозрачность постоянства – позволяет скрывать от пользователя информацию о месте хранения ресурса (операционное запоминающие устройства, либо дисковый накопитель) Прозрачность транзакций – позволяет системе добиваться непротиворечивости скрывая выполнение согласований в группе ресурсов. Транзакция часто требует создание контрольных точек, либо выполнение репликации. Транзакция – это последовательность операции над БД, рассматривает БД как единое целое. Это означает следующее: либо успешно выполняются все составляющие транзакционные операции и СУБД фиксирует результат их выполнения (команда COMMIT), либо происходит откат всех транзакции(COLLBACK). Прозрачность миграций и местоположения – скрывает от пользователя перемещение компонентов в системе с одного сервера на другой. Существует шесть основных характеристик распределенных систем. 1.Совместное использование ресурсов. Распределенные системы допускают совместное использование как аппаратных (жестких дисков, принтеров), так и программных (файлов, компиляторов) ресурсов. 2.Открытость. Это возможность расширения системы путем добавления новых ресурсов. 3.Параллельность. В распределенных системах несколько процессов могут одновременно выполнятся на разных компьютерах в сети. Эти процессы могут взаимодействовать во время их выполнения. 4.Масштабируемость. Под масштабируемостью понимается возможность добавления новых свойств и методов. 5.Отказоустойчивость. Наличие нескольких компьютеров позволяет дублирование информации и устойчивость к некоторым аппаратным и программным ошибкам. Распределенные системы в случае ошибки могут поддерживать частичную функциональность. Полный сбой в работе системы происходит только при сетевых ошибках. 6.Прозрачность. Пользователям предоставляется полный доступ к ресурсам в системе, в то же время от них скрыта информация о распределении ресурсов по системе.
Проблемы оценки конфигурации систем. Выбор конфигурации сервераСУБД Проблемы оценки конфигурации системы Выбор аппаратной платформы и конфигурации системы представляет собой чрезвычайно сложную задачу. Это связано, в частности, с характером прикладных систем, который в значительной степени может определять рабочую нагрузку вычислительного комплекса в целом. Рабочая нагрузка- определяется "типом использования" системы,например, можно выделить серверы NFS, серверы управления базами данных и системы, работающие в режиме разделения времени. Как правило, нагрузка на систему в среднем уменьшается при наличии меньшего количества пользователей (хотя почти всегда имеют место предсказуемые пики. Например, известно, что нагрузка на систему достигает пиковых значений через 1-1.5 часа после начала рабочего дня или окончания обеденного перерыва и резко падает во время обеденного перерыва. С большой вероятностью нагрузка будет нарастать к концу месяца, квартала или года.) Универсальный характер большинства наиболее сложных для оценки систем - систем разделения времени, предполагает и большое разнообразие, выполняемых на них приложений, которые в свою очередь как правило стараются загрузить различные части системы. Все, кто сталкивается с задачей выбора конфигурации системы, должны начинать с определения ответов на два главных вопроса: какой сервис должен обеспечиваться системой и какой уровень сервиса может обеспечить данная конфигурация. Оценка конфигурации систем: 1.Подобная оценка прогнозирует будущее: предполагаемую комбинацию устройств, будущее использование программного обеспечения, будущих пользователей. 2.Скорость технологических усовершенствований во всех направлениях разработки компьютерной техники (аппаратных средствах, функциональной организации систем, операционных системах, ПО СУБД, ПО "среднего" слоя (middleware) уже очень высокая и постоянно растет. Ко времени, когда какое-либо изделие широко используется и хорошо изучено, оно часто рассматривается уже как устаревшее. 3.Информация о реальном использовании систем редко является точной. Более того, пользователи всегда находят новые способы использования вычислительных систем как только становятся доступными новые возможности. Выбор конфигурации сервера СУБД Эффективность работы самого приложения и СУБД намного важнее, чем конфигурация хост-машины(сервер). Например, в зависимости от того индексируется или нет таблица с помощью ключа просмотра (lookup key), выполнение оператора select, который запрашивает одну определенную запись, может приводить к тому, что СУБД будет читать из таблицы всего одну запись, либо каждую запись в таблице, содержащей 10 Гбайт данных. Хорошо осмысленная индексация может иметь весьма существенное воздействие на общую производительность систем. После начала инсталляции системы нужно произвести сбор статистики о ее работе, чтобы выяснить необходимость внесения изменений в базу данных, даже для приложений собственной разработки или приложений третьих фирм. Часто оказывает огромное воздействие на результирующую производительность системы, являются конфликты по внутренним блокировкам. СУБД должна блокировать доступ к данным при наличии конфликтующих одновременных обращений. Любой другой процесс, который требует доступа к этим данным должен быть отложен до тех пор, пока блокировка не будет снята. Если выбрана неоптимальная стратегия блокировок, то система может оказаться очень плохо работающей. IВыбор вычислительной модели. В большинстве прикладных систем СУБД можно выделить три логических части: 1.Пользовательский интерфейс (ввод и отображение данных) 2.Прикладная обработка. Характерна для данной предметной области 3.Сервисы СУБД. Пользовательский интерфейс и прикладная обработка обычно объединены в одном двоичном коде, хотя некоторые из наиболее продвинутых приложений обеспечивают многопотоковую фронтальную обработку, которая отделена от средств представления. По мере роста базы данных сервер СУБД реализуется на выделенной системе, чтобы гарантировать минимизацию помех для его работы. Рис. 2.3. Сравнение модели клиент/сервер с моделью разделения времени при работе прикладной системы Oracle*Financials. Если в системе можно реализовать модель вычислений клиент/сервер, отделяющую фронтальную (прикладную) обработку и средства представления от поставщика услуг СУБД, ее использование обычно обеспечивает существенное улучшение общей производительности системы. Режим разделения времени, в отличие от режима клиент/сервер, обычно обеспечивает большую производительность только тогда, когда требования к компоненту представления оказываются очень легкими, или когда одновременная пользовательская нагрузка невелика. Рекомендации: 1.Всегда, если это возможно, следует применять конфигурацию клиент/сервер, если только нагрузка по прикладной обработке и обработке представления являются необычно легкими. 2.Где это возможно, собственно сервер СУБД должен работать на выделенной системе. IIМониторы обработки транзакций Использование мониторов обработки транзакций является одним из методов достижения более высокой производительности для имеющейся конфигурации, особенно в режиме клиент/сервер. Иногда мониторы обработки транзакций оказываются очень полезными для создания гетерогенных баз данных, позволяющих хранить некоторые данные в одном формате (например, Oracle на Sun), а другие данные в другом (возможно Ingres на VAX или IMS на мейнфрейме IBM). TP-мониторы представляют собой промежуточный слой программного обеспечения, который располагается между приложением и системой или системами СУБД. При этом приложение должно быть модифицировано так, чтобы оно могло выдавать транзакции, написанные на языке монитора транзакций, а не обращаться прямо к базе данных посредством обычных механизмов (подобных различным формам встроенного SQL). Форма записи: Select_____ From ______Where______; IIIГибкость доступа к данным - это физический перенос данных на новую платформу и модификация описания транзакций для использования данных на новом месте. IVВопросы производительности Помимо достижения определенной гибкости за счет использования TP-мониторов, такая организация оказывается выгодной и с точки зрения увеличения производительности системы. TP-монитор всегда представляет собой многопотоковую программу. Поскольку TP-монитор открывает свое собственное соединение с СУБД, одновременно устраняя необходимость выполнения каждым прикладным процессом прямых запросов к СУБД, число одновременно работающих пользователей СУБД существенно сокращается. В подавляющем большинстве случаев СУБД обслуживает только одного "пользователя" - TP-монитор. Это особенно важно, когда СУБД относится к классу "2N", поскольку в этом случае используется только один теневой процесс (для обеспечения соединения с TP-монитором), а не по одному процессу на каждый процесс конечного пользователя (рис. 2.4). Это может существенно сократить накладные расходы, связанные с переключением контекста на сервере СУБД.
Рис.2.4. Системы СУБД клиент/сервер сконфигурированные для работы с мониторами обработки транзакций. Теневой процесс на серверной системе появляется, когда СУБД использует архитектуру "2N". TP-мониторы позволяют также улучшить производительность за счет сокращения объема информации, пересылаемой между СУБД и прикладным процессом. Поскольку определенную часть каждой транзакции составляют только минимально требуемые данные, общий объем пересылки данных обычно может быть сокращен. Это особенно важно, когда клиент и сервер соединены между собой посредством достаточно занятой сети и/или сети с низкой полосой пропускания, подобной глобальной сети на спутниковых каналах связи.
|
||||||||||||||||
Последнее изменение этой страницы: 2016-04-23; просмотров: 488; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.97.216 (0.011 с.) |