系统结构实验报告

系统结构实验报告
系统结构实验报告

计算机系统结构实验报告

实验一流水线的相关

实验目的:

1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;

2. 加深对计算机流水线基本概念的理解;

3. 进一步了解DLX基本流水线各段的功能以及基本操作;

4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;

5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来

的暂停。

实验平台:

WinDLX模拟器

实验内容和步骤:

一.用WinDLX模拟器执行下列三个程序:

求阶乘程序fact.s

求最大公倍数程序gcm.s

求素数程序prim.s

分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。

1、求阶乘程序fact.s

(1)分别以步进、连续、设置断点的方式运行程序

图1.1.1 求阶乘程序fact.s运行统计数据步进方式运行

图1.1.2 求阶乘程序fact.s运行统计数据连续方式运行

图1.1.3 求阶乘程序fact.s运行统计数据连续方式运行(2)数据统计

图1.1.4 求阶乘程序fact.s运行统计数据

图1.1.5 求阶乘程序fact.s流水线执行情况

图1.1.6 求阶乘程序fact.s寄存器使用情况2、求最大公倍数程序gcm.s

图1.2.1 求最大公倍数程序gcm.s运行统计数据

图1.2.2 求最大公倍数程序gcm.s流水线执行情况图1.2.3 求最大公倍数程序gcm.s寄存器使用情况

3、求素数程序prim.s

图1.3.1 求素数程序prim.s运行统计数据

图1.3.2 求素数程序prim.s流水线执行情况

图1.3.3 求素数程序prim.s寄存器使用情况

二、用WinDLX运行程序structure_d.s,

通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。

图1.4.1 程序structure_d.s流水线执行过程

其中,有如下几种情况,产生了资源相关:

(1)

导致资源相关的部件:浮点数寄存器f4

addd f0,f0,f4 指令在译码阶段ID停滞1周期

(2)

导致资源相关的部件:ALU

addi r2,r2,0x8 指令在执行阶段intEX停滞1周期

图1.4.2 程序structure_d.s运行统计信息

由资源相关引起的暂停周期数为:30

总执行周期数为:139

暂停周期数占总执行周期数的百分比:21.58%

分析:资源相关使相关指令在流水线上停滞,降低了执行效率。

解决方法:在合理的指令调度范围内,尽量避免执行重复的指令。尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器换名的方法。

3、在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s

记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算

暂停时钟周期数占总执行周期数的百分比。

图1.5.1 不采用定向技术,程序data_d.s运行统计信息

由数据相关引起的暂停时钟周期数为:104

总执行周期数为:202

暂停周期数占总执行周期数的百分比:51.48%

在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。

图1.5.2 采用定向技术,程序data_d.s运行统计信息

由数据相关引起的暂停时钟周期数为:30

总执行周期数为:128

暂停周期数占总执行周期数的百分比:23.44%

通过这两个统计可以发现,在使用定向技术下运行程序指令将大幅降低数据相关发生

的次数,这大幅提升了CPU的性能。

实验二循环展开及指令调度

实验目的:

1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;

2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;

3. 了解循环展开、指令调度等技术对CPU性能的改进。

实验平台:

WinDLX模拟器

实验内容和步骤:

1.用指令调度技术解决流水线中的结构相关与数据相关

(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)程序代码:

.data

.global ONE

ONE: .word 1

.text

.global main

main:

lf f1,ONE

cvti2f f7,f1

nop

divf f1,f8,f7

divf f2,f1,f7

divf f13,f2,f7

divf f10,f3,f7

addf f5,f12,f7

addf f3,f1,f2

multf f6,f4,f5

Finish:

trap 0

(2)通过Configuration菜单中的“Floating point stages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期;

图2.1.1 设置运算器数量及时钟周期

(3)用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发

生相关的指令组合,以及程序执行的总时钟周期数;

图2.1.2 程序执行统计信息

如图,程序总共执行了23个时钟周期,共有12个时钟周期的系统停滞。

经分析,程序执行过程中出现了结构相关:

图2.1.3 流水线执行情况

如图,在时钟周期-11、-12时,指令divf f13,f2,f7需要在其执行阶段使用除法运算器,而此时两个除法运算器都在使用中,故产生了器件冲突,结构相关

导致该指令在译码阶段停滞2个时钟周期。

(4)采用指令调度技术对程序进行指令调度,消除相关;

通过指令调度,程序的执行顺序调整为:

.data

.global ONE

ONE: .word 1

.text

.global main

main:

lf f1,ONE

cvti2f f7,f1

nop

divf f1,f8,f7

addf f5,f12,f7

multf f6,f4,f5

divf f2,f1,f7

divf f10,f3,f7

addf f3,f1,f2

divf f13,f2,f7

Finish:

trap 0

(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;

图2.1.4 指令调度后,程序执行统计信息

图2.1.5 指令调度后,流水线执行情况

可见,执行总周期数为21,由于器件冲突产生的结构相关已经部分消除。

指令调度后,CPU运行周期是调度前的21/23=0.91倍。

2. 用循环展开、寄存器换名以及指令调度提高性能

(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;

程序代码:

.data

x: .word 1

i: .word 4

.text

.global main

main: lf f1,x

lf f9,i

movf f5,f1

Loop:eqf f9,f0

bfpt Finish

addf f0,f0,f1

divf f3,f4,f5

j Loop

Finish:

trap 0

(2)用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;

图2.2.1 程序执行统计情况

总计执行周期:38

总计停滞周期:7

图2.2.2 流水线执行情况

(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度;

展开后的程序代码:

.data

x: .word 1

i: .word 4

.text

.global main

main: lf f1,x

lf f9,i

movf f5,f1

divf f3,f4,f5

divf f3,f4,f5

divf f3,f4,f5

divf f3,f4,f5

trap 0

(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;

图2.2.3 循环展开后,程序执行统计情况

总计执行周期:20

总计停滞周期:13

图2.2.4 循环展开后后,流水线执行情况

可见,在相同器件的情况下,指令调度对于提高CPU性能的意义非常重大。

计算机体系结构实验报告二

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对CPU性能得影响。 二、实验内容: 1、用WinDLX模拟器运行程序structure_d、s 。 2、通过模拟,找出存在结构相关得指令对以及导致结构相关得部件。 3、记录由结构相关引起得暂停时钟周期数,计算暂停时钟周期数占总执行 周期数得百分比。 4、论述结构相关对CPU性能得影响,讨论解决结构相关得方法。 三、实验程序structure_d、s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; < A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit < this is a ment !! A: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 四、实验过程 打开软件,load structure_d、s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

操作系统实验报告

操作系统实验报告 ' 学号: 姓名: 指导老师: 完成日期: ~

目录 实验一 (1) 实验二 (2) 实验三 (7) 实验四 (10) 实验五 (15) 实验六 (18) 实验七 (22) \

实验一 UNIX/LINUX入门 一、实验目的 了解 UNIX/LINUX 运行环境,熟悉UNIX/LINUX 的常用基本命令,熟悉和掌握UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。 二、实验内容 熟悉 UNIX/LINUX 的常用基本命令如ls、who、pwd、ps 等。 练习 UNIX/LINUX的文本行编辑器vi 的使用方法 熟悉 UNIX/LINUX 下c 语言编译器cc/gcc 的使用方法。用vi 编写一个简单的显示“Hello,World!”c 语言程序,用gcc 编译并观察编译后的结果,然后运行它。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验程序 #include <> #include <> int main() { printf ("Hello World!\n"); return 0; } 五、实验感想 通过第一次室验,我了解 UNIX/LINUX 运行环境,熟悉了UNIX/LINUX 的常用基本命令,熟悉和掌握了UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。

实验二进程管理 一、实验目的 加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。 二、实验内容 (1)进程创建 编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 (2)进程控制 修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 (3)进程的管道通信 编写程序实现进程的管道通信。使用系统调用pipe()建立一个管道,二个子进程P1 和P2 分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验设计 1、功能设计 (1)进程创建 使用fork()创建两个子进程,父进程等待两个子进程执行完再运行。 (2)进程控制 使用fork()创建两个子进程,父进程等待两个子进程分别输出一句话再运行。 (3)进程的管道通信 先创建子进程1,向管道写入一句话,子进程1结束后创建子进程2,向管道写入一句话,最后父进程从管道中读出。 2、数据结构 子进程和管道。 3、程序框图

操作系统实验报告_实验五

实验五:管道通信 实验内容: 1.阅读以下程序: #include #include #include main() { int filedes[2]; char buffer[80]; if(pipe(filedes)<0) //建立管道,filedes[0]为管道里的读取端,filedes[1]则为管道的写入端 //成功则返回零,否则返回-1,错误原因存于errno中 err_quit(“pipe error”); if(fork()>0){ char s[ ] = “hello!\n”; close(filedes[0]); //关闭filedes[0]文件 write(filedes[1],s,sizeof(s)); //s所指的内存写入到filedes[1]文件内 close(filedes[1]); //关闭filedes[0]文件 }else{ close(filedes[1]); read(filedes[0],buffer,80); //把filedes[0]文件传送80个字节到buffer缓冲区内 printf(“%s”,buffer); close(filedes[0]); } } 编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

2.阅读以下程序: #include #include #include main() { char buffer[80]; int fd; unlink(FIFO); //删除FIFO文件 mkfifo(FIFO,0666); //FIFO是管道名,0666是权限 if(fork()>0){ char s[ ] = “hello!\n”;

电大操作系统本科实验报告

中央广播电视大学计算机科学与技术专业操作系统(本科) 实验报告 院系:_______________ 班级:________ 学生姓名:_____________ 学号:______ 指导教师:________ 完成日期2015年月日

一、实验题目: Linux应用及shell编程 二、实验目的和要求: 目的 1.掌握Linux一般命令格式和常用命令。 2.学会使用vi编辑器建立、编辑文本文件。 3.了解shell的作用和主要分类。 4.学会bash脚本的建立和执行方式。 5.理解bash的基本语法。 6.学会编写简单的shell脚本。 要求 1.登录进入系统,修改个人密码。 2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。 3.进入vi。建立一个文件,如。进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。最后,将该文件存盘。回到shell状态下。 4.运行,编译该文件,会发现错误提示。理解其含义。 5.利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。 6.对主教材第2章中的适当例题进行编辑,然后执行。从而体会通配符、引号、输入输出重定向符、成组命令的作用;能正确使用自定义变量、位置参数、环境变量、输入/输出命令;能利用if语句、while语句、for语句和函数编写简单的脚本。 三、实验内容: 1.正确地登录和退出系统。 2.熟悉使用ls,cp,cat,等常用命令。 3.进入和退出vi。利用文本插入方式建立一个文件。

5.建立简单shell脚本并执行它。 四、实验技术和方法: Linux中各种脚本语言 五、实验环境: 虚拟机,ubuntuserver版,shell 六、实验步骤和结果: 1.正确地登录和退出系统。 使用exit命令退出系统 2.熟悉使用cat,cd,cp,ls,mor,rm,vi,who等常用命令。 2.使用vi编写 按:wq存储,并退出 5.建立shell脚本并执行它。 使用VI创建ex1文件,内容含三条命令date/pwd/cd.. 七、实验结果分析: 无 实训3 一、实验题目: 进程管理 二、实验目的和要求: 目的 1.加深对进程概念的理解,明确它与程序的区别,突出理解其动态性特征。

操作系统实验报告

《计算机操作系统》实验报告 教师: 学号: 姓名: 2012年3月6日 计算机学院

实验题目:请求页式存储管理(三) ----------------------------------------------------------------------------- 实验环境:VC6.0++ 实验目的:学生应独立地用高级语言编写几个常用的存储分配算法,并设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。实验内容: (1)编制和调试示例给出的请求页式存储管理程序,并使其投入运行。 (2)增加1~2种已学过的淘汰算法,计算它们的页面访问命中率。试用各种算法的命中率加以比较分析。(增加了FIFO) 操作过程: (1)产生随机数 (2)输入PageSize(页面大小1 /2/4/8 K) (pageno[i]=int(a[i]/1024)+1) (3)菜单选择

(4)OPT/ LRU/FIFO演示(pagesize=1K)

(5) 过程说明(PAGESIZE = 4K ) OPT :最佳置换算法(淘汰的页面是以后永不使用,或许是在最长时间内不再被访问的页面) //在Table 表中如果未找到,记录每个元素需要找的长度 //全部table 中元素找完长度,然后进行比较,找出最大的,进行淘汰 int max=0; int out; for(k=0;kmax){ max = table_time[k]; out = k; } }//找出最长时间,进行替换 table[out]=pageno[i]; page_out++;

操作系统实验报告

操作系统实验报告 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

实验二进程调度1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言 4设计思想: (1)程序中进程可用PCB表示,其类型描述如下:

structPCB_type { intpid;//进程名 intstate;//进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 intcpu_time;//运行需要的CPU时间(需运行的时间片个数) } 用PCB来模拟进程; (2)设置两个队列,将处于“就绪”状态的进程PCB挂在队列ready中;将处于“阻塞”状态的进程PCB挂在队列blocked中。队列类型描述如下: structQueueNode{ structPCB_typePCB; StructQueueNode*next; } 并设全程量: structQueueNode*ready_head=NULL,//ready队列队首指针 *ready_tail=NULL,//ready队列队尾指 针

经济系统中常用的五大理论概述

五大理论概述 1、系统结构理论 从数学上提出了一个新的一般系统概念体系,特别是揭示系统组成部分之间的关联的新概念,如关系、关系环、系统结构等;在此基础上,抓住了系统环境、系统结构和系统行为以及它们之间的关系及规律这些一切系统都具有的共性问题,从数学上证明了,系统环境、系统结构和系统行为之间存在固有的关系及规律,在给定的系统环境中,系统行为仅由系统基层次上的系统结构决定和支配。 2、最优化理论 一个过程的最优决策具有这样的性质:即无论其初始状态和初始决策如何,其今后诸策略对以第一个决策所形成的状态作为初始状态的过程而言,必须构成最优策略。简言之,一个最优策略的子策略,对于它的初态和终态而言也必是最优的。 “最优化原理”如果用数学化语言来描述就是:假设为了解决某一优化问题,需要依次作出n个决策D1,D2,…,Dn,如若这个决策序列是最优的,对于任何一个整数k,1 < k < n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1,Dk+2,…,Dn也是最优的。 3、系统辨识理论 系统辨识是在已知或测得系统输入和输出数据的基础上,从一组给定的模型类中,确定一个与所测系统等价的模型。实质就是按某种准则,从一组已知模型类中选择一个模型,使之能最好的拟合实际过程的动态特征。 其要素包括:数据、模型类、等价准则。 系统辨识算法根据过程提供的测量信息,按照最优准则,估计模型未知参数。 4、随机理论 随机模型是一种非确定性模型,变量之间的关系是以统计值的形式给出的,如果模型中的任一外生变量不确定,并且随着具体条件的改变而改变,这个模型就被称为随机模型。事件的发生过程存在随机因素,这种因素如果可以忽略的并且可以简单地用平均值表示,则使用确定性模型,而随机因素必须考虑使用随机性模型。 随机模型有:传送系统的效率、报童的诀窍、随机存贮策略、轧钢中的浪费、随机人口模型。 5、大系统理论 大系统理论是关于大系统分析和设计的理论,包括大系统的建模、模型降阶、递阶控制、分散控制和稳定性等内容。其特征是规模庞大、结构复杂(环节较多、层次较多或关系复杂)、目标多样、影响因素众多,且常带有随机性的系统。这类系统不能采用常规的建模方法、控制方法和优化方法来分析和设计。随着生产的发展和科学技术的进步,出现了许多大系统,如电力系统、城市交通网、数字通信网、柔性制造系统、生态系统、水源系统和社会经济系统等。大系统有两种常见的结构形式:①多层结构。这种结构是把一个大系统按功能分为多层次,其中最低层为调节器,它直接对被控对象施加控制作用。②多级结构。这种结构是在对分散的子系统实行局部控制的基础上再加一个协调级去解决子系统之间的控制作用不协调问题。

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟 完成日期: 2010-12-7

一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 简单工厂模式 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。 (2) 简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。 (3) 工厂方法模式 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

自动控制原理 典型系统分析报告

222010322072023 付珣利自动化01班位置随动系统: 控制系统原理图 (作业一) 1.1系统方块图 放大器K1 测速转换 测速电机 TG 电机SM 功放K3 放大器K2u -uo δu ui n 1.2控制方案 若电网电压受到波动,ui↑则δu↑u↑n↑uo↑ 所以δu↓u↓n↓从而使n达到稳定。 (作业二) 2.1由原理可知:

Θe (s )=Θi (s )—Θ0(s ) US (s )=K0Θe (s ) Us (s )=Raia(s)+LaSia+Eb (s ) M(s)=C m ia(s) JS 2θ0(S)+fs θ0(S)= M(s)-Mc (s) Eb(s)=Kb θ0(S) 2.2系统传递函数 ) ()(0s s i θθ=() ))((1) )((1)(1))((3 2103 210f JS R S L S K C f JS R S L S C K K K K f JS R S L S K C f JS R S L S C K K K K a a b m a a m a a b m a a m +++ ++++++ ++= m b m a a m C K K K K K C f JS R S L S C K K K K 32103210))((++++ 2.3动态结构图 设定参数:f=20N,J=20K ·m 2,a R =20 Ω,La=1H,Ko=40,k1k2k3=100,Cm=1,Kb=0 (因为暂取Kb=0,测速反馈通道相当于没加进)

K=101/(0.05S+1)1/S(S+1)δU n Ui -u 图.动态结构图 则开环传递函数为:G(s)= ) 105.0)(1(10 ++s s s 闭环传递函数:Ψ(s )=10 )105.0)(1(10 +++s s s 2.4信号流图 1/(0.05s+1)1/s(s+1) 10 -1 (作业三)系统性能 3.1系统响应及动态性能指标 单位阶跃响应曲线: 由阶跃响应曲线可得知:系统是稳定的,但震荡次数较多。由闭环主导极点

操作系统实验报告-中南大学

操作系统原理试验报告 班级: 学号: 姓名:

实验一:CPU调度 一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。 三、实验题目 1、设计一个按优先权调度算法实现处理机调度的程序; 2、设计按时间片轮转实现处理机调度的程序。 四、实验要求 PCB内容: 进程名/PID; 要求运行时间(单位时间); 优先权; 状态: PCB指针; 1、可随机输入若干进程,并按优先权排序; 2、从就绪队首选进程运行:优先权-1/要求运行时间-1 要求运行时间=0时,撤销该进程 3、重新排序,进行下轮调度 4、最好采用图形界面; 5、可随时增加进程; 6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。 7、每次调度后,显示各进程状态。 实验二:内存管理 一、实验内容 主存储器空间的分配和回收 二、实验目的 帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 三、实验题目 在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。

四、实验要求 1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分/空表目) 2、结合实验一,PCB增加为: {PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针} 3、采用最先适应算法分配主存空间; 4、进程完成后,回收主存,并与相邻空闲分区合并 .1、Vo类说明(数据存储结构) 进程控制块PCB的结构: Public class PCB{ //进程控制块PCB,代表一个进程 //进程名,作为进程的标识; private String name; //要求运行时间,假设进程运行的单位时间数; private int time; //赋予进程的优先权,调度时总是选取优先数小的进程先执行; private int priority; //状态,假设有“就绪”状态(ready)、“运行”状态(running)、 //“后备”状态(waiting)、“挂起”状态(handup) private String state; //进程存放在table中的位置 private int start; //进程的大小 private int length; //进程是否进入内存,1为进入,0为未进入 private int isIn; //进程在内存中的起始位置 private int base; //进程的大小 private int limit; //一些get和set方法以及构造器省略… };

操作系统实验报告

操作系统教程实验报告 专业班级 学号 姓名 指导教师

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

典型机械系统结构分析实验总结

第一篇、实验报告 典型机械系统结构分析实验总结 典型机械系统结构分析实验报告 一、实验目的 二、总结和说明五种设备的工作和设计原理,并列举出每台设备中的主要机构和传动方式。 1、TS-I提斗上料装置 工作原理 。 涉及到的知识点

2、CS-I型冲压机及送料装置工作原理 涉及到的主要知识点 3、BS-I型步进输送机 工作原理 主要知识点 4、JZ_I型间歇送料及冲压装置工作原理 主要知识点 5、JZ-I型转位及输送装置 工作原理

主要知识点 三、典型机械结构特点及应用举例 1、滑动螺旋传动特点 普通V带传动特点 3、梯形齿同步带传动特点 4、链传动的特点 5、齿轮传动 6、蜗杆传动 7、直动盘形凸轮机构及其特点 三、典型机械结构符号表示机在实验设备上的应用五、选取带传动叙述设计和计算过程

第二篇、典型机械拆装与分析实验 典型机械系统结构分析实验总结 第三篇、机械系统运动方案及结构分析实验 典型机械系统结构分析实验总结 第四篇、典型机械传动结构认知及分析实验指导书 典型机械系统结构分析实验总结 典型机械传动结构认知及分析 一、实验目的 通过对典型机械传动结构认知及分析,深入了解机械各种相关传动在机器中的作用及其工作原理,并详细观察各种常见机械结构,学习对常见结构的分析能力,提高对专业学习的兴趣。典型机械系统结构分析实验总结 二、实验内容与原理

滑动轴承 在汽车曲轴连杆机构中,绝大多数采用整典型机械系统结构分析实验总结体式曲轴结构,因此,连杆与曲轴的接触处普 遍采用剖分式滑动轴承。发动机连杆的小头则 普遍采用整体式滑动轴承。发动机的曲轴的主 支撑轴承一般也采用滑动轴承,因此,滑动轴 承在发动机的各部分应用是十分普遍的。 发动机曲轴主轴承、连杆轴承及凸轮轴轴 承等处承受的载荷及相对滑动速度较大,因此 一般采用压力润滑的方式,因此机油的选择和 应用对保证发动机正常工作十分重要。

操作系统实验报告

《操作系统原理》实验报告 实验项目名称:模拟使用银行家算法判断系统的状态 一、实验目的 银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强对操作系统中死锁的认识,以及如何寻找到一个安全序列解除死锁。 二、实验环境 1、硬件:笔记本。 2、软件:Windows 7 , Eclipse。 三、实验内容 1.把输入资源初始化,形成资源分配表; 2.设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查; 3.设计安全性算法,检查某时刻系统是否安全; 4.设计显示函数,显示资源分配表,安全分配序列。 四、数据处理与实验结果 1.资源分配表由进程数组,Max,Allocation,Need,Available 5个数组组成; 实验采用数据为下表: 2.系统总体结构,即菜单选项,如下图

实验的流程图。如下图 3.实验过程及结果如下图所示

1.首先输入进程数和资源类型及各进程的最大需求量 2.输入各进程的占有量及目前系统的可用资源数量 3.初始化后,系统资源的需求和分配表 4.判断线程是否安全

5.对线程进行死锁判断 五、实验过程分析 在实验过程中,遇到了不少问题,比如算法无法回滚操作,程序一旦执行,必须直接运行到单个任务结束为止,即使产生了错误,也必须等到该项任务结束才可以去选择别的操作。但总之,实验还是完满的完成了。 六、实验总结 通过实验使我对以前所学过的基础知识加以巩固,也对操作系统中抽象理论知识加以理解,例如使用Java语言来实现银行家算法,在这个过程中更进一步了解了银行家算法,通过清晰字符界面能进行操作。不过不足之处就是界面略显简洁,对于一个没有操作过计算机的人来说,用起来可能还是有些难懂。所以,以后会对界面以及功能进行完善,做到人人都可以看懂的算法。

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台: WinDLX模拟器 实验内容和步骤: 1.用WinDLX模拟器执行下列三个程序: 求阶乘程序fact.s 求最大公倍数程序gcm.s 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察 CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相 关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的 百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的 总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 1. 求阶乘程序 用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准 输入读入一个整数,求其阶乘,然后将结果输出。 该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 实验结果: 在载入fact.s和input.s之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

操作系统实验报告

实验报告 实验课程名称:操作系统 实验地点:南主楼七楼机房 2018—2019学年(一)学期 2018年 9月至 2019 年 1 月 专业: 班级: 学号: 姓名: 指导老师:刘一男

实验一 实验项目:分时系统模拟 实验学时:2实验日期: 2018-10-25 成绩: 实验目的利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程; 假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:进程名 A B C D E 到达时间0 1 2 3 4 服务时间 4 3 4 2 4 时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:BDACE

(1)修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:ADBCE (2)修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间.

顺序:ABCDE 1、思考 时间片的大小对调度算法产生什么影响?对计算机的性能产生什么影响?答:通过对时间片轮转调度算法中进程最后一次执行时间片分配的优化,提出了一种改进的时间片轮转调度算法,该算法具有更好的实时性,同时减少了任务调度次数和进程切换次数,降低了系统开销,提升了CPU的运行效率,使操作系统的性能得到了一定的提高。 A B C D E 时间片为1 周转时间12 9 14 8 13 3 3 3.5 4 3.25 带权周转 时间 时间片为2 周转时间8 12 13 7 13 2 4 3.25 3.5 3.25 带权周转 时间 时间片为4 周转时间 4 6 9 10 13 1 2 2.25 5 3.25 带权周转 时间

计算机体系结构实验报告二

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。 二、实验内容: 1. 用WinDLX模拟器运行程序structure_d.s 。 2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。 3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行 周期数的百分比。 4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 三、实验程序structure_d.s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit <- this is a comment !! A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

四、实验过程 打开软件,load structure_d.s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面的数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关的部件:译码部件。 2)第二个结构相关:ADDI R2, R2, #8,与第一个结构相关类似。由于数据相关, 上一条指令暂停在ID阶段,所以导致下一条指令发生结构相关。

操作系统实验报告1

操作系统 实验报告 班号:1303107 学号:1130310726 姓名:蔡鹏

1.请简述head.s 的工作原理。 head.s实在32位保护模式下运行的。我认为这段程序主要包括两个部分:1.初始化设置。2.任务执行与切换。 初始设置主要包括了:1.设置GDT表2.设置系统定时芯片3. 设置IDT表(0x08时钟中断和0x80系统调用中断)4.切换到任务0执行 任务切换和执行包括了:1.任务0和任务1 , 2.时钟中断, 3.系统中断 两个任务的在LDT中代码段和数据段描述符的内容都设置为:基地址0x0000;段限长值为0x03ff,实际段长度为4MB。因此在线性地址空间中这个?内核?的代码和数据段与任务的代码和数据段都从线性地址0开始并且由于没有采用分页机制,所以他们都直接对应物理地址0开始处。 为了每隔10毫秒切换运行的任务,head.s程序中把定时器芯片8253的通道0设置成每隔10毫秒就向中断控制芯片8259A发送一个时钟中断请求信号。PC机的ROM BIOS开机时已经在8259A中把时钟中断请求信号设置成中断向量8,因此我们需要在中断8的处理过程中执行任务切换操作。任务切换的实现是查看current变量中的当前运行的任务号,如果为0,就利用任务1的TSS选择符作为操作数执行远跳转指令,从而切换到任务1中,否则反之。

每个任务在执行时,会首先把一个字符的ASCII码放入寄存器AL中,然后调用系统中断调用int 0x80,而该系统调用处理过程则会调用一个简单的字符写屏子程序,把寄存器AL中的字符显示在屏幕上,同时把字符显示的屏幕的下一个位置记录下来,作为下一次显示字符用。在显示过一个字符后,任务代码会使用循环语句延迟一段时间,然后又跳转到任务代码开始处继续循环执行,直到运行了10毫秒而发生了定时中断,从而代码会切换到另一个任务执行。对于任务A,寄存器AL中始终存放字符‘A’,而任务B运行时AL中始终存放字符‘B’。因此程序运行时我们将看到一连串的‘A’和一连串的‘B’间隔的连续不断的显示在屏幕上。若出现了一个‘C’,是由于PC机偶然产生了一个不是时钟中断和系统调用中断的其他中断。因为我们已经在程序中给所有其他中断安装了一个默认中断处理程序。当出现一个其他中断时,系统就会运行这个中断处理程序,于是就会在屏幕上显示一个‘C’,然后退出中断。 4.请记录head.s 的内存分布状况,写明每个数据段,代码段,栈段 的起始与终止的内存地址。

概念结构理论

概念结构理论 刘壮虎 北京大学哲学系,liuzhh@https://www.360docs.net/doc/5716341240.html, 摘要 本文不从概念的外延和内涵出发,而是将概念作为初始出发点,按照概念结构整体论的观点,在思想—概念—语言三者统一的基础上,建立概念结构的形式理论,讨论其基本性质及其意义,并在此基础上研究若干相关的问题。 实际中使用的推理,比我们通常说的逻辑推理要更广泛,本文建立依赖于语言的相对于主体的推理,并根据这种相对的推理建立相对的一致的概念。通过这种一致的概念,讨论不一致信念集的特征。这种推理也可以部分地用于概念的分类上,本文通过两个简单的实例来说明这种方法的应用。 词项的同义是语言学中的重要问题,按整体论的观点,比同义更一般的不可分辨性更为重要,本文给出了概念的不可分辨性的定义,并讨论其在语言中的表现。不同语言间的翻译也是语言学中的重要问题,本文在概念结构的形式理论基础上的对不同语言间的翻译进行了一些初步的讨论。 本文只是在对最简单的语言进行讨论,通过这样的讨论体现概念结构形式理论的思想、方法和研究框架。 §1前言 一、外延和内涵 概念有外延和内涵,是概念研究中的一个教条。我认为,这个教条是错误的,至少是不准确的。 概念有不同类型的,如亚里士多德就提出了十大范畴,而在三段论中使用的只是实体范畴和性质范畴。在讨论概念的外延和内涵时,也往往集中在个体、类和性质的范围内(与实体范畴和性质范畴相当),就算有所推广,也不是所有的概念。就是在个体、类和性质的范围内,概念有外延和内涵也是存在质疑的,如不可数名词的外延、性质化归为类等问题。 对外延和内涵的形式化的研究中,大多数说的是语句的外延和内涵,如各种内涵逻辑,它们与概念的外延和内涵是完全不同。 将内涵看作可能世界到外延的函数(或者在此基础上的修改),对于处理语句的内涵确实是一种比较好的方法,但将这种方法用于处理概念的内涵和外延,却带

相关文档
最新文档