Patrzysz na posty wyszukane dla hasła: Przetwarzanie współbieżne
Temat: Najlepszy algorytm sortowania ciągu częściowo posortowanego
Witam
Mój problem tyczy się programowania rozproszonego w którym P procesów
sortuje n-elementowy ciąg losowych liczb. Każdy z procesów otrzymuje
do posortowania n/P elementów (ponieważ czasem nie można podzielić
ciągu tak, aby każdy proces dostał tą sama liczbę elementów podział
jest realizowany tak, że:
ilosc=dlugosc_tablicy/ilosc_procesow;
reszta=dlugosc_tablicy%ilosc_procesow;
Każdy z procesów dostaje do posortowania część tablicy o wielkości
"ilosc" natomiast jeden z procesów tablice o wilekości "ilosc+reszta"
a sprawdzałeś algorytm sortowania przez scalanie,
nadaje się on naturalnie do przetwarzanie współbieżnego, tyle że z
każdym etapem zmniejszamy ilość procesów
można też adaptować sortowanie kubełkowe
wszystko zależy czy "bawisz" się z przetwarzaniem współbieżnym czy też
masz rzeczywistą dużą bazę do sortowania i próbujesz to optymalizować.
Darek
Temat: Najlepszy algorytm sortowania ciągu częściowo posortowanego
a sprawdzałeś algorytm sortowania przez scalanie,
nadaje się on naturalnie do przetwarzanie współbieżnego, tyle że z
każdym etapem zmniejszamy ilość procesów
można też adaptować sortowanie kubełkowe
wszystko zależy czy "bawisz" się z przetwarzaniem współbieżnym czy też
masz rzeczywistą dużą bazę do sortowania i próbujesz to optymalizować.
Chodzi o to, że u mnie podprocesy, to programy uruchamiane na innych
komputerach w sieci, do których program główny wysyła cześć tablicy
do posortowania a potem te dane odbiera i agreguje w jedną tablicę.
Ponieważ opóźnienia związane z przesyłaniem danych po sieci są większe
niż czas potrzebny na wykonanie scalania fragmentów tablicy lub sortowania
częściowo posortowanej tablicy, zatem ja starałem się ograniczyć liczbę
przesyłów danych między programem głównym a podprogramami lub między samymi
poprogramami i myślę, że agregacja danych w programie głównym to chyba
najlepszy pomysł - chodzi jednak o to, aby znaleźć rozwiązanie, które jest
jeszcze szybsze od tego zaproponowanego przeze mnie.
Osobiście przejrzałem kilka sposobów sortowania i nie udało mi się znaleźć
czegoś takiego jak "sortowanie ciągu wstępnie posortowanego", ale może coś
takiego istnieje i ciąg typy "23 34 45 56 1 4 7 78 3 5 6 9" potrafi na prawdę
szybko posortować?
Temat: Najlepszy algorytm sortowania ciągu częściowo posortowanego
| a sprawdzałeś algorytm sortowania przez scalanie,
| nadaje się on naturalnie do przetwarzanie współbieżnego, tyle że z
| każdym etapem zmniejszamy ilość procesów
| można też adaptować sortowanie kubełkowe
| wszystko zależy czy "bawisz" się z przetwarzaniem współbieżnym czy też
| masz rzeczywistą dużą bazę do sortowania i próbujesz to optymalizować.
Chodzi o to, że u mnie podprocesy, to programy uruchamiane na innych
komputerach w sieci, do których program główny wysyła cześć tablicy
do posortowania a potem te dane odbiera i agreguje w jedną tablicę.
Ponieważ opóźnienia związane z przesyłaniem danych po sieci są większe
niż czas potrzebny na wykonanie scalania fragmentów tablicy lub sortowania
częściowo posortowanej tablicy, zatem ja starałem się ograniczyć liczbę
przesyłów danych między programem głównym a podprogramami lub między samymi
poprogramami i myślę, że agregacja danych w programie głównym to chyba
najlepszy pomysł - chodzi jednak o to, aby znaleźć rozwiązanie, które jest
jeszcze szybsze od tego zaproponowanego przeze mnie.
Osobiście przejrzałem kilka sposobów sortowania i nie udało mi się znaleźć
czegoś takiego jak "sortowanie ciągu wstępnie posortowanego", ale może coś
takiego istnieje i ciąg typy "23 34 45 56 1 4 7 78 3 5 6 9" potrafi na prawdę
szybko posortować?
Do sortowania ciągu wstępnie posortowanego najlepiej użyć insertionsort.
Temat: [Krzewawek] Tajne materiały krzewawkowe. (2005r.)
http://doppler.no-ip.org/~adam/kszewawek/ - Zanim klikniesz przypomnij sobie że tajne materiały krzewawkowe są tajne! Że ludzie są ludźmi! Że przetwarzanie równoległe nie jest przetwarzaniem współbieżnym tylko właśnie przetwarzaniem równoległym! ;-)
Temat: Mechanizmy wspolbieznosci w NT
Witam,
Poszukuje informacji nt. zarzadzania procesami w systemach opartych ja
jadrze NT, w szczegolnosci interesuje mnie wszysko co wiaze sie ze
wspolbieznym wykonywaniem procesow w systemie, ochrona przez
zakleszczeniem, programowaniem i przetwarzaniem wspolbieznym pod NT itp.
Jezeli ktos zna lokalizacje odpowiednich dokumentow w Sieci (najlepiej w
jezyku polskim), to uprzejmie prosze o podanie namiaru.
p.
gawda
Temat: Producent i konsument
: Mam problem zwiazany z przetwarzaniem wspolbieznym.Mianowicie:
: dwa procesy: producent i konsument. Ma byc wykorzystana pamiec wspoldzielona
: i semafory.
Na jakiej to uczelni uczą programowania współbieżnego na przykładzie PHP?
-- ||
||)) ||<< == Nowy Polski Słownik Pijacki == http://pijacki.ez.pl/
||
,,Myśl lokalnie, działaj globalnie.''
Temat: Producent i konsument
Witam.
Mam problem zwiazany z przetwarzaniem wspolbieznym.Mianowicie:
dwa procesy: producent i konsument. Ma byc wykorzystana pamiec wspoldzielona
i semafory. Producent wytwarza i zapisuje do pamieci a konsument pobiera z
niej i wyswietla to co robil. Kazdy z procesow ma pobierac czas w ktorym
wyslal/pobral i go zrzucac na ekran.
generuje (glownie ze ma za malo pamieci choc jej zwiekszanie nic nie daje).
Jakby ktos zechcial mi pomoc (jakas strona www lub programik),
to bylbym bardzo wdzieczny.
Z gory wielkie dzieki.
Pozdrawiam
t00sheen
Temat: wieloprocesorowosc pod win
Zgadza się, ale czy przy przetwarzaniu współbieżnym pod unixami nie używa
się częściej procesów zamiast wątków? AFAIK fork jest na każdym unixie,
wątki nie, czy się mylę?
Nie mylisz sie, ale fork to archaizm, ktory m.in. mial umozliwic
symulowanie wielu niezaleznych watkow sterowania na starych
systemach operacyjnych, ktore z roznych przyczyn nie mialy
takiego wsparcia (np. ze starosci, aby utrzymac zgodnosc ze
specyfikacja itd.) Obecnie wiekszosc systemow operacyjnych
ogolnego przeznaczenia traktuje pojecie watku jako pierwotne
w stosunku do procesu, wiec uzywanie fork(). Jesli nie musisz,
staraj sie nie uzywac tej operacji. Gry potrzebujesz przenosnych
watkow, to napisz program w jezyku, ktory sie do tego lepiej
nadaje niz C, np. w Javie albo Adzie.
Pozdrawiam
Piotr Wyderski
Temat: wieloprocesorowosc pod win
[...]
Pod Linuxem w wielu językach programowania też są wątki, tyle że
w niektórych (np. w C) interfejs do wątków jest inny niż np. pod
Windows.
Zgadza się, ale czy przy przetwarzaniu współbieżnym pod unixami nie używa
się częściej procesów zamiast wątków? AFAIK fork jest na każdym unixie,
wątki nie, czy się mylę?
Temat: Thread's w C++
wielowatkowosci w przetwarzaniu wspolbieznym. Preferowanym kompilatorem do
programu jest produkt Borlanda aczkolwiek nie koniecznie. Gdzie moge
znalesc
jakies materialy na powyzszy temat?
A to na studia czy do szkoly - tak z ciekawosci??
Mam dla Ciebie cos jak gotowiec prawie
http://www.phys.uni.torun.pl/~jacek/
powinno byc gdzies na tym sajcie- akurat na borlandzie opisane watki.
Jak nie ma to napisz... mam na dysku.
pozdro();
Temat: Czy kognitywistyka podzieli los behawioryzmu i freudyzmu
Witam,
nie chciałbym nadmiernie eksponować kwestii "metafory komputerowej", bo nie temu poświęcony jest niniejszy wątek. Ponieważ jednak obiecałem kilka zdań "od siebie", to niniejszym spełniam moją obietnicę.
Po pierwsze (co bardzo ważne) nie możemy zapominać, że metafora komputerowa została sformułowana w czasach, gdy komputery nie miały takich możliwości i konstrukcji jak dzisiaj. Gdyby sformułowano ją dzisiaj, odnosząc do wieloprocesorowych systemów, umożliwiających wielowątkowe, współbieżne przetwarzanie informacji, pewnie łatwiej byłoby ją zaakceptować.
Pytałem, dlaczego metafora komputerowa jest użyteczna. W odpowiedzi podałeś Sławku kilka przykładów, z których już pierwszy jest mocno dyskusyjny.
A zatem pamięć krótkoterminowa jest jak dane w pamięci komputera, pamięć długoterminowa - jak dane na twardym dysku.
Pamięć krótkoterminowa w magazynowym modelu pamięci jest, jak nazwa na to wskazuje, krótkoterminowa. Dane w "pamięci komputera" (jak się domyślam - operacyjnej) mogą być w niej utrzymane tak długo, jak długo jest dostępne zasilanie - czyli, na dobrą sprawę, dowolnie długo itp. itd.
W sumie jedyne, co widziałbym sensownego w metaforze komputerowej to relacja mózg/umysł jako hardware/software.
Pozdrawiam
Temat: DuoCore i wielowotkawosc
| wydaje mi sie ze tak, wystarczy ci odpalac obliczenia w kilku watkach,
| sprawdz w przykladach do delphi byl program ktory sortowal kilka tablice
| roznymi sposobami i to dzialalo na watkach, po obserwacji tego bedziesz
| widziail czy procek jest na 100%
| p.s. moze ktos polecic jakas strone gdzie mozna poczytac o duocore?
a czy jest tak, ze jezeli uruchamiam program (bez watkow) to obslugiwany tylko
przez 1 rdzen a jak jest wiecej watkow to sa rozdzielane na obydwa rdzenie?
i czy bedzie jakis zysk jezeli odpale aplikacje na procesorze 1-rdzeniowym?
na jednordzeniowym będziesz miał stratę, gdyż musisz dodatkowo tworzyć wątki
jeżeli masz obliczenia to najpierw przyjrzyj się możliwości przetwarzania
potokowego (działa nawet na jednordzeniowych), tu też możesz przyspieszyć kilka razy.
| strona producenta??
tego akurat moglem sie domyslec :D
ale myslalem bardziej, o np. jakim forum (na gazecie nie ma niestety
pl.comp.duocore) :D
szukaj przetwarzania równoległego, współbieżnego a nie duocore (to tylko nazwa
handlowa)
Darek
Temat: Porównywarka informatyczna
piepia, to zalezy.Ja wybralem programowanie,to z grafiki mialem jeden przemiot(grafa 3d w 3dsmax) i tech. multimedialne,na ktorych robilismy filmy.
Na inzynierskich jest specjalnosc "grafika komputerowa" ,a na mgr "inz audio-wizualna" czy cos i tam sa wlasnie takie przedmioty graficzne.
Teraz to mam przedmioty takie jak: programowanie obietkowe(java),wspolbiezne i rozproszone(c ,pod linuchem),kryptografia,metody numeryczne(tez programujemy,ale jezyk prog. dowolny),bazy danych(oracle),rozproszone systemy opracyjne,przetwarzanie obrazu... no tego typu rzeczy.
Byl taki temat o cenach na koniec,jak do niego zajrzysz,to zobaczysz co mialem w zeszlym roku.
Temat: Polski Związek Żeglarski hacked :)) )
On Tue, 7 Aug 2007, tomek bartkowiak wrote:
[quote]Jacek Kijewski <jacek@sail-ho.pl> napisał(a):
No bez przesady, Gdynia - Szczecin - Gdynia, dopingowanie Maliny i jeszcze>> =20
co=B6 takiego mia=B3bym robi=E6? Eeee...
Przetwarzanie równoległe,współbieżne albo potokowe...dokłądnie się nie znam
[/quote]
Potokowe nie.
Poza tym tam semaforów nie było.
--
Sail-ho portal żeglarski i sklep wysyłkowy tel.:+48 58 669 46 06
http://www.sail-ho.pl fax :+48 58 669 46 05
http://sklep.sail-ho.pl
Nasz nowy sklep żeglarski: Gdynia, marina, budynek YK Stal, codziennie 10-18.
Temat: Prosba o pomoc w tlumaczeniu
Mam prosbe o skorygowanie i pomoc kolegow w tlumaczeniu specyfikacji jakiegos
urzadzenia pomiarowego.Moje przypuszczalne tlumaczenia w []
A/D Specifications:
Type: Successive approximation [kolejnych przyblizen]
Conversion Time[czas przetwarzania]: 5 µs
Nonlinearity (Integral)[Nielniowosc (calkowanie)]: ±1 LSB
Nonlinearity (Differential)[Nieliniowosc (rozniczkowanie): No missing codes
Analog Inputs:
Bias Current[prad uplywu?]: <1nA (0° to 35°C)
Common Mode Rejection[tlumienie sygnalu wspolbieznego?]:86 dB, DC to 60 Hz
for gains[wzmocnienia] < =8; 100 dB for gains =16
Input Sequencer:
Depth[???glebokosc,rozdzielczosc]: 16,384 locations[lokacji]
Single-Channel Analog Software Trigger:
Trigger Level: Programmable (16-bit resolution), including “window
triggering”[wyzwalacz okienkowy?]
Analog Output
Offset Error[Blad zera]: ±0.0045V max
Gain Error[Blad wzmocnienia]: ±0.01%
Digital Feedthru[cyfrowe sprzezenie?]: 50 mV when updated
Settling Time[czas ustawiania]: 10 µsec max to 1 LSB for full-scale step
Frequency/Pulse Counters
Channels: 4 x 16-bit; cascadable[kaskadowo] as 2 x 32-bit
Ordering information:
Molded expansion cable for[zaprojektowany rozszerzajacy kabel do...]
Software:
Post-acquisition fequency-domain analysis software for data acquired from the
DaqLab-tu juz sie poddaje;)
POZD. i z gory dzieki za pomoc
Zmija
Temat: Polski Związek Żeglarski hacked :)) )
Jacek Kijewski <jacek@sail-ho.pl> napisał(a):
[quote]No bez przesady, Gdynia - Szczecin - Gdynia, dopingowanie Maliny i jeszcze=
=20
co=B6 takiego mia=B3bym robi=E6? Eeee...
Przetwarzanie równoległe,współbieżne albo potokowe...dokłądnie się nie znam[/quote]
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Temat: Potrzebny konwerter przebiegu trojkat-sinus
Potrzebuje do projektu z elektroniki przetwornik sygnalu trojkątnego na
sinus w projektowanym generatorze. Nie moze to byc drabinka
diodowo-rezystancyjna. Czestotliwość od 100Hz do 20kHz.
Prosze o kontakt:
Einstein
To promotor oczekuje od Ciebie czegoś super nowego. Wszystkie takie
przetworniki to w istocie drabinki rez. diodowe. Jaki on ma pomysł ?
Może skonstruujesz współbieżnie strojony filtr pasmowo-przepustowy lub
przynajmniej dolnoprzepustowy?
Jakie są oczekiwania co do dokładności przetwarzania?
Może komputerowo lub analogowo scałkujesz i wytworzysz w przetworniku D/A
sinus ?
Tadek
Temat: implementacja telneta
Hello.
telneta. Serwer ma być współbieżny i korzystać z tcp.
Z tym akurat problemu jako takiego nie przewiduję, ale nie bardzo wiem jak
się zabrać za wykonywanie poleceń użytkownika i przetwarzania wyników by je
Prosiłbym więc o nakierowanie mnie czy mam grzebać w system() czy czymś
z rodziny exec() czy może w ogóle póki co błądzę ;)
A no i dodatkowo mają być dwa klienty. Pod Windowsa i po Linuksa, więc
zapewne jakiejś przenośnej biblioteki do obsługi sieci będę potrzebował.
Fajnie by było jakby ktoś coś polecił.
pozdr,
fEnIo
Temat: uruchomienie wątków po kolei
| Darek
| A możesz rozwinąć temat , ewentualnie co powinienem poczytać ?
Mogę rozwinąć, ale musisz o coś zapytać, tak nie wiem. Tak samo poza
Google nic nie polecę, choć coś z klasyki o programowaniu współbieżnym
by się przydało. Drugie to może freepascal.org, wśród przykładów jest
wiele z wątkami, szczególnie w innych niż M$.
| CO rozumiesz pod "właściwa implementacji FIFO" ?
Czyli wystarczająco wydajna. Ale nie masz zbyt ostrych wymagań.
| To jest zaimplementowane w sprzęcie , nie mam do tego dostępu jedynie
| jedynie CyUSB.SYS (z jego API)
To gdzie masz to FIFO. Myslałem że masz dwa własne wątki. Pierwszy
odbiera z urządzenia (via API) a drugi przetwarza, a FIFO się stosuje do
komunikacji pomiędzy nimi. I chyba tak należy to zrobić.
Przez fifo rozumiem bufor w układzie scalonym cypress które jest w
urządzeniu z USB i z tego urządzenia odczytuje dane po USB.
Jeżeli będe odczytywał zbyt rzadko to fifo w układzie scalonym sie
zapełni :( a ja utracę część informacji. Dlatego też nie mogę sobie
pozwolić na jednoczesne odczytywanie i przetwarzanie danych w jednym wątku.
Cała komunikacja z USB odbywa sie za pomocą funkcji DeviceIoControl
która wysyła odpowiednie rozkazy do drivera urządzenia a ten następnie
do samego urządzenia.
| Aha i jeszcze jedno, jak mierzysz z taką dokładnością czas ?
np tym:
http://members.yline.com/~tom_at_work/index.html
Dziekuję za linki pozdrawiam
Darek
Temat: Prosba o pomoc w tlumaczeniu
A/D Specifications:
Type: Successive approximation [kolejnych przyblizen]
Conversion Time[czas przetwarzania]: 5 µs
Ok.
Bias Current[prad uplywu?]: <1nA (0° to 35°C)
Prąd polaryzujący.
Common Mode Rejection[tlumienie sygnalu wspolbieznego?]:86 dB, DC to 60 Hz
for gains[wzmocnienia] < =8; 100 dB for gains =16
Może też być tłumienie sygnału wspólnego.
Trigger Level: Programmable (16-bit resolution), including “window
triggering”[wyzwalacz okienkowy?]
Chyba tak - wyzwalacz działający w pewnym zakresie napięć(tak jak
komparator okienkowy).
Offset Error[Blad zera]: ±0.0045V max
Dryft zera?
Molded expansion cable for[zaprojektowany rozszerzajacy kabel do...]
Ekranowany przewód do rozszerzeń(modułów rozszerzających?) - trzeba by
znać kontekst
Temat: Linux / Watki / SQL
Witam,
korzysta z watkow. Bedzie on autoryzowal klientow korzystajac z bazy
danych (Mysql lub Postgres).
Czy wszystkie watki moga jednoczesnie korzystac z tego samego
polaczenia z baza? (ktore jest zmienna globalna lub statyczna)
Generalnie wiecej sensu jest w tworzeniu nowego polaczenia dla kazdego
watku. Zrzucasz wtedy na DBMSa cala odpowiedzialnosc za powstawanie
anomalii a na tym sie ludzie robiacy bazy danych raczej znaja. Co do
szybkosci to i tak DBMS ma tu najwiecej do powiedzenia, zarowno w
rozwiazaniu z jednym polaczeniem jak i z kilkoma polaczeniami.
ZTCW MySQL tego teraz nie obsluguje przetwarzania transakcyjnego (moge
sie mylic). Postgres ma to chyba calkiem niezle zrobione. Najlepsza
obsluge wspolbieznosci widzialem w Oraclu ktory np. automatycznie
potrafi wykryc zakleszczenie.
piter
Temat: Informatyka ?
Czesc
Slyszalem, ze na informatyce... poziom matmy... jest strasznie wysoki, i
ze
nawet bardzo dobrzy ludzie padaja. Jak jest w rzeczywistosci ? Jaki jest
Ja kończę (10. semestr) informatykę na Politechnice Śląskiej w Gliwicach
(nie jest to miasto wymienione przez Ciebie, ale ufam, iż poziom nauczania
informatyki nie jest dużo niższy niż w wymienionych).
Z matematyką nie powinieneś mieć większego problemu, zwłaszcza jeśli
kończysz liceum o profilu mat-fiz bądź mat-inf. Ja skończyłem technikum
elektroniczne i problemów nie miałem, a geniuszem matematycznym raczej nie
jestem :) [podstawa to przerobienie conajmniej kilkudziesięciu przeróżnych
całeczek ze zbioru Bermana (czy jakoś tak ten pan się nazywał) ;)]
Do przedmiotów wymienionych przez Pana Tomasza Pyrę należy dodać Modelowanie
Cyfrowe, Podstawy Przetwarzania i Rozpoznawania Obrazów Cyfrowych, Sztuczna
Inteligencja i Rozpoznawanie Obrazów, może Programowanie Współbieżne, w
których pojawia się trochę matematyki.
Ale nie masz się czego bać, wszak matematyka piękną nauką jest :)
Pozdrawiam,
A.R
Temat: Thread's w C++
Czesc,
wielowatkowosci w przetwarzaniu wspolbieznym. Preferowanym kompilatorem do
programu jest produkt Borlanda aczkolwiek nie koniecznie. Gdzie moge znalesc
jakies materialy na powyzszy temat?
Pozdr!
Staszek
Temat: Informatyka i programowanie
Nowa encyklopedia powszechna PWN © Wydawnictwo Naukowe PWN SA
INFORMATYKA [łac.], ogół dyscyplin nauk. i techn. zajmujących się (ogólnie ujmując) informacją, a w szczególności jej komputerowym przetwarzaniem; obejmuje: teorie informatyczne, budowanie systemów informatycznych (w tym programowanie), budowę i działanie sprzętu komputerowego, zastosowania metod informatycznych w różnych dziedzinach działalności ludzkiej i in. Teorie informatyczne zajmują się badaniem zjawisk związanych z operowaniem informacją — jej przedstawianiem, przechowywaniem, uzyskiwaniem, porządkowaniem, przetwarzaniem. Prawa rządzące tymi zjawiskami leżą u podstaw budowy narzędzi informatyki, będących obiektami fiz. (gł. komputerami) i log. (np. algorytmami, językami programowania, programami). Te z kolei stanowią przedmiot badań innych działów teoretycznych informatyki. Teorie informatyki posługują się językiem i metodami matematyki, logiki mat. i specyficznych dziedzin, jak: teoria języków formalnych i automatów, teoria algorytmów, teoria kolejek; teorie te tworzą również swój własny język i metody. Programowanie i budowanie systemów informatycznych obejmuje w szczególności tworzenie narzędzi ułatwiających programowanie i ogólnie — posługiwanie się komputerami; do narzędzi tych należą języki programowania, translatory, systemy operacyjne i in.; do działu informatyki związanego z programowaniem należą też metody programowania i oceny programów. Dział informatyki związany, ogólnie ujmując, ze sprzętem komputerowym (jego budową i metodami oceny) wykorzystuje zarówno rozwój elektroniki, jak i modele obliczeniowe, tworzone dla szybkiego, algorytmicznego rozwiązywania zadań określonego typu; modele te, oparte np. na zasadzie przetwarzania sekwencyjnego, współbieżnego, potokowego, stanowią teoret. podstawę architektur komputerowych, realizowanych następnie elektronicznie. Dzięki stosowaniu metod informatyki wiele różnych dziedzin działalności ludzkiej zostało usprawnionych, np. administracja i zarządzanie, obliczenia numeryczne, sterowanie procesami technol., przygotowywanie tekstów (edytor), prace wydawnicze (Desktop Publishing), przesyłanie wiadomości (poczta elektroniczna), projektowanie (CAD/CAM), diagnostyka med. (np. tomografia komputerowa). Rozwijają się też nowe dziedziny informatyki, m.in. takie jak: sztuczna inteligencja i grafika komputerowa.
W.M. TURSKI Propedeutyka informatyki, Warszawa 1989.
Temat: Definicja - Informatyka
INFORMATYKA [łac.], ogół dyscyplin nauk. i techn. zajmujących się (ogólnie ujmując) informacją, a w szczególności jej komputerowym przetwarzaniem; obejmuje: teorie informatyczne, budowanie systemów informatycznych (w tym programowanie), budowę i działanie sprzętu komputerowego, zastosowania metod informatycznych w różnych dziedzinach działalności ludzkiej i in. Teorie informatyczne zajmują się badaniem zjawisk związanych z operowaniem informacją — jej przedstawianiem, przechowywaniem, uzyskiwaniem, porządkowaniem, przetwarzaniem. Prawa rządzące tymi zjawiskami leżą u podstaw budowy narzędzi informatyki, będących obiektami fiz. (gł. komputerami) i log. (np. algorytmami, językami programowania, programami). Te z kolei stanowią przedmiot badań innych działów teoretycznych informatyki. Teorie informatyki posługują się językiem i metodami matematyki, logiki mat. i specyficznych dziedzin, jak: teoria języków formalnych i automatów, teoria algorytmów, teoria kolejek; teorie te tworzą również swój własny język i metody. Programowanie i budowanie systemów informatycznych obejmuje w szczególności tworzenie narzędzi ułatwiających programowanie i ogólnie — posługiwanie się komputerami; do narzędzi tych należą języki programowania, translatory, systemy operacyjne i in.; do działu informatyki związanego z programowaniem należą też metody programowania i oceny programów. Dział informatyki związany, ogólnie ujmując, ze sprzętem komputerowym (jego budową i metodami oceny) wykorzystuje zarówno rozwój elektroniki, jak i modele obliczeniowe, tworzone dla szybkiego, algorytmicznego rozwiązywania zadań określonego typu; modele te, oparte np. na zasadzie przetwarzania sekwencyjnego, współbieżnego, potokowego, stanowią teoret. podstawę architektur komputerowych, realizowanych następnie elektronicznie. Dzięki stosowaniu metod informatyki wiele różnych dziedzin działalności ludzkiej zostało usprawnionych, np. administracja i zarządzanie, obliczenia numeryczne, sterowanie procesami technol., przygotowywanie tekstów (edytor), prace wydawnicze (Desktop Publishing), przesyłanie wiadomości (poczta elektroniczna), projektowanie (CAD/CAM), diagnostyka med. (np. tomografia komputerowa). Rozwijają się też nowe dziedziny informatyki, m.in. takie jak: sztuczna inteligencja i grafika komputerowa.
W.M. TURSKI Propedeutyka informatyki, Warszawa 1989.
Temat: Prosba o pomoc w tlumaczeniu
Type: Successive approximation [kolejnych przyblizen]
Przetwarzanie A/D metodą kolejnych przybliżeń
Conversion Time[czas przetwarzania]: 5 µs
Ok
Nonlinearity (Integral)[Nielniowosc (calkowanie)]: ±1 LSB
Nieliniowość całkowa: +/- 1LSB
Nonlinearity (Differential)[Nieliniowosc (rozniczkowanie): No missing
codes
Nieliniowość rózniczkowa: Nie występuje gubienie kodów
Analog Inputs:
Bias Current[prad uplywu?]: <1nA (0° to 35°C)
prad polaryzujący
Common Mode Rejection[tlumienie sygnalu wspolbieznego?]:86 dB, DC to
Ok, ew. tłumienie sygnału wspólnego.
Settling Time[czas ustawiania]: 10 µsec max to 1 LSB for
full-scale step
czas ustalania z dokładnością do 1LSB (w odpowiedzi na skok o amplitudzie
równej pełnemu zakresowi przetwornika)
Channels: 4 x 16-bit; cascadable[kaskadowo] as 2 x 32-bit
4 kanały 16-bit z możliwością połaczenia kaskadowego 2x32bit
(?? - nie znam kontekstu)
Post-acquisition fequency-domain analysis software for data acquired
from the DaqLab-tu juz sie poddaje;)
Soft do analizy w dziedzinie częstotliowości, danych zgromadzonych przez
(programie? urządzeniu?) DaqLab.
Sądzę, że chodzi o oprogramowanie działające na danych zgromadzonych z
pewnym wyprzedzeniem, czyli nie w czasie rzeczywistym.
Temat: Programista C++ po raz kolejny
Programista C++ (Embedded)
Nr referencyjny: FR/PEC++
Miejsce pracy: Wrocław
Opis stanowiska:
* praca w pionierskiej branży technologii sieciowych
* współtworzenie nowych standardów Carrier Ethernet
* współpraca w ramach międzynarodowego projektu, którego celem jest stworzenie platformy oprogramowania dla urządzeń sieci szkieletowych wykorzystujących technologię Carrier Ethernet
* praca nad projektem będącym w fazie analizy i projektowania - szansa na dołączenie do zespołu w najciekawszym z możliwych momentów
* analiza techniczna, projektowanie, implementacja oraz testy jednostkowe komponentów będących częścią platformy
* możliwość rozwoju zawodowego poprzez profesjonalny system szkoleń zewnętrznych i wewnętrznych
Wymagania:
* wykształcenie wyższe (informatyka i kierunki pokrewne)
* bardzo dobra znajomość języka programowania C++
* dobra znajomość języka angielskiego w mowie i piśmie
* umiejętność analitycznego myślenia, kreatywność oraz zorientowanie na pracę zespołową
* silna motywacja do rozwoju zawodowego oraz chęć poszerzania wiedzy
Mile widziane:
* umiejętność modelowania obiektowego przy użyciu UML
* znajomość systemu operacyjnego typu Linux
* znajomość zagadnień programowania współbieżnego
* otwartość na podróże służbowe
Wyślij CV ze zdjęciem, podając w temacie wymieniony wyżej numer referencyjny, na adres praca@power.com.pl.
Zgłoszenie powinno zawierać klauzulę o ochronie danych osobowych następującej treści:
"Wyrażam zgodę na przechowywanie i przetwarzanie moich danych osobowych zawartych w moim zgłoszeniu przez firmę Power Media S.A. we Wrocławiu dla potrzeb niezbędnych do realizacji procesu rekrutacji (zgodnie z Ustawą z dnia 29.08.97 o ochronie danych osobowych, Dziennik Ustaw Nr 133 Poz. 883)."
Więcej informacji na stronie www.power.com.pl/praca
Temat: Początkujący w programowaniu
robione, tak na poziomie edukacji jak i przemyslu. Proba bym Mozart-OZ
ktory doskonale nadaje sie do eksperymentowania w ktora strone mozna
pojsc, i jest wykorzystywany do edukacji w wielu uniwersytetach
europejskich (ksiazka zostala przetlumaczona na polski).
Mam polskie wydanie. Bardzo dobra książka.
Nei wydaje mi sie aby Java byla przyszloscia programwoania i aby sie
wszystko dalo zrobic w Javie, wrecz przeciwnie, niektorzy prorokuja
Mam nadzieję. Czarna rozpacz mnie ogarnia, że ten język będzie jednym z
najczęściej stosowanych przez następne kilkanaście lat. Przypomniało mi
się jak Patrick Naughton w jednej ze swoich książek opisuje historię
Javy i batalię jaką musiał stoczyć z Billem Joyem, który twierdził, że
Oak jest nędzny w porównaniu z tym co już istnieje na runku.
rychly jej koniec (podobnie zreszta jak C++ i podobnych). jezyki
Jeżeli chodzi o C++ to się nie zgodzę. Tam gdzie kluczowa jest wydajność
i zużycie pamięci, nie znam żadnej alternatywy. Z autopsji - jeden z
etapów przetwarzania ( partycjonowanie hipergrafów ) potrafi zająć do
kilkunastu GB pamięci. Przy czym ważny jest też czas - powiedzmy 2-3h
jest akceptowalne. Na razie nie widzę konkurenta dla C++.
funkcujne maja pare dobrych wlasciwisci, szczegolnie przy
programowaniu wspolbieznym, zwlaszcza na procesorach multicore, a to w
tej chwili jest problemem software engineering numer jeden:
Zgadza się. Co nie zmienia faktu, że i tak jest to bardzo trudne.
Pozdrawiam
KK
Temat: W co inwestowac?
W krociutkiej historii W'95 daje sie wyszperac zbyt wiele ciekawostek
[chodzilo o nieprawidlowe zachowania systemu].
Nalezy sobie jasno powiedziec, ze ewolucja systemow operacyjnych w kierunku
srodowisk graficznych (bo WYSIWYG), wielozadaniowych, prawdziwie
wspolbieznych, centralnie zarzadzajacych wszystkimi zasobami jest nie tyle
nieunikniona co wrecz potrzebna i W'95 idzie we wlasciwym kierunku, tym
bardziej, ze pozostawia mozliwosc pracy w trybie znakowym i, przynajmniej
teoretyczna, zgodnosc z dotychczasowymi standardami.
Problem nie w idei lecz w wykonastwie. Niestabilnosc systemu, bledy
rozpoznawania konfiguracji (bez "plug'n'pray" czulbym sie lepiej bo mialbym
mniej klopotow), marnowanie wielkiej czesci zasobow na bajery kosztem
sprawnosci przetwarzania (co z tego ze jest slicznie skoro komputer czesto
zachowuje sie jak zolw) - to sa podstawowe grzechy nowinki "bandy Gates'a".
To jest to czageo chcieli ludzie, aby system byl mniej robotyczny....
Powaznie takie zarzuty stawiano win3.X ze jest bardzo "zimny"
W dodatku system reklamowany jako 32-bitowy w rzeczywistosci ma w sobie
sporo kodu 16-bitowego co mocno paskudzi jego sprawnosc.
A to zadna tajemnica zwlaszacz ze chodzilo o kompatybilnosc z DOS i
wczesniejszymi WIN.
Proba implementacji "plug_and_play" na magistrali ISA musiala doprowadzic do
klopotow a byla wedlug mnie zupelnie niepotrzebna. Byl to dylemat autorow
systemu operacyjnego mniej wiecej typu: *pozwolic niekompetentnemu
uzytkownikowi grzebac w sprzecie i probowac to ujarzmic software'owo (bez
szans na pelne powodzenie) czy zostawic 'srublologie' fachowcom i zrobic
system pewny w dzialaniu* - uwazam, ze MalyMiekki podjal zla decyzje w tej
sprawie.
Widzisz w odroznieniu od Poslki i Zimbabwe sprzetem zjamuja sie w 90
procentach wlasnie hobbysci. I dla nich to udogonienie.
W ogole sysytem jest dla czlowieka a nie dla administartora:))
Srad mniej "command line" i trybu tekstowego a wiecej grafiki i
wizardow i help.
So long:
--
Slawek Duchnowski
*Proud New Yorker*
Temat: czemu tu taka cisza?
Andrzej Wasowski...
| Praktyczne doświadczenie (proste ćwiczenia na uczelni)
| mam jedynie z Lispem,
No tak, to jest paskuda. Ja tego uzywam tylko jak mnie emacs zmusi
:)
Owszem, paskuda :) I zniechęciła skutecznie moich kolegów.
Z dwóch banalnych powodów:
- nawiasy (sic!)
- "gdzie się podziała pętla for?"... :)
Wiesc niesie, ze jezeli juz lubisz programowac w skladni
abstrakcyjnej to lepiej zabrac sie za scheme.
Mam zamiar się nauczyć wszystkich. Do szerszych zastosowań
skupię się chyba na tandemie Alice/Mozart-OZ. Zaznaczam, że
skończyłem studia i robię to dla przyjemności ;) Być może
kiedyś wrócę rozpocząć studia doktoranckie (na razie praca
i studia filozoficzne zajmują dużo czasu).
| Kolejne pytania: jakie ograniczenia w praktycznych projektach
| (np. komercyjnych) - prawne, pod względem możliwości zrobienia
| czegoś itd....
No chyba duze. Zdaje sie, ze wiekszosc implementacji jest open
source, bez ograniczen do stosowania w projektach komercyjnych.
Oczywiscie nie jestem tu specem.
Wiem ze Moscow ML daje sie uzywac na takich zasadach jak gcc.
Ale do wielu zastosowan moze sie nie nadac, ze wzgledu na
stosunkowo nisk wydajnosc. Z drugiej strony ja go uzywam
do dosc zaawansowanego kompilatora i dziala zadowalajaco (choc
po prawdzie, kluczowa biblioteka do BDDs jest importowana z C).
Wymien konkrety program, ktory Cie zastanawia, to moze jakis
uzytkownik, ktory zna jego licencje sie odezwie.
Raczej Alice/Mozart-OZ - interesuje mnie także przetwarzanie
rozproszone, programowanie współbieżne, systemy agentowe - wydają
się być stworzone do takich zastosowań (zresztą są ;)....).
O szczegółach licencji dowiem się już sam i dam znać.
adam
Temat: Ale ze mnie debil
Ja:
Nie jest jasne, czy to, co mamy w głowach, ma jakiś związek z
komputerami.
SasQ:
Jakiś związek ma: przetwarzanie i pamiętanie informacji.
Różnice oczywiście są:
Tradycyjne komputery cyfrowe są podobne do maszyny Turinga
i są w dużej mierze sekwencyjne.
[...]
Istnieją jednak nie tylko modele programowania sekwencyjnego.
Można pisać programy na maszyny równoległe
Sama równoległość nie zmienia zakresu pojęcia obliczalności, a tylko
złożoności czasowej. To znaczy: cokolwiek da się zrobić z użyciem
wielu procesorów działających współbieżnie, potrafi również zrobić
pojedynczy procesor. Tyle, że zajmie mu to więcej czasu.
A Penrose pisze o znajdowaniu wyników dla funkcji nieobliczalnych.
Tego, z samej definicji obliczalności, nie może zrobić żadna maszyna
Turinga, a więc żaden komputer, nawet wieloprocesorowy. Penrose
uważa, że niektórych takich rzeczy może dokonać mózg, nie będący
komputerem.
SasQ:
W podobny sposób mają działać w przyszłości komputery kwantowe,
dlatego przyszłość programowania będzie zmierzać ku algorytmom
równoległym.
To już lepiej, bo komputer kwantowy nie jest oparty o model maszyny
Turinga. Mówiac bardzo nieformalnie, on nie tylko liczy ale trochę
też mierzy. Więc być może mógłby zmierzyć jakąś rzecz nieobliczalną.
Ale jak dotąd (o ile wiem) nie jest znana żadna taka rzecz; na razie
komputery kwantowe redukują złożoność, ale nie od nieskończoności.
Penrose upatruje tej ,,mocy'' mózgu gdzie indziej, nie w zjawiskach
kwantowych; chociaż jako fizyk musiał o nich pomyśleć w pierwszym
rzędzie. Ale tej części jego książki ja już nie rozumiem, więc nie
będę streszczał.
SasQ:
W ograniczonym świecie można nauczyć komputer rozumieć język ludzki,
jeśli stworzy się mu odniesienie poszczególnych słów do tego, co
znajduje się w jego wirtualnym świecie.
Takie projekty chodzą od wczesnych lat sześćdziesiątych XX wieku. Za
każdym razem uzyskuje się umiejętność komputera sensownego reagowania
na wypowiedzi w ograniczonym języku opisującym ograniczony świat. Ten
sukces umożliwia pozyskanie funduszy na badania. I za każdym razem
próby rozszerzenia tego języka i tego świata przynoszą rozczarowanie.
- Stefan
Temat: GEFORCE GTX 285 1GB 512BIT
Nowy model od nVIDII z serii GTX 2xx, startowe taktowania na poziomie 650/2500 Mhz..
Druga generacja zunifikowanej architektury NVIDIA®:
Architektura drugiej generacji zapewnia o 50% wyższą wydajność w grach w stosunku do pierwszej generacji dzięki 240 rdzeniom przetwarzającym, zapewniającym niewiarygodną moc cieniowania.
NVIDIA PhysX™-Ready:
Procesor graficzny GeForce obsługuje technologię NVIDIA PhysX, umożliwiając przetwarzanie w grach danych fizycznych, co sprawia, że rozgrywka z GeForce jest bardziej dynamiczna i realistyczna.
Technologia 3-way NVIDIA SLI®:
Wiodąca w branży technologia 3-way NVIDIA SLI oferuje niezwykły wzrost wydajności poprzez implementację technologii AFR (Alternate Frame Rendering) zapewniając w systemie Windows Vista najszybszą na świecie rozgrywkę za pośrednictwem stabilnych, nowoczesnych sterowników.
Obsługa Microsoft DirectX 10:
Procesor graficzny z pełną obsługą DirectX 10 i Shader Model 4.0 zapewnia niezrównane poziomy graficznego realizmu i efekty o filmowej jakości w najnowszych grach.
Technologia NVIDIA CUDA™:
Technologia CUDA uwalnia moc rdzeni przetwarzających procesora graficznego, aby przyspieszyć działanie najbardziej wymagających obliczeniowo zadań – takich jak transkodowanie wideo – zapewniając do 7x wyższą wydajność w stosunku do tradycyjnych procesorów głównych.
Obsługa PCI Express 2.0:
Zaprojektowana zgodnie z nowym standardem architektury szyny PCI-Express 2.0, który oferuje najszybszy transfer danych w wymagających dużej przepustowości grach i aplikacjach trójwymiarowych, równocześnie zachowując wsteczną kompatybilność z płytami głównymi wyposażonymi w szynę PCI-Express.
Technologia GigaThread™:
Masowa architektura wielowątkowa obsługuje tysiące niezależnych, współbieżnych wątków, zapewniając ekstremalną wydajność przetwarzania w zaawansowanych programach shaderowych następnej generacji.
Silnik NVIDIA Lumenex™:
Oferuje niezwykłą jakość obrazu oraz precyzję obliczeń zmiennoprzecinkowych zachowując pełną płynność wyświetlania. Technologia antyaliasingu 16x: superszybki antyaliasing o wysokiej jakości do 16x, likwidujący postrzępione krawędzie.
128-bitowe, zmiennoprzecinkowe oświetlenie HDR (High Dynamic-Range):
Podwójna w stosunku do poprzednich generacji precyzja pozwalająca osiągnąć niewiarygodnie realistyczne oświetlenie przy włączonym antyaliasingu.
Optymalizacja i obsługa OpenGL 2.1:
Najlepsza wydajność i kompatybilność ze wszystkimi aplikacjami OpenGL.
Dwa wyjścia DVI:
Umożliwiają obsługę największych wyświetlaczy o najwyższej rozdzielczości do 2560x1600 oraz obsługę technologii High-bandwidth Digital Content Protection (HDCP).
Technologia NVIDIA PureVideo® HD:
Połączenie akceleracji procesu dekodowania wideo high-definition oraz przetwarzania obrazu, które oferuje bezprecedensową klarowność obrazu, płynność odtwarzania wideo, wierne kolory oraz precyzyjne skalowanie obrazu wideo i filmów.
Dedykowany, programowalny procesor wideo:
NVIDIA PureVideo to dedykowany, programowalny rdzeń przetwarzający, fragment procesorów graficznych firmy NVIDIA, zapewniający doskonałą jakość obrazu i płynność odtwarzania ze 100% odciążeniem procesora zadaniami dekodowania wideo H.264 przy niskim zużyciu energii.
Sprzętowa akceleracja dwustrumieniowa:
Obsługuje funkcję obraz-w-obrazie zapewniając doskonałe wrażenia podczas oglądania filmów Blu-ray.
Dynamiczna kontrola kontrastu i rozszerzanie palety barwnej:
Zapewnia obróbkę i optymalizację filmów High-definition klatka po klatce, oferując doskonałą klarowność obrazu.
Co sądzicie o tej karcie
Temat: Pytania testowe i wzorcowe "Programowanie Klient-Serwer
Pytania testowe i wzorcowe zadania do "Programowanie Klient-Serwer"
1. Grupa 1
Wymień i krótko opisz fazy kompilacji programu w języku C++.
2.
Jaka wygląda struktura poprawnego programu? Od jakiej instrukcji rozpoczyna się wykonywanie każdego programu w C++?
3.
Wymień cechy charakteryzujące każdą zmienną.
4.
W jakich systemach liczbowych mogą być zapisane stałe reprezentujące liczby całkowite w języku C++?
5.
Omów operatory, które umożliwiają tworzenie obiektów typów pochodnych.
6.
Omów operator inkrementacji i dekrementacji.
7.
Co to jest operator rzutowania? Jaką wartość przyjmie zmienna b po wykonaniu sekwencji: int a = 0xAE9C; char b; b = (char) a;
8.
Omów pojęcie zakres ważności obiektu w programie; wyjaśnij pojęcie zasłanianie nazw.
9.
Co to jest zmienna wskaźnikowa? Jak deklarujemy zmienne wskaźnikowe i jak nadajemy im określoną wartość, podaj przykłady.
10.
Jakie są zasady definiowania tablic.
11.
Jakie są zasady inicjowania elementów tablic o wartościach liczbowych w chwili definiowania tablicy?
12.
Jakie są zasady inicjowania elementów tablic tekstowych w chwili ich definiowania.
13.
Na czym polega różnica pomiędzy pojęciami deklaracja funkcji oraz definicja funkcji? Do czego one służą?
14.
W jakim przypadku w programie można pominąć deklarację funkcji?
15.
Czy deklaracje funkcji i definicje funkcji jeżeli jednocześnie występują w programie, mogą być zapisane w dowolnej kolejności, czy też
16.
obowiązują stosowne reguły? Jeżeli tak, opisz je?
17.
Jakie obowiązują zasady przy definiowaniu funkcji, która nie oddaje wartości, podaj przykład definicji takiej funkcji?
18.
W jakich sytuacjach definicja funkcji może zastąpić deklarację funkcji?
19.
Co to oznacza, że argumenty przesyłamy do funkcji przez wartość lub przez referencję (adres)? Czy ma to jakieś znaczenie w programie?
20.
Jak przesyłamy tablice do funkcji (tablica jest argumentem wywoływanej funkcji)?
21.
Co rozumiesz przez pojęcie funkcja rekurencyjna - podaj co najmniej dwa przykłady takich funkcji.
22.
Omów instrukcję postaci { warunkowej / pętli / przełącznika }. Podaj przykład.
23.
Wymień operacje wykonywane na plikach, co to jest deskryptor pliku?
24.
Wymień zasadnicze etapy związane z budową biblioteki statycznej.
25. Grupa 2
Co to są identyfikatory PID i PPID procesu. Do czego one służą systemowi operacyjnemu?
26.
Rola systemu operacyjnego?
27.
Opisz istotne cechy architektury modelu klient-serwer.
28.
Jakie funkcje pozwalają na powoływanie procesów potomnych?
29.
Do czego służy funkcja fork? Jaką istotną cechę posiada funkcja fork, która odróżnia ją od wszystkich innych funkcji?
30.
Ile wartości, jakie i gdzie oddaje funkcja fork?
31.
Co nam pozwala "zorientować się" w wykonywanym programie czy realizowany jest program macierzysty czy potomny?
32.
Co rozumiesz przez powiedzenie, że proces potomny jest dokładną kopią programu macierzystego.
33.
Do czego służy funkcja waitpid?
34.
Co to jest proces zombi, jakie są skutki pozostawania tych procesów w systemie?
35.
Do czego służą funkcje rodziny exec?
36.
Omów cechy protokołu połączeniowego TCP.
37.
Omów cechy protokołu bezpołączeniowego UDP.
38.
Jakie warunki komunikacji zapewniają gniazda datagramowe a jakie strumieniowe?
39.
Wymień i krótko scharakteryzuj typowe funkcje komunikacji sieciowej transmisji połączeniowej TCP, wywoływane po stronie serwera i klienta.
40.
Postać i wartości adresu IP i numeru portu. Do czego one służą w programach K-S?
41.
Omów pojęcie gniazda strumieniowego. Co to jest deskryptor gniazda.
42.
Wymień znane Ci atrybuty gniazda. Jakie podstawowe operacje są wykonywane na gniazdach?
43.
Wymień i opisz kolejne pola zmiennej strukturalnej definiującej adres gniazda. Jakimi wartościami należy je wypełnić?
44.
Jaka funkcja (opisz jej argumenty) po stronie serwera tworzy tzw. gniazdo bierne i do czego ono służy?
45.
Jaka funkcja (opisz jej argumenty) po stronie serwera tworzy tzw. gniazdo aktywne i do czego ono służy?
46.
Omów cykl przetwarzania poleceń po stronie klienta i serwera związanych z przygotowaniem i utrzymaniem komunikacji przez gniazda strumieniowe.
47.
Podaj sekwencję wywołań funkcji systemowych po stronie klienta i serwera związanych z przygotowaniem i utrzymaniem komunikacji przez gniazda strumieniowe.
48.
Czy różni się serwer sekwencyjny(iteracyjny) od współbieżnego?
Pytania dostępne pod adresem: Jan Makuch dnia Sob 19:48, 07 Cze 2008, w całości zmieniany 1 raz
Temat: Czy warto studiować Informatyke Stosowaną?
A moim zdaniem:
Syllabus ma sie tak do jego realizacji jak architektura do komputerow na IS.
Wszystko zalezy od tego w jaki sposob przedmiot jest prowadzony. Jezeli mamy napisane inzynieria oprogramowania, a koledzy z informatyki projektowanie systemow informatycznych, to ta druga nazwa brzmi dumniej. Roznica programowe sa zadne - znajomi z infy robili niemal ten sam projekt w taki sam sposob na zaliczenie przedmiotu.
Niemniej jesli faktem jest, ze za przedmiot algorytmy i struktury danych jest mniej punktow niz za np jakies systemy dynamiczne, a egzamin przewidziany jest na ten drugi przedmiot, to niestety powiedzmy sobie szczerze, pamietam co to jest prawo Lapunowa, ale Dijkstry z pamieci nie napisze.
U nas da sie zaobserwowac kilka faktow:
1) Czesc przedmiotow informatycznych (systemy operacyjne, programowanie wspolbiezne, algorytmy i struktury danych) zostaly zepchniete na dalszy plan z powodu przedmiotow takich jak (systemy dynamiczne, przetwarzanie sygnalow, podstawy sterowania). Jesli z przedmiotu nie ma egzaminu, to tylko od Ciebie oraz prowadzacego zalezy czy sie czegos nauczysz, czy po prostu zaliczysz.
2) U nas nikt nie robi problemow z zaliczeniem - 3.0 z przedmiotu nieegzaminacyjnego to imo drobiazg - odnies to do punktu pierwszego. (sa wyjatki - ja z dr. Rogusem nie mialem niestety).
3) Nie rozumiem zarzutow odnosnie niedoboru programowania - nie wiem czy byl przedmiot (arch. komp. no i wf) na ktorym nie trzeba bylo czegos napisac. Czasem wiecej czasem mniej. O ile na javie zrobisz same projekty o tyle nie mniej projektow zakodzisz na systemach operacyjnych tyle ze w C, albo pythonie.
4) Projekty - ponoc nowoczesna metoda nauki (nie zgodze sie) - jesli mamy mniej projektow niz informatyka, to niech mnie kule bija , momentami slyszac slowo projekt robie sie zdenerwowany.
5) Kadra z automatyki prowadzi wiekszosc przedmiotow - automatycznych. Te informatyczne sa w znacznej czesci prowadzone przez pracownikow z tytulem "Informatyka EAIiE" i niesmialbym zarowno tym pierwszym jak i drugim odmowic kompetencji (jest wyjatek, ale to dzial otwarty a ja wciaz studiuje . Moim zdaniem niektorym po prostu brakuje nieco checi aby dac cos od siebie, bo wola po prostu poczekac na gotowe studenckie....... projekty.
6) Czy na IS jest latwo? Jesli ktos mi powie ze trudno, to go zbagatelizuje i poczekam az wytrzezwieje. Niemniej, to nie jest tak ze tutaj nic nie robimy a projekty sa latwe. Projekty naprawde potrafia zaskoczyc poziomem trudnosci, co juz nikogo tu nie dziwi. U nas po prostu nikt na koniec semestru nie podliczy punktow i wesolo nie zakomunikuje ze braklo 0,5 punkta i trzeba przyjsc na poprawke. U nas wykladowcy dojda do wniosku, ze 0,5 to niewiele. Inni z kolei slusznie zauwaza, ze skoro oddales w sem projekt koncowy, zaliczyles 2 duze kolokwia na 4.0 oraz oddawales regularnie sprawozdania, to 4.0 ci sie nalezy i nie musisz przywdziewac garniaka, zeby po kolejne 4.0 przyjsc na egzamin....
6) Przedmioty rodem z automatyki (zwykle 1 w sem) maja plusy (ucza modelowania rzeczywistosci, pozwalaja nie zapomniec jak wyglada calka, ktora na dobra sprawe juz chyba Rimmanowi nie do konca byla potrzebna, sprawjaja ze potrafisz opisac tor pomiarowy z modulacja amplitudy i opornikiem dekadowym - strata czasu), ale i minusy (momentami wymagaja czasu ktory poswiecic powinienes na poszukiwanie optymalnej drogi w grafie...). Problem "latwosci" polega na tym, ze skoro nie jestesmy automatyka to wystarcza nam podstawy (Egzaminy sa proste), a z przedmiotow informatycznych czasem.... egzaminu nie ma. Dlatego tez wspomnialem jak wiele zalezy od Ciebie i prowadzacego.
Na koniec:
Mialem okazje pracowac w wakacje w zespole z 2 osobami z Informatyki. Kiedy przeszlismy 1 dnia do pracy to ja wiedzialem co to jest cvs oraz ja mialem za soba 3 zakodzone projekty w javie. Jednak uszom nie moglem sie nadziwic kiedy z pamieci rzucali fragmentami kodow z algorytmow o ktorych slyszalem... ze sa. Pracowalo sie milo, mam nadzieje ze nie powiedza o mnie zlego slowa i uwazam, ze pracowalo sie rownorzednie - majac na mysli poziom uzytecznej wiedzy - ja sie gorszy nie czulem.
Osobiscie:
Nie jestem zwolennikiem tego kierunku, poniewaz uwazam, ze od nas wymaga sie jak od "Informatykow" ale sama atmosfera pracy nie jest stricte informatyczna. Malo teoretyzowania, czasem naprawde za malo. Spore oczekiwania prowadzacych nie zawsze poparte podstawami jakie powinnismy tu uzyskac. Dla ludzi pracy od poczatku studiow oraz samoukow polecam, dla studentow ktorzy chca zaspokoic swoj glod wiedzy informatycznej i oczekuja, ze ktos poczestuje ich porcja informacji - bylbym sceptyczny.
Amen.
Temat: nie nawidze Linuxa !!!
| tylko ze Apache jest bezpieczny a IIS (vide CodeRed) - nie. A kto
| stworzyl Apache'a? Czy to nie to srodowisko, ktore tak ci za skore
| zaszlo?
| | MySQL - proszę bardzo, PHP elegancko jest i działa
| | najnowsza wersja 4.0.6 a panom z RH na przykład do dziś nie chciało
| | się wypuścić rpm'a z upgrade!...)
| panom z PLD sie chcialo :)
Pozatym zawsze mozna sciagnac zrodla i skompilowac najnowsza wersje. Jest
to zreszto prawidlowy sposob instalacji oprogramowania pod linuxem.
Bardziej niz RPMy.
| | wreszcie w którym momencie wypadną z rynku jedyne w tym układzie
| | ostoje linuxa - czyli servery z Apache?
Pewnie nigdy bo APACHE tez sie rozwija...
| jak IIS bedzie za darmo i bez dziur :)
| Za darmo pewnie nigdy - ale może się okazać że za parę lat będzie to
| jedyny używany server...
| mam wrażenie że M$ się o to mocno postara - integracja z platformą .NET i
| takie tam xml'e, soap'y itp....
Akurat nie nalezy tego pochwalac. Pare lat temu bylem goracym zwolennikiem
M$, ale teraz juz nie, kiedy widze jak zdobywaja pozycje supermonopolisty.
Na szczescie ostatnio ja chyba traca...
| | Odpowiedź jest dla mnie prosta - w momencie gdy M$ upora się z
| | bezpieczeństwem serverów, tak jak uporał się ze stabilnością Windows
| | wprowadzając wersję 2000
W2K wiesza mi sie niezbyt rzadko....
| hmmm... poczytaj sobie bugtraq i zastanow sie jeszcze raz nad
| stabilnoscia
| win2k...
| nie mam się co zastanawiać - używam win 2000 od pojawienia się beta 3 -
| miałem od tej pory 2 twarde zwisy - raz jak padł hdd i
| drugi raz jak się taśma od hdd wkręciła w wentyl od proca...
| Linuxa zwiesiłem już jakieś 3-4 razy - przez miesiąc.... :(
W domu jeszcze nie udalo mi sie zawiesic. Kwestia konfiguracji i
przemyslenia poczynan. Wiadomo, ze jesli program zdobedzie 50 % zasobow i
wpadnie w dead lock, to serwer przysiadzie. Ale to sa zagadnienia
przetwarzania rownoleglego i dotycza wszystkich systemow wspolbieznych (nie
tylko zreszta)
| | I żeby nie było że nie lubię linuxa - na prawdę mi się spodobał -
| możliwość
| | dostosowania każdego elementu systemu do swojego widzimisię jest na
| prawdę
| | miła....
| | jednak gdy kończy się zabawa a zaczyna praca - linux staje się kulą u
| | nogi.... czas to pieniądz!
Dlatego spodobalo mi sie w linuxie, ze nie musze od czasu do czasu
instalowac systemu od nowa (W95/98)
| 1. Nie rozmawiajmy o serverach ok? Dobra - niech będzie linux jako server
| jest lepszy....
OK
| 2. Pogadajmy o linuxie jako o stacji roboczej - i to określając zakres
| zastosowań:
| praca biurowa - edycja tekstu, arkusze kalkulacyjne,
Sa aplikacje, nie widze problemow...
| webdesign (kodowanie html, xhtml, javascript, php, asp, xml, xsl,
| xslt,
| css, obróbka grafiki bitowej),
Ok...
| internet - przeglądanie www, poczta, icq.... itp...
Zajebiscie. Tak na marginesie - przy slabych laczach, jesli na prawde
chcesz znalezc informacje to links jest najlepszy - chodzi jak burza...
| 3. Porównajmy dostępny soft pod ww. zastosowania dla linuxa i windows - i
| porównajmy czas potrzebny
| na uruchomienie środowiska do pracy pod linuxem i windowsem - kto tu
| oszczędzi czas?
Dodajmy konserwacje po WXXX
| się co nieco żeby zorganizować sobie
| pod nim efektywne środowisko pracy - ale pisać softu nie mam zamiaru
| (umiejętności!).... i co tu poradzisz poza glimmer'em?
| Jakikolwiek edytor z podpowiadaniem składni (nie tylko kolorowaniem)? Z
| validowaniem bezpośrednio podczas kodowania?
Kylix??? KDevelop??? Pewnie jeszcze troche....
| Cokolwiek wspomagającego pracę z xslt? (Odpal sobie XmlSpy - jeżeli masz
| windows - i zobacz co to potrafi....).
Caly problem windowsowcow polega na tym, ze chcieliby, zeby linux dzialal
wedlug ich upodoban i nawykow... I najlepiej klikologia...
Temat: Karty Graficzne
Specyfikacja i własności układu Geforce 7900GTX
Pełne wsparcie Microsoft® DirectX® 9.0 Shader Model 3.0
Standard dla współczesnych kart graficznych oraz konsol następnej generacji, pozwalający na generowanie oszałamiających i skomplikowanych efektów, budujących kinematograficzny realizm. GPU NVIDIA® zapewniają możliwie najpełniejszą implementację Shader Model 3.0 - włącznie z Vertex Texture Fetch (VTF) - by zapewnić pełną kompatybilność i najwyższą wydajność każdej aplikacji DirectX9.
Renderowanie HDR (High Dynamic-Range)
Nieprzeciętne efekty świetlne ożywiają środowiska dostarczając prawdziwie dogłębnych, ultra-realistycznych doznań. Oparta na technologii OpenEXR firmy Industrial Light and Magic, implementacja 64-bit tekstur dostarcza najnowocześniejszych efektów HDR (High Dynamic-Range) poprzez możliwości zmiennoprzecinkowego przetwarzania na potrzeby cieniowania, filtrowania, teksturowania oraz zlewania.
Mechanizm NVIDIA® CineFX® 4.0
Dostarcza zaawansowanych efektów wizualnych z niewyobrażalną szybkością. Pełna obsługa Microsoft® DirectX® 9.0 Shader Model 3.0 pozwala na uzyskanie oszałamiających i zaawansowanych efektów specjalnych. Nowej generacji architektura jednostki cieniującej wraz nową jednostką teksturującą usprawnia proces przetwarzania tekstur zapewniając szybsze i bardziej płynne generowanie grafiki w grach 3D.
Technologia NVIDIA® SLI™
Oferuje dwukrotnie większą wydajność niż pojedynczy układ graficzny. Pełna obsługa Microsoft® DirectX® 9.0 Shader Model 3.0 pozwala na uzyskanie niesamowitych i skomplikowanych efektów specjalnych. Nowej generacji architektura jednostek cieniujących, wraz z nową jednostką teksturującą, usprawniają proces teksturowania dla uzyskania płynnej animacji w wymagających grach 3D.
Technologia NVIDIA® PureVideo™
Połączenie wysokiej jakości układu video i oprogramowania dekodującego, zapewnia niespotykaną wyrazistość obrazu, płynne odtwarzanie sekwencji video, dokładne odwzorowanie kolorów, precyzję skalowania dla wszelkich sekwencji video, by zamienić twój komputer w kino domowe z prawdziwego zdarzenia.
Adaptacyjnie programowalny procesor Video
Programowalna technologia zawarta w PureVideo pozwala na adaptację nowych formatów kodowania by zapewnić zgodność z rozwiązaniami stworzonymi w przyszłości.
Sprzętowa akceleracja High-Definition H.264, MPEG-2 oraz WMV
Płynnie odtwarzaj wszystkie filmy w formacie H.264, MPEG-2 oraz WMV - włącznie z WMV-HD - przy minimalnym obciążeniu procesora tak by komputer mógł przydzielić zasoby innym, współbieżnie wykonywanym procesom.
Zaawansowany przestrzenny De-Interlacing tymczasowy
Poprawia płynność odtwarzania sekwencji video oraz DVD na wyświetlaczach progresywnych, zapewniająca ostry, wyraźny obraz, rywalizujący z wysokiej klasy systemami kina domowego.
Skalowanie wysokiej jakości
Technologia skalowania wysokiej jakości, zapewnia wyraźny, czysty obraz niezależnie od rozmiaru okna, włącznie z pełnoekranowym trybem HDTV o rozdzielczości do 1080i.
Korekcja koloru obrazu Video
Koryguje różnice w charakterystykach RGB monitorów oraz odbiorników TV poprzez opcje kontrolne kolorów NVIDIA PureVideo s ProcAmp, upewniając się żeby wyświetlany obraz nie był zbyt ciemny, przesadnie jasny czy pozbawiony kolorów, niezależnie od formatu strumienia video czy rodzaju ekranu.
Zintegrowany koder sygnału HDTV
Zapewnia analogowe wyjście TV (komponentowe/ kompozytowe/ S-Video) o rozdzielczości do 1080i.
256-Bit Interfejs pamięci
Zapewnia większą przepustowość i wydajność pamięci aby sprostać wymaganiom najnowszych gier i aplikacji.
Technologia NVIDIA UltraShadow™ II
Opracowane, by poprawić wydajność gier intensywnie wykorzystujących mechanizmy cieniowania, jak Doom 3 id Software
Studyjnej precyzji, 128-Bit obliczenia
128-bit obliczenia studyjnej precyzji przez cały potok, zapobiegają powstawaniu defektów obrazu wynikających z niskiej precyzji obliczeń a także zapewniają najlepszą jakość obrazu w najbardziej wymagających aplikacjach.
32-bit precyzja odwzorowania kolorów z pełna szybkością
Pozwala na poprawę jakości obrazu bez straty wydajności.
Technologia NVIDIA® ForceWare™
Zapewnia sprawdzoną kompatybilność, niezawodność i stabilność z najszerszą gamą gier oraz aplikacji. ForceWare dostarcza każdemu użytkownikowi możliwie najlepszych doznań, zaraz po wyjęciu z pudełka, a także znaczną wydajność oraz opcję aktualizacji dla kart opartych na układzie graficznym NVIDIA® GeForce.
Kluczowa specyfikacja
Częstotliwość taktowania rdzenia - 650MHz
800MHz 512MB pamięci GDDR3
256-bit interfejs pamięci
Wsparcie i optymalizacja bibliotek OpenGL 2.0
Technologia obsługi wielu monitorów NVIDIA® nView®
Technologia NVIDIA® Digital Vibrance Control® 3.0
Podwójny układ RAMDAC 400MHz
Dwa złącza DVI Dual-Link
Proces technologiczny - 90nm
Opracowane dla systemu for Microsoft® Windows™ Vista
Temat: Niech Nam gwiazdka pomyślności......
Strzała – załóżmy, że lecąca strzała pokonała określony dowolny odcinek drogi. Można więc powiedzieć, że w momencie startu można ją było znaleźć na początku tej trasy, a na mecie na końcu. Pytanie jednak, gdzie przebywała w trakcie pokonywania tej drogi. Można odpowiedzieć, że w połowie czasu pokonywania tego odcinka musiała być niewątpliwie w połowie odcinka. Powstaje jednak znowu dylemat, gdzie była w trakcie gdy pokonywała połowę połowy tego odcinka. Znowu można odpowiedzieć, że w 1/4 odcinka. Powstaje jednak znowu dylemat gdzie była w 1/8 czasu... Takie rozważanie prowadzi nas w końcu do wniosku, że albo musi istnieć tak mały odcinek drogi, który da się pokonać bez czasu, albo tak mały czas, w trakcie którego strzała nie pokonuje żadnego odcinka. W przeciwnym razie nie można by w każdej chwili jej lotu ustalić, gdzie przebywa. Jednak obie alternatywy - małego odcinka i małego okresu są nie do przyjęcia, bo cały odcinek składać się musi z sumy takich małych odcinków - co prowadziłoby do wniosku, że na pokonanie całego odcinka nie potrzeba też czasu. Podobne rozumowanie można przeprowadzić dla małych okresów czasu, z którego wyniknie, że strzała nie może się w ogóle poruszać.
Więc wszystkie odcinkim jakie strzała pokonuje są sobie rwnoważne.Weżmy pierwszy jej odcinek (poł całego odcinka) i jeszcze ktoryś tam jeszcze przez nas "widoczny" dający się zauważyć (np. n-ty o długości 1/(2^n) całego). Przecież można przełożyć każdy punkt pierwszego odcinka na odpowiadający mu punkt na o wiele mniejszym odcinku! Nawet na odwrot! Każdy punkt z mniejszego - na pierwszy! A jeżeli przełożymy na pierwszy odcinek "dwa do siebie przylegające punkty" i na pierwszym odcinku zauważymy odległość, to... lepiej się patrząc czy powiększając lupą znajdziemy, że nawet dwa "przylegające do siebie punkty z dużego odcinka mają swoje odpowiedniki na... małym odcineczku!
Następnie tak samo możemy rozważyć jako pierwszy ten e-n=ty odcinek z kolejnym dalszym! I tak dalej, i tak dalej, aż stwierdzimy..., że toto nie ma sensu! Wszystkie są sobie rowne pod tym względem i już! A dłuogość odcinkw, to ta sama miara jak czasu. Ponadto nie ma roznicy, co rozważamy, odcinek (przestrzeń) czy czas!
Czyli doszliśmu do wniosku, że wszystko zależy, jaką dokładną miarą, jak umiejętnie co postrzegamy, to to takowe jest.
Kolejnym moim przykładem na pojęcie czasu jest... logika.
Tak zżyliśmy się z logiką, że nawet twierdzimy, że posiadamy ją prędzej niż świadomość własnego bytu, świadomość postrzegania logiki, świadomość czasu! Bo już... jako embriony...
Ale dopiero po urodzeniu się (twierdzę) mamy możliwość postrzegania czasu! Dziecko jako osesek, gdy rozwija się jego mozg, dopiero zaczyna "kojarzyć". Że cień, ktory nad nim się pochyla, to mama, że może się spodziewac przewinięcia, nakarmienia, czyli ustąpienia nieprzyjemnych bodźcow. Dopiero wtedy zaczyna to pojmować. Zaczyna powoli zauważać i rozrożniać inne cienie. I są to jednak rzne cienie. W ten sposob poznaje wielość tego świata w jego zauważalnej wielkości. Pźniej poznaje "alternatywę" i "koniunkcję". Czyli, że rzeczy koło niego jest coraz więcej, że łączą się na zasadzie, że ten(to) lub ten(to) i ten sam skutek, albo, że musi być ten(to) i ten(to), aby nastąpił skutek. Poznaje też wielość tych(tego) i że może ich w jednym zdarzeniu uczestniczyć naraz wiele, dużo, bardzo dużo, wręcz .... nieskończoność.
Ale najgorzej jest z implikacją (jeżeli, to). Że coś z czegoś wynika. Że coś musi być, aby coś, po myśli, się zdarzyło. Na to trzeba też czasu i doświadczenia. Jednak sama implikacja w sobie nie zawiera ani trochę tego czasu! Jeżeli (coś), to... już automatycznie, natychmiast wynika. Jeżeli są wszystkie czynniki i odpowiednio są połaczne, alternatywnie, koniunkcyjnie i implikacyjnie, jak w każdym naszym (s)twierdzeniu, to jest to rwnoważne z... wnioskiem! Kwesti poprawności założenia nie będę rozważał. Nie, nie cofnę się ani o zero (prawie) w kierunku BB!
Więc skąd w implikacji bierze się czas? Właśnie złożenie założenia, w czasie ktrego zachodzą i inne zjawiska nas nurtujące, nawet myślenie wspołbieżne nam przeszkadza, sam proces myślowy wygląda przynajmniej przez inne zjawiska "taktowany" i dochodzenie do wniosku, tezy ma takowe zakłcenia.
Identyko jak naciśnięcie dowolnego klawisza podczas pisania na komputerze. Naciśnięcie klawisza, aby wyskoczyła odpowiednia litera wymaga pewnej pracy samego komputera i jego procesora (odczytanie nr klawisza przy odpowiednim programie sprawdzająco polecającym dalej przetwarzanie, aby ją wyświetlić. Proces ten może być spowolniony innym programem w tle. Ważna jest też szybkość taktowania procesora! Gdy my w tym czasie... wykonujemy inne czynności, gdy w naszej "głowie" zachodzą inne procesy myślowe nawet zauważalne na tle komputera! I tylko toto porownujemy uzmysławiając sobie jedynie szybkości interesujących nas procesow. A jak do tego się mają inne procesy zachodzące wkoło nas? Na przykład zmiany położenia Ziemi w stosunku do słońca i innych obiektw kosmicznych?
To dlatego, gdy nudzimy się, "czas" płynie wolniej, bo zauważamy i... wykonujemy operacje zapamiętywania mniej interesujących nas rzeczy, gdy przy "prawdziwej" zabawie wykunujemy rzeczy nas interesujące, nie staramy się tego wszystkiego zapamiętywać, i mniejszość implikacji skraca nam czas na tle innych zjawisk, ktre zachodzą.
Pozostanie tednak pytanie, co decyduje o czasie świata, o czasie bezwzględnym. Wydaje się, że rozwiązania należy szukać w mikroświecie cząstek elementarnych. Tam powinien być ten taktomierz. Jednak tam zachodzące zjawiska jawią się nam... bezprzyczynowe (patrze potwierdzenie w poście Ekora). Nie jest powiedziane, że dla nas zawsze będzie tak samo jak z przykładzie Zenona z Elei. Nigdy do końca nie dojdziemy, bo świat byłby wtedy skończony. Nawet jak znajdziemy mniejsze cząstki jak kwarki, to nie wyjaśnią one kwesti czasu, bo ... będą kolejne mniejsze cząstki (odcinki z przykładu) mimoże jest to skończony TWÓR!
PS. A co to jest zegar biologiczny, dla mnie to już inna historia (teoretyjka).
Temat: threads
| Z moich doświadczeń jednak wynika, że to nie jest konieczne...
| lepsza przy wykorzystaniu kolejek jest pętla:
| whie(!$koniec){
| while($queue-pending){
| $wart = $queue-dequeue;
| # robimy coś z wart
| }
| sleep 1;
| }
właśnie tego chciałem uniknąć. bo co się stanie jeśli komplet wątków
kończy działanie częściej niż co sekundę? taki sleep 1; to potencjalne
wąskie gardło rozwiązania.
Jeśli wykonanie pojedyńczego wątku będzie tak krótkie, to w ogóle można
zrezygnować ze sleepa i sprawdzania zajętości kolejki i używać
nieblokującego
odczytu:
while(!$koniec){
if($wart = $queue-deueue_nb){
# robimy coś
}
threads-yield;
}
Ale pytanie jest, czy to ma sens? Wątki przydają się wtedy, gdy albo jest
zysk
ze zrównolegnenia długotrwałych procesów, albo gdy to ma zapewnić
interaktywność
interfejsu... Przy takich szybkich wątkach, to nakłąd na ich tworzenie i
czyszczenie
byłby większy od zysku ze współbieżności...
| Bo rozważmy dwa scenariusze:
| - wątki mają małą logikę - szybko kończą działanie (ale wtedy lepiej
| jest
| zastosować inny model - choćby multiplekser).
| Wtedy główny ma małe szanse na wyjście z pętli sprawdzającej, czy coś
| jest w kolejce...
| - wątki mają skomplikowaną logikę i trwają długo...
| Wtedy ta jedna sekunda na sen nie robi większej różnicy...
a co z sytuacją mieszaną? większość operacji jest trywialna,
ale przytrafi się jakieś ścierwo do zaprogramowania które pożera
znacznie więcej czasu?
Taka mieszana sytuacja, to sygnał, że należy zmienić podejście... ;-)
Stała ilość workerów nie jest dobrym rozwiązaniem, gdy mamy masę szybkich
działań, które trzeba szybko obsłużyć, lecz mamy też co jakiś czas
zawalidrogę...
Bo prędzej czy później dojdzie do sytuacji, gdy zawalidrogi zablokują
wszystkie
wątki...
Wtedy chyba najlepiej jest chyba ponownie skorzystać z mechanizmu kolejek
- wątek,
który stwiedzi, że jego zadanie jest zawalidrogą (albo wątek
przydzielający zadania),
powinien wrzucić zadanie do osobnej kolejki i zająć się przetwarzaniem
innego...
A z tej kolejki pobierać zadania powinien inny wątek (czy grupa wątków -
zależy od stosunku
pracochłonności do częstości występowania), który będzie je sukcesywnie
przerabiał...
Nawet jak kolejkowanie tych zadań trochę opóźni ich obróbkę, to skoro i
tak trochę trwają,
to będzie to niewielka strata w porównaniu z blokadą zadań szybkich...
jakieś moduły do wykrywania utraconych zapętlonych odwołań są, i
potrafią to rozpinać. tyle że taki moduł nie pracuje ciągle, tylko
wywołuje się go co jakiś czas na żądanie.
Owszem, ale przecież można i samemu rozpinać... Trzeba tylko o tym
pamiętać ;-)
| Join robi trochę 'magii' na wątku - wymusza czyszczenie (np. przez
| zerowanie licznika odwołań)
| i dobrze jest z tego korzystać...
| Wątków odłączanych w perlu lepiej nie używać, o ile dokładnie nie
| wiemy, co chcemy
| robić... I rzekłbym, że nie w zastosowaniach serwerowych...
Ja nawet nie wiem jaki jest sens używania odłączonego wątku. To nie
lepiej sklonować cały proces forkiem ?
Przy wątkach nie musisz martwić się o bękarty po śmierci rodzica.
Wątki w perlu dostarczają proste mechanizmy wspólnych zmiennych,
kolejek, semaforów, blokad zmiennych, sygnałów... Pod Windows
nie działa kilka przydatnych przy forkowaniu machanizmów - POSIX::setsid,
open(FOO, "-|"), open(FOO, "|-"), etc... Zresztą pod Win sam fork emulowany
jest na wątkach... Ogólnie gdy chcemy zrobić aplikację przenośną, to mniej
trzeba się namęczyć wątkami, niż procesami (bo owszem, można wszędzie dawać
wykrywanie platformy i alternatywę w postaci modułów Win32::xx, ale to
znowu robi się mało czytelne).
Wątki odłączane przydają się tam, gdzie mamy interfejs użytkownika i coś,
co powinno działać w tle - raz odpalamy, zapominamy, ale chcemy łatwo
korzystać z efektów pracy... Np. klient e-mail - na starcie odpalamy
wątek do ściągania maili, kóry ściąga, zasypia na zdefiniowany czas i
ściąga
ponownie... A wątek główny prezentuje treści, nie martwiąc się o ten
drugi...
Wątek taki odpalany jest raz i zamykany razem z programem, więc nie trzeba
się
martwić o śmieci po nim. Na pewno łatwiej i czytelniej się to robi, niż
forkując proces i bawiąc się rurkami - szczególnie pod windowsem...
Pozdrawiam