操作系统_ 处理机调度

操作系统_  处理机调度
操作系统_  处理机调度

泉州师范学院

软件学院

《计算机操作系统》

课程设计

题目:处理机调度

班级: 10软件工程(2)班

学号:

姓名:

指导教师:

2012 年12 月25 日

目录

第一章概述 (2)

1.1需求分析 (2)

1.2背景设计 (2)

第二章概要设计 (1)

第三章详细设计 (2)

3.1高响应比调度算法 (2)

3.2时间片轮转法 (3)

3.3短进程优先法 (4)

第四章调试分析与测试结果 (5)

第五章总结 (7)

第六章参考文献 (8)

第一章概述

1.1需求分析

进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用C语言编写一个进程调度模拟程序,使用短作业优先调度算法,高响应比调度算法,时间片轮转调度算法实现进程调度。可以手动阻塞与唤醒。并用MFC实现图形界面。本实验可加深对进程调度算法的理解。

1.2背景设计

在OS中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;在分时系统中,为保证系统具有合理的响应时间,采用轮转法进行调度。采用算法时,则要考虑多方面因素,以便达到最佳效果。

第二章概要设计

设计一个有多个进程共行的进程调度程序。

进程调度算法:短作业优先调度算法,高响应比调度算法,时间片轮转调度算法

每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、服务时间、进程状态等等。

struct progress

{

CString Name; //进程名称

CString Start; //创建时间

int ServiceT; //服务时间

int RunningT; //消逝时间

int RemainT;//剩余时间

int id;//进程标识符

CProgressCtrl* pro; //指向进度条的指针

int Rp;//进程成为就绪进程的时间

float prio;//进程优先权

};

进程的优先权为:响应时间/要求服务时间。

进程的运行时间以时间片为单位进行计算。

每个进程的状态可以是就绪、执行、阻塞、完成。

就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。

当阻塞进程时,将当前运行的进程移动到阻塞队列,并从就绪队列将下个进程移动到进程执行区(本程序中就绪队列中第一个即为正在执行进程,后文不再赘述)。

当添加或唤醒进程时,将添加标记m_bchange置为真,并将进程添加进就绪队列。

在运行一个时间片中,检查添加标记m_bchange是否为真,若为真,则判断单选框选中的算法,并按各自算法进行模拟调度,详见详细设计。

当执行区进程完成时,将之移动到已完成的队列,并判断就绪队列中是否有进程:若有,则将下一个进程添加进就绪队列;若无,则弹出提示窗口。

重复以上流程,直到用户退出。

第三章详细设计

3.1高响应比调度算法

该算法在添加标记m_bchange为真且单选框选中“高响应比优先”时调用,分别通过每个进程前的队列中进程RemainT之和除以该进程的ServiceT,求出优先级prio,并根据prio重新为就绪队列排序。最后将m_bchange置为假。

if ( m_bchange )

{ if(iRadioButton==IDC_RADIO1)

{

//计算优先级

for (int i=1;i

{

float sum=0;

for (int j=0;j

{

sum+=Pro[j].RemainT;

}

Pro[i].prio=sum/Pro[i].ServiceT;

}//end for

//根据优先级排序

progress Tem;

for ( i=0;i

{

for (int j=0;j

{

if (Pro[j].prio

{

Tem=Pro[j+1];

Pro[j+1]=Pro[j];

Pro[j]=Tem;

}

}

}

m_bchange=false;

}//end 排序

3.2时间片轮转法

该算法在添加标记m_bchange为真且单选框选中“轮转调度”时调用,直接将就绪队列相邻2个进程两两互换,最终达到将正在执行进程放置于就绪队列后,并将下一个将要执行的进程开始执行,输出结果,并将m_bchange置为真,以便继续轮转。

if(iRadioButton==IDC_RADIO2)

{

progress Tem;

for ( int i=0;i

{

Tem=Pro[i+1];

Pro[i+1]=Pro[i];

Pro[i]=Tem;

}//end for

m_bchange=true;

Pro[0].pro->SetRange(0,Pro[0].ServiceT);

Pro[0].RemainT--;

Pro[0].RunningT++;

m_Zhixing.Format("标识符:%d 进程名称:%s 创建时间:%s 需要时间:%d秒剩余时间:%d秒已运行时间:%d秒优先权:%f\r\n",

Pro[0].id,

Pro[0].Name,

Pro[0].Start,

Pro[0].ServiceT,

Pro[0].RemainT,

Pro[0].RunningT,

Pro[0].prio);

GetDlgItem(IDC_EDIT_Zhixing)->SetWindowText(m_Zhixing);

Pro[0].pro->SetPos(Pro[0].RunningT);

}//end 排序

3.3短进程优先法

该算法在添加标记m_bchange为真且单选框选中“短进程优先”时调用,按照进程RemainT来重新排列队列顺序。最后将m_bchange置为假。

if(iRadioButton==IDC_RADIO3)

{progress Tem;

for (int i=0;i

{

for (int j=0;j

{

if (Pro[j].RemainT>Pro[j+1].RemainT)

{

Tem=Pro[j+1];

Pro[j+1]=Pro[j];

Pro[j]=Tem;

}

}r

}

m_bchange=false;

}//end 排序

}

第四章调试分析与测试结果

高响应比优先算

轮转调度算法

短进程优先算法

进程的阻塞与唤醒

差错控制

第五章总结

通过此次课程设计,更深入的理解了各个进程调度算法,及实现过程。熟悉了MFC环境的使用。增进了VC编程的水平。对进程或作业先来先服务、短作业优先算法,最高响应比算法,高优先权、按时间片轮转调度算法以及进程调度的概念和算法,有了更深入的认识!初步理解了操作系统对于作业处理的基本思想!并加深了我对于操作系统理论的理解。在此过程中,遇到了困难,能及时请教同学,查询相关资料,及时解决了问题,但仍有不足之处,将会在今后学习中更加努力。

第六章参考文献

《计算机操作系统(第三版)》汤子瀛西安电子科技大学出版社《操作系统教程》方敏编西安电子科技大学出版社

《操作系统原理与实践教程》周湘贞、曾宪权清华出版社《数据结构(C语言版)》严蔚敏清华大学出版社

《深入浅出MFC(第2版)》侯俊杰华中科技大学出版社

操作系统处理器调度算法C++程序

一、先来先服务算法 1.程序简介 先来先服务算法按照作业进入系统后备作业队列的先后次序挑选作业,先进入系统的作业将优先被挑选进入主存,创建用户进程,分配所需资源,然后,移入就绪队列.这是一种非剥夺式调度算法,易于实现,但效率不高.只顾及作业的等候时间,未考虑作业要求服务时间的长短,不利于短作业而优待长作业,不利于I/O繁忙型作业而有利于CPU繁忙型作业.有时为了等待场作业执行结束,短作业的周转时间和带全周转时间将变得很大,从而若干作业的平均周转时间和平均带权周转时间也变得很大。 2.分析 1.先定义一个数组代表各作业运行的时间,再定义一个数组代表各作业到达系统的时间,注意到达系统的时间以第一个作业为0基础(注意:若各程序都同时到达系统,则到达系统时间都为0)。 2.输入作业数。 3.然后运用循环结构累积作业周转时间和带权周转时间。 4.最后,作业周转时间和带权周转时间分别除以作业数即可得到平均作业周转时间和平均带权周转时间。 3.详细设计 源程序如下: #include #include using namespace std; int main() { int n,a[100],b[100]; double s[100],m[100],T=0,W=0; cout<<"请输入作业数:"<>n; cout<<"请分别输入各作业到达系统的时间:"<>b[i]; } cout<<"请分别输入各作业所运行的时间:"<>a[i];s[0]=0; s[i+1]=s[i]+a[i]; m[i+1]=(s[i+1]-b[i])/a[i]; T=T+s[i+1]-b[i]; W=W+m[i+1]; }

操作系统_ 处理机调度

泉州师范学院 软件学院 《计算机操作系统》 课程设计 题目:处理机调度 班级: 10软件工程(2)班 学号: 姓名: 指导教师: 2012 年12 月25 日

目录 第一章概述 (2) 1.1需求分析 (2) 1.2背景设计 (2) 第二章概要设计 (1) 第三章详细设计 (2) 3.1高响应比调度算法 (2) 3.2时间片轮转法 (3) 3.3短进程优先法 (4) 第四章调试分析与测试结果 (5) 第五章总结 (7) 第六章参考文献 (8)

第一章概述 1.1需求分析 进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用C语言编写一个进程调度模拟程序,使用短作业优先调度算法,高响应比调度算法,时间片轮转调度算法实现进程调度。可以手动阻塞与唤醒。并用MFC实现图形界面。本实验可加深对进程调度算法的理解。 1.2背景设计 在OS中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;在分时系统中,为保证系统具有合理的响应时间,采用轮转法进行调度。采用算法时,则要考虑多方面因素,以便达到最佳效果。 第二章概要设计 设计一个有多个进程共行的进程调度程序。 进程调度算法:短作业优先调度算法,高响应比调度算法,时间片轮转调度算法 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、服务时间、进程状态等等。 struct progress { CString Name; //进程名称 CString Start; //创建时间 int ServiceT; //服务时间 int RunningT; //消逝时间 int RemainT;//剩余时间 int id;//进程标识符 CProgressCtrl* pro; //指向进度条的指针 int Rp;//进程成为就绪进程的时间

操作系统 多处理机习题

1.有两个程序,程序A依次使用CPU计10s,使用设备甲计5s,使用CPU计5s,使用设 备乙计10s,使用CPU计10s。程序B依次使用设备甲计10s,使用CPU计10s,使用设备乙计5s,使用CPU计5s,使用设备乙计10s。在单道程序环境下先执行程序A再执行程序B,计算CPU的利用率是多少?在多道程序环境下,CPU的利用率是多少? 解答: 单道环境下,CPU运行时间为(10+5+10)s+(10+5)s=40s,两个程序运行总时间为40s+40s=80s,故利用率是40/80=50% 多道环境下,运行情况如下图所示,CPU运行时间为40s,两个程序总时间为45s,故利用率为40/45=88.9% 2.设某计算机系统有一个CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪 状态,且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。试画出它们的时序关系图(可以用甘特图),并说明: (1)开始运行后,CPU有无空闲等待?若有,在哪些时间内等待?计算CPU的利用率。 (2)进程A运行时有无等待现象?若有,在什么时候发生等待现象? (3)进程B运行时有无等待现象?若有,在什么时候发生等待现象? 进程运行情况如下: 1)CPU在100-150ms时间段内空闲,利用率为250/300=83.3% 2)进程A为无等待现象 3)进程B为有等待现象,0-50ms,180-200ms 3.设内存中有3道程序A、B、C,它们按A、B、C的优先次序执行。它们的计算和I/O操 作的时间见表1-1。假设3道程序使用相同设备进行I/O操作,即程序以串行方式使用设备,试画出单道运行和多道运行的时间关系图(调度程序的执行时间忽略不计)。在两种情况下,完成3道程序分别需要多长时间(多道运行时采用抢占式调度策略)。

操作系统实验报告(进程调度算法)

操作系统实验报告(进程调度算法)

实验1 进程调度算法 一、实验内容 按优先数调度算法实现处理器调度。 二、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。 三、实验原理 设计一个按优先数调度算法实现处理器调度的程序。 (1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为: 进程名 指针 要求运行时 间 优先数

状态 其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。 指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。 要求运行时间——假设进程需要运行的单位时间数。 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。 (3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。例: 队首标志 K2

1P1 K 2 P2 K 3 P3 K 4 P4 K 5 P5 0 K4K5K3K1 2 3 1 2 4 1 5 3 4 2 R R R R R PC B1 PC B2 PC B3 PC B4 PC B5 (4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行: 优先数-1 要求运行时间-1 来模拟进程的一次运行。 提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。

处理机管理复习_1

《计算机操作系统》练习题 第一部分:处理机管理 1. 什么是进程控制块?试从进程管理、进程通信、中断处理、文件管理、存储管理、设备管理的角度设计进程控制块应包含的项目。 2. 在创建和撤销一个进程时所要完成的主要工作分别是什么?当进程A由于所分配的时间片到,由运行状态转入就绪状态;而进程B被调度程序选中由就绪态转为运行状态时,系统所要做的主要工作是什么? 3. 某系统采用以下措施对资源进行管理:进程在使用资源时提出资源申请,当一个已经保持了某些资源的进程再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再提出申请。问这种措施为什么能够预防死锁?它有什么不足之处? 4. 理发师问题描述如下:理发店包含一间接待室和一间工作室,接待室内有n(n>0)把椅子,而工作室只有1把椅子。如果没有顾客,理发师就去睡觉;如果顾客到来时所有椅子都有人,那么顾客离去;如果理发师在忙而接待室有空闲的椅子,那么顾客会坐在其中一把椅子上等待;如果理发师在睡觉,则顾客会唤醒他。请采用信号量机制解决该位理发师问题(用代码描述) 5. 在一个批处理系统中,有两个作业进程。有一作业序列,其到达时间及估计运行时间列表如表所示。 作业到达时间估计运行时间 1 10:00 35 2 10:10 30 3 10:15 45 4 10:20 20 5 10:30 30 系统采用最高相应比优先的作业调度算法(相应比=等待时间/估计运行时间)。作业进程的调度采用短作业优先的抢占式调度算法。 (1)列出各作业的执行时间(即列出每个作业运行的时间片段,例如作业i的运行时间序列为10:00~10:40,11:00~11:20,11:30~11:50(结束))。 (2)计算这批作业的平均周转时间。 6. 假设一个CPU算法会优先考虑在近期占用CPU时间最少的进程,分析为什么这样的调度算法有利于受I/O约束的进程,但又不会使受CPU约束的进程饥饿。 7. 某系统如此定义P、V操作: P(S) S=S-1:

操作系统原理第四章 处理机调度习题

第四章处理机调度 4.3 习题 4.3.1 选择最合适的答案 1.某系统采用了银行家算法,则下列叙述正确的是()。 A.系统处于不安全状态时一定会发生死锁 B.系统处于不安全状态时可能会发生死锁 C.系统处于安全状态时可能会发生死锁 D.系统处于安全状态时一定会发生死锁 2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。 A.Max[i,j]=Allocation[i,j]+Need[i,j] B.Need[i,j]= Allocation[i,j]+ Max[i,j] C.Max[i,j]= Available[i,j]+Need[i,j] D.Need[i,j]= Available[i,j]+ Max[i,j] 3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。 A.非抢占式静态优先权法 B.抢占式静态优先权法 C.时间片轮转调度算法 D.非抢占式动态优先权法 4.在下列选项中,属于预防死锁的方法是()。 A.剥夺资源法 B.资源分配图简化法 C.资源随意分配 D.银行家算法 5.在下列选项中,属于检测死锁的方法是()。 A.银行家算法 B.消进程法 C.资源静态分配法 D.资源分配图简化法 6.在下列选项中,属于解除死锁的方法是()。 A.剥夺资源法 B.资源分配图简化法 C.银行家算法 D.资源静态分配法 7.为了照顾紧迫型作业,应采用()。 A.先来服务调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.优先权调度算法 8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则

计算机系统结构与并行处理

第 1 页 ( 共 8 页 ) 命题纸使用说明:1、字迹必须端正,以黑色碳素墨水书写在框线内,文字与图均不得剪贴,以保证“扫描”质量; 2、命题纸只作考试(测验)命题所用,不得移作他用。 大学 2003 ~ 2004 学年 秋 季学期试卷 课程名:计算机系统结构与并行处理(一) 学分:_4_ 学号:_______ 姓名:_________ 院:计算机学院 一.填充题: (每小题3分、共12分) 1.计算机系统结构定义是程序设计者所看到的计算机属性,即概念性,结构,功能性。 2.虚拟存储系统,辅存容量为228Byte ,主存容量为216Byte ,页面为1Kbyte ,则MEM 系统提供的程序空间有 218 页,对应实存空间 26 页,若采用组相联,则整个虚存应分为 212 区。 3.流水线结构的并行性是采用 时间重迭 的技术途径。 4.在系统结构中,程序访问局部化性质应用于 cache , 流水线, 虚拟存储器 等方面。 二.简答题: (每小题4分、共24分) 1.简述系列机的概念。 先设计一种系统结构;按其设计它的系统软件; 按照器件状况和硬件技术,研究这种结构的各种实现方法; 按速度,价格等不同要求分别提供不同速度,不同配置的各档机器。 成 绩

第 2 页 ( 共 8 页 ) 2.存储器层次结构是怎样的?其容量、速度、价格是怎样分布的。 速度越来越快,价格越来越高寄存器组 cache 主存储器 辅助存储器 后援存储器 容量越来越 大 3.简述虚拟计算机概念。 计算机只对观察者而存在;功能体现在广义语言上;对该语言提供解释手段;作用在信息处理或控制对象上;简言之,是由软件实现的机器。 4.What is the policy of “write back” when writing to the cache? (answer in English) The information is written only to the block in the cache. The modified cache block is written to main memory only when it is replaced.

操作系统课后习题答案第四章存储器管理习题.doc

第四章存储器管理 1.在存储管理中,采用覆盖和交换技术的目的是 A.节省内存空间B.物理上扩充内存容量C.提高CPU效率D.实现内存共享 2.采用不会产生内部碎片 A.分页式存储管理B.分段式存储管理 C.固定分区式存储管理D.段页式存储管理 3.某虚拟存储器系统采用页式内存管理,使用LRU页面替换算法,考虑下面的页面地址访问流: 1,8,1,7,8,2,7,2,1,8,3,8,2,1,3,1,7,1,3 假定内存容量为4个页面,开始时是空的,则缺页中断的次数A.4 B.5 C.6 D.7 4.最佳适应算法的空闲块链表是 A.按大小递减顺序连在一起B.按大小递增顺序连在一起C.按地址由小到大排列D.按地址由大到小排列5.在可变分区存储管理中的紧凑技术可以 A.集中空闲区B.增加内存容量 C.缩短访问周期D.加速地址转换 6.在固定分区分配中,每个分区的大小是 A.相同B.随作业长度变化 C.可以不同但预先固定D.可以不同但根据作业长度固定7.实现虚拟存储管理的目的是

A.实现存储保护B.实现程序浮动 C.扩充辅存容量D.扩充内存容量 8.采用分段存储管理的系统中,若地址是24位表示,其中8位表示段号,则允许每段的最大长度是 A.224B.216C.28 D.232 9.把作业地址空间使用的逻辑地址变成内存的物理地址称为A.加载B.重定位C.物理化D.逻辑化10.在段页式存储管理系统中,内存等分成程序按逻辑模块划分成若干 A.块B.基址C.分区D.段E.页号F.段长11.虚拟存储管理系统的基础是程序的理论 A.局部性B.全局性C.动态性D.虚拟性12.以下存储管理方式中,不适用于多道程序设计系统的是A.单用户连续分配B.固定式分区分配 C.可变式分区分配D.页式存储管理 13.在可变分区分配方案中,某一道作业完成后,系统收回其在内存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 A.无上邻空闲区也无下邻空闲区 B.有上邻空闲区但无下邻空闲区 C.无上邻空闲区但有下邻空闲区 D.有上邻空闲区也有下邻空闲区

操作系统+磁盘调度算法

目录 目录 ........................................................ 错误!未定义书签。1.课程设计目的.............................................. 错误!未定义书签。 编写目的................................................. 错误!未定义书签。2.课程设计内容.............................................. 错误!未定义书签。 设计内容................................................. 错误!未定义书签。3.课程设计方案.............................................. 错误!未定义书签。 模块划分................................................. 错误!未定义书签。 模块调用关系图........................................... 错误!未定义书签。 子模块程序流程图......................................... 错误!未定义书签。4.测试数据和结果............................................ 错误!未定义书签。 测试数据................................................. 错误!未定义书签。 测试结果................................................. 错误!未定义书签。 测试抓图................................................. 错误!未定义书签。5.参考文献.................................................. 错误!未定义书签。6.总结...................................................... 错误!未定义书签。 设计体会................................................. 错误!未定义书签。 结束语................................................... 错误!未定义书签。7.程序使用说明书............................................ 错误!未定义书签。8.程序源代码................................................ 错误!未定义书签。

多处理机系统介绍(翻译)

多处理机系统介绍 随着用户计算需求的增长,多处理系统能够提供一个自然地、不断提高的升级途径。只要核心的用户程序能够提供线程级并行,给系统添加处理器,或者将较小的系统替换为较大的、包含更多处理器的系统,都能给用户提供一个直接增加计算能力的途径。其次,多处理机系统使系统供应商能够将单个微处理器的设计代价分摊到多种设计方案中,这些设计方案能够提供不同层次的性能和扩展能力。最后,使用一致共享存储器的多处理机系统能够提供与分时共享的但处理机兼容的编程模式,便于用户使用以前已经存在的应用程序,也便于开发新的应用程序。在这些系统中,硬件和操作系统软件综合起来提供给用户和程序员的功能界面,实际上是基于以下4点多处理机理想假设: 完全共享存储器即系统中所有处理机对所有物理存储器的访问都是平等的。 单位延迟即所有的访存请求都能在一个周期内满足。 无竞争即一个处理机的访存不会受到另一个处理机访存的影响。 写的瞬间船舶即某个处理机写存储器导致的更新立刻对所有的处理机可见。 系统及处理机的设计者必须努力使系统尽量接近这些理想假设,从而满足用户对于性能和正确性的要求。显然,在实现这些目标时,诸如造价以及可扩展性等因素起着重要作用,但是一个优秀的系统必须很好的满足这些假设。 完全共享存储器,单位延迟以及无竞争 诸如图9.4所示,大多数提供一致存储器访问(UMA,Uniform Memory Access)的传统共享存储器多处理机系统使用一种“dancehall”的组织结构,一组存储器模块或者存储体通过交叉开关互联网络与另一组处理机连接起来,并且每个处理机通过交叉开关访问存储器的延迟是相通的。这种方法的弊端在于交叉开关的价格,该价格会随着处理机和存储器的总数按平方增长,同时每次访存都必须穿过交叉开关,另一种方法是非一致存储访问(NUMA,Nonuniform Memory Access),许多系统供应商现在都按照这种方法构造系统,在这种方法中,处理机仍然通过一个交叉开关互联网络连接在一起,但是每个处理机有一个本地的存储器,它的访问延迟要低得多,在NUMA结构中,只有对远程存储器的访问才存在穿越交叉开关的延迟开销。 在UMA和NUMA系统中,与单处理机系统一样,都是通过cache来近似满足单位延迟的理想假设,cache能够同时满足对本地和远程存储器(NUMA)的访问,类似的,可以使用cache 对访存流量进行过滤减轻存储体之间的竞争。因此,对于在单处理机系统中不可缺少的cache,

并行处理机和多处理机系统的概念、并行处理机与多处理机

并行处理机和多处理机系统的概念、并行处理机与多处理机系统的区别、多处理机运行过程。 多处理机性能模型 SIMD 计算机的概念 SIMD 计算机处理任务的性能计算。 并行处理机与多处理机系统的区别: §并行处理机的并行性在于指令内部,而多处理机的并行性在于指令外部。 §并行处理机把同种操作集中在一起,由指令直接启动各个PE同时工作。多处理机用专门的指令来表示并发关系,一个任务开始执行时能够派生出与它同时执行的另一些任务,如果任务数多于处理机数,多余的任务进入排队器等待。 §并行处理机只有一个CU,自然同步。多处理机执行时间可能互不相同它们的工作进度不会也不必保持相同。 多处理机性能模型: 当多处理机系统以峰值速度运行时,所有处理机都在做着有用的工作,没有一台处理机处于空闲状态。N台处理机对系统性能都有贡献,系统的处理速度随N的增加而增加。但以下原因引起系统不能达到峰值性能: …… ( 请复习教材347 页) 典型例子:试在含一个PE 的SISD 机和在含8 个PE 的且连接成一个线性环的SIMD 机上计算 假定完成每个加法用30ns ,乘法50ns ,沿双向环在相邻PE 间移数需要10ns 。 ( 1 )SISD 计算机上计算S 需要多少时间? ( 2 )SIMD 计算机上计算S 需要多少时间? ( 3 )SIMD 上计算S 相对于SISD 计算机的加速比是多少? 解:(1) 在SISD 机上,无需移数,所有运算是串行的,需要8 次加法,7 次乘法,因此:T0=8x30+7x50=590ns

(2) 在SIMD 机上,首先将8 个加法分配到8 个处理机上,然后在4 个处理机上执行4 次乘法,需移数1 次( 4 个处理机同时),然后再执行 2 次乘法,需移数2 次(同时),最后再执行一次乘法(移数 4 次),因此所需https://www.360docs.net/doc/0e4522199.html, T8=1x30+3x50+(1+2+4)x10=250ns (3) 加速比S=T0/T8=590/250=2.36 在SIMD 上计算过程说明如下: 1 :在8 个PE 上执行加法,结果在8 个PE 中 2 :在PE2 、PE4 、PE6 、PE8 上执行乘,需要将PE1 、PE 3 、PE5 、PE7 的运算结果分别移到PE2 、PE 4 、PE6 、PE8 3 :在PE 4 、PE8 上执行乘法,需要将PE2 、PE6 的运算结果分别移到PE4 、PE8 4 :在PE8 上执行一次乘法,需要将PE4 的运算结果移到PE8 。 最后运算结果在PE8 上。

几种操作系统调度算法

保证调度算法 基本思想:向用户做出明确的性能保证,然后去实现它.如你工作时有n个用户的登录,则你将获得cpu处理能力的1/n 算法实现:跟踪计算各个进程已经使用的cpu时间和应该获得的cpu时间,调度将转向两者之比最低的进程 五,保证调度算法 思想:向用户做出明确的性能保证,然后去实现它. 算法:容易实现的一种保证是:当工作时己有n个用户登录在系统,则将获得CPU处理能力的1/n.类似的,如果在一个有n个进程运行的用户系统中,每个进程将获得CPU处理能力的1/n. 实现方法:OS应记录及计算,各个进程在一定时间段内,已经使用的CPU时间和应该得到的CPU时间,二者之比小者优先级高. 5. 保证调度 一种完全不同的调度算法是向用户作出明确的性能保证,然后去实现它。一种很实际并很容易实现的保证是:若用户工作时有n个用户登录,则用户将获得CPU处理能力的1/n。类似地,在一个有n个进程运行的单用户系统中,若所有的进程都等价,则每个进程将获得1/n的CPU时间。看上去足够公平了。 为了实现所做的保证,系统必须跟踪各个进程自创建以来已使用了多少CPU时间。然后它计算各个进程应获得的CPU时间,即自创建以来的时间除以n。由于各个进程实际获得的CPU时间是已知的,所以很容易计算出真正获得的CPU时间和应获得的CPU时间之比。比率为0.5说明一个进程只获得了应得时间的一半,而比率为2.0则说明它获得了应得时间的2倍。于是该算法随后转向比率最低的进程,直到该进程的比率超过它的最接近竞争者为止。 彩票调度算法 基本思想:为进程发放针对系统各种资源(如cpu时间)的彩票;当调度程序需要做出决策时,随机选择一张彩票,持有该彩票的进程将获得系统资源 合作进程之间的彩票交换 六,彩票调度算法 彩票调度算法: 为进程发放针对各种资源(如CPU时间)的彩票.调度程序随机选择一张彩票,持有该彩票的进程获得系统资源. 彩票调度算法的特点: 平等且体现优先级:进程都是平等的,有相同的运行机会.如果某些进程需要更多的机会,可被给予更多彩票,增加其中奖机会. 易计算CPU的占有几率:某进程占用CPU的几率,与所持有的彩票数成正比例.该算法可实现各进程占用CPU的几率. 响应迅速 各个进程可以合作,相互交换彩票. 容易实现按比例分配如图象传输率,10帧/s,15帧/s,25帧/s

操作系统处理机调度练习题

1.下表给出作业1、2、3到达时间和运行时间。采用短作业优先调度算法和先来先 服务调度算法,试问平均周转时间各为多少?是否还有更好的调度策略存在?(时间单位:小时,以十进制进行计算。) 2.假设有四个作业,它们提交、运行时间如下表所示。若采用响应比高者优先调度算 法,试问平均周转时间和带权周转时间为多少?(时间单位:小时,以十进制进行计算。) a、 b、c,且满足a<b<c,试证明采用短作业优先调度算法能获得最小平均周转时间。 4.在单CPU和两台输入/输出设备(I1,I2)的多道程序设计环境下,同时投入三个作业 Job1、Job2、Job3运行。这三个作业对CPU和输入/输出设备的使用顺序和时间如下所示: Job1: I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);I2(20ms|) Job2: I1(20ms);CPU(20ms); I2(40ms|) Job3: CPU(30ms);I1(20ms);CPU(10ms);I1(10ms|) 假定CPU 、I1、I2都能并行工作,Job1优先级最高,Job2次之,Job3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU但不抢占I1和I2。试求: (1)三个作业投入到完成分别需要的时间。 (2)从投入到完成的CPU利用率。 (3)I/O设备利用率 1.对下面的5个非周期性实时任务,按最早开始截止时间优先权调度算法应如何进行

A要求每20ms执行一次,执行时间为10ms;任务B要求50ms执行一次,执行时间为10ms;任务C要求 50ms执行一次,执行时间为15ms,应如何按最低松弛度优先算法对它们进行 CPU调度? 5.某系统有R1、R2和R3共3种资源,在T0时刻P1、P2、P3和P4 这4 个进程对资源的占用和需求情况见下表,此时系统的可用资源向量为(2,1, 2),问题: ①将系统中各种资源总数和此刻各进程对各资源的需求数目用向量或矩阵 表示出来; ②如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安 全性,应该如何分配资源给这两个进程,说明你所采用策略的原因。 6假定某计算机系统有R1(2)、R2(1)两类可再使用资源,它们被进程P1、P2所共享,两个进程均以下列顺序使用资源: ?申请R1?申请R2?申请R1?释放R1?释放R2?释放R1 ? 试求出系统可能到达的死锁点,并画出死锁点的资源分配图。

多处理机操作系统论文

多处理机操作系统 【摘要】本文通过对操作系统的发展对引入多操作系统的原因和采用多处理机操作系统的优点进行了阐述。分别对多处理机操作系统的三种模式类型分别就其工作原理和特点进行了详细说明。随后对多处理机操作系统的共享公用存储器的实现方法进行了阐述,即处理机和存储器的几种连接方式的优缺点和实现原理进行了说明。 【summary】In this paper, the development of the operating system into multiple operating systems on the causes and the use of the advantages of multiprocessor operating system has been described. Multiprocessor operating systems, respectively, for the three model types in respect of its working principle and characteristics are described in detail. Then the multi-processor operating system share a common memory implementation are described,The processor and memory advantages and disadvantages of several connections and implementation principles described 【关键词】多处理机操作系统、主从式(master-slave)、 独立监督式(separate supervisor) 浮动监督式(floating superviso)、公用存储器、 操作系统经过上个世纪60、70年代的发展,到了本世纪80年代已趋于成熟,随着VLSI和计算机体系结构的发展,操作系统随之发展,形成了多处理机操作系统、微机操作系统、网络操作系统、分布式操作系统和嵌入式操作系统等。 从广义上说,多处理机操作系统,就是由多台计算机协同工作来完成所要求的任务的计算机系统操作系统。而传统的侠义上,多处理机系统的作用是利用系统内的多个CPU来并行执行用户的多个指令。这样做的优点有三。 第一、利用多个处理机提供在发生故障的情况下的冗余性,建立高度可靠的系统。 第二、将程序可以分成几个能作为进程独立执行的部分,减少程序执行的时间。 第三、通过并行执行多个用户程序,增加系统的吞吐量。 多个CPU在物理位置上处于同一机壳中,有一个单一的系统物理地址空间和每一个CPU均可访问系统内的所有存储器是其显著的特点。 引入多处理机系统的原因有以下三点: 1、增加系统的吞吐量 2、节省投资 3、提高系统的可靠性 多处理机操作系统的模式类型可分为三种: 1、主从式(master-slave)主从式操作系统即由一台主处理机记录、控制 其它从处理机的状态,并分配任务给从处理机。操作系统在主处理机 上运行,从处理机的请求通过陷入传送给主处理机,然后主处理机回 答并执行相应的服务操作。主从式操作系统的特点有如下几个特点: 1):由于只有一个处理机访问执行表,所以不存在管理表格存取冲突 和访问阻塞问题。 2):操作系统程序只在一台处理机上运行。

第6章 并行处理机 习题

一、选择题 1、超标量处理机________ A)在一个时钟周期内分时发射多条指令B)只有一个操作部件 C)在一个时钟周期内同时发射多条指令D)只有一个取指部件 2、________属于MIMD系统结构。 A)各处理单元同时受同一个控制单元的管理 B)各处理单元同时接受同一个控制单元送来的指令 C)多处理机和多计算机 D)阵列处理机 3、按弗林(Flynn)提出的计算机系统分类方法,阵列处理机属于( ) A.SISD B.SIMD C.MISD D.MIMD 4、下列关于阵列处理机与流水线处理机特点的描述,不正确 ...的是( ) A.阵列处理机利用并行性中的同时性,而流水线处理机利用的是时间重叠 B.阵列处理机提高速度主要靠缩短时钟周期,流水线处理机主要靠增大处理单元数 C.阵列处理机使用互连网络来确定处理单元间的连接,而流水线处理机则不是 D.与流水线处理机不同,阵列处理机的结构是和所采用的并行算法紧密联系的 二、填空题 1、超标量处理机利用资源重复实现并行处理,超流水线处理则着重开发________________的并行性。 2、超长指令字(VLIW)结构是将_______和_______两者相结合。 3、与流水线处理机相比,阵列处理机利用的是____________,而不是时间重叠;利用并行性中的___________,而不是并发性。 4、并行处理机有两种基本结构:和。 5、衡量互连网络性能有两个主要指标:和。 三、名词解释 1、并行处理机 2、超标量处理机 3、超流水线处理机 四、简答题 1、画出具有集中式共享存储器的阵列处理机的基本构形。 P170

2、脉动阵列机的优、缺点? P177 3、什么是系统结构中的互连网络? P178 4、什么是互连网络的寻径算法?常见的有哪4中寻径方式?P187-188

操作系统复习提纲与要点

《操作系统》复习提纲与要求 一、《操作系统》试题类型 二、《操作系统》重点和难点 三、《操作系统》各章节复习 一、《操作系统》试题类型 计算机专业: 1.填空题 2.选择题 3 判断题 4.简答题 5应用题 二、《操作系统》重点和难点 第1章操作系统引论 内容概要: 1. 操作系统的目标 2. 操作系统的发展过程 3. 操作系统的特征和服务 4. 操作系统的功能 5. 操作系统的进一步发展 重点: 1. 操作系统的目标

2. 操作系统的特征和服务第2章进程管理 内容概要: 1.前趋图和程序执行 2.进程的描述 3.进程的控制 4.线程的基本概念 重点: 1.进程的描述 2.进程的控制 3.线程的基本概念 进程的同步与通信 内容概述: 1.进程同步的基本概念 2.信号量机制 3.经典进程同步问题 4 .进程通信 重点: 1.进程同步的基本概念 2.信号量机制 3.经典进程同步问题 4.进程通信

第2章处理机调度和死锁 内容概要: 1.调度的类型和模型 2.调度算法 3.死锁的基本概念 4.死锁的预防和避免 5.死锁的检测和解除 重点: 1.调度的类型和模型 2.调度算法 3.死锁的基本概念 4.死锁的预防和避免 5.死锁的检测和解除 第3章存储器管理 内容概要: 1.程序的装入和链接 2.连续分配存储管理方式 3.分页存储管理方式 4.分段存储管理方式 重点: 1.连续分配存储管理方式 2.分页、分段存储管理方式

第3章虚拟存储器 内容概要: 1.虚拟存储器的基本概念 2.请求分页式存储管理方式 3.页面置换算法 4.请求分段存储管理方式 重点: 1. 虚拟存储器的基本概念 2.请求分页式存储管理方式 3.页面置换算法 4磁盘存储器管理 第4章文件管理 内容概要: 1.文件和文件系统 2.文件逻辑结构 3.目录管理 4.文件共享 5.文件保护 重点: 1.文件和文件系统有关概念 2.文件逻辑结构的类型和文件的检索

操作系统之调度算法和死锁中的银行家算法

操作系统之调度算法和死锁中的银行家算法习题答案

1. 有三个批处理作业,第一个作业 10:00 到达,需要执行 2 小时;第二个作业在 10:10 到达,需要执行 1 小时;第三个作业在 10:25 到达,需要执行 25 分钟。分别采用先来先服务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少? 解: 先来先服务: (结束时间=上一个作业的结束时间+执行时间周转时间=结束时间-到达时间=等待时间+执行时间) 按到达先后,执行顺序:1->2->3 作业到达 时间 结束 时间 等待 时间 执行 时间 周转 时间 平均周 转时间 1 10:00 12:00 0m 120m 120m 156.7m 2 10:10 13:00 110m 60m 170m 3 10:25 13:25 155m 25m 180m 短作业优先: 1)初始只有作业1,所以先执行作业1,结束时 间是12:00,此时有作业2和3; 2)作业3需要时间短,所以先执行;

3)最后执行作业2 作业到达 时间 结束 时间 等待 时间 执行 时间 周转 时间 平均周 转时间 1 10:00 12:00 0m 120m 120m 145m 3 10:25 12:25 95m 25m 120m 2 10:10 13:25 135m 60m 195m 最高响应比优先: 高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。 1)10:00只有作业1到达,所以先执行作业1; 2)12:00时有作业2和3, 作业2:等待时间=12:00-10:10=110m;响应比=1+110/60=2.8; 作业3:等待时间=12:00-10:25=95m,响应比=1+95/25=4.8; 所以先执行作业3 3)执行作业2 作业到达 时间 结束 时间 等待 时间 执行 时间 周转 时间 平均周 转时间 1 10:00 12:00 0m 120m 120m

操作系统 之 处理机调度

实验2 处理机调度 一、实验要求 ●了解引起处理机调度的原因 ●分析先来先服务算法,给出代码注释 二、实验内容 进程调度算法的数据结构主要有:进程函数定义,建立进程函数,进程调度函数。示例: #include "stdio.h" #include #define max 100 #define pfree 0 /*process end*/ #define running 1 /*process running status*/ #define aready 2 /*process aready status */ #define blocking 3 /*process aready blocking status*/ typedef struct node { char name; int status; int precendence; int ax,bx,cx,dx; int pc; int psw; struct node *next; /*pcb define*/ }pcb; pcb *createprocess(pcb *head) { pcb *p,*q; int a,b,c,d,m,n; char ID; int s; q=NULL; printf("\ninput the first seven status pcb:"); scanf("\n%c",&ID); scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&m,&n); while(ID!='*') {

p=(pcb*)malloc(sizeof(pcb)); p->name=ID; p->ax=a; p->bx=b; p->cx=c; p->dx=d; p->pc=m; p->psw=n; p->precendence=pre; p->status=aready; if(head==NULL) head=p; else q->next=p; q=p; printf("\ninput the next pcb: "); scanf("\n%c",&ID); scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&m,&n); } if(q!=NULL) q->next=NULL; q=head; while(q) { printf("\n peocess name. status.ax. bx. cx. dx. pc. psw.\n "); printf("%10c%5d%8d%5d%5d%5d%5d%5d%5d",q->name,q->status,q->precende nce,q->ax,q->bx,q->cx,q->dx,q->pc,q->psw); q=q->next; } return head;/*createprocess end*/ } void processfifo(pcb *head) { pcb *p; p=head; printf("\n the process use fifo method.\n"); printf("running the frist process:\n"); while(p!=NULL) { p->status=running; printf("\nprocess name status. ax. bx. cx. dx. pc. psw."); printf("\n%10c%5d%8d%5d%5d%5d%5d%5d",p->name,p->status,p->ax,p->bx, p->cx,p->dx,p->pc,p->psw); /*check process running status */

操作系统原理-第四章处理机调度习题

第四章处理机调度 一. 选择最合适的答案 1.某系统采用了银行家算法,则下列叙述正确的是()。 A.系统处于不安全状态时一定会发生死锁 B.系统处于不安全状态时可能会发生死锁 C.系统处于安全状态时可能会发生死锁 D.系统处于安全状态时一定会发生死锁 2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。 **[i,j]=Allocation[i,j]+Need[i,j] **[i,j]= Allocation[i,j]+ Max[i,j] **[i,j]= Available[i,j]+Need[i,j] **[i,j]= Available[i,j]+ Max[i,j] 3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。 A.非抢占式静态优先权法 B.抢占式静态优先权法 C.时间片轮转调度算法 D.非抢占式动态优先权法 4.在下列选项中,属于预防死锁的方法是()。 A.剥夺资源法 B.资源分配图简化法 C.资源随意分配 D.银行家算法 5.在下列选项中,属于检测死锁的方法是()。 A.银行家算法 B.消进程法 C.资源静态分配法 D.资源分配图简化法 6.在下列选项中,属于解除死锁的方法是()。 A.剥夺资源法 B.资源分配图简化法 C.银行家算法 D.资源静态分配法 7.为了照顾紧迫型作业,应采用()。 A.先来服务调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.优先权调度算法 8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。 A.先来先服务调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.长作业优先调度算法

相关文档
最新文档