当前位置:  技术问答>linux和unix

怎样将以下程序改为按时间片轮转的方式运行?

    来源: 互联网  发布时间:2014-11-20

    本文导语:  //******************* //     LTIMER.H //******************* #ifndef LTIMER_H #define LTIMER_H #define TRUE  1 #define FALSE 0 #ifndef MIN #define MIN(x,y)     (((x)  (y)) ? (x) : (y)) #define MID(x,y,z)   MAX((x), MIN((y), (z))) #endif void lt_inst...

//*******************
//     LTIMER.H
//*******************

#ifndef LTIMER_H
#define LTIMER_H

#define TRUE  1
#define FALSE 0

#ifndef MIN
#define MIN(x,y)     (((x)  (y)) ? (x) : (y))
#define MID(x,y,z)   MAX((x), MIN((y), (z)))
#endif


void lt_install_timer(); // 初始化时钟系统
void lt_remove_timer(); // 结束系统
// 如果你不还原,系统会自动在程序结束时还原
long lt_clock(char swit);  // 取时钟,参数swit为0,1代表取1.198181Hz 和200Hz的时钟
char lt_install_int_ex(void (*proc)(),long speed); // 设置并激活进程, // speed代表1198181Hz的系统时钟为标准的停顿时间
char lt_install_int(void (*proc)(),long speed); // 设置并激活进程
// speed代表千分之几秒
void lt_remove_int(void (*proc)()); // 结束系统

#endif



//*******************
//     LTIMER.CPP
//*******************


// Timer Control
// support 16 processes running in different
// rate and in the same time
//

#include 
#include 
#include 
#include 
#include "ltimer.h"
#define MAX_TIMERS      3

void lt_install_timer();// 初始化时钟系统
void lt_remove_timer();// 结束系统.如果你不还原,系统会自动在程序结束时还原
long lt_clock(char swit); // 0: 1.19MHz 1:200Hz the same 取时钟,参数swit为0,1代表取1.198181Hz 和200Hz的时钟
char lt_install_int_ex(void (*proc)(),long speed);// 设置并激活进程,
char lt_install_int(void (*proc)(),long speed);// 设置并激活进程speed代表千分之几秒
void lt_remove_int(void (*proc)());// 结束系统

static long tinstall=0,autoexit=0,Timer_Delay=65536L;
static long lt_clock0=0, lt_clock1=0;
short  lt_Intr=0x08;

// 进程定义结构
static struct {                          
   void ((*proc)()); // 进程指针
   long speed; // 进程的速度
   long counter; // 计数器
} my_int_queue[MAX_TIMERS+1];

// 换算定义
#define TIMERS_PER_SECOND     1193181L
#define SECS_TO_TIMER(x)      ((long)(x) * TIMERS_PER_SECOND)
#define MSEC_TO_TIMER(x)      ((long)(x) * (TIMERS_PER_SECOND / 1000))
#define BPS_TO_TIMER(x)       (TIMERS_PER_SECOND / (long)(x))
#define BPM_TO_TIMER(x)       ((60 * TIMERS_PER_SECOND) / (long)(x))
#define LOVE_TIME_SPEED       BPS_TO_TIMER(200)

static void interrupt MyInt8(...);//interrupt 

                                  //Use the interrupt function modifier to define a function as an interrupt handler. 

                                  //...表示参数的个数不确定?

static void interrupt far (*OldInt8)(...);
static void SetTimerRate(unsigned long v);
static int  FindProc(void (*proc)());
static void UpdateRate();

// 在进程表中寻找一个与proc匹配的函数指针
// 如果没有找到则返回一个没有分配的进程
static int  FindProc(void (*proc)())
{ int i;
  for (i=0;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • windows下cmd命令提示符下让程序后台运行命令
  • javascript开源软件 iis7站长之家
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • linux编写一个脚本判断程序是否在运行,如果没运行就重启这个软件。
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • jbuilder下写的javabean与jsp程序正常运行,如何转到weblogic或其他的服务器上运行???
  • 运行程序后程序报错说操作不允许
  • ubuntu下用gcc编译的程序要怎样运行,为何运行不了?
  • 关闭putty(SSH程序)后如何让程序还在redhat上运行?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3