3. Multitasking & Multithreading ВНИМАНИЕ! Прием "Объяснений" закрыт. Всем преогромное спасибо за участие в конкурсе.
Судьи уже собрали свои пожитки и удалились на совещание, которое продлится до 31 Июля.
Ждите официальных результатов. Cледите за новостями на страницах ISN.
____________________________
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Dmitry Oganezov
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Multitasking & Multithreading (многозадачность и многопоточность) - это когда Вовочка пришел на олимпиаду по информатике... Когда Вовочка пришел, ему дали листок с пятью задачами. Сев на указанное место, Вовочка быстро переписал все задачи на отдельный листок и спрятал в карман. Далее не торопясь и ни от кого не скрываясь, Вовочка вывел на чистом листе бумаги: «Задача 1. Быстрая сортировка. Быстрая сортировка - это самая быстрая сортировка.» Далее работа по решению застопорилась, и Вовочка перешел к задаче 2: «Быстрое преобразование Фурье быстрее обычного преобразования Фурье» - написал он и вернулся к задаче 1. Перечитав, что было написано, Вовочка зачеркнул слово «самая» и перешел к задаче 3. «Число пи, - написал Вовочка,- содержит бесконечное число цифр после запятой и поэтому...» Далее Вовочка проглядел условия задачи 4 и 5 и ему стало окончательно тошно. «Многозадачный режим здесь не подходит, - сказал он себе, скорчил страшное лицо и с умеренно громким стоном схватился за живот... Зайдя в дверь под номером 00, Вовочка обнаружил что группа поддержки ждет его в полном составе.
- Отлично! Все переписываем задание, - Вовочка достал из кармана листок, на который он переписал задания, - теперь будем его решать в многопоточном режиме: ты быстрей дуй домой и в Интернет, вы двое в библиотеку, а ты карауль у выхода из класса - будешь спрашивать у выходящих их решения. Еще двое из группы поддержки остались не озадаченными, но пул потоков был уже сформирован, и Вовочке было пора возвращаться в класс на олимпиаду...
Re: 3. Multitasking & Multithreading
Вася сдает экзамен, его группа поддержки получает Васино задание, 4 вопроса. Ваня отвечает на первый, Петя на второй, Костя на третий, Лена на четвертый. Это многозадачность. Лена умная девочка, решая свой вопрос она эсэмэсит сразу с двух телефонов в левой и правой руке, набирая одной рукой первую часть своего вопроса, а второй вторую. Это многопоточность.
Re: 3. Multitasking & Multithreading Чтобы на дробить повествование, привожу всю истории про Вовочку здесь целиком, а в других темах процитирую соответствующие отрывки :)
Multitasking & Multithreading (многозадачность и многопоточность) - это когда Вовочка пришел на олимпиаду по информатике... Когда Вовочка пришел, ему дали листок с пятью задачами. Сев на указанное место, Вовочка быстро переписал все задачи на отдельный листок и спрятал в карман. Далее не торопясь и ни от кого не скрываясь, Вовочка вывел на чистом листе бумаги: «Задача 1. Быстрая сортировка. Быстрая сортировка - это самая быстрая сортировка.» Далее работа по решению застопорилась, и Вовочка перешел к задаче 2: «Быстрое преобразование Фурье быстрее обычного преобразования Фурье» - написал он и вернулся к задаче 1. Перечитав, что было написано, Вовочка зачеркнул слово «самая» и перешел к задаче 3. «Число пи, - написал Вовочка,- содержит бесконечное число цифр после запятой и поэтому...» Далее Вовочка проглядел условия задачи 4 и 5 и ему стало окончательно тошно. «Многозадачный режим здесь не подходит, - сказал он себе, скорчил страшное лицо и с умеренно громким стоном схватился за живот... Зайдя в дверь под номером 00, Вовочка обнаружил что группа поддержки ждет его в полном составе.
- Отлично! Все переписываем задание, - Вовочка достал из кармана листок, на который он переписал задания, - теперь будем его решать в многопоточном режиме: ты быстрей дуй домой и в Интернет, вы двое в библиотеку, а ты карауль у выхода из класса - будешь спрашивать у выходящих их решения. Еще двое из группы поддержки остались не озадаченными, но пул потоков был уже сформирован, и Вовочке было пора возвращаться в класс на олимпиаду...
Вовочка уже коснулся двери, когда его нагнали двое неозадаченных:
- Вовочка! А нам что делать? - спросили они хором. Вовочка резко повернулся: - Что вы как маленькие? Хотите, чтобы я каждый ваш шаг контролировал? Как в SIMD ? Нет! Проявите инициативу: мы должны работать по принципам MIMD , чтобы успеть! Вот вам объяснение на пальцах , - Вовочка сложил три пальца в общеизвестную фигуру и, широко улыбнувшись, потянул ручку двери.
Открывая дверь, Вовочка успел осуществить переключение контекста : только что он широко улыбался от уха до уха, теперь же лицо его приняло выражение столь скорбное, что ни один самый черствый препод не должен был усомниться в физических страданиях и самоотверженности этого лица. На негнущихся ногах нетвердой походкой Вовочка прошел на свое место.
В состоянии пассивного ожидания решений от группы поддержки Вовочка склонился над заданием, делая вид, что думает. На самом деле он гадал, когда будет пора еще раз попроситься на выход. «Беда в том, что никто из группы не сможет сигнализировать мне, когда у них будет готово»,- думал он. И тут Вовочкин сосед попросил его хриплым шепотом: «Слышь, командир, помоги решить задачу!» Чтобы отвлечься от своего задания, которое ему уже порядком надоело, Вовочка взял задание соседа. Вовочка неторопливо читал и перечитывал чужое задание, сравнивая со своим, и размышлял, какое из них труднее. При этом сосед находился в активном ожидании, внимательно наблюдая, что делает Вовочка и поминутно спрашивая: «Ну как?» Кроме этого, Вовочкин сосед еще пытался сам что-то писать, периодически отрываясь для очередного «Ну как?» - Да никак,- ответил, наконец, Вовочка и вернул соседу его задание.
Олимпиада подходила к концу. Первые работы уже были сданы. «Пора!» - решил, наконец, Вовочка и повторил сцену со страшным лицом и умеренно громким стоном. Группа поддержки не подкачала - ворох исписанных и исчерканных тетрадочных листов лежал на подоконнике комнаты 00. Здесь же была заготовлена небольшая аккуратная стопка чистой бумаги формата А4 для переписывания начисто.
- Поехали,- сказал Вовочка, - каждый пишет по одному решению на отдельном листе. Самое главное подделаться под мой неряшливый почерк. Неряшливый потому, что я был болен - это простят. И быстрее, иначе мы не успеем.
Группа с энтузиазмом кинулась рисовать каракули. Но вскоре выяснилось, что почерк у всех все равно слишком разный.
- Нет,- сказал Вовочка, - декомпозиция данных тут не подходит, придется применить функциональную декомпозицию : кто-нибудь один пусть переписывает программный код печатными буквами, другой пусть переписывает остальной текст, третий пусть смотрит ошибки, сравнивая с оригиналом, я займусь окончательной проверкой.
Вовочка последним сдал пять исписанных листов формата А4. Некоторое удивление у комиссии вызвал факт, что просто текст был написан фиолетовым цветом, исходный код программ зеленым, а исправления сделаны черным. Однако Вовочка продемонстрировал четырехцветную шариковую ручку, сказав, что красный цвет он оставил для уважаемых судей, и вопросов больше не возникло :)
Использованная литература.
1. Стас Атасов, 500 анекдотов: И снова Вовочка!,Эксмо-Пресс, 2007. 2. S. Akhter, J.Roberts, Multi-Core Programming, Intel Press, 2006. 3. R.Gerber, A.J.C.Bik, K.B.Smith, X.Tian, The Software Optimization Cookbook, Intel Press, 2006. 4. С.Немнюгин, О.Стесик, Параллельное программирование для многопроцессорных вычислительных систем, Спб.: «БХВ-Петербург», 2002. 5. А.Б.Борковский, Англо-русский словарь по программированию и информатике (с толкованиями), 2-ое изд.,М.:"Русский язык", 1989.
Re: 3. Multitasking & Multithreading Multithreading. Многопоточность - это когда студент во время сессии стоит в общежитии на кухне одной рукой мешает борщ, другой рукой пишет другу в аське сообщение, одним глазом читает конспект по вышке, а вторым учит таблицу интегралов и при этом одной ногой чешет другую ногу (такое тоже бывает).Multitasking. Представьте себе, что Вы захотели написать 2 письма разным людям. У Вас на столе лежат 2 листочка, и Вы начинаете поочередно на каждом листе бумаги писать по одному предложению. Написали в первом письме: «Привет, Вася», оставили его, перешли к другому письму, написали: «Привет, Коля». Дальше опять возвращаетесь к 1 письму и пише-те: «Как у тебя дела, Вася», во втором пишете «С универа еще на выгнали, Коля?». Так, в общем, Вы пишете 2 письма параллельно (человек – это процессор, который выделяет немного своего времени на каждую задачу, а задача – это запись фразы в письмо). Сакидон Мстислав
Re: 3. Multitasking & Multithreading
Менеджер Леонид плечом держит телефонную трубку и общается с клиентом, в это время он пишет отчёт и общается в ICQ. Это многопоточность. Через 10 минут Леонид отошёл от компьютера и стал болтать с секретаршей шефа Людмилой. Потом он сходил в бухгалтерию и заверил нужные документы. Потом снова сел за компьютер и дописал отчёт. Потом отправился в шефу с докладом. Это уже многозадачность.
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Многозадачность / Multitasking
Допустим один программист написал 3 программы и отправил их пользователям. Теперь когда пользователи находят ошибку в программе они оповещают программиста об этом и тот исправляет ошибку. Если одновременно приходит несколько ошибок он исправляет их в зависимости от важности (приоритета).
Многопоточность / Multithreading
Директор фирмы пожалел бедного программиста и нанял ему в помощь еще 2х программистов. Теперь каждый программист работает над ошибками своей программы.
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Multithreading - это процесс приготовления салатика оливье. Поставили вариться картошку и яйца(тред № 1), пока оно варится режем огурчик и колбаску(тред №2). Когда все нарезали, тред №2 начинает ждать завершения треда №1. Multitasking - это жизнь программиста. Каждый день представляет из себя таймслот, который программист выделяет на работу, отдых, или другие занятие.
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Вложения
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
Вокзал - это многозадачная система. Рабочих распределили чтобы и в туалете был вахтер, и пути было кому чистить, и начальчик вокзала даже есть, к которому обычные люди доступа не имеют. Если будет грязно у кабинета начальника то уборщику позвонят, и он побежит сначала туда и будет долго тереть чтобы показать как он старается, а потом к вахтерше, а потом туда где он еще нужен. Если он заденет пьяного шваброй и начнется драка, то драчуна выведут с вокзала.
А кассы на вокзале - это многопоточность. В приципе это одна большая коробка, но все кассиры выполняют одну и ту же функцию - продажа билетов.
Re: 3. Multitasking & Multithreading
Multitasking & Multithreading (многозадачность и многопоточность) - это...
(многозадачность) Идет, значит, сенокос, ну есессно солдат пpипахали. Они с гpаблями там, с косами... одни косят, другие собирают в кучки, третьи вывозят собранное. (многопоточность) Стоит на поле полковник, смоpит, как солдаты тpаву косят. Подходит к нему летейнант один и говоpит: - Смотpите, тов. полковник, как все непpоизводительно получается: у солдата в одной pуке коса, а в дpугой ничего... если ему в дpугую pуку грабли дать, то солдат сpазу и убиpать за собой все будет и в кучу соберет скошенное. - Молодец, - говоpит полковник, - неделю отгула даю Чеpез час подходит другой летейнант и говоpит: - А если еще и тележку сзади подцепить, то солдат сpазу и убиpать за собой все будет. - Молодчина, - сказал полковник, - неделю отгула... Стоит третий лейтинант, нервно курит, в отгул хочется а рационального предложения нету.... Мимо проходит рядовой, весь в граблях, косах, с тележкой за спиной, и говорит: -Тов. лейтенант! А если мне фонарик на лоб прилепить, то я как трактор и ночью работать смогу....