计算机组成原理实验报告3

计算机组成原理实验报告3
计算机组成原理实验报告3

实验报告

计算机组成原理

江苏大学-计算机图形学第三次实验报告-二维图形变换

计算机科学与通信工程学院 实验报告 课程计算机图形学 实验题目二维图形变换 学生姓名 学号 专业班级 指导教师 日期

成绩评定表

二维图形变换 1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。 2. 实验环境 操作系统:Windows XP 开发工具:visual studio 2008 3. 问题分析 为了建立北极星图形,首先在二维空间中根据坐标绘制出北极星图形。并且在此坐标系中确定好走笔顺序以便于进行连线操作。 同时需要好好的使用清屏函数以使得显示正常。 1. 放大缩小变换 放大缩小变换公式为:x’=x.a, y’=y.d; 其中a,d分别为x,y方向的放缩比例系数。 可通过不同的比例系数来显示程序运行结果。当a=d时为等比例放缩操作。可令变换矩阵为T。 2. 对称变换 包括以x轴对称、y轴对称和原点O对称三种。由于屏幕坐标只有第一象限,我们可以将原点平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。 3. 旋转变换 将图形上的点(x,y)旋转θ角度,得到新的坐标(x’,y’)为: x’=xcosθ-ysinθ, y’=xsinθ+ycosθ; 旋转矩阵T为

4.平移变换 4. 算法设计 5. 源代码 //北极星 void hzbjx(CDC* pDC,long x[18],long y[18]) { CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex1[11]={{x[1],y[1]},{x[2],y[2]},{x[3],y[3]},{x[4],y[4]},{x[5],y[5]},{x[3],y[3]},{x[1],y[1]},{x[6],y[6]},{ x[3],y[3]},{x[7],y[7]},{x[5],y[5]}}; pDC->Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex2[5]={{x[6],y[6]},{x[8],y[8]},{x[9],y[9]},{x[3],y[3]},{x[8],y[8]}}; pDC->Polyline(vertex2, 5); POINT vertex3[5]={{x[4],y[4]},{x[10],y[10]},{x[11],y[11]},{x[3],y[3]},{x[10],y[10]}}; pDC->Polyline(vertex3, 5); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(255,0,90)); oldPen = pDC->SelectObject(&newPen1); POINT vertex4[11]={{x[12],y[12]},{x[13],y[13]},{x[3],y[3]},{x[9],y[9]},{x[14],y[14]},{x[15],y[15]},{x[3],y[3]},{x[ 11],y[11]},{x[12],y[12]},{x[3],y[3]},{x[14],y[14]}}; pDC->Polyline(vertex4, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,100,255)); oldPen = pDC->SelectObject(&newPen1); POINT vertex5[5]={{x[15],y[15]},{x[16],y[16]},{x[3],y[3]},{x[16],y[16]},{x[7],y[7]}};

操作系统实验报告三

课程实验报告 课程名称姓名实验名称实验目的及要求 实验3进程并发与同步 1、加深对进程概念的理解,区分进程并发执行与串行执行; 2、掌握进程并发执行的原理,理解进程并发执行的特点; 3、了解fork()系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用; 4、能利用相应的系统调用实现进程树与进程间的同 步。 实 验操作系统:linux Un bu ntu 11.10 环 境实验工具:Vmware 实验内容 1、编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father ”,儿子进 程执行时屏幕显示“ I am son ",女儿进程执行时屏幕显示“ I am daughter ”。 要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析 2、连续4个fork()的进程家族树,family1-1.c 程序清单如下: #in clude main () { fork(); fork(); fork(); fork(); printf( A\n ”); } 请根据程序运行结果,画出进程家族树,并分析原 因。

3、 修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束, 才可以输出消息。 写出相应的同 步控制,并分析运行结果。 4、 创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 写出相应的程序代码并分析程序运行结果。 1、编写一 C 语言程序,实现在程序运行时通过系统调用 fork()创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“ I am father ”, 儿子进程执行时屏幕显示“ I am son ”,女儿进程执行时屏幕显示“ I am daughter "。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 法 描 述 及 实 验 步 骤 调 试过 程及实 验结果

计算机组成原理实验

计算机组成原理 一、8 位算术逻辑运算 8 位算术逻辑运算实验目的 1、掌握简单运算器的数据传送通路组成原理。 2、验证算术逻辑运算功能发生器74LS181的组合功能。 8 位算术逻辑运算实验内容 1、实验原理 实验中所用的运算器数据通路如图3-1所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。 图中算术逻辑运算功能发生器74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。 另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。 2、实验接线 本实验用到4个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块)。

计算机组成原理实验

实验一基础汇编语言程序设计 一、实验目的: 1、学习和了解TEC-XP16教学实验系统监控命令的用法。 2、学习和了解TEC-XP16教学实验系统的指令系统。 3、学习简单的TEC-XP16教学实验系统汇编程序设计。 二、预习要求: 1、学习TEC-XP16机监控命令的用法。 2、学习TEC-XP16机的指令系统、汇编程序设计及监控程序中子程序调用。 3、学习TEC-XP16机的使用,包括开关、指示灯、按键等。 4、了解实验内容、实验步骤和要求。 三、实验步骤: 在教学计算机硬件系统上建立与调试汇编程序有几种操作办法。 第一种办法,是使用监控程序的A命令,逐行输入并直接汇编单条的汇编语句,之后使用G命令运行这个程序。缺点是不支持汇编伪指令,修改已有程序源代码相对麻烦一些,适用于建立与运行短小的汇编程序。 第二种办法,是使用增强型的监控程序中的W命令建立完整的汇编程序,然后用M命令对建立起来的汇编程序执行汇编操作,接下来用G命令运行这个程序。适用于比较短小的程序。此时可以支持汇编伪指令,修改已经在内存中的汇编程序源代码的操作更方便一些。 第三种办法,是使用交叉汇编程序ASEC,首先在PC机上,用PC机的编辑程序建立完整的汇编程序,然后用ASEC对建立起来的汇编程序执行汇编操作,接下来把汇编操作产生的二进制的机器指令代码文件内容传送到教学机的内存中,就可以运行这个程序了。适用于规模任意大小的程序。

在这里我们只采用第一种方法。 在TEC-XP16机终端上调试汇编程序要经过以下几步: 1、使教学计算机处于正常运行状态(具体步骤见附录联机通讯指南)。 2、使用监控命令输入程序并调试。 ⑴用监控命令A输入汇编程序 >A 或>A 主存地址 如:在命令行提示符状态下输入: A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始 屏幕将显示: 2000: 输入如下形式的程序: 2000: MVRD R0,AAAA ;MVRD 与R0 之间有且只有一个空格,其他指令相同 2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一个语句,必须为RET 指令 2007:(直接敲回车键,结束A 命令输入程序的操作过程) 若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。 ⑵用监控命令U调出输入过的程序并显示在屏幕上 >U 或>U 主存地址

操作系统实验报告三

课程实验报告

3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。 算法描述及实验步骤 1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”, 儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。 调试过程及实验结果

总结 1、实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。这一点需要注意。返回结果时,由于每一次的不确定性,所以要想得到比较具有说服性的,就必须经过多次的测试。 2、连续4个fork()的进程家族树在进行实验的时候可能会出现进程输出信息一直一样的情况,需要多次执行输出才有可能会看到输出结果不一样的情况

软件工程实验报告第三次

实验报告 课程名称:软件工程实验名称:用PowerDesigner建模工具绘制数据流图班级:学生姓名:学号: 指导老师评定:签名: 一、实验环境 Windows 2000、Rational Software公司的Rational Rose应用软件 二、实验目的 1)了解Rational Rose工具软件的组成及功能 2)掌握用Rational Rose画用例图的具体的使用方法 三、实验内容 1)设计用例图(Use Case框图) 2)用Rational Rose在Use Case视图中创建Use Case框图。 四、实验要求 建立一个Use Case框图,并给出“预订教室”的用例描述。 1) 背景 某大学需要一个教室预订系统,将空闲的教室提供给师生做学术报告或班级活动。师生可使用该系统预订所需的教室,以便让管理员在恰当的时间开放教室、准备好多媒体设备。 2) 功能要求 2.1) 管理员可使用该系统增加用户、删除用户。 2.2) 管理员可向系统中增加或删除供预订的教室,设置任一教室可使用的时间段。 2.2) 师生可登录系统、修改密码。 2.3) 师生在登录后,可浏览给定时间段的空闲(供预订的且未被预订的)教室;选择教室和使用时间段,预订教室。 2.4) 管理员可浏览任意时间段内的教室预订情况。 3) 性能要求 3.1) 教室占用的时间段精确到“课时”。 3.2) 支持最多10000人同时在线使用系统,确保系统稳定流畅。 五、实验步骤 Use Case框图表示整个机构提供的功能,可以用来回答下列一些问题:公司是干什么的?为什么要建立这个系统?还有那些人使用这些系统。Use Case框图在业务建模活动期间大量用于设置系统情景和形成创建使用案例的基础。 1)如何使用Rational Rose画Use Case框图 S1:点击“开始”在“程序”中找到“Rational rose”点击“Rational Rose Enterprise Edition”进入该软件。

计算机组成原理实验完整版

河南农业大学 计算机组成原理实验报告 题目简单机模型实验 学院信息与管理科学学院 专业班级计算机科学与技术2010级1班 学生姓名张子坡(1010101029) 指导教师郭玉峰 撰写日期:二○一二年六月五日

一、实验目的: 1.在掌握各部件的功能基础上,组成一个简单的计算机系统模型机; 2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程; 3定义五条机器指令,编写相应微程序并具体上机调试。 二、实验要求: 1.复习计算机组成的基本原理; 2.预习本实验的相关知识和内容 三、实验设备: EL-JY-II型计算机组成原理试验系统一套,排线若干。 四、模型机结构及工作原理: 模型机结构框图见实验书56页图6-1. 输出设备由底板上上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据结构的数据送入数据管显示注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序寄存器时,只有低8位有效。 在本实验我们学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,CPU从内存中取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令分别由相应的微程序段来完成。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。 存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。 存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。 启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“11”时,按“单步”键,即可转入第01号“取指”微指令,启动程序运行。 注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式有监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关控制。 五、实验内容、分析及参考代码: 生成的下一条微地址 UA5 UA0 MS5 MS0 微地址

操作系统实验报告 实验三

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第二学期) 课程名称:操作系统开课实验室:信自楼445 2013 年 5 月 16 日 一、实验要求 对给定的一个页面走向序列,请分别用先进先出算法和二次机会算法,计算淘汰页面的顺序、缺页次数和缺页率,具体的页面走向可参考教材例题或习题。 二、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 三、实验原理及基本技术路线图(方框原理图) 用C或C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。 提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存区域,对该空间进行

流程图:

数据结构定义: 我提供定义了两个类。第一个类就是页面类,在这类里面包括一些重要的数据成员。

有页号(page_no),页框号(frame_no),页面是否在内存的标志(flag(1表示在内存,0表示不在内存)),访问次数(times)。另一个类是进程控制块类PCB。类的数据成员有id(进程编号),name(进程名),size(进程大小),*p(页类指针)。在本类中,有一些成员函数:构造函数(用来初始化本类的所有数据),displayPCB(输出函数),convert(地址映射函数),allocation(分配函数),restore(回收函数)。另外还有一些类外的函数:initMemorySpace(初始化内存空间的函数),displayMemorySpace(输出内存空间的状态1(表示占用)0(表示空))。 四、所用仪器、材料(设备名称、型号、规格等)。 计算机一台 五、实验方法、步骤 程序代码: #include #include #include using namespace std; const int frame_size=1024;//页框长度,固定为 1k const int page_size=1024;//页面长度,固定为 1k const int memory_size=102400;//内存容量,固定为 100k const int frame_number=memory_size/frame_size;// 100k/1k=100 frames int *memory;//指针变量,用来存内存的状态1还是0。 void initMemorySpace()//初始化内存空间 { int i,ran,times; time_t t;//定义time_t对象 t t=time(0); srand(t);//随机改变每秒 times=0;//变量times初始化为0,变量的功能是检查内存空间是否有一半空了没。 memory=new int[frame_number];//申请内存空间,有frame_number 这么大的空间 for(i=0;i

计算机组成原理实验五

上海大学计算机学院 《计算机组成原理实验》报告一 姓名:学号:教师: 时间:机位:报告成绩: 实验名称:指令系统实验 一、实验目的:1. 读出系统已有的指令,并理解其含义。 2. 设计并实现一条新指令。 二、实验原理:利用CP226实验仪(用74HC754即8D型上升沿触发器)上的K16…K23 开关为数据总线DBUS设置数据,其他开关作为控制信号,一条指令执行完 毕PC会自动加1,系统顺序执行下一条指令,但系统要进入一个新的指令序 列时,如跳转、转子程序等,必须给PC打入新的起始值——新指令序列的 入口地址。实验箱实现把数据总线的值(目标地址)打入PC的操作,以更新 PC值。 三、实验内容:1. 考察机器指令64的各微指令信号,验证该指令的功能。(假设R0=77H, A=11H, 77地址单元存放56H数据,64指令的下一条指令为E8) 2. 修改机器指令E8,使其完成“输出A+W的结果左移一位后的值到OUT” 操作。 四、实验步骤:1. 考察机器指令64的各微指令信号,验证该指令的功能。(假设R0=77H, A=11H, 77地址单元存放56H数据,64指令的下一条指令为E8) ①在初始化系统(Reset),进入微程序存储器模式(μEM状态),用NX键观 察64H,65H,66H,67H, 地址中原有的微指令,分析并查表确定其功能。 ②在EM状态下,Adr打入A0,DB打入64;按NX键,Adr显示A1,DB 打入E8。 ③在μEM状态下,在E8H、E9H、EAH、EBH下分别打入:FFDED8、CBFFFF、 FFFFFF、FFFFFF。 ④给μPC状态下,打入μPC(00)、PC(A0)、A(11)、W(00),按3次 NX输入R0(77)。 ⑤按下STEP键,观察实验现象。 2. 修改机器指令E8,使其完成“输出A+W的结果左移一位后的值到OUT” 操作。 ⑥继续按STEP键,直到进入E8状态下。 ⑦在EM状态下,打入Adr为77,DB为56。 ⑧按STEP键执行指令,观察实验现象。 五、实验现象:OUT寄存器的值为5A。 六、数据记录、分析与处理:实验结果和预期的一样。 七、实验结论:1、机器指令64对应的各微指令码为:FF77FF、D7BFEF、FFFE92、CBFFFF。其功能为:将R0寄存器的值打入地址寄存器MAR;存贮器EM将MAR输出地址所对应的值打入W寄存器;ALU直通门输出的值打入A寄存器,A、W中的值进行“与”运算,结果在A输出;PC+1,读出下一条指令并立即执行。 八、建议:暂无。

第三次实验报告

浙江大学实验报告 课程名称:Linux应用技术基础实验类型:验证型 实验项目名称:Linux shell 基本命令 学生姓名:孙禹达专业:工信学号:3120000431 电子邮件地址:bless.sunyuda.death@https://www.360docs.net/doc/f312497499.html, 实验日期:2013年05 月22 日 1、实验目的和要求(必填) 1.学习Linux的文件访问权限,用户的类型和文件访问权限的类型 2.学习如何确定一个文件的访问权限 3.学习如何设置和改变一个文件的访问权限 4.学习如何在文件或目录的创建时设置缺省访问权限 5.学习理解硬链接、符号链接 6.学习理解链接和文件访问权限之间的关系 7.学习了解Linux进程的属性 8.学习理解Linux的前台进程、后台进程及守护进程 9.学习理解Linux命令的顺序执行和并发执行 10.学习使用挂起进程操作和终止进程操作 11.了解系统中Linux进程的层次结构 12.学习使用Linux定时作业调度 13.学习使用Linux的I/O重定向操作和管道操作 14.学习使用id、chmod、chgrp、chown、umask、ln、ps、kill、fg、bg、job、top、pstree、 crontab、at、|、<、>等命令 2、实验内容和原理(必填) 1.根据下列的要求,写出得到这些信息的会话过程: 1)你的用户名; 2)你的用户ID; 3)你的组ID和组名字; 4)在你同一组中的其它用户名。

2.系统管理员给你的主目录设置的权限是什么?使用什么命令来得到这个答案,给出你的 会话过程。 3.在你的系统中有文件或目录分别是:/ 、/etc/passwd 、/bin/df 、~ 。用长 列表格式显示这些文件或目录,并填写下列表格。 文件文件类 型存取权限 链接数所有者组文件大小 / /etc/passwd /bin/df ~ 4.在你的主目录中的temp、professional和personal三个子目录,设置使自己(owner)拥 有读、写、执行3种访问权限,设置其它用户只有读和执行权限。在~/temp目录下创建名为d1、d2和d3的目录。在d1目录下,用touch命令创建一个名为f1的空文件。给出d1、d2、d3和f1的访问权限。给出完成这些工作的会话。 5.在~/temp目录下创建名为d1、d2和d3的目录。把文件smallFile拷贝到d1目录下,长 列表格式显示文件smallFile,显示的内容包括inode号、访问权限、硬链接数、文件大小。给出完成这些工作的会话。 6.在~/temp目录下,把当前目录改变成d2。创建一个名字为newFile.hard硬链接到d1目 录下的smallFile文件。长列表格式显示newFile.hard文件,与smallFile文件的属性进行比较。你如何确定smallFile和smallFile.hard是同一文件的两个名字,是链接数吗?给出你的会话过程。 7.创建一个名字为~/temp/d2/smallFile.soft软链接到~/temp/d1/smallFile文件。长列表格式 显示smallFile.soft文件,比较这两个文件的属性。你如何确定smallFile 和smallFile.soft 是两个不同的文件?是这两个文件的大小吗?给出你的会话过程。 8.在你使用的Linux系统中,有多少进程在运行?进程init、bash、ps的PID是多少?init、 bash和ps进程的父进程是哪一个?这些父进程的ID是什么?给出你得到这些信息的会话过程。 9.有多少个sh、bash、csh和tcsh进程运行在你的系统中?给出会话过程。 10.linux系统中,进程可以在前台或后台运行。前台进程在运行结束前一直控制着终端。若 干个命令用分号(;)分隔形成一个命令行,用圆括号把多个命令挂起来,他们就在一个进程里执行。使用―&‖符作为命令分隔符,命令将并发执行。可以在命令行末尾加―&‖使之成为后台命令。 请用一行命令实现以下功能:它1小时(实验中可以用1分钟代替)分钟后在屏幕上显示文字―Time for Lunch!‖来提醒你去吃午餐。给出会话过程。 11.写一命令行,使得date 、uname –a 、who 和ps并发执行。给出会话过程。

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

计算机组成原理实验五存储器读写实验

实验五 存储器读写实验实验目的 1. 掌握存储器的工作特性。 2. 熟悉静态存储器的操作过程,验证存储器的读写方法。 二、实验原理 表芯片控制信号逻辑功能表

2. 存储器实验单元电路 芯片状态 控制信号状态 DO-D7 数据状态 M-R M -W 保持 1 1 高阻抗 读出 0 1 6116-^总钱 写人 1 0 总线-*6116 无效 报警 ^2-10 D7—DO A7—A0

團2-8存储器实验电路逻辑图 三、实验过程 1. 连线 1) 连接实验一(输入、输出实验)的全部连线。 2) 按逻辑原理图连接M-W M-R 两根信号低电平有效信号线 3) 连接A7-A0 8根地址线。 4) 连接B-AR 正脉冲有效信号 2. 顺序写入存储器单元实验操作过程 1) 把有B-AR 控制开关全部拨到0,把有其他开关全部拨到1,使全部信号都处 于无效 状态。 2) 在输入数据开关拨一个实验数据,如“ 00000001”即16进制的01耳 把IO-R 控制开关拨下,把地址数据送到总线。 3) 拨动一下B-AR 开关,即实现“1-0-1 ”产生一个正脉冲,把地址数据送地 址寄存器保存。 4) 在输入数据开关拨一个实验数据,如“ 10000000',即16进制的80耳 把IO-R 控 制开关拨下,把实验数据送到总线。 3. 存储器实验电路 0 O O 0 0 olo O O O O 0 00 OUTPUT L/O :W 8-AR £ ■」2 ■七 ol^Fgr' L P O 74LS273 A7- AO vz 0 o|o 0 r 6116 A7 INPUT D7-O0 [olololololololol T2

操作系统实验报告

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

实验一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循环:

计算机组成原理实验实验报告

计算机组成原理实验报告 学院信息与管理科学学院 专业班级计算机科学与技术2010级2班学生姓名毛世均 1010101046 指导教师郭玉峰 撰写日期:二○一二年六月四日

SA4=1 1.根据上边的逻辑表达式,分析58页图6-2的P1测试和P4测试两条指令的微地址转移方向。 P1测试:进行P1测试时,P1为0,其他的都为1, 因此SA4=1, SA3=I7,SA2=I6,SA1=,SA0=I4 微地址011001,下址字段为001000下址字段001000译码后,高两位不变,仍然为00,低四位受到机器指令的高四位I7-I4的影响。 机器指令的高四位为0000时,下一条微指令地址为001000,转到IN 操作。机器指令高四位0010时,下一条微指令地址为001010,转到MOV 操作。机器指令高四位为0001时,下一条微指令地址为001001,转到ADD 操作。机器指令高四位为0011时,下一条微指令地址为001011,转到OUT 操作。机器指令高四位为0100时,下一条微指令地址001100,转到JMP 操作 P4测试:进行P4测试时,P4为0,其他的都为1. 因此SA4=SA3=SA2=1,SA1=CA2,SA0=CA1 微地址000000,下址字段为010000. 010000被译码之后,高四位不变,0100低两位由CA2和CA1控制。CA2和CA1的值是由单片机的键盘填入控制的。 当实验选择CtL2=1时,CA2和CA1被填入0和1,这时低两位被译码电路翻译成01,所以下一条微地址就是010001,然后进入写机器指令的状态。当实验选择CtL2=2时,CA2和CA1被填入1和0,这时低两位被译码电路翻译成10,所以下一条微地址就是010010,然后进入读机器指令的状态。当实验选择CtL2=2时,CA2和CA1被填入1和1,这时低两位被译码电路翻译成 11,所以下一条微地址就是010011,然后进入运行机器指令的状态。 2.分析实验六中五条机器指令的执行过程。

计算机组成原理实验报告5- PC实验

2.5 PC实验 姓名:孙坚学号:134173733 班级:13计算机日期:2015.5.15 一.实验要求:利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,实现程序计数器PC的写入及加1 功能。 二.实验目的:1、了解模型机中程序计数器PC的工作原理及其控制方法。2、了解程序执行过程中顺序和跳转指令的实现方法。 三.实验电路:PC 是由两片74HC161构成的八位带预置记数器,预置数据来自数据总线。记数器的输出通过74HC245(PCOE)送到地址总线。PC 值还可以通过74HC245(PCOE_D)送回数据总线。 PC 原理图 在CPTH 中,PC+1 由PCOE 取反产生。 当RST = 0 时,PC 记数器被清0 当LDPC = 0 时,在CK的上升沿,预置数据被打入PC记数器 当PC+1 = 1 时,在CK的上升沿,PC记数器加一 当PCOE = 0 时,PC值送地址总线

PC打入控制原理图 PC 打入控制电路由一片74HC151 八选一构成(isp1016实现)。 当ELP=1 时,LDPC=1,不允许PC被预置 当ELP=0 时,LDPC 由IR3,IR2,Cy,Z确定 当IR3 IR2 = 1 X 时,LDPC=0,PC 被预置 当IR3 IR2 = 0 0 时,LDPC=非Cy,当Cy=1时,PC 被预置 当IR3 IR2 = 0 1 时,LDPC=非Z,当Z=1 时,PC 被预置 连接线表 四.实验数据及步骤: 实验1:PC 加一实验

置控制信号为: 按一次STEP脉冲键,CK产生一个上升沿,数据PC 被加一。 实验2:PC 打入实验 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据12H 置控制信号为: 每置控制信号后,按一下STEP键,观察PC的变化。 五.心得体会: 经过上一个实验的练习,在做这个实验的时候更加得心应手,了解了模型机中程序计数器PC的工作原理及其控制方法,还有了解了程序执行过程中顺序和跳转指令的实现方法。

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 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

微机原理第三次实验报告

实验三DOS中断调用实验实验报告 健行理工1402班陈丽红 201424450202 一、实验目的 掌握字符和数据的显示方法。 二、实验内容 先显示信息“INPUTSTRING,THE END FLAG IS $”再接收字符。如为0-9,则计数器加1,并显示计数,如为非数字,则直接显示,但不计数。 三、程序框图 开始 段寄存器和堆栈段初始化 数字字符计数器清0 回车换行 显示提示信息 接收键入字符并显示 是$字符 调用QUI,返回 DOS 结束 是回车键 是0-9 计数器BX加1,保存计数器的 值后将其转化为ASCII码 回车换行 显示计数结果 回车换行 调用DISP,显示字符Y N Y Y N N

四、程序说明 本次实验重点在于了解中断调用的步骤:(1)准备入口参数;(2)功能号送AH;(3)执行INT n命令,熟练掌握向量号21H的部分常用功能调用。 程序设计时通过对输入的字符进行判断,根据判断结果进入不同的子程序段运行,显示运行结果。 五、源程序清单与执行结果 5.1源程序清单 DATA SEGMENT;定义数据段,DATA为 D1 DB 'INPUTSTRING, THE LAST FLAG IS', 0DH, 0AH,'$'段名,将信息存放在 D2 DB 0DH, 0AH, '$'D1,D2中 DATA ENDS STACK SEGMENT STACK ;定义堆栈段 DB 100 DUP(?) STACK ENDS CODE SEGMENT;说明代码段、数据段、堆栈段 ASSUME CS:CODE,DS:DATA,SS:STACK BG: MOV AX,DATA MOV DS, AX ;给DS赋段值 MOV BX, 0 ;数字字符计数器BX清0 JMP L1 ;跳转至L1 QUI: MOV AH,4CH ;返回DOS INT 21H DISP: MOV DX,OFFSET D2 ;输出回车换行 MOV AH,9H INT 21H MOV AH,2H ;显示AL中的字符内容 MOV DL,AL INT 21H L1: MOV DX,OFFSET D2 ;输出回车换行 MOV AH,9H INT 21H MOV DX,OFFSET D1 ;输出“INPUTSTRING,THE END FLAG IS” MOV AH,9H INT 21H MOV AH,1H ;键盘输入并显示 INT 21H CMP AL,'$' ;判断输入字符是否为'$' JE QUI;是则调用QUI,返回DOS CMP AL,0DH;判断输入字符是否为回车,是则输出 JNE L2回车换行,进入下一次L1循环,不是

相关文档
最新文档