29
4ЫВАНАЕ СЕРВЕРНЫХ ПРИЛОЖЕНИЙ РАЗРАБОТКА СЕРВЕРОВ и

Спецкурс Разработка серверов и серверных приложений лекция №1

Embed Size (px)

DESCRIPTION

В 70-годах прошлого века в ИТ-отрасли сложилось стойкое убеждение, что будущее будет за многопроцессорными системами. Активно разрабатывались методы написания параллельных программ, в том числе и модель акторов Карла Хьюита. Однако все попытки создать многопроцессорную систему завершились провалом - полученные системы оказались дорогими и существенно не превосходили однопроцессорные системы. Самым известным провалом стал японский проект по разработке вычислительных машин 5-го поколения, на который было потрачено 500 млн. долларов. Причина заключается в законе Амдала, который устанавливает ограничения на увеличение производительности при распараллеливании программ. Кроме того, на рынке появилась компания Intel, которая сумела создать успешный однопоточный процессор и постепенно наращивать производительность своих процессоров. Это было время, когда программистам для ускорения своих программ не надо было делать ничего - достаточно дождаться более мощной версии процессора. Только спустя 30 лет, когда Intel уперлась в технологические проблемы наращивания производительности процессоров в лоб, интерес к параллельным технологиям опять возрос. Возникает резонный вопрос: этот интерес надолго или опять повторится история 70-х? В статье Герба Саттера 2005 года Бесплатного супа больше не будет: фундаментальный поворот к параллельности в программном обеспечении утверждается, что нет - больше не возврата к однопоточным программам, и программисты теперь будут вынуждены заботиться о параллельности...

Citation preview

Page 1: Спецкурс Разработка серверов и серверных приложений лекция №1

4ЫВАНАЕ

СЕРВЕРНЫХ ПРИЛОЖЕНИЙ

РАЗРАБОТКА СЕРВЕРОВ и

Page 2: Спецкурс Разработка серверов и серверных приложений лекция №1

ТюменцевЕвгений Александрович

ИМИТ кафедра МЛЛП – 14 лет, ФКН – 1 годВ ИТ-отрасли 9 лет

Занимаюсь разработкой серверных приложений с 2006 года

[email protected]

Преподаватель 2

Page 3: Спецкурс Разработка серверов и серверных приложений лекция №1

Вместо предисловия

Многопоточность?Это Вам не это!

3

Page 4: Спецкурс Разработка серверов и серверных приложений лекция №1

Нужны специалисты 4

Page 5: Спецкурс Разработка серверов и серверных приложений лекция №1

Не показалось…

Edward A. Lee

Edward A. Lee

The problem with Threads.

“Non-trivial multi-threaded programs are incomprehensible to human…”

2006

5

Page 6: Спецкурс Разработка серверов и серверных приложений лекция №1

Скучно и нудно 6

Page 7: Спецкурс Разработка серверов и серверных приложений лекция №1

Книги для чтения 7

Page 8: Спецкурс Разработка серверов и серверных приложений лекция №1

Рекомендую посмотреть 8

Page 9: Спецкурс Разработка серверов и серверных приложений лекция №1

Цель 9

Как есть

Архитектура

Взаимодействие

Измеримость

Оптимизация

Page 10: Спецкурс Разработка серверов и серверных приложений лекция №1

Глава 1. Немного истории. 10

Page 11: Спецкурс Разработка серверов и серверных приложений лекция №1

1970-ыe годы

Искусственный интеллект Будущее за многопроцессорными

системами Проект 5-е поколение

11

Page 12: Спецкурс Разработка серверов и серверных приложений лекция №1

Вычислимость

Машина Тьюринга Машина Поста Λ-исчисление Черча

12

Page 13: Спецкурс Разработка серверов и серверных приложений лекция №1

Состояние программы

с1 с2 с3 сn…

13

Page 14: Спецкурс Разработка серверов и серверных приложений лекция №1

Ограничение вычислимости

с1 с2 с3 сn…

Требование глобального времени

14

Page 15: Спецкурс Разработка серверов и серверных приложений лекция №1

Синхронизация 15

Page 16: Спецкурс Разработка серверов и серверных приложений лекция №1

Акторы

Carl Hewitt

Carl Hewitt, Peter Bishop, Richard Steiger

A Universal Modular ACTORFormalism for Artificial Intelligence

1973

16

Page 17: Спецкурс Разработка серверов и серверных приложений лекция №1

Актор – вычислительная сущность

• Отправить конечное число сообщений другим акторам

• Создать конечное число акторов• Выбрать поведение для приема

следующего сообщения

Определение актора 17

Page 18: Спецкурс Разработка серверов и серверных приложений лекция №1

Схема приложения 18

Page 19: Спецкурс Разработка серверов и серверных приложений лекция №1

ЖЦ актора 19

Page 20: Спецкурс Разработка серверов и серверных приложений лекция №1

В чем разница? 20

Синхронизация Акторы

Page 21: Спецкурс Разработка серверов и серверных приложений лекция №1

Что-то пошло не так 21

Япония, 1982-1992 $500 млн Логическая обработка данных Сверхбольшие БД Многопроцессорные рабочие

станции Распределенные вычисления

Page 22: Спецкурс Разработка серверов и серверных приложений лекция №1

Закон Амдала 22

Wikipedia

Page 23: Спецкурс Разработка серверов и серверных приложений лекция №1

Однопроцессорные системы 23

Ничего не надо делать, чтобы приложение начало работать быстрее – с выходом нового процессора это получается автоматически

Page 24: Спецкурс Разработка серверов и серверных приложений лекция №1

Реабилитация акторов

Herb Sutter

Herb Sutter

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software

2005

24

Page 25: Спецкурс Разработка серверов и серверных приложений лекция №1

Закон Мура 25

Page 26: Спецкурс Разработка серверов и серверных приложений лекция №1

Разрядность, инструкции 26

Дальнейшее наращивание разрядности и расширение набора инструкций не дает ощутимого эффекта

Page 27: Спецкурс Разработка серверов и серверных приложений лекция №1

Наращивание тактовой частоты 27

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

Page 28: Спецкурс Разработка серверов и серверных приложений лекция №1

Тепловыделение 28

При уменьшении размеров процессора ухудшается рассеивание тепла

Page 29: Спецкурс Разработка серверов и серверных приложений лекция №1

А может ситуация повториться? 29

Internet изменил представления о роли и назначении компьютеров