-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!goblin2!goblin.stu
.neva.ru!feeder2.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.87.MISMATCH!ne
ws.astraweb.com!border2.a.newsrouter.astraweb.com!transit4.hitnews.eu!feeder.ne
ws-service.com!postnews.google.com!g19g2000vbi.googlegroups.com!not-for-mail
From: Maciej Sobczak <s...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: jak napisać szybki program
Date: Wed, 20 May 2009 01:55:46 -0700 (PDT)
Organization: http://groups.google.com
Lines: 84
Message-ID: <9...@g...googlegroups.com>
References: <9...@r...googlegroups.com>
<2...@c...tac>
<0...@r...googlegroups.com>
<5...@q...googlegroups.com>
<2...@o...googlegroups.com>
<gurhp6$rh3$1@news.onet.pl>
<d...@g...googlegroups.com>
<gutqoa$fjh$1@news.onet.pl>
<f...@l...googlegroups.com>
<guu61o$k3e$1@news.onet.pl> <guut87$pu9$1@news.onet.pl>
<2...@s...googlegroups.com>
<guv72b$ofk$1@news.onet.pl>
NNTP-Posting-Host: 137.138.182.236
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1242809746 31697 127.0.0.1 (20 May 2009 08:55:46 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Wed, 20 May 2009 08:55:46 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: g19g2000vbi.googlegroups.com; posting-host=137.138.182.236;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.8)
Gecko/2009032608 Firefox/3.0.8,gzip(gfe),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:182062
[ ukryj nagłówki ]On 19 Maj, 23:08, Michoo <m...@v...pl> wrote:
> > char my_buffer[my_size];
>
> > Niezależnie od metody dane muszą być przetransferowane z/do my_buffer.
>
> W przypadku dobrej implementacji (na gruncie czystej teorii - nie chce
> mi się teraz zastanawiać gdzie to jak jest zaimplementowane - chodzi mi
> o sam fakt, że jest to jedyny zysk jaki można osiągnąć) i/o kopiowanie
> danych na drodze dysk->ram, bufor karty sieciowej-> ram, etc powinno być
> robione "na zewnątrz" procesora (i to w trybie nie odcinającym go od szyny).
Tak i jest to możliwe zarówno przy synchronicznym jak i
asynchronicznym I/O.
Różnica między nimi jest tylko w tym, że pierwszy czeka na zakończenie
procesu a drugi jest "powiadamiany".
Oczywiście można sobie też wyobrazić, że w jednym z przypadków system
korzysta z dodatkowych buforów i wykonuje dodatkowe kopie danych, ale
to jest kwestia jakości implementacji i nie ma związku z samym
aspektem synchro/asynchro.
Dlatego nie ma sensu twierdzić, że AIO daje jakiś zysk w kontekście
zarządzania buforami.
> synchroniczne i/o: program robi wywołanie systemowe "czytaj" system
> wywala wątek z kolejki procesów gotowych i zleca kontrolerowi transfer,
> po otrzymaniu przerwania od kontrolera proces wraca do kolejki i w
> najbliższym czasie wraca z wywołania
Tak.
> asynchroniczne i/o: program robi wywołanie systemowe "czytaj" system
> zleca kontrolerowi transfer, wątek powraca z wywołania i może pracować.
> po otrzymaniu przerwania od kontrolera system powiadamia wątek o
> zakończeniu operacji.
To duży skrót myślowy [*], ale przyjmijmy roboczo, że tak jest.
Trwa to dokładnie tyle samo (bo dysk się kręci tak samo szybko).
[*] Skrót myślowy polega na tym, że w językach sekwencyjnych nie ma
czegoś takiego jak "powiadamianie wątku". Są dwa możliwe mechanizmy:
1. Sygnalizacja (notify) jakiegoś wskazanego obiektu
synchronizacyjnego. Pozwala to właściwym wątkom roboczym zorientować
się (blokująco bądź nie), że operacja się zakończyła.
2. Wywołanie przez callback - to wywołanie odbywa się w *innym* wątku,
z osobnym stosem, przynajmniej koncepcyjnie (tu wliczamy wszystko od
sygnałów w C po AsyncHandler w Javie). Zwykle jedyna rzecz jaką można
w takim callbacku sensownie zrobić to... ręcznie punkt 1.
To żadna magia, dlatego też w ostatecznym rozrachunku SIO i AIO
mogą robić to samo, z dokładnością do ilości *śpiących* wątków
userlandu. W szczególności istnieją implementacje, które robią SIO
jako nakładkę (!) na AIO albo odwrotnie. To właśnie sprawia, że AIO
nie jest cudownym rozwiązaniem a ponieważ jest intruzywne i słabo
komponowalne (nie da się go zastosować do *istniejącego* kodu), to
powinno być stosowane... ostrożnie.
> W drugim przypadku wątek może pracować w trakcie kopiowania danych.
Czyli cały czas mówimy o użyciu współbieżności w celu lepszego
wykorzystania zasobów sprzętowych. Powtórzę: to nie jest wyłączna
cecha AIO. Współbieżność jest narzędziem bardziej ogólnym.
--
Maciej Sobczak * www.msobczak.com * www.inspirel.com
Następne wpisy z tego wątku
- 20.05.09 12:32 A.L.
- 20.05.09 17:44 Marteno Rodia
- 20.05.09 18:23 Michoo
- 20.05.09 18:31 Marcin 'Qrczak' Kowalczyk
- 21.05.09 02:23 Mariusz Marszałkowski
- 21.05.09 03:26 Mariusz Marszałkowski
- 21.05.09 03:51 Mariusz Marszałkowski
- 21.05.09 03:57 Mariusz Marszałkowski
- 21.05.09 06:35 Jacek Czerwinski
- 21.05.09 09:50 Paweł Kierski
- 21.05.09 13:20 Marcin 'Malcom' Malich
- 21.05.09 16:07 Mariusz Marszałkowski
- 21.05.09 16:58 Marcin 'Malcom' Malich
- 21.05.09 20:20 Mariusz Marszałkowski
- 21.05.09 21:04 Jacek Czerwinski
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-07-04 Białystok => Kotlin Developer <=
- 2025-07-04 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-07-04 Warszawa => Specjalista wsparcia IT - analiza techniczna sprzętu IT <
- 2025-07-04 Zakrzewo => Konsultant SAP HCM <=
- 2025-07-04 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-04 Szczecin => Key Account Manager IT <=
- 2025-07-04 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-04 Warszawa => Technique IT - Hardware Configuration and Support <=
- 2025-07-04 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=