🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217346

Re: Przenośny, uproszczony filesystem

#217346
From: heby
Date: Mon, 08 Feb 2021 06:39
55 lines
4052 bytes
On 07/02/2021 22:53, M.M. wrote:
> To dlaczego nie odpowiesz na pytanie: do czego potrzebujesz wiedzę o takich
> szczegółach synchronizacji wątków?

Ponieważ mutex w pamięci, dostarczany przez OS niekoniecznie jest tym 
samym co "mutex" na plik (lock) zapewniajacy spójnośc dnych podczas 
wielodostępu i defragmentacji w tle. Wymaga ręcznej implementacji, być 
moze opartej o mutexy OSowe, a może niekoniecznie, a może w ogóle są 
rozwiązania bez mutexa.

>>> koncepcyjnie to prosta sprawa
>> Tu mutex powinien być na "fragment" filesystemu.
> Tu czyli gdzie i dlaczego na fragment filesystemu? Co rozumiesz przez filesystem?

Na przykład na wirtualny plik w tym kontenerze.

Wyobraź sobie dwa wątki: jeden dopisuje coś do wirtualnego pliku, a 
drugi kasuje go.

Można to rozwiązać za pomocą inodes, jak w linuxie. Albo za pomocą 
mutexów "w filesystemie".

Oczywiście te "mutexy w filesystemie" to naiwny koncept. To mogą być 
zwykłe mutexy w implementacji filesystemu, ale raczej nie będą.

> Transakcje nie są prostym lockiem

Bo transakcja to kiepskie słowo. W zasadzie nie ma dobrego odpowiednika 
w DB zachowania filesystemu z kronikowaniem zapisywanego przez wiele wątków.

>>> zliczanie ile wątków przeszło przez jakąś barierę. Ale jaką techniką trzeba napylić
>>> tranzystory
>> No wiec nie napylam tanzystorów.
> Dlaczego więc chcesz wiedzieć jak wewnętrznie działają mutexy?

Nigdzie nie napisałem że chce wiedzieć jak działają *normalne* mutexy, 
bo to wiem. Interesuje mnie jak działa zapewnianie spójności danych w fs 
które dla usera wygląda jak typowy zasób krytyczny pilnowany przez mutex.

>> Wszystkie fs majace defragmentacje - robią ją w
>> miejscu. Moe to zaprojektowc metodą garbage collectora z javy: stop the
>> world. Ale coś czuje że to znowu naiwny algorytm.
> GC zlicza odnośniki do alokowanych obiektów, gdy jest zero, to może zwolnić.

Wiem, ale GC nie pojawił sie tutaj jako odpowiednik 1:1 tylko jao zły 
przykład "stop the world".

> Jaka jest optymalna struktura do takiego zliczania? Może jakieś drzewo
> zbalansowane i kolejka priorytetowa, a może naiwna liniowa tablica ma tak
> mały narzut że to właśnie ją się najbardziej opłaca stosować dla typowych
> aplikacji - nie wiem.

Potrzebuje literatury z teorii działania systemów plików. Wygdybać mogę 
sobie cokolwiek, ale konkuruje z dziesięcioleciami eksperymentów ludzi 
mądrzejszych ode mnie.
Technical Details
Message-ID: <rvqmb3$dlt$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
References: <rtpdik$cge$1@dont-email.me> <cff484ae-3bf8-4cec-bbb7-78e44cb70167n@googlegroups.com> <rvokfn$1ff$1@dont-email.me> <90a1ad63-9675-4233-b822-808a7c17cbc7n@googlegroups.com> <rvpa3d$uf5$1@dont-email.me> <3ed1a847-2f93-4108-8985-2afae9b3b897n@googlegroups.com> <rvpgno$hnr$1@dont-email.me> <e8d86917-8e4c-4624-b8ae-67b82f80591cn@googlegroups.com> <rvpkev$d2u$1@dont-email.me> <b01525e0-6d35-48d8-ad1c-c9938aca307bn@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: heby <heby@poczta.onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Przenośny, uproszczony filesystem
Date: Mon, 8 Feb 2021 07:39:31 +0100
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <rvqmb3$dlt$1@dont-email.me>
References: <rtpdik$cge$1@dont-email.me> <cff484ae-3bf8-4cec-bbb7-78e44cb70167n@googlegroups.com> <rvokfn$1ff$1@dont-email.me> <90a1ad63-9675-4233-b822-808a7c17cbc7n@googlegroups.com> <rvpa3d$uf5$1@dont-email.me> <3ed1a847-2f93-4108-8985-2afae9b3b897n@googlegroups.com> <rvpgno$hnr$1@dont-email.me> <e8d86917-8e4c-4624-b8ae-67b82f80591cn@googlegroups.com> <rvpkev$d2u$1@dont-email.me> <b01525e0-6d35-48d8-ad1c-c9938aca307bn@googlegroups.com>
Mime-Version: 1.0
Injection-Date: Mon, 8 Feb 2021 06:39:32 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="6d65b5dea5ea830f874d79f0ddf106aa"; logging-data="14013"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19qwHNGlQh9Qb2Ma/Jmmipb"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
Cancel-Lock: sha1:02D4ZHjBlTJpM2qf1165pwsDPeA=
In-Reply-To: <b01525e0-6d35-48d8-ad1c-c9938aca307bn@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit