|
|
|
Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Warto przeczytać: W dniach 12 - 14 grudnia 2011 r. w Sydney, Australia, odbędzie się międzynarodowa konferencja nt. przetwarzania w chmurze i ekologicznej informatyki.
Przetwarzanie w chmurze zdobywa pozycję nowej, powstającej platformy, która zapewnia infrastrukturę i zasoby informa... Sektor technologii informatycznej (IT) uznawany jest za siłę napędową innowacji. Niemniej według wyników ostatnich badań innowacja w sektorze jest hamowana nie ze względu na finansowanie czy infrastrukturę, ale z powodu szczególnego narażenia informatyków na wypalenie zawodo... W dniach 24-26 lutego 2011 r. w Istambule, Turcja, odbędzie się wydarzenie pt. "Informatyka jakościowa - różne światy i praktyki badawcze".
Wydarzenie poświęcone będzie temu, w jaki sposób praktyki naukowe z rozmaitych dyscyplin naukowych wchodzą w interakcje z informatyką... Naukowcy specjalizujący się w onkologii ustalili jak rekombinacja, kluczowy proces naprawy DNA (kwasu dezoksyrybonukleinowego), w trakcie którego materiał genetyczny ulega rozpadowi i jest dołączany do innego materiału genetycznego, pełni ... Z biotechnologiami zetknęliśmy się wszyscy. Najpopularniejszym biofarmaceutykiem jest dowolna szczepionka. Są nimi także np. insuliny. Ostatnio przybywa leków biotechnologicznych, powstających po wygaśnięciu patentów na leki wytworzone p...
Ostatnio na Forum:
Dyskusje
8
odp.
4
odp. Reklama:
Problem ucztujących filozofówTo hasło encyklopedii posiada podstrony: 1 [2],[3] Czy wiesz że...? Edsger Wybe Dijkstra (ur. 11 maja 1930 w Rotterdamie, zm. 6 sierpnia 2002 w Neunen) - holenderski naukowiec, pionier informatyki. Twórca terminów bit i bajt. Synchronizacja (z gr. σύγχρονος synchronos - równoczesny) – koordynacja w czasie, co najmniej dwóch zjawisk (procesów), tzn. dążenie do równoległego, niezależnego ich przebiegu, skoordynowanego w czasie lub do jednoczesnego ich zakończenia. Pojęcie synchronizacji występuje w fizyce, informatyce, elektronice, telekomunikacji, robotyce, multimediach (np. synchronizacja dźwięku z obrazem) i muzyce. Problem ucztujących filozofów (znany też jako problem pięciu filozofów) jest przykładem klasycznego dla informatyki zadania synchronizacji procesów. W 1965 roku E. Dijkstra wymyślił zadanie egzaminacyjne dotyczące sytuacji, w której 5 komputerów próbuje uzyskać dostęp do 5 współdzielonych napędów dysków. Niedługo potem problem został przedstawiony na nowo przez Ch. Hoare'a jako problem ucztujących filozofów. Jest to teoretyczne wyjaśnienie zakleszczenia i uniemożliwienia innym jednostkom korzystania z zasobów poprzez założenie, że każdy z filozofów bierze po jednym widelcu, a dopiero potem próbuje zdobyć drugi. Język Québec oraz Ontario, Nouveau-Brunswick, – ok. 8 mln osób. Ok. 201 milionów używa francuskiego na całym świecie jako języka głównego (oszacowanie z r. 2009 wg Organisation mondiale de la Francophonie) a 72 miliony jako drugiego języka codziennego (w tym krajach Maghrebu). Wiele z tych osób mieszka w krajach, gdzie francuski jest jednym z języków urzędowych bądź powszechnie używanych (54 kraje). Paradoksalnie, w Algierii, Maroku, i Tunezji, gdzie nie ma statusu języka urzędowego jest bardziej rozpowszechniony niż w wielu krajach Czarnej Afryki, gdzie jest jedynym językiem urzędowym i używa go 96 milionów ludzi.
Informatyka (łac. informatio - "wyobrażenie", "wizerunek", "pomysł", ang. computer science, computing science, information technology, informatics) – dziedzina nauki i techniki zajmująca się przetwarzaniem informacji – w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje. Pierwotnie część matematyki, została rozwinięta do osobnej dyscypliny nauki, pozostaje jednak nadal w ścisłym związku z matematyką, która dostarcza jej podstaw teoretycznych. Problem ucztujących filozofów jest prezentacją problemu synchronizacji pracujących współbieżnie procesów. Istnieje kilka możliwych rozwiązań tego problemu, między innymi wykorzystujące arbitrów lub grupy semaforów. ProblemPięciu filozofów siedzi przy stole i każdy wykonuje jedną z dwóch czynności – albo je, albo rozmyśla. Stół jest okrągły, przed każdym z nich znajduje się miska ze spaghetti, a pomiędzy każdą sąsiadującą parą filozofów leży widelec, a więc każda osoba ma przy sobie dwie sztuki - po swojej lewej i prawej stronie. Ponieważ jedzenie potrawy jest trudne przy użyciu jednego widelca, zakłada się, że każdy filozof korzysta z dwóch. Dodatkowo nie ma możliwości skorzystania z widelca, który nie znajduje się bezpośrednio przed daną osobą. Problem ucztujących filozofów jest czasami przedstawiany przy użyciu ryżu, który musi być jedzony dwiema pałeczkami, co lepiej obrazuje sytuację. Problem producenta i konsumenta to klasyczny informatyczny problem synchronizacji. W problemie występują dwa rodzaje procesów: producent i konsument, którzy dzielą wspólny zasób - bufor dla produkowanych (konsumowanych) jednostek. Zadaniem producenta jest wytworzenie produktu, umieszczenie go w buforze i rozpoczęcie pracy od nowa. W tym samym czasie konsument ma pobrać produkt z bufora. Problemem jest taka synchronizacja procesów, żeby producent nie dodawał nowych jednostek gdy bufor jest pełny, a konsument nie pobierał gdy bufor jest pusty.
Przetwarzanie współbieżne (ang. concurrent computing) to przetwarzanie oparte na współistnieniu wielu wątków lub procesów operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle. Filozofowie nigdy nie rozmawiają ze sobą, co stwarza zagrożenie zakleszczenia w sytuacji, gdy każdy z nich zabierze lewy widelec i będzie czekał na prawy (lub na odwrót). Aby zilustrować problem zakleszczenia możemy przyjąć, że opisany system wchodzi w stan zakleszczenia w przypadku, gdy wystąpi „krąg nieuprawnionych zgłoszeń”. W takiej sytuacji filozof P1 czeka na widelec zabrany przez filozofa P2, który czeka na widelec filozofa P3, itd. tworząc cykliczny łańcuch. Głodzenie (zamierzona gra słów w oryginalnym opisie problemu) może także wystąpić niezależnie od zakleszczenia w sytuacji, gdy zostanie wzięta pod uwagę kwestia czasu oczekiwania filozofa na dwa wolne widelce. Problem czytelników i pisarzy - klasyczny informatyczny problem synchronizacji dostępu do jednego zasobu (pliku, rekordu bazy danych) dwóch rodzajów procesów - dokonujących i niedokonujących w nim zmian.
Proces - jedno z najbardziej podstawowych pojęć w informatyce, definiowane jako egzemplarz wykonywanego programu, jednak każdy nowo powstały proces otrzymuje unikalny numer, który go jednoznacznie identyfikuje, tzw. numer PID (ang. process IDentifier). Przykładowo, może zostać wprowadzona reguła, że filozof czeka pięć minut z widelcem w ręku, aż drugi widelec będzie dostępny. W sytuacji, gdy nie otrzyma kompletu, odkłada go i czeka kolejne pięć minut przed podjęciem kolejnej próby zdobycia pary sztućców. Taki schemat eliminuje możliwość zakleszczenia (system może zmieniać swój stan) jednak dalej jest podatny na problem livelock. Jeśli wszyscy filozofowie wejdą do jadalni jednocześnie, następnie dokładnie w tym samym czasie chwycą za swój lewy widelec, to po pięciu minutach wszyscy go odłożą, poczekają pięć minut, znowu go zabiorą, itd. Zakleszczenie (ang. deadlock) jest pojęciem opisującym sytuację, w której co najmniej dwie różne akcje czekają na siebie nawzajem, więc żadna nie może się zakończyć. Gracze zdobyli pewne unikatowe warunki niezbędne do wykonania kolejnego ruchu, ale żaden nie ma wszystkich i gra nie może być kontynuowana. Zakleszczenie może być zobrazowane przykładem ludzi rysujących wykresy. Dwie osoby pragną narysować wykres, do czego jest potrzebna linijka i ołówek. W momencie, kiedy jedna z nich zabierze ołówek, druga zaś linijkę dochodzi do sytuacji konfliktowej. Pierwsza osoba potrzebuje linijki, drugi zaś ołówka. Oba żądania nie mogą być spełnione – powstaje zakleszczenie, które to zazwyczaj jest kłopotliwe, gdyż nie ma pewnych i zawsze sprawdzonych rozwiązań, ażeby go uniknąć.
Zagłodzenie procesu (eng. process starvation) - w informatyce sytuacja w środowisku wielozadaniowym, w której dany proces nie jest w stanie zakończyć działania, ponieważ nie ma dostępu do procesora lub innego współdzielonego zasobu. Brak dostępnych widelców jest analogią braku dostępu do współdzielonych zasobów w rzeczywistym programowaniu komputerów, w sytuacji zwanej współbieżnością. Blokowanie zasobów jest powszechną techniką zapewniania wyłącznego dostępu do zasobu przez jeden program lub moduł kodu. Gdy zasób zostaje zajęty przez program, każdy następny „zainteresowany” nim program jest blokowany do czasu zwolnienia zasobu. Zależnie od okoliczności, jeśli kilka programów bierze udział w blokowaniu zasobu, możliwe jest zakleszczenie. Język niemiecki – język z grupy zachodniej rodziny języków germańskich. W rzeczywistości stanowi on grupę kilku języków zachodniogermańskich, które często są określane jako języki niemieckie; standardowy język niemiecki (Standard Hochdeutsch) oparty jest na Biblii Marcina Lutra, która z kolei opiera się na języku mówionym w Górnej Saksonii i Turyngii.
Semafor w informatyce - jest chronioną zmienną lub abstrakcyjnym typem danych, który stanowi klasyczną metodę kontroli dostępu przez wiele procesów do wspólnego zasobu w środowisku programowania równoległego. Semafory zostały po raz pierwszy opisane przez Edsgera Dijkstrę jako istotne rozwinięcie algorytmu Dekkera. Na przykład: jeden program potrzebuje dwóch plików do działania, więc jeśli uruchomimy dwa takie programy i zablokują one po jednym pliku, to oba programy będą czekały na zwolnienie drugiego pliku, co nigdy nie nastąpi. Problem ucztujących filozofów jest uogólnionym i abstrakcyjnym problemem używanym do tłumaczenia różnych zagadnień powstających wokół problemów dotyczących wzajemnego wykluczania. W powyższym przypadku problem zakleszczenia jest zilustrowany przy jego pomocy. Aplet Javy – aplet dostarczany w postaci kodu bajtowego Javy. Może zostać uruchomiony w przeglądarce internetowej wykorzystując wirtualną maszynę Javy albo w samodzielnej aplikacji AppletViewer służącej do testowania apletów Javy. Mogą być pisane zarówno w Javie jak i innych językach kompilowanych do kodu bajtowego - na przykład Jython. Przetwarzanie współbieżne (ang. concurrent computing) to przetwarzanie oparte na współistnieniu wielu wątków lub procesów operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle. czytaj dalej: [2], [3] Powyższa treść oraz zamieszczone w niej powiązane definicje/pojęcia - udostępniane są na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń.
Zobacz szczegółowe informacje o warunkach korzystania
Wszystkie hasła znajdujące się w naszym mirrorze Wikipedii mają znaczenie informacyjne i edukacyjne. Nie mogą być traktowane jako porady. |