当前位置:文档之家› 软件学生实验报告总结归纳报告总结归纳

软件学生实验报告总结归纳报告总结归纳

软件学生实验报告总结归纳报告总结归纳
软件学生实验报告总结归纳报告总结归纳

}KnotInfo;

2.根据题意建立邻接矩阵。

void Creat_Matrix(AdjoinMatrix &array, KnotInfo point[],int n){

int i, j;

cout << "分分分分分分分分分分(分分分分分 分分分分分 分分分分分分分 分分'0'分分分分分):" << endl;

while (true){

cin >> i;

if (i)

{

cin >> j;

[i - 1][j - 1] = 1;

}

else

break;

}

for (i = 0; i < n;i++)

for (j = 0; j < n; j++)

if [i][j] != 1)

[i][j] = 0;

else

{

point[i].out_degree++;

point[j].in_degree++;

}

}

3.打印出各个节点的出度和入度

void In_degree_Matrix(KnotInfo point[],int n){

for (int i = 0; i < n; i++)

{

cout << "分分v"<

}

cout << endl;

}

4.创建一个函数,用来实现某两个结点距离为3的通路条数计算

int Route_Matrix(AdjoinMatrix &array, int begin, int end,int n){

int h = 0;

for (int i = 0; i < n; i++)

if [begin][i])

for (int k = 0; k < n; k++)

if [i][k]&&[k][end])

h+=1;

return h;

}

5.最后打印矩阵和主函数

void Show_Matrix(AdjoinMatrix array,int n){

for (int i = 0; i < n; i++)

{

for (int j = 0; j < n; j++)

cout << [i][j] << " ";

cout << endl;

}

}

//分分分分;

void main(){

int n;

cout << "分分分分分分分分分分分:" << endl;

cin >> n;

KnotInfo point[MAX_LENGTH];

AdjoinMatrix array;

Creat_Info(point,n);

Creat_Matrix(array,point,n);

cout << "分分分分分分分分分分分分:" << endl;

Show_Matrix(array,n);

cout << "分分分v2分分分v4分分分3分分分分分分分:" << Route_Matrix(array, 1, 3,n) <

cout << "分分分v3分分分v3分分分3分分分分分分分:" << Route_Matrix(array, 2, 2,n) << endl;;

}

三、结论

1、实验结果

根据实验过程中所见到的现象和测得的数据,做出结论

运行结果:

2、分析讨论

对本次实验的心得体会、思考和建议。

本次试验的难度在于对有向图的各个结点的出度和入度的计算,以及求指定路径的条数计算,如果事先清理好思路,用代码实现并不困难。

四、指导教师评语及成绩:

成绩:指导教师签名:

批阅日期:

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

负反馈放大电路实验报告记录

负反馈放大电路实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

实验二由分立元件构成的负反馈放大电路 一、实验目的 1.了解N沟道结型场效应管的特性和工作原理; 2.熟悉两级放大电路的设计和调试方法; 3.理解负反馈对放大电路性能的影响。 二、实验任务 设计和实现一个由N沟道结型场效应管和NPN型晶体管组成的两级负反馈放大电路。结型场效应管的型号是2N5486,晶体管的型号是9011。 三、实验内容 1. 基本要求:利用两级放大电路构成电压并联负反馈放大电路。 (1)静态和动态参数要求 1)放大电路的静态电流I DQ和I CQ均约为2mA;结型场效应管的管压降U GDQ < - 4V,晶体管的管压降U CEQ = 2~3V; 2)开环时,两级放大电路的输入电阻要大于90kΩ,以反馈电阻作为负载时的电压放大倍数的数值≥ 120; 3)闭环电压放大倍数为10 s o sf - ≈=U U A u 。 (2)参考电路 1)电压并联负反馈放大电路方框图如图1所示,R模拟信号源的内阻;R f为反馈电阻,取值为100 kΩ。 图1 电压并联负反馈放大电路方框图 2)两级放大电路的参考电路如图2所示。图中R g3选择910kΩ,R g1、R g2应大于100kΩ;C1~C3容量为10μF,C e容量为47μF。考虑到引入电压负反馈后反馈网络的负载效应,应在放大电路的输入端和输出端分别并联反馈电阻R f,见图2,理由详见“五附录-2”。 图2 两级放大电路 实验时也可以采用其它电路形式构成两级放大电路。 3.3k?

操作系统实验心得

1-1:通过这次小实验,是我更加了解Linux一些常用指令的操作以及其作用,对于一个刚开始接触lniux操作系统的初学者来说非常有用,助于以后能够更进一步学习Linux操作系统。 1-2:在实验过程中,使用VI编辑器虽然不能像window操作系统那样对文本进行熟练度编辑,但是,VI编辑器使用命令来操作,将可以锻炼我的记忆力、对键盘的熟练读,还能帮助我们尽快适应linux操作系统的操作。 1-3:原本对liunx下的编译和调试环境不是很熟悉,但通过这次的实验,让我熟悉了linux 下的编译器和调试器的使用。 实验中使用了gcc命令,gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析。 当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是链接。在链接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的库中链接到合适的地方。 1-4:API 接口属于一种操作系统或程序接口。通过实验,我了解了Windows的这种机制,加深了对API函数的理解。 2-1:通过本次实验了解了一些常用进程管理命令的使用,例如ps、kill命令,了解到换个kill与killall的不同,对于linux操作系统下的进程的学习打下基础,更好的学习进程。 2-2:本次实验是熟悉掌握Linux 系统常用进程创建与管理的系统调用,linux下使用fork()创建子进程,与windows下CreateProcess()创建子进程完全不同,通过比较小组更好的理解和掌握了进程的创建,对于进程的管理的理解也有了清晰地认识。 实验中遇到fork函数返回2次结果,经过分析结果如下: 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 调用fork之后,数据、堆栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。 2-3:通过这次实验对熟悉掌握和了解windows平台常用进线程控制API,有了更深刻的认识,认识到API函数对windows编程的重要性,了解进程线程在内存中的执行,特别认识互斥体Mutex对象,API函数一定要多用,才能记得。 3-1:该程序的输入变量具有限制,若输入除0和1的数据,则将视为0处理.改进的方法为修改if 语句中的条件为:1,即只要输入为非零,则有效。即逻辑表达式的值为真。(在逻辑数学里非零则表示为真!) 为了能较好的实现进程的同步,可以另外设一个标志量,标志临界资源是否正被访问,当a,b,c

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

实验五:管道通信 实验内容: 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”;

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

电子技术实验报告—实验单级放大电路

电子技术实验报告 实验名称:单级放大电路系别: 班号: 实验者姓名: 学号: 实验日期: 实验报告完成日期:

目录 一、实验目的 (3) 二、实验仪器 (3) 三、实验原理 (3) (一)单级低频放大器的模型和性能 (3) (二)放大器参数及其测量方法 (5) 四、实验内容 (7) 1、搭接实验电路 (7) 2、静态工作点的测量和调试 (8) 3、基本放大器的电压放大倍数、输入电阻、输出电阻的测量 (9) 4、放大器上限、下限频率的测量 (10) 5、电流串联负反馈放大器参数测量 (11) 五、思考题 (11) 六、实验总结 (11)

一、实验目的 1.学会在面包板上搭接电路的方法; 2.学习放大电路的调试方法; 3.掌握放大电路的静态工作点、电压放大倍数、输出电阻和通频带测量方法; 4.研究负反馈对放大器性能的影响;了解射级输出器的基本性能; 5.了解静态工作点对输出波形的影响和负载对放大电路倍数的影响。 二、实验仪器 1.示波器1台 2.函数信号发生器1台 3. 直流稳压电源1台 4.数字万用表1台 5.多功能电路实验箱1台 6.交流毫伏表1台 三、实验原理 (一)单级低频放大器的模型和性能 1. 单级低频放大器的模型 单级低频放大器能将频率从几十Hz~几百kHz的低频信号进行不失真地放

大,是放大器中最基本的放大器,单级低频放大器根据性能不同科分为基本放大器和负反馈放大器。 从放大器的输出端取出信号电压(或电流)经过反馈网络得到反馈信号电压(或电流)送回放大器的输入端称为反馈。若反馈信号的极性与原输入信号的极性相反,则为负反馈。 根据输出端的取样信号(电压或电流)与送回输入端的连接方式(串联或并联)的不同,一般可分为四种反馈类型——电压串联反馈、电流串联反馈、电压并联反馈和电流并联反馈。负反馈是改变房卡器及其他电子系统特性的一种重要手段。负反馈使放大器的净输入信号减小,因此放大器的增益下降;同时改善了放大器的其他性能:提高了增益稳定性,展宽了通频带,减小了非线性失真,以及改变了放大器的输入阻抗和输出阻抗。负反馈对输入阻抗和输出阻抗的影响跟反馈类型有关。由于串联负反馈实在基本放大器的输入回路中串接了一个反馈电压,因而提高了输入阻抗,而并联负反馈是在输入回路上并联了一个反馈电流,从而降低了输入阻抗。凡是电压负反馈都有保持输出电压稳定的趋势,与此恒压相关的是输出阻抗减小;凡是电流负反馈都有保持输出电流稳定的趋势,与此恒流相关的是输出阻抗增大。 2.单级电流串联负反馈放大器与基本放大器的性能比较 电路图2是分压式偏置的共射级基本放大电路,它未引入交流负反馈。 电路图3是在图2的基础上,去掉射极旁路电容C e,这样就引入了电流串联负反馈。

操作系统实验报告

《计算机操作系统》实验报告 教师: 学号: 姓名: 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++;

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

负反馈电路实验报告

负反馈放大器 一.实验目的 加深理解放大电路中引入负反馈的方法和负反馈对放大器各项指标的影响。 二.实验原理 负反馈在电子电路中的作用:改善放大器的动态指标,如稳定放大倍数,改变输入输出电阻,减小非线性失真和展宽通频带,但同时也会使放大器的放大倍数降低。 负反馈的几种状态:电压串联,电压并联,电流串联,电流并联。 本实验以电压串联为例,分析负反馈对放大器指标的影响。 1.下图为带有电压串联负反馈的两极阻容耦合放大器电路,在电路中通过Rr把输出电压Uo引回到输入端,家在晶体管T1的发射极上,在发射极电阻Rf1上形成反馈电压Uf。主要性能指标如下: (1)闭环电压放大倍数Ar=Av/1+AvFv ,Av为开环放大倍数。

图1为带有电压串联负反馈的两极阻容耦合放大器 (2)反馈系数Fv=RF1/Rf+RF1 (3)输入电阻R1f=(1+AvFv)Rf Rf 为基本放大器的输入电阻 (4)输出电阻Rof=Ro/(1+AvoFv) Ro 为基本放大器的输出电阻Avo为基本放大器Rl=∞时的电压放大倍数。2.本实验还需测量放大器的动态参数,即去掉图1的反馈作用,得到基本放大器电路如下图2 图2基本放大器 三.实验设备与器件 模拟实验箱,函数信号发生器,双踪示波器,交流伏安表,数字万用表。 四.实验内容 1.静态工作点的测量 条件:Ucc=12V,Ui=0V用直流电压表测第一级,第二级的静态工作点。

Us(V) UE(V) Uc(V) Ic(mA) 第一 级 2.81 2.14 7.33 2.00 第二 级 2.72 2.05 7.35 2.00 表3—1 2.测量基本放大器的各项性能指标 实验将图2改接,即把Rf断开后风别并在RF1和RL 上。 测量中频电压放大倍数Av,输入输出电阻Ri和Ro。(1)条件;f=1KH,Us=5mV的正弦信号,用示波器监视输出波形,在输出波形不失真的情况下用交流毫伏表测量Us,Ui,UL计入3—2表 基本放大器Us(mV) Ui(m V) UL(V ) Uo(V) Av Rf(K Ω) Ro(K Ω) 5.0 0.5 0.25 0.48 500 1.11 2.208 负反馈放大器Us(mV) Ui(m V) UL(V ) Uo(V) Avf Rif(K Ω) Rof(K Ω) 5.0 2.3 0.14 0.20 87 8.52 1.028 表3—2 (2)保持Us不变,,断开负载电阻RL,测量空载时的输出电压Uo计入3—2表

操作系统实验报告

操作系统实验报告 集团企业公司编码:(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队列队尾指 针

反馈放大电路设计实验报告模版

深圳大学实验报告课程名称:模拟电路 实验名称:负反馈放大电路设计 学院:信息工程学院 专业:信息工程班级: 组号:指导教师:田明 报告人:学号: 实验地点 N102 实验时间: 实验报告提交时间: 教务处制

一.实验名称: 负反馈放大电路设计 二.实验目的: 加深对负反馈放大电路原理的理解. 学习集成运算反馈放大电路、晶体管反馈放大电路的设计方法. 掌握集成运算反馈放大电路、多级晶体管反馈放大电路的安装调试及测试方法. 三.实验仪器: 双踪示波器一台/组 信号发生器一台/组 直流稳压电源一台/组 万用表一台/组 四.实验容: 设计一个多级晶体管负反馈放大电路或集成运算负反馈放大电路,性能要求如下: 闭环电压放大倍:30---120 输入信号频率围:1KHZ-------10KHZ. 电压输出幅度≥1.5V 输出电阻≤3KΩ 五.实验步骤: 1.选择负反馈放大电路的类型,一般有晶体管负反馈放大电路、集 成运算负反馈放大电路.

为满足上述放大倍数的要求,晶体管负反馈放大电路最少需要二级放大,其连接形式有直接耦合和阻容耦合,阻容耦合可以消除放大器各级静态工作点之间的影响,本设计采用两者相结合的方式;对于各级放大器,其组态有多种多样,有共发射极,共基极和共集电极。本设计可以采用共发射极-共基极-共集电极放大电路。对于负反馈形式,有电压串联、电压并联、电流串联、电流并联。本设计采用电压并联负反馈形式。 2.设计电路,画出电路图. 下面是电源输入电路,通过并联两个电容的滤波电路形式,以效消除干扰,保证电路稳定工作,否则容易产生自激振荡。 整体原理图如下: 从上图可以看出来,整个电路由三级放大和一路负反馈回路构成,第一级电路是NPN管构成的共发射极电路,通过直接耦合的方式输出给

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

操作系统实验报告

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

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

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

负反馈放大电路实验报告

负反馈放大电路实验报告

3)闭环电压放大倍数为10s o sf -≈=U U A u 。 (2)参考电路 1)电压并联负反馈放大电路方框图如图1所示,R 模拟信号源的内阻;R f 为反馈电阻,取值为100 kΩ。 图1 电压并联负反馈放大电路方框图 2)两级放大电路的参考电路如图2所示。图中R g3选择910kΩ,R g1、R g2应大于100kΩ;C 1~C 3容量为10μF ,C e 容量为47μF 。考虑到引入电压负反馈后反馈网络的负载效应,应在放大电路的输入端和输出端分别并联反馈电阻R f ,见图2,理由详见“五 附录-2”。 图2 两级放大电路 实验时也可以采用其它电路形式构成两级放大电路。 3.3k ?

(3)实验方法与步骤 1)两级放大电路的调试 a. 电路图:(具体参数已标明) ? b. 静态工作点的调试 实验方法: 用数字万用表进行测量相应的静态工作点,基本的直流电路原理。 第一级电路:调整电阻参数, 4.2 s R k ≈Ω,使得静态工作点满足:I DQ约为2mA,U GDQ < - 4V。记录并计算电路参数及静态工作点的相关数据(I DQ,U GSQ,U A,U S、U GDQ)。 实验中,静态工作点调整,实际4 s R k =Ω

第二级电路:通过调节R b2,2 40b R k ≈Ω,使得静态工作点满足:I CQ 约为2mA ,U CEQ = 2~3V 。记录电路参数及静态工作点的相关数据(I CQ ,U CEQ )。 实验中,静态工作点调整,实际2 41b R k =Ω c. 动态参数的调试 输入正弦信号U s ,幅度为10mV ,频率为10kHz ,测量并记录电路的电压放大倍数 s o11U U A u = 、s o U U A u =、输入电阻R i 和输出电阻R o 。 电压放大倍数:(直接用示波器测量输入输出电压幅值) o1 U s U o U 1 u A 输入电阻: 测试电路:

操作系统实验报告16487

西安邮电大学 (计算机学院) 课实验报告 实验名称:进程管理 专业名称:计算机科学与技术 班级: 学生: 学号(8位): 指导教师: 实验日期:*****年**月**日

一. 实验目的及实验环境 目的:(1)加深对进程概念的理解,明确进程和程序的区别。 (2)进一步认识并发执行的实质。 (3)分析进程竞争资源现象,学习解决进程互斥的方法。 (4)了解Linux系统中进程通信的基本原理。 环境:Linux操作系统环境: 二. 实验容 (1)阅读Linux的sched.h源文件,加深对进程管理概念的理解。 (2)阅读Linux的fork.c源文件,分析进程的创建过程。 三.方案设计 (1)进程的创建 编写一段源程序,使系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。(2)进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。 如果在程序中使用调用lockf()来给每一个子进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 (3)①编写一段程序,使其现实进程的软中断通信。 要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is Killed! 程序流程图如下:

操作系统实验报告

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

操作系统实验报告

实验报告 实验课程名称:操作系统 实验地点:南主楼七楼机房 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 带权周转 时间

相关主题
文本预览
相关文档 最新文档