《计算机操作系统》上机。
实验报告。一。
二。 实验实现:数据结构的定义;算法介绍(可以是流程图、可以是类c**、可以是文字算法描述。)
#include<>
#include<>
typedef struct pcb进程信息*/
char processname;
int arrivetime;
int servicetime;
int finishtime;
int priority;
int state;
struct pcb *next;
pcb, *pcb_pointer;
pcb_pointer initial(int e初始化进程链表。
int i;
pcb_pointer p,q,l;
q = pcb_pointer)malloc(sizeof(pcb));链表头结点。
q->next=null;
l=q;printf("请输入各进程信息:进程名到达时间服务时间优先级");
for(i=0;i
return q;
《一》最高优先级优先调度算法。
优先权调度算法:
1、设定系统中有e个进程,每一个进程用一个进程控制块( pcb)表示,进程队列采。
用链表数据结构。
2、 进程控制块包含如下信息:进程名到达时间服务时间优先级等等。
3、 在每次运行设计的处理调度程序之前,由终端输入e个进程的进程名到达时间服务时间优先级。
4、 进程的数量(e)、优先数及需要的运行时间人为地指定。进程的运行时间以时间片为单位进行计算。
5、 采用优先权调度算法,将e个进程按给定的优先数从大到小连成就绪队列。用头指针指出队列首进程,队列采用链表结构。
6、 处理机调度总是选队列首进程运行。采用动态优先数办法,进程每运行一次优先数减“1”,同时将已运行时间加“1”。
7、 进程运行一次后,若要求运行时间不等于已运行时间,则再将它加入就绪队列;否则将其状态置为“结束”,且退出就绪队列。
8、 “就绪”状态的进程队列不为空,则重复上面6,7步骤,直到所有进程都成为“结束”状态。
9、 在设计的程序中有输入语句,输入e个进程的“优先数”和“要求运行时间”,也有显示或打印语句,能显示或打印每次被选中进程的进程名、运行一次后队列的变化,以及结束进程的进程名。
10、最后,为五个进程任意确定一组“优先数”和“要求运行时间”,运行并调试所设计的程序,显示或打印出逐次被选中进程的进程名及其进程控制块的动态变化过程。
流程图: 图一。最高优先级优先调度算法流程图。
源程序:pcb_pointer sort1(pcb_pointer p) /按优先级排序。
pcb_pointer q1,q2;
char c;
int e;
q1 = q2 = p->next;
while(q1!=null)
q1 = q1->next;
q2 = q1;
return p;
void operate1(pcb_pointer p)
pcb_pointer l,h,q;
l=p->next;
int s=0,i=1;
while(l!=null)
二》简单轮转法调度算法。
简单轮转法的基本思想:
所有就绪进程按 fcfs排成一个队列,总是把处理机分配给队首的进程,各进程占用cpu的时间片相同。即将cpu的处理时间划分成一个个相同的时间片,就绪队列的诸进程轮流运行一个时间片。当一个时间片结束时,如果运行进程用完它的时间片后还未完成,就强迫运行机制进程让出cpu,就把它送回到就绪队列的末尾,等待下一次调度。
同时,进程调度又去选择就绪队列中的队首进程,分配给它一时间片,以投入运行。直至所有的进程运行完毕。
操作系统作业调度实验
实验一进程。2011210549 崔晶。1.本实验实现的功能有 创建一个进程,撤销一个进程,挂起一个进程。2.本实验初始化的进程块状态如图所示 自定义 p表示正在运行,r表示就绪,w表示等待。3.程序如下 include include 进程块的数据结构。struct pcb struct 插入等待...
操作系统作业调度实验
实验二作业调度。一 实验题目 1 单道批处理系统的作业调度模拟程序。2 编写采用先来先服务算法多道批处理系统的作业调度模拟程序。二 实验目的 通过对单道批处理系统的作业调度和采用先来先服务算法多道批处理系统作业调度的模拟,进一步理解作业调度的过程,加深对单道和多道的作业运行状态和作业调度过程 调度算...
操作系统 软件 操作系统作业
1 信号量的物理含义是什么?2 处于执行状态的进程若同时发生了下列两种情况 1 对某信号量执行p操作后,信号量的值变为负数。2 该进程的时间片到时产生中断。试问,该进程将由执行状态变迁为就绪态,还是阻塞态?简述理由。3 设有n个进程共享一临界区,对于下述情况,说明信号量的初值 含义,并用pv操作写出...