Что такое функционирование в «Реальном масштабе времени»


Download 1.86 Mb.
Pdf ko'rish
bet65/72
Sana19.04.2023
Hajmi1.86 Mb.
#1362511
TuriУчебное пособие
1   ...   61   62   63   64   65   66   67   68   ...   72
Bog'liq
Луканов А.С. Системы реального времени 2020

5.2. 
Текст программы 
#include 
#include 
#include  
#include  
#include  
#define SEC_NSEC 1000000000LL // 1 sekynda billion 
nanosekynd 


138 
void * long_thread(void *notused) 

printf("Etot potok vipolnaetsa bolee 10 sekynd \n"); 
sleep(20); 

int main(void) 

uint64_t timeout; 
struct sigevent event; 
int rval; 
pthread_t thread_id; 
printf("Prog timer \n"); 
event.sigev_notify = SIGEV_UNBLOCK; 
//SIGEV_UNBLOCK_INIT(&event); 
pthread_create(&thread_id, NULL, long_thread, NULL); 
timeout = 10LL*SEC_NSEC; 
TimerTimeout(CLOCK_REALTIME, 
_NTO_TIMEOUT_JOIN,&event, &timeout, NULL); 
rval = pthread_join(thread_id, NULL); 
if (rval == ETIMEDOUT) 

printf ("istekli 10 sekynd, potok %d vipolniaetsia!\n", 
thread_id); 

sleep(5); 
TimerTimeout (CLOCK_REALTIME, _NTO_TIMEOUT_JOIN, 
&event, & timeout, NULL); 
rval = pthread_join(thread_id, NULL); 
if(rval == ETIMEDOUT) 



139 
printf("potok %d >25 sek!", rthread_id); 

else 

printf ("Potok %d zavershon kak nado \n", thread_id); 
}
return(1); 
5.3. 
Последовательность действий 
Запустить программу на исполнение и сопоставлять то, что 
она выводит на экран, с текстом программы.
 
5.4. 
Результаты 
# cd .. 
# cd lab2
# ls
. .. timer.c timer.exe
# `pwd`/timer.exe 
Prog timer 
Etot potok vipolnaetsa bolee 10 sekynd 
istekli 10 sekynd, potok 2 vipolniaetsia! 
Potok 2 zavershon kak nado 


Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   ...   61   62   63   64   65   66   67   68   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling