int main(void) {
	printf("\n\nIniciando o escalonamento das tarefas...\n\n");

	create_tasks();

	delete_tasks();

	return 0 ;
}
Exemple #2
0
double wait_tasks(std::size_t num_samples, std::size_t num_tasks,
    std::size_t num_chunks, std::size_t delay)
{
    std::size_t num_chunk_tasks = ((num_tasks + num_chunks) / num_chunks) - 1;
    std::size_t last_num_chunk_tasks = num_tasks - (num_chunks - 1) * num_chunk_tasks;

    double result = 0;

    for (std::size_t k = 0; k != num_samples; ++k)
    {
        std::vector<std::vector<hpx::future<void> > > chunks;
        chunks.reserve(num_chunks);
        for (std::size_t c = 0; c != num_chunks - 1; ++c)
        {
            chunks.push_back(create_tasks(num_chunk_tasks, delay));
        }
        chunks.push_back(create_tasks(last_num_chunk_tasks, delay));

        std::vector<hpx::future<void> > chunk_results;
        chunk_results.reserve(num_chunks);

        // wait of tasks in chunks
        hpx::util::high_resolution_timer t;
        if (num_chunks == 1)
        {
            hpx::wait_all(chunks[0]);
        }
        else
        {
            for (std::size_t c = 0; c != num_chunks; ++c)
            {
                chunk_results.push_back(
                    hpx::async([&chunks, c]() { hpx::wait_all(chunks[c]); })
                );
            }
            hpx::wait_all(chunk_results);
        }
        result += t.elapsed();
    }

    return result / num_samples;
}
Exemple #3
0
int main(){
	PA_Init();    // Initializes PA_Lib

	AS_Init(AS_MODE_SURROUND | AS_MODE_16CH);
	AS_SetDefaultSettings(AS_PCM_8BIT, 11025, AS_SURROUND);

	PA_LoadBackground(UP_SCREEN, BACKGROUND_UP, &main_up);
	PA_LoadBackground(DOWN_SCREEN, BACKGROUND_DOWN, &main_down);

	create_tasks();

	vTaskStartScheduler();		// Never returns
	while (1)
		;
	return 0;
}
/*! \fn       void app_task_start(void *pdata)
*
*  \brief     起始任务
*
*  \param     无
*
*  \exception 无
*
*  \return    无
*/
void app_task_start(void *pdata)
{
    /* 防止编译器告警 */
    pdata = pdata;
    /* 配置systick */
    systick_configuration();
    /* 初始化统计任务 */
    OSStatInit();
    /*! 初始化LED */
    led_init();
    /*! 初始化串口 */
    uart_init();
    /* 打印TaskStart */
    DEBUG_MSG("\r\nD: Start uCosII success!\r\n");
    debug_msg(NULL, __FILE__, __LINE__);
    /* 创建消息队列 */
    //pMsg = OSQCreate(MsgQueue, MSG_QUEUE_SIZE);
    //if((OS_EVENT *)0 == pMsg)
    //{
    //    DEBUG_MSG("\r\nE: OSQCreate error!\r\n");
    //    while(1);
    //}
    
    
    /*! 初始化I2C */
    i2c_init(I2C1);
    /*! MPU9150 */
    mpu9150_test();
    
    /* 建立其他任务 */
    create_tasks();
    
    /*! 任务循环 */
    for( ; ; )
    {
        /* 任务延时 */
        OSTimeDlyHMSM(0, 0, 0, 500);
        //LED2 = LED1;
        LED1 = ~LED1;
        /* suspend task */
        //OSTaskSuspend(OS_PRIO_SELF);
    }
}