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í
×
    včera 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 15
    15.8. 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 7
    15.8. 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 3
    15.8. 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 10
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 29
    14.8. 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 1
    14.8. 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    13.8. 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    13.8. 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (19%)
     (4%)
     (5%)
     (2%)
     (1%)
     (1%)
     (17%)
    Celkem 406 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    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: 757×
    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.