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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 1
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 4
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 796 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama
Š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: 605×
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: 60 | 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.