Популярные услуги

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

2021-03-09СтудИзба

Лекция 12.

Мультипроцессорные системы управления. Транспьютеры - элементная база мультипроцессорных систем

Основные особенности транспьютеров

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

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

Первый транспьютер - Т414 - был представлен фирмой Inmos, Inc. (Бри­столь, Великобритания) в 1983 г. Его основные характеристики:

• разрядность - 32 бит;

• объем внутренней памяти - 2 Кбайта;

• число коммуникационных каналов (линков)- 4;

• скорость обмена по линку - 5, 10, 20 Мбит/с;

• тактовая частота - внешняя - 5МГц, внутренняя - 15 МГц;

• производительность - 10 MIPS.

Рекомендуемые материалы

ЛР № 1 - Определение номенклатуры средств автоматизации проектирования и управления на этапах жизненного цикла
-71%
Решение системы уравнений средствами Microsoft Excel
Особенностиоформленияотчётовсприменениемсовременногопрограммногопродуктасистемы Microsoft Word
Ответы на вопросы к зачету
Лабораторная работа 2 - Отчет к ЛР 2 - Исследование асинхронного двигателя с короткозамкнутым ротором
Лабораторная работа 1 - Отчет к ЛР 1 - Исследование двигателя постоянного тока независимого возбуждения

Широкую доступность и известность транспьютеры получили с 1985 г. Были выпущены модификации с большим объемом памяти (4 Кбайт) и более высокой тактовой частотой - семейство Т-4: Т424, Т425 - 20, 25 и 30 МГц, 16-разрядные модификации - семейство Т-2: Т212, Т222, транспью­теры со встроенным устройством выполнения операций с плавающей точ­кой - семейство Т-8: Т800, Т801, Т805. Производительность этих микро­процессоров достигает 30 MIPS и 4,3 MFLOPS. Выпускается ряд периферийных устройств транспьютерных семейств, к числу которых относятся микросхемы: М212 - контроллер НЖМД стан­дарта ST506, G412 - графический RGB-контроллер, С004 - программируе­мые 32-канальные коммутаторы и др.

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

Архитектура и структура транспьютеров фирмы Inmos

Архитектура семейств Т-2, Т-4, Т-8

Транспьютеры относятся к классу RISC- процессоров. Система команд транспьютеров ориентирована на поддержку языка высокого уровня -ОККАМ (OCCAM). Это язык параллельного программирования, по­зволяющий задавать параллельные вычисления в соответствии с моделью взаимодействующих последовательных процессов (CSP). Программа на языке ОККАМ представляет собой совокупность асинхронных совме­стно протекающих взаимодействующих процессов, выполняющихся асин­хронно и параллельно. Под процессом понимается ход исполнения про­граммного кода некоторой программы или фрагмента программы. Взаи­модействие между процессами реализуется путем обмена данными по прин­ципу "рандеву". В транспьютере данная модель параллельных вычисле­ний поддерживается благодаря наличию аппаратно-реализованного дис­петчера, обеспечивающего выполнение параллельных процессов в режи­ме квантования времени. Причем количество одновременно выполняемых процессов не ограничено.

Мультипроцессорная система на базе транспьютеров представляет со­бой совокупность транспьютеров, соединенных линиями связи (непосред­ственно или через коммутатор).

Существенно упростить программирование мультипроцессорных ВС на базе транспьютеров позволяет тот факт, что одинаковая модель параллель­ных вычислений поддерживается как внутри отдельного транспьютера, так и в рамках мультитранспьютерной системы в целом. Благодаря этому програм­ма, разрабатываемая для мультипроцессорной системы, может быть создана и отлажена на одном единственном процессоре, а затем перенесена на сеть транспьютеров без существенных преобразований. Исключение составляет ограничение числа каналов связи процесса с процессами, протекающими на другом транспьютере. Это ограничение преодолено в транспьютере Т-9000.

Обобщенная структура транспьютера Т800 приведена на рис. 76. На этом же рисунке показаны архитектурные регистры процессора, управляю­щие структуры процессов и распределение их рабочих областей памяти.

В зависимости от модели, транспьютер состоит из 32- или 16-разряд­ного центрального процессора, интерфейса внешней памяти, 2 или 4 дву­направленных каналов - линков, программируемого блока событий (Event), таймера, внутреннего ОЗУ емкостью 2 или 4 Кбайт, блока режимов рабо­ты линков, блока системных функций. Некоторые модели могут содер­жать 64-разрядное устройство операций с плавающей точкой и (или) ин­терфейсные схемы внешних устройств, такие как НЖМД, ЭЛТ, сетевой адаптер. (Контроллеры внешних устройств обычно выполняются на кри­сталле вместо двух линков).

Центральный процессор

32-разрядный центральный процессор транспьютера работает на так­товой частоте до 30 МГц, формируемой из опорной внешней тактовой частоты 5 МГц внутренней схемой умножения. Внутренняя структура цен­трального процессора показана на рис. 77.

Аппаратный планировщик (диспетчер) центрального процессора ор­ганизует одновременное (в режиме разделения времени) выполнение не­скольких процессов. Каждому процессу в момент его создания в адресном пространстве транспьютера выделяется выровненная по границе слова рабочая область памяти и устанавливается приоритет. В транспьютере реализована двухуровневая схема приоритетов: 0 - высокий приоритет процесса, 1 - низкий приоритет. Объединение адреса рабочей области и приоритета образует дескриптор процесса.

Центральный процессор содержит два регистра-таймера, для низко- и высокоприоритетных процессов. Высокоприоритетный регистр инкрими­нируется каждую 1 мкс, низкоприоритетный - каждые 64 мкс.

Рис. 76. Структура транспьютера Т800

Регистр W транспьютера указывает на рабочую область процесса, а в реги­стре указателе команды находится адрес следующей выполняемой команды.

Регистры общего назначения А, В, С, образуют регистровый стек ss память с дисциплиной доступа FIFO. АЛУ выполняет логические и ариф­метические операции над операндами, содержащимися в регистровом сте­ке. Операнды помещаются в стек через его вершину - регистр А. При за­грузке данных в А его содержимое переносится в В, содержимое В в С, а содержимое последнего теряется. Результаты операций также формиру­ются в регистре А, при этом содержимое регистра С "выталкивается" в регистр В и становится неопределенным.

Система команд транспьютера

Все команды транспьютера однобайтовые и выполняются за один такт процессора. Структура команды показана на рис. 76. Старшие 4 разряда -код команды, младшие 4 разряда используются для формирования опе­ранда команды или кода команды в регистре операнда - О.

Операции, реализуемые командами транспьютера, подразделяются на первичные и вторичные. 13 наиболее употребительных первичных опера­ций, такие, например, как сложение с константой со значением в диапазо­не 0 -15, безусловный переход, загрузка (запись) слова и т.п. Еще 3 коман­ды (мнемокоды pfix, nfix, opr) используются для реализации вторичных операций. Код вторичной операции формируется командами pfix, nfix и opr в регистре О, а операнды содержатся в регистрах.

Выполнение команд

Команды выбираются из памяти транспьютера и помещаются в буфер команд центрального процессора. За один такт выбирается 2 команды в Т-414 и 4 команды в Т-800.

Выполнение большинства команд осуществляется в три этапа:

1. Операнд команды помещается в младшие 4 разряда регистра опе­ранда- О;

2. Выполняется операция, задаваемая кодом команды. Содержимое регистра О интерпретируется как операнд.

3. Очищается регистр операнда - О.

Исключение составляют команды pfix, nfix и орr.

Команда pfix на этапе 2 осуществляет сдвиг содержимого О на 4 разря­да влево и не очищает регистр О на этапе 3. Команда nfix выполняется так же, как и pfix, но перед сдвигом О помещает туда арифметическое допол­нение его содержимого.

Поскольку после выполнения команд pfix и nfix содержимое О не очи­щается, последовательность команд pfix и nfix позволяет формировать в регистре О операнды с разрядностью до 32. Требуемая последовательность команд минимальной длины формируется компилятором.

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

Использование сопроцессора

В случае наличия у транспьютера встроенного сопроцессора, выполняю­щего операции с плавающей точкой, распознавание команд и передача их на выполнение осуществляются аппаратно в центральном процессоре, там же выполняется вычисление адреса операндов и их загрузка в регистры FPU.

Модуль операций с плавающей точкой, как показано на рис. 77, со­стоит из двух блоков: блока мантиссы и блока порядка со своим набором регистров (два регистровых стека). Все команды с плавающей точкой под­разделяются на два класса: полностью самостоятельные команды, никак не влияющие на состояние центрального процессора, и команды, пересы­лающие результаты выполнения операции в центральный процессор.

После передачи команды на исполнение в сопроцессор центральный процессор продолжает выполнение потока команд, если это команда от­носится к первому классу, или ожидает получения результата, если это ко­манда второго класса.

Распределение памяти транспьютера

Транспьютер может адресовать до 232 байт (4 Гбайт). Особенностью транспьютера является начало адресов в области отрицательных значе­ний. Младший адрес в дополнительном коде соответствует значению (80000000…).

Структурно (конструктивно) вся оперативная память подразделяется на внутрикристальную и внешнюю. Объем внутрикристальной памяти составля­ет 4 (2) Кбайт (в зависимости от модели транспьютера). Архитектурно (с точки зрения программиста) вся память транспьютера, как внешняя, так и внутрикристальная, равнодоступна и имеет единую адресацию. Внутрикристальной памяти соответствуют младшие адреса, а внешней памяти - старшие.

Поскольку внутрикристальная память имеет меньшее время доступа (один такт процессора), в нее обычно помещаются программистом часто используемые данные и подпрограммы. Пример распределения памяти показан на рис 76.

Несколько слов в младших адресах памяти используется для специаль­ных целей: для слов состояния аппаратных каналов - линков, блока Event, регистров таймера, в качестве рабочих областей памяти диспетчера.

 Диспетчеризация процессов

Каждый из процессов в конкретный момент времени может быть вы­полняемым, активным (готовым к выполнению в очереди соответствующего приоритета), ожидающим сигнала таймера (в очереди к таймеру соответствующего приоритета), ожидающим ввода-вывода.

Для выполняемого процесса регистр I содержит адрес следующей ко­манды, регистр W содержит его дескриптор.

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

Низкоприоритетные процессы выполняются в течение не более чем 32 периодов низкоприоритетного таймера, после чего процесс (если он еще способен к выполнению) помешается в конец очереди активных низкопри­оритетных процессов, а диспетчер планирует выполнение следующего про­цесса. Сначала просматривается очередь высокоприоритетных процессов, затем - низкоприоритетных.

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

Ввод-вывод

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

В момент выполнения команды описания канала и после завершения каждого обмена слово состояния канала (ССК) инициализируется констан­той Minint. Процесс, первым выполняющий команду обмена, приостанавливается и проверяется содержимое канала. Если оно Minint, то в ССК заносится дескриптор процесса, а в рабочую область процесса поме­щаются значение W и адрес передаваемых данных, после чего управление передается диспетчеру для планирования выполнения других процессов.

Если содержимое ССК не Minint, значит данный процесс "пришел" на "рандеву" вторым. В этом случае содержимое ССК - дескриптор процес­са, используя который находятся данные в случае ввода или буфер для данных в случае вывода.

Обмен по линкам осуществляется аналогично, с той разницей, что ССК имеют фиксированные адреса в памяти 80000000 - 8000001C,g, и в процессе обмена данные не пересылаются между областями памяти, а передаются по линии связи в стартстопном режиме с квитированием байтов.

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

Рис. 77. Внутренняя структура функциональных блоков транспьютера

Передача данных по линку

Все семейства транспьютеров Т-2 (Т-212, Т-222, Т-225), Т-4 (Т-414, Т-400, Т-425), Т-8 (Т-800, Т-801. Т-805) используют один и тот же протокол передачи данных по линкам. Взаимодействие между транспьютерами осу­ществляется посредством обмена сообщениями, состоящими из последо­вательности байтов. Данные передаются по одному проводу из пары про­водов. По другому проводу пары передаются подтверждения приема каж­дого байта.

Байт передается в обрамлении служебных битов, начиная со стартово­го бита, далее следует управляющий бит, а затем 8 информационных би­тов и столовый бит. Таким образом, на 8 информационных битов прихо­дится 3 управляющих, поддерживающих протокол передачи. На рис. 78. показан пример передачи по линку.

Рис. 78. Передача данных по линку транспьютера

После передачи байта отправитель ждет подтверждения, которое со­стоит из стартового и управляющего бита. Причем если при передаче информационного байта управляющий бит равен 1, то в подтверждении он равен 0. При этом байты данных и подтверждения для переданных в про­тивоположном направлении байтов данных передаются по одному про­воднику. Подтверждения имеют приоритет перед байтами данных. Мож­но установить режим, при котором подтверждения начинают передавать­ся сразу после получения стартового и управляющего битов, что приво­дит к передаче байтов без задержки между ними.

Если один из обменивающихся через линк процессов не готов к приему данных, байты накапливаются в регистре данных линка. При заполнении регистра подтверждение после получения очередного байта не выдается, и передающий линк приостанавливает передачу до приема данных про­цессом и освобождения регистра линка.

При инициации передачи первого байта сообщения существует задерж­ка на настройку каналов прямого доступа в передающем и приемном транс­пьютерах, что обусловливает разную скорость при передаче коротких (от единиц до нескольких десятков байтов) и длинных (несколько тысяч бай­тов) сообщений. В первом случае скорость составляет 2-4 Мбит/с, во вто­ром - максимально возможную 10-20 Мбит/с, в зависимости от настройки передающего и принимающего транспьютеров.

Передача по линку асинхронна, приемный транспьютер не чувствителен к фазе принимаемых сигналов. Единственное, что требуется - точный кварце­вый генератор 5 МГц для задания тактовых сигналов транспьютеров.

Блок режимов работы линков позволяет задавать скорость передачи по линкам транспьютера (5, 10, 20 Мбит/с), причем для нулевого линка ско­рость устанавливается независимо от остальных. Установка осуществляет­ся подачей соответствующих уровней на входы LinkSpecial, LinkOSpecial, Linkl23Special.

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

Ожидание сигнала от блока событий

Блок событий (Event) выполняет преобразование внешних логиче­ских уровней на входе блока в байтовое сообщение со значением 0 или 1, передаваемое по внутреннему каналу. Поэтому программно блок Event воспринимается как специальный канал, отличием которого от обычного канала является то, что из этого канала можно только "чи­тать". ССК для блока Event имеет фиксированный адрес 80000020 Ожидать ввода из канала Event может одновременно только один про­цесс в транспьютере.

Обычно Event используется для регистрации внешних прерывании в транспьютерной системе. Сигнал прерывания подается на вход транспью­тера EventReq. Подтверждение приема сигнала прерывания (чтение из канала Event) выдается в виде уровня 1 по линии EventAck.

Ожидание сигнала от таймера

Программно таймер воспринимается как канал только для чтения, вы­дающий либо содержимое регистра таймера с соответствующим приори­тетом, либо сигнал наступления ожидаемого момента времени.

Все процессы, ожидающие наступления некоторого момента времени (истечения временного интервала) помещаются в очередь к таймеру, соот­ветствующему их приоритету. Очередь процессов отсортирована в поряд­ке наступления ожидаемого момента времени и организована с помощью ссылок между служебными словами в рабочей области процессов. Адрес первого процесса в очереди соответствующего приоритета содержится в служебных словах транспьютера (TPtrLocO, TPtrLocI), в младших адресах памяти. При достижении ожидаемого момента времени диспетчеру пере­дается дескриптор соответствующего процесса для его перевода в конец очереди активных процессов.

 Инициализация системы после включения питания

Транспьютер и его ОЗУ построены по КМОП-технологии и не сохра­няют своего состояния после отключения питания. Поэтому после вклю­чения питания для начала функционирования в транспьютер необходимо загрузить некоторый минимум программного обеспечения. Транспьютер может быть загружен как из внешнего ПЗУ, так и из любого линка. Для указания режима начальной загрузки используется вывод BootFromROM. Если уровень BootFromROM равен 1, то управление передается по адресу FFFFFFFE, по которому обычно содержится команда безусловного пе­рехода на программу начальной загрузки.

Если BootFromROM равен 0, то производится загрузка из линка. По­сле включения питания транспьютер переходит в состояние ожидания прие­ма данных по линкам. Первый байт, принятый по любому из линков, управ­ляет дальнейшим режимом работы транспьютера. Если его значение боль­ше 1, то он интерпретируется как длина кода программы, принимаемой следом за ним. Принимаемые данные записываются в память транспьюте­ра начиная с адреса MemStart, с него же и начинается выполнение про­граммы. Как правило, первой загружается программа начальной загруз­ки транспьютера, которая обеспечивает загрузку остального программ­ного обеспечения.

Если первый принятый управляющий байт равен 0 или 1, то транспью­тер переходит в режим управления памятью.

Управляющий байт, равный 0, заставляет транспьютер интерпретиро­вать следующие 4 байта как адрес памяти, по которому в память будет за­писано слово, поступившее как следующие 4 байта. После этого транспью­тер снова переходит в режим управления памятью, из которого его может вывести лишь прием управляющего байта со значением, большим 1.

Если управляющий байт равен 1, следующие 4 байта задают адрес слова памяти, которое будет считано и передано как 4 байта по тому же линку, из которого поступили в противоположном направлении предыдущие 4 бай­та. После этого транспьютер остается в режиме управления памятью.

Режим управления памятью используется обычно для целей отладки.

 Управление системой

3. Антибиотики - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.

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

 Обработка ошибок

Программные ошибки, такие как арифметическое переполнение, де­ление на 0, выход за границы массива, вызывают установку в транс­пьютере флага error и появление сигнала на выходе Error. Флаг режима обработки ошибок транспьютера - HaltOnError - позволяет определять поведение транспьютера в случае ошибки (установки флага error): если был задан режим остановки (HaltOnError 1), то в случае возникнове­ния ошибки устанавливается еденица на выходе Error и транспьютер останавливается; если была выполнена установка HaltOnError=0, то в случае ошибки устанавливается в еденицу флаг error, однако транспью­тер продолжает работать.

В мультипроцессорных системах выводы Analyze, Reset, Error, Errorin всех транспьютеров обычно соединены согласно схеме, представленной на рис. 79. При такой схеме соединения появление сигнала Error на выво­де любого транспьютера переводит всю систему в режим управления па­мятью. Соответствующие программы в хост-машине позволят определить состояние системы и пути преодоления ошибочной ситуации.

Рис. 79. Схема соединения линий системного сервиса в мультитранспьютерной системе

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее