linux实验程管理时间片轮转和管道分析.docVIP

  • 7
  • 0
  • 约8.25千字
  • 约 10页
  • 2016-10-11 发布于浙江
  • 举报

linux实验程管理时间片轮转和管道分析.doc

linux实验程管理时间片轮转和管道分析

实验二: 进程管理 实验学时:2学时 实验类型:设计 实验要求:必修 一、实验目的 本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作原理。 了解终端访问进程的linux命令,掌握Linux下进程创建、撤销;了解linux下进程之间的族亲关系;掌握Linux系统。ps? ?-aux? ?|? ?grep? ?ivr_tr? ?的执行结果 ---------------------------------------------------- 内容2、终端命令:无名管道 “|” 题目1:如何一个屏幕一个屏幕地查看 /etc 目录的内容利用一个管道 列出带有licq字符的RPM包利用多个管道 passwd文件含有“/bin/bash”1已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”(E)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。 (6) 若“就绪”状态的进程队列不为空,则重复上面的(4)和(5)的步骤,直到所有的进程都成为“结束”状态。 (7) 在所设计的程序中应有显示或打印语句,能显示或打印每次选中进程的进程名以及运行一次后进程队列的变化。 (8) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中的进程名以及进程控制块的动态变化过程。 typedef struct PNode { // PCB struct PNode *next; // 定义指向下一个节点的指针 char name[10]; // 定义进程名,并分配空间 int All_Time; // 定义总运行时间 int Runed_Time; // 定义已运行时间 char state; // 定义进程状态 Ready / End }* Proc; // 指向该PCB的指针 int ProcNum; // 总进程个数 (2)源代码: #include iostream #include cstdlib using namespace std; typedef struct PNode { // PCB struct PNode *next; // 定义指向下一个节点的指针 char name[10]; // 定义进程名,并分配空间 int All_Time; // 定义总运行时间 int Runed_Time; // 定义已运行时间 char state; // 定义进程状态 Ready / End }* Proc; // 指向该PCB的指针 int ProcNum; // 总进程个数 // 初始化就绪队列 void InitPCB(Proc H) { cout请输入总进程个数: ; cinProcNum; // 进程总个数 int Num=ProcNum; H=(Proc)malloc(sizeof(PNode)); // 建立头节点 H-next=NULL; Proc p=H; //定义一个指针 cout总进程个数为 ProcNum 个,请依次输入相应信息\n\n; while (Num--) { p=p-next=(Proc)malloc(sizeof(PNode)); cout进程名 总运行时间 已运行时间 :; cinp-namep-All_Timep-Runed_Time; p-state=R; p-next=NULL; } p-next=H-next; } //输出运行中的进程信息 void DispInfo(Proc H) { Proc p=H-next; do { if (p-state != E) //如果该进程的状态不是End的话 { cout进程名:p-name\t总运行时间:p-All_Time \t已运行时间:p-Runed_Time \t状态:p-stateendl; p=p-next; } else p=p-next; } while (p != H-next); // 整个进程链条始终完整,只是状态位

文档评论(0)

1亿VIP精品文档

相关文档