🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267920

Re: Ciemna strona C++

#267920
From: Sebastian Kaliszewski
Date: Fri, 30 Nov 2007 14:31
50 lines
4155 bytes
Marcin ‘Qrczak’ Kowalczyk wrote:
[...]
> 3. Jeden wątek języka jest realizowany przez jeden wątek systemu
>    operacyjnego, ale w danej chwili chodzi tylko jeden taki wątek naraz
>    (z wyjątkiem wołania funkcji w C, które wykonują się długo bez
>    potrzeby dostępu do rantajmu języka). Program używa systemowego
>    stosu tak jak w C. Program musi specjalnie oznaczać blokujące
>    funkcje systemowe.
> 
>    Przykłady: OCaml, Python.
> 
> W pierwszej metodzie dużym problemem jest odśmiecanie. Poza tym wątków
> nie może być zbyt dużo, a przełączanie między wątkami jest dość drogie.
> 
> W drugiej metodzie problemem jest niewykorzystanie potencjału
> wielordzeniowych komputerów (chyba że przez rozbicie programu na osobne
> procesy, co z powodzeniem stosuje Erlang). Kłopotliwe jest używanie
> gotowych bibliotek, które zawierają funkcje wykonujące się długo bądź
> które powodują przeplatanie się wywołań funkcji z różnych języków
> (program może przykryć ramkę stosu funkcji w C ramką stosu funkcji
> w C wykonywanej na rzecz innego wątku logicznego, a następnie spróbować
> wrócić do tej pierwszej, kiedy druga jeszcze się nie skończyła).
> 
> Trzecia metoda łączy większość wad pierwszych dwóch. Wątków nie może być
> zbyt dużo, a przełączanie między nimi jest jeszcze droższe niż w pierwszej
> metodzie. Nie jest wykorzystywany potencjał wieloprocesorowych komputerów,
> a funkcje wykonujące się długo muszą być specjalnie oznaczone. Nie lubię
> tej metody. Główna zaleta: jest łatwa w realizacji.

Nie ma probemu parszywego odśmiedcania. Odśmiecanie nie jest problematyczne 
i często może być wydajniejsze.

> Są i hybrydowe metody, mniej typowe:
> 
> 4. Wątki języka są realizowane przez jeden wątek systemowy, chyba że
>    wołane są blokujące funkcje w C bądź funkcje w C, które wołają
>    z powrotem funkcje naszego języka - wtedy wątek systemowy staje się
>    związany z jednym wątkiem logicznym, a do wykonywania innych wątków
>    logicznych tworzone są pomocnicze wątki systemowe. W danej chwili
>    tylko jeden wątek systemowy ma dostęp do rantajmu języka.
> 
>    Przykłady: Glasgow Haskell (między starym a nowym bądź nowy jako
>    jedna z opcji), Kogut.
[...]

Jaka jest różnica pomiędzy 3 a 4? Z Twojego opisu widzę że i tu i tu nie ma 
równoległości. Czy tylko to, że wątki z zasady nie są systemowe?

pzdr
\SK
Technical Details
Message-ID: <fip5st$vui$1@bozon2.softax.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl> <fi3e50$h2u$1@news.vectranet.pl> <fimcsr$8sk$1@bozon2.softax.pl> <1196380169.15384.58.camel@qrnik>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mail
From: Sebastian Kaliszewski <s@get.it.off.to.reply.informa.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Fri, 30 Nov 2007 15:31:04 +0100
Organization: Softax news server
Lines: 50
Message-ID: <fip5st$vui$1@bozon2.softax.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl>  <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl>  <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl>  <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl>  <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl>  <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl>  <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl>  <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl>  <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl>  <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl>  <fi3e50$h2u$1@news.vectranet.pl>  <fimcsr$8sk$1@bozon2.softax.pl> <1196380169.15384.58.camel@qrnik>
NNTP-Posting-Host: 83.18.189.42
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1196432988 2262 83.18.189.42 (30 Nov 2007 14:29:48 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Fri, 30 Nov 2007 14:29:48 +0000 (UTC)
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322)
X-Accept-Language: en-us, en
In-Reply-To: <1196380169.15384.58.camel@qrnik>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit