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

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Nová verze

    Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | IT novinky

    Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

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

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

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

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 5
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 8
    včera 11:33 | Zajímavý článek Ladislav Hagara | Komentářů: 0
    16.9. 21:44 | Nová verze

    Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (50%)
     (58%)
     (0%)
     (8%)
     (12%)
     (4%)
     (15%)
     (4%)
     (12%)
    Celkem 26 hlasů
     Komentářů: 3, poslední dnes 14:58
    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: 759×
    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: 71 | 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: 71 | 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: 71 | 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: 71 | 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: 71 | 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: 71 | 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: 71 | 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.