linux认证辅导:linux进程调度模拟Linux认证考试

文章作者 100test 发表时间 2009:09:18 19:07:13
来源 100Test.Com百考试题网


  /*模拟实现LINUX进程调度的静态优先级算法和时间片轮转算法引入LINUX调度
  */
  #include <.stdio.h>.
  #include <.stdlib.h>.
  #include <.pthread.h>.
  #include <.sys/stat.h>.
  #include <.sys/types.h>.
  #define RUN 1
  #define SLEEP 0
  #define READY 2
  #define DEG_SCHEDULE
  #define NUM 6
  struct OSPCB
  {
  int PcbName . /*进程名字*/
  int ReqCount. /*进程执行计数*/
  int RunTime. /*进程执行时间数*/
  int Prority. /*进程优先级*/
  int PcbStatus. /*进程状态*/
  int PcbTime. /*进程时间片*/
  struct OSPCB* prev.
  struct OSPCB *next.
  }.
  struct ProcessQueue /*模拟CPU调度队列*/
  {
  struct OSPCB *PointerHead. /*指向进程链表头*/
  int PcbNumber. /*CPU每次调度计数器*/
  }.
  //static struct CriticalResource
  //{
  // int flag.
  // char BufferVoice[2000].
  //}
  static int flag.
  void *Function(int *arg).
  void InitPcb(struct OSPCB *pcb).
  int Schedule(struct ProcessQueue *queue).
  void InheritSchedule(struct OSPCB *pcb).
  int main(void)
  {
  int i,ret.
  struct OSPCB *pNewPcb,*pNew.
  struct ProcessQueue *pNewQueue.
  int a[4][4] = {{1,1,0,1},{2,2,0,2},{3,3,0,3},{4,4,0,4}}.
  pNewQueue = (struct ProcessQueue *)malloc(sizeof(struct ProcessQueue)).
  pNewQueue->.PointerHead = NULL.
  pNewQueue->.PcbNumber = 0.
  for(i = 0. i <. 4.i ) /*进程初始化*/
  {
  pNewPcb = (struct OSPCB *)malloc(sizeof(struct OSPCB)).
  pNewPcb->.PcbName = a[i][0].
  pNewPcb->.ReqCount = a[i][1].
  pNewPcb->.RunTime = a[i][2].
  pNewPcb->.Prority = a[i][3].
  pNewPcb->.PcbStatus = READY.
  pNewPcb->.PcbTime = 3.
  InitPcb(pNewPcb).

相关文章


linux权限:强制位与冒险位Linux认证考试
LoadRunner如何监控Linux系统资源Linux认证考试
linux下定时自动执行某个进程Linux认证考试
大流量WEB架构LVS集群配置Linux认证考试
linux认证辅导:linux进程调度模拟Linux认证考试
Linux的2.6.32获取R600的内核模式设置Linux认证考试
用PAM认证加强Linux服务器安全Linux认证考试
Linux_Unix下常用数学计算Linux认证考试
解决VMware中没有eth0的问题Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛