void main(void)
{
	setup_board();
	setup_scheduler();
	
	// adding task to the scheduler
	
	SCH_add_task(&Read_T, 0, 100);
	SCH_add_task(&check_buttons, 50, 500);
	SCH_add_task(&LED_result, 100, 50);
	start_50ms_timer();
	//supper loop
	while(1)
	{	
		SCH_Dispatcher_Tasks();
	}
}
示例#2
0
文件: disk.c 项目: wdonahoe/cisc361
/**
	Read input, print usage message when given fewer than four arguments.
	Otherwise setup scheduler. 
*/
int main(int argc, char* argv[]){

	if (argc < 5){
		printf("discksched: missing arguments\n\nusage: ./disk <input_file> <scheduling_algorithm> <sector-to-sector_seek_time> <end-to-end_seek_time>\n\n");
		printf("Supported schedulers:\n\n");
		printf("   1) FCFS \n");
		printf("   2) SSTN \n");
		printf("   3) SCAN \n");
		printf("   4) C-SCAN \n\n");
	}
	else if (argc == 5) {
		const char* input_file = (const char*)argv[1];
		const char* algorithm = (const char*)argv[2];
		int sec_to_sec_seek = atoi((const char*)argv[3]);
		int end_to_end_seek = atoi((const char*)argv[4]);

		setup_scheduler(input_file, algorithm, sec_to_sec_seek, end_to_end_seek);
	}
	else {
		fprintf(stderr, "error: too many arguments to disksched.\n");
	}

	return 0;
}
示例#3
0
int
FT_EventService::run(int argc, ACE_TCHAR* argv[])
{
  try
  {
    // Initialize ORB.
    orb_ = CORBA::ORB_init (argc, argv);

    if (this->parse_args (argc, argv) == -1)
      return 1;

    CORBA::Object_var root_poa_object =
      orb_->resolve_initial_references("RootPOA");
    if (CORBA::is_nil (root_poa_object.in ()))
      ORBSVCS_ERROR_RETURN ((LM_ERROR,
      " (%P|%t) Unable to initialize the root POA.\n"),
      1);

    PortableServer::POA_var root_poa =
      PortableServer::POA::_narrow (root_poa_object.in ());

    PortableServer::POAManager_var poa_manager =
      root_poa->the_POAManager ();

    poa_manager->activate ();

    CORBA::Object_var naming_obj =
      orb_->resolve_initial_references ("NameService");
    if (CORBA::is_nil (naming_obj.in ()))
      ORBSVCS_ERROR_RETURN ((LM_ERROR,
      " (%P|%t) Unable to initialize the Naming Service.\n"),
      1);

    CosNaming::NamingContext_var naming_context =
      CosNaming::NamingContext::_narrow (naming_obj.in ());

    setup_scheduler(naming_context.in());

    poa_manager->activate();

    // Activate the Event channel implementation

    TAO_FTEC_Event_Channel ec(orb_, root_poa);

    FtRtecEventChannelAdmin::EventChannel_var ec_ior =
      ec.activate(membership_);

    if (report_factory(orb_.in(), ec_ior.in() )==-1)
      return -1;

    orb_->run();
  }
  catch (const CORBA::Exception& ex)
  {
    ex._tao_print_exception ("A CORBA Exception occurred.");
    return -1;
  }


  ACE_Thread_Manager::instance()->wait();
  return 0;
}