abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 07:00 | Nová verze

Byla vydána diaspora* ve verzi 0.7.0.0. Jedná se o svobodný software, který slouží jako osobní webový server pro poskytování služeb sociální sítě (Wikipedie). Přehled novinek v příspěvku na blogu a na GitHubu. Sociální síť diaspora* byla před pěti lety předána komunitě.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | IT novinky

Společnost Hardkernel stojící za jednodeskovými počítači ODROID představila na YouTube minipočítač určený pro domácí cloud ODROID-HC1 vycházející z ODROID-XU4. Minipočítač s kovovou krabičkou, do které stačí vložit 2 a půl palcový disk, lze koupit za 49 dolarů. ODROID-HC1 je stohovatelný.

Ladislav Hagara | Komentářů: 0
včera 16:22 | Nová verze

Byl vydán DB Browser for SQLite (sqlitebrowser) ve verzi 3.10.0. Nejnovější stabilní verze této grafické nadstavby nad relačním databázovým systémem SQLite (Wikipedie) přináší například integraci s DBHub.io, tj. platformou pro sdílení SQLite databází. Podrobnosti na GitHubu.

Ladislav Hagara | Komentářů: 1
včera 08:00 | IT novinky

Andy Rubin, spoluzakladatel společnosti Android, jež byla v roce 2005 koupena Googlem, nyní CEO společnosti Essential Products, oznámil předprodej chytrého telefonu Essential. Telefon se začne rozesílat 1. září. Cena telefonu je 699 dolarů. Cena telefonu současně s 360° kamerou s rozlišením 4K byla stanovena na 749 dolarů. Kameru, v budoucnu i další příslušenství, lze k telefonu připojit pomocí konektoru s magnety.

Ladislav Hagara | Komentářů: 0
19.8. 13:44 | Zajímavý software

Evropská komise vydala novou verzi 1.4.0.1 svého open source v Javě naprogramovaného softwaru pro online průzkumy EUSurvey. Online dotazníky lze vytvářet na stránkách Evropské komise nebo si lze software stáhnout (zip a war) a nainstalovat lokálně. Zdrojové kódy jsou k dispozici pod licencí EUPL (European Union Public Licence).

Ladislav Hagara | Komentářů: 0
18.8. 23:55 | Komunita

Ubuntu 17.10 (Artful Aardvark) bude ve výchozím stavu zobrazovat Dok (Launcher). Jedná se o rozšíření GNOME Shellu Ubuntu Dock. To bylo forknuto z rozšíření Dash to Dock. Ukázka na YouTube [reddit].

Ladislav Hagara | Komentářů: 3
17.8. 15:33 | Nová verze

Byla vydána verze 17.08.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Aplikace kmag, kmousetool, kgoldrunner, kigo, konquest, kreversi, ksnakeduel, kspaceduel, ksudoku, kubrick, lskat a umbrello byly portovány na KDE Frameworks 5.

Ladislav Hagara | Komentářů: 0
17.8. 15:11 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-08-16 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Nejnovější Raspbian je založen na Debianu 9 Stretch. Přehled novinek v poznámkách k vydání. Řešena je také bezpečnostní chyba Broadpwn (CVE-2017-9417).

Ladislav Hagara | Komentářů: 1
17.8. 12:33 | Nová verze

Byla vydána verze 3.2.0 programu pro skicování, malování a úpravu obrázků Krita. Přehled novinek v poznámkách k vydání a na YouTube.

Ladislav Hagara | Komentářů: 0
17.8. 11:44 | IT novinky

Minulý týden na šampionátu The International 2017 byl představen bot, který poráží profesionální hráče počítačové hry Dota 2. V nejnovějším příspěvku na blogu se organizace OpenAI o projektu více rozepsala a zveřejnila videozáznamy několika soubojů.

Ladislav Hagara | Komentářů: 7
Těžíte nějakou kryptoměnu?
 (4%)
 (2%)
 (18%)
 (76%)
Celkem 364 hlasů
 Komentářů: 21, poslední 13.8. 09:57
    Rozcestník

    Dotaz: staticka vs dynamicka alokace pameti

    26.6.2010 21:57 ext3fs
    staticka vs dynamicka alokace pameti
    Přečteno: 1412×
    Ahoj,

    chtel bych se zeptat zkusenejsich na rozdil mezi statickou a dynamickou alokaci pameti (v jazyce C, ale otazka je spis globalni) z hlediska bezpecnosti beziciho procesu.

    Pominme nyni problemy s hlidanim (a osetrenim) prace s dynamickou pameti. Nyni mi jde konkretne o pripad, kdy dochazi systemu kriticky pamet a v tom chce program alokovat dalsi. Program pamet nedostane tak muze:

    a/ spadnou, b/ je to nejak osetreno, ale bez pameti stejne nemuze pokracovat tak se ukonci, c/ stejne jako za b/ stim ze ukoncovani nemusi kvuli nedostatku pameti dopadnou dobre.

    Davate prednost dynamicke alokaci nebo staticke? Urcite to je pripad od pripadu. Minimalne je statiska pamet daleko rychlejsi (pokud se pouziva casto...odpada malloc/free).

    Je mozne brat statisky pridelenou pamet v urcitych stavech systemu (malo pameti) jako bezpesnejsi reseni? Chapu, ze pokud neni pamet, tak system muze reagovat jakkoli...

    Odpovědi

    26.6.2010 22:58 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Zásadní problém statických proměnných je v tom, že velikost zásobníku je omezená a v některých případech může být to omezení dost zásadní. Typicky programátor představu, že na zásobníku je místa dost, přehodnotí v okamžiku, kdy zkusí napsat první multithreadovou aplikaci.
    27.6.2010 09:42 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Váš dotaz zavání tím, že se pokoušíte řešit špatný problém (nebo správný problém špatným nástrojem).

    Statická alokace se k ošetření nedostatku paměti používá jen velmi vyjímečně, pak je ale kladen důraz na to, aby tato část programu byla co nejmenší a měla co nejmenší potřebu práce s pamětí.

    Obvyklejší řešení je prostě nechat program ukončit (s nějakou hláškou), nebo nechat program čekat, až paměť bude. Pokud je v OS programů více, tak se obvykle nastavují kvóty.

    Jinak má statická alokace blahodárný účinek na výkon, často se používá model prealokace velkého kusu paměti a jeho interní rozparcelování v programu namísto alokace spousta malých kousků. Teoreticky byste tento model mohl využít pro zajištění dost paměti např. pro ten ukončovací kód.
    In Ada the typical infinite loop would normally be terminated by detonation.
    27.6.2010 13:19 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Pisu ted malou aplikaci pro sledovani procesu. Jedna z funkci je sledovani co se stalo/deje prave v pripade kdy system z nejakeho duvou zacne "havarovat" (malo pameti, vysoky load, zasekly proces co bere veskere CPU,atd..). V nekterych pripadech (coz se mi nekolikrat stalo) system zacne strilet procesy a nez na to clovek prijde je system v nefunkcnim stavu a v logu ani zminka. Uz se mi stalo, ze jsem prisel k serveru RHEL (x86_64, 4G RAM, 16G swap) kde byly odstreleny vsechny procesy krom initu, udev, a par systemovych demonu. /var/log/* naprosto bez stop nejake priciny. Napadlo mne zkusit si napsat nejake "hlidatko" procesu / systemu, ale prave resim jak zajistit aby tetno proces bezel co nejdele v pripade nouze. Jedna moznost je pohrat si s /proc/PID/oom_adj a pak se postarat o maximalni pametovou hospodarnost. Proto jsem se ptal na tu statickou alokaci.
    27.6.2010 13:53 __dark__
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Tak si alokuj 16MB RAM pri startu tvoji aplikace a používej jenom tuto paměť (vlastní memory management). Podle mě to není problém napsat, otázka je, co od té tvoji aplikace očekáváš, a které další knihovny budeš používat.
    27.6.2010 22:00 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti

    Pokud jádro zabilo syslog, tak ve /var/log samozřejmě nic nebude. Musíte se podívat do protokolu jádra (dmesg). Ale i ten je kruhový, takže ho možná budete chtít nafouknout (parametr jádra při bootu nebo překladu).

    Pokud se opravdu bojíte OOM, tak prostě vypněte memory overcommitment (/proc/sys/vm/overcommit_memory), ale pak asi bude vašim aplikacím těsno.

    Pro vás ale asi opravdu bude nejlepší nastavit hlídači -17 do oom_adj, aby přežil. Pro účely ladění byste si mohl nastavit /proc/sys/vm/oom_dump_tasks, abyste získal přehled o všech procesech v době zabití.

    28.6.2010 07:45 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Pisu ted malou aplikaci pro sledovani procesu.

    Kanón na vrabce. Dejte si do cronu ps po minutě a pak na to kápnete hned. (Vím z vlastní zkušenosti.)

    Dalším logickým krokem bude opravit tu špatnou aplikaci, která bortí systém. To většinou zabere :-)

    Pokud chcete něco monitorovat, pořiďte si nagios (nebo jiný systém). Nepište si vlastní věci.
    V nekterych pripadech (coz se mi nekolikrat stalo) system zacne strilet procesy a nez na to clovek prijde je system v nefunkcnim stavu a v logu ani zminka.
    Jako prevence by Vás mohly zajímat cgroups (control groups). Umožňují nastavit paměťovou kvótu tak aby se jeden proces nemohl rozpínat na úkor druhých.
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.6.2010 10:05 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sledovani je jen jedna vec, dalsi je znovu spusteni/restart procesu pokud z nejake priciny spadne/nebezi, nebo vykonani jine akce.

    Kanon na vrabce mi pripadne spis ten Nagios. Nemam s nim sice takove zkusenosti, za to se Zabbixem nekolikalete a prave takovy Zabbix to co potrebuji neumi a nebo umi, ale velmi slozite a jen castecne. Proc v urcitych situacich misto demona o velikosti par desitek KB pouivat moloch co potrebuje php, sql server, atp...?
    28.6.2010 17:57 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sledovani je jen jedna vec, dalsi je znovu spusteni/restart procesu pokud z nejake priciny spadne/nebezi, nebo vykonani jine akce.

    Kanon na vrabce mi pripadne spis ten Nagios. Nemam s nim sice takove zkusenosti, za to se Zabbixem nekolikalete a prave takovy Zabbix to co potrebuji neumi a nebo umi, ale velmi slozite a jen castecne.
    Samozřejmě záleží na tom co si přejete dělat. Pokud chcete jen odhalit škůdce tak IMHO nejpřímočařejší cesta je to 'ps' jak jsem navrhoval.

    Pokud chcete dlouhodobě sledovat dostupnost služeb, mít nad tím nějaké hlášení problémů, případně samočinné pokusy o restart... tak na to je (opět IMHO) vhodný nástroj ten Nagios. Klidně do něj můžete jako plugin zaintegrovat ten svůj úžasnej nezničitelnej program ale myslím si že to bude fungovat zrovna tak dobře s něčím obyčejným. Každopádně máte už ale hotovou veškerou hlídací a rozhodovací logiku a nemusíte vynalézat kolo.
    Proc v urcitych situacich misto demona o velikosti par desitek KB pouivat moloch co potrebuje php, sql server, atp...?
    Vždycky když jsem měl takovéto tendence si něco malého psát tak jsem se prve porozhlédl jestli to už někdo nevyřešil předemnou. Konfiguraci Nagiosu pokud ho neznáte budete věnovat X dní a zrovna tak ten čas byste strávil psaním toho démona. Problém je, že pak když budete chtít "ještě tohle a ještě támto" tak v Nagiosu to už uděláte raz dva, zatímco ten démon budete zase X dní přepisovat, testovat, atp. Takže v delší trati se Vám přestane vyplácet udržovat ten bastl.

    PHP ani SQL server pokud vím to nepotřebuje, pouze Apache pokud chcete web front end.

    In Ada the typical infinite loop would normally be terminated by detonation.
    27.6.2010 09:45 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Je to uplne jedno, protoze pri bezne konfiguraci se pouziva lina alokace pameti, takze neni rozdil, jestli si vezmete prazdnou stranku zvetsenim heapu pres brk a nebo tim, ze pouzijete promennou z B, C nebo D sekce, jejiz stranka jeste nebyla pouzita a nebo zvetsenim zasobniku o stranku.
    27.6.2010 15:57 klusik | Plzeň
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Zdravím,

    rozdíly mezi S a D si přečtěte v dalších komentářích, co chci napsat já je, že v C musíte vždy (pokud nejste čuník programátorský ;)) hlídat meze a všechno kolem jen SÁM :-)

    Stejně tak přetečené, stejně tak přidelení (nepřidělení) volné paměti a všechno. Ono to vypadá jako buzerace, ale je to o tom, že co si uděláte, to máte. Ne vždy potřebujete velké a superkomplexní věci a proto používáte C a ne třeba Javu nebo C#. Nevýhoda toho je, že si musíte všecko ohlídat. ;)

    Hodně zdaru.
    Prostě já ;) www.klusik.cz
    27.6.2010 19:16 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    To je pochopitelne, ze je potreba dyn.pamet hlidat. Mne slo spis o to, jestli je mozne tu statickou brat tak, ze je alokovana v dobe spusteni procesu a proces s ni muze pracovat v kazde situaci a nikdo mu ji nevezme. Protoze v pripade, ze vrati malloc() NULL, tak se konci...
    28.6.2010 01:30 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Mne slo spis o to, jestli je mozne tu statickou brat tak, ze je alokovana v dobe spusteni procesu a proces s ni muze pracovat v kazde situaci a nikdo mu ji nevezme.
    Ne, vizte http://www.abclinuxu.cz/poradna/programovani/show/307603#3
    28.6.2010 09:51 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sprave pameti je vcelku jedno jestli pouzijete statickou, nebo dynamickou pamet - chova se k nim stejne.
    Pokud chcte mit jistotu, ze alokovana pamet (at uz staticky, nebo dynamicky) bude k dispozic, tak by slo na zacatku behu programu (kdy je jeste pameti urcite dost) alokovat si vetsi kus pameti (pro vlastni potrebu) a do cele alokovane pameti zapsat pokud mozno nahodna data (tim se zaruci, ze tu pamet dostanete) - tuhle pamet vam uz nikdo nevezme (pokud proces nezabije OOM killer) a budete ji mit do konce behu programu k dispozici.
    28.6.2010 09:59 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Neco o sprave neinicializvane pameti se da najit treba v jadernych novinkach
    1.7.2010 11:39 x22
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Na zabezpecenie, ze pamat nikto nevezme (neodswapuje) su volania mlock() a mlockall(). OOM killera to nezastavi, mozno naopak zvysi sance, ze sa proces stane obetou.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.