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 00:11 | Nová verze

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.

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

    3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    14.7. 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    14.7. 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    14.7. 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 26
    14.7. 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 20
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 17
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 397 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Ako uspat program a prebudit ho v urcitom case (V C-ecku)

    16.10.2008 12:31 xsustek | skóre: 6
    Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Přečteno: 755×
    Zdravim,

    existuje nejaka C-eckova funkcia alebo systemove volanie (v Linuxe), ktore program uspi a zobudi ho v konkretnom case, tak aby nezral ziaden cas procesoru?

    Dik

    Odpovědi

    16.10.2008 12:34 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    sleep(3) alebo alarm(2)
    21.10.2008 06:58 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    jeste existuje syscall pause(), u ktereho si ale musite zaridit vzbuzeni predem. taky jde spat selectem, nanosleepem, a v pripade dvou procesu lze pouzit take (vzdusne) zamky.
    In Ada the typical infinite loop would normally be terminated by detonation.
    16.10.2008 12:34 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Záleží na okolnostech. Nejjednodušší asi bude použít sleep().
    16.10.2008 12:36 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    pozri si alarm, signály a čakanie na signály.
    20.10.2008 15:08 insider
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Neco podobnyho jsem jednou resil takhle:
    while( not the time ) sleep(10);
    ...
    
    Nejakej cas procesoru to sice zere, ale to ze se jednou za 10s provede tahle jednoducha smycka dnestni procesory nezatizi...
    20.10.2008 21:28 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)

    Pokud chceš uspávat jiný proces, lze se na něj připojit přes ptrace(2), čímž ho efektivně zastavíš, pak si ve svém procesu pospat, jak dlouho potřebuješ, a nakonec opět přes ptrace() se od něj odpojit, čímž se opět rozeběhne.

    Případně, což je přenositelnější, ale nevím, nakolik je možné se tomu bránit, zaslat signál SIGSTOP a potom SIGCONT.

    21.10.2008 06:57 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    sigstop neni chytatelnej podobne jako sigkill.
    In Ada the typical infinite loop would normally be terminated by detonation.
    21.10.2008 09:32 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Ano, jenže ještě tu je SIGCONT. Vyzkoušel jsem si, že jeho blokování nemá smysl. Ať už jej zablokuji nebo zaregistruji obsluhu, která nevolá tu původní, tak přesto se proces rozjede.
    21.10.2008 11:04 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    zaujímavé ... ako chcete vykonať obsluhu signálu, ak nechcete, aby sa proces rozbehol ? :-) Btw, skúste v obsluhe podmienené poslanie SIGSTOP samému sebe.
    21.10.2008 11:29 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    ako chcete vykonať obsluhu signálu, ak nechcete, aby sa proces rozbehol

    Úplně stejně, jako když proces je v přerušitelném spánku a dostane signál. Obsluhu totiž volá jádro a po vykonání obsluhy se řízení vrací jádru. To teprve pak rozhodne, zda proces přesune do fronty runable nebo jej opět uloží k ledu. Ano, přísně vzato, když jede obsluha, tak také běží proces. Myslel jsem rozběhnout program procesu v místě uspání (tedy mimo obsluhu).

    21.10.2008 11:44 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Zkuste si zastavený proces ukončit signálem TERM.
    21.10.2008 12:07 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Aha. Čekal jsem větší magii. Jak prosté.
    21.10.2008 10:52 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    To není uspání ale zastavení. Tazatel se ptal na to, jak uspat proces "zevnitř", na vaše řešení budete potřebovat spustit druhý samostatný proces, který tomu prvnímu signál CONT pošle. A co hůř, v tom druhém budete muset řešit přesně stejný problém, jaký tady řešíme pro ten první. Proti tomu mi prosté volání sleep() doplněné o smyčku pro případ přerušení signálem připadá podstatně jednodušší a praktičtější.
    21.10.2008 11:16 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Neni ta smycka zabudovana v glibc?
    In Ada the typical infinite loop would normally be terminated by detonation.
    21.10.2008 11:21 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Sama od sebe těžko, i manuálová stránka uvádí, že sleep() může skončit předčasně, pokud přijde neignorovaný signál. Obvykle se pro tyto účely používá makro TEMP_FAILURE_RETRY() nebo příznak SA_RESTART, ale tady to nejde, protože je potřeba při opakovaném volání upravit parametr.
    21.10.2008 15:56 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    v tom pripade se divim ze jeste nikdo neudelal funkci ktera by ten loop obsahovala.
    In Ada the typical infinite loop would normally be terminated by detonation.
    21.10.2008 16:24 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Jednak není problém si ji na pár řádků napsat, jednak většinou chcete, aby bylo možné čekání přerušit předčasně (např. právě jako reakci na určité signály).
    21.10.2008 11:21 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    To není uspání ale zastavení.

    Proces je runable, nebo není. Technicky v tom rozdíl není.

    Tazatel se ptal na to, jak uspat proces "zevnitř"

    To z dotazu mně není zřejmé. Opravdu jsem jej pochopil tak, že autor chce řídit jiný proces, ne ten svůj.

    21.10.2008 11:25 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Proces je runable, nebo není. Technicky v tom rozdíl není.

    Technicky v tom rozdíl je. Uspání je stav S (proces čeká na dokončení syscallu (který může být přerušen signálem), pak bude pokračovat), zastavení T (proces je administrativně zastaven zvenčí a pokračovat bude teprve tehdy, až dostane signál CONT).

    21.10.2008 11:31 xsustek | skóre: 6
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    Situacia je asi takato:

    Program sa spusti, urobi nejaku tu inicializaciu a potom sa forkne. Rodic bude periodicky v stavat ziska nejake informacie, potom sa zas uspi na nejaku dobu. Tieto informacie budu potomkovy dostupne cez zdielanu pamat. Potomok bude tiez spat, avsak uspi sa tak, ze bude cakat na UDP porte, pokial nepride nejaka poziadavka. Ked pride vytiahne urcite data zo zdielanej pamate, zpracuje a posle spat. Potom spi dalej. :)
    21.10.2008 11:40 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)
    V tom případě mi připadá sleep() resp. usleep() nebo nanosleep() jako nejvhodnější řešení.
    21.10.2008 11:54 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Ako uspat program a prebudit ho v urcitom case (V C-ecku)

    Už rozumím. Já jsem si vyložil slovo „uspat“ příliš široce. Samozřejmě, že tak, jak to říkáte, to je.

    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.