当前位置:文档之家› 球杆系统实验报告

球杆系统实验报告

球杆系统实验报告
球杆系统实验报告

球杆系统实验报告

篇一:华科机械综合测试实验球杆实验报告

球杆控制定位系统实验报告

实验小组成员:周开城 uXX10555机械0902班张伟uXX10571机械0902班

一实验目的 ?(1)掌握对实际物理模型的建模方法。

(2)掌握在Matlab 中利用Simulink 等工具对系统进行模型分析的方法。(3)掌握PID 控制算法的原理和实际应用。(4)学习PID参数的调节方法。

二实验系统及实验原理

(一)球杆系统的特点

球杆系统是一个典型的非线性系统,理论上而言,它是一个真正意义上的非线性系统,其执行机构还具有很多非线性特性,包括: ? 死区

? 直流马达和带轮的传动非线性。 ? 位置测量的不连续性。

? 导轨表面不是严格的光滑表面,产生非线性阻力。

这些非线性因素对于传统意义上的测量和建模造成很

大的影响,并对系统的控制性能造成非常大的影响,怎样去设计一个鲁棒的控制系统,是现代控制理论的一个重要问题。固高科技提供的球杆系统既可以用于研究控制系统运行的非线性动力学,也可以用于研究控制系统的非线性观测器等,是一个较为通用的实验设备。

因为系统机械结构的特点,球杆系统具有一个最重要的特性——不稳定性,对于传统的实验方法,存在一些实验的难处,不稳定的系统容易对实验人员产生危险或是不可预料的伤害,球杆系统相对而言,机械比较简单,结构比较紧凑,安全性也比较高,是一个可以避免这些危险和伤害的实验设备。采用智能伺服驱动模块和直观的Windows程序界面,是控制系统实验的一个理想的实验设备。

(二)球杆系统

如图1所示,包括控制计算机、IPM100伺服驱动器、球杆本体和光电码盘、线性传感器、伺服电机和球杆装置等部分,组成一个闭环系统。光电码盘将杠杆臂与水平方向的夹角、角速度通过RS232接口与计算机通信。在控制系统中,输入钢球的控制位置和控制参数,通过控制决策计算输出电机转动方向、转动速度、加速度等,并由智能伺服驱动器产生相应的控制量,发出模拟信号使电机转动,带动杠杆臂运动从而控制球的位置。

本系统为一个单输入(电机转角θ)、单输出(钢球位置x)系统。其中,θ由伺服电机的角度编码器测定,输出量x由轨道上电位器输出的电压信号获得。系统的控制框,如图1所示。整个机构运行如图2所示:

球杆系统主要由以下几部分组成,如图所示。

(三)机械部分:机械部分包括底座、小球、横杆、减速皮带轮、支撑部分、马达等。

小球可以在横杆上自由的滚动,横杆的一端通过转轴固定,另一端可以上下转动,通过控制直流伺服电机的位置,带动皮带轮转动,通过传动机构就可以控制横杆的倾斜角。直流伺服电机带有增量式编码器(1000P/R),可以检测电机的实际位置,在横杆上的凹槽内,有一线性的传感器用于检测小球的实际位置,两个实际位置的信号都被传送给控制系统,构成一个闭环反馈系统。当带轮转动角度θ,横杆的转动角度为α,当横杆偏离水平的平衡位置后,在重力作用下,小球开始沿横杆滚动。

(四)电气部分

球滚动时位移的测量:直线位移传感器。线性轨道传感器接+5V

电压。轨道两边测得

的电压作为IPM100 控制卡A/D 输入口的信号。当小球在轨道上滚动时,通过不锈钢杆上输出的电压信号的测量可得到小球在轨道上的位置。

伺服输出角度的测量:采用IPM100 控制器,电机驱动齿轮转动时通过电机实际位置转

换得到角度θ。

(五)智能伺服驱动

电机的运动通过IPM100智能伺服驱动器进行控制,IPM100是一个智能的高精度、全数字的控制器,内嵌100W 的驱动电路,适合于有刷和无刷电机。基于反馈控制原理,在得到传感器信号后,对信号进行处理,然后给电机绕组施加适当的PWM电压信号,这样,一个相应的扭矩作用于电机轴,使电机开始运动,扭矩的大小决定于用户程序中的控制算法。

IPM100是一款智能的控制器,它除了板载的用于放大控制信号的驱动放大器和PWM调制电路,还有一个全数字的DSP 处理芯片,内存以及其它逻辑元件,有了这些,就可以实现先进的运动控制技术和PLC的功能,它产生实时的轨迹路径,实现闭环伺服控制,执行上位机的操作命令,完成板载IO 信号的处理,所有这些都依照储存器的程序指令或是主机的

在线命令执行,这种嵌入式的智能控制可以提供一个实时性非常好的控制效果,即使因为PC的非实时操作系统而产生延时的情况下。

因为控制器可以独立运行,也可以采用从动模式,本手册介绍的球杆系统将采用两种模式。IPM100安装于控制箱内部,通过RS232和上位计算机进行通讯,直流电源也置于控制箱内部。

(六)球杆系统的数学模型建立

实际上使小球在导轨上加速滚动的力是小球的重力在同导轨平行方向上的分力同小球受到的摩擦力的合力。考虑小球滚动的动力学方程,小球在V 型杆上滚动的加速度:??J?R2?m??

r??mgsinα?mrα?2

?0??

??

(1-1)

其中 m——小球质量;

J——小球的转动惯量; R——小球半径; r——小球位置偏移; g——重力加速度;

α——轨道杆与水平面之间的夹角;

θ——电动机转角;

又有:α?

dLθ

由于实际摩擦力较小,忽略摩擦力,并由于α较小,因此可以忽略此项的影响,其基本的数学模型转换成如下方式:mgsinα????J?

2?m??r

??R?

(1-2)

当α

性化,得到传递函数如下

r(s)α(s)

?

m?J???2?m??R?

?gs

(1-3)

但是,在实际控制的过程中,杆的仰角α是由电动机的转角输出来实现的。影响电动机转角θ和杆仰角α之间关系的主要因素就是齿轮的减速比和非线性。因此,我们把该模型进一步简化:

θ(s ) =L/d ?α(s ) (1-4)

把(1-4)式代入(1-3)式,我们可以得到另一个模型:

?J?

?2?m?R(s)s?R?

2

??

mgdL

θ(s)

得到球杆系统从齿轮角度θ(s)和小球位置(R(s))的传递函数:

R(s)θ(s)

L(

mgdJR

2

1s

2

(1-5)

?m)

因此,球杆系统实际上可以简化为一个二阶系统。

(七)比例环节控制原理

P 控制分析对于具有比例控制作用的控制器,控制器的输出u(t)与误差作用信号e(t)之间的关系为:

u(t)?Kpe(t)

或者表示成拉普拉斯变换量的形式如下:

U(s)E(s)

?Kp

式中Kp 称为比例增益。无论是哪一种实际机构,也无

论是哪一种形式的操作功率,比

例控制器实质上是一种增益可调的放大器。控制系统如下图所示:

篇二:球杆系统实验指导

目录

球杆系统说明----------------------------------------------------------------- 3

1 系统简述--------------------------------------------------------------------------- 3

2 机械结构--------------------------------------------------------------------------- 5

3 电器部分--------------------------------------------------------------------------- 5

4 软件实现--------------------------------------------------------------------------- 6 实验一球杆系统的数学模型---------------------------------------------------- 7

1.1 实验目的

---------------------- 7

1.2 实验原理------------------------------------------------------------------------- 7

1. 传递函数------------------------------------------------------------------------------------------------ 9

2. 状态空间方程------------------------------------------------------------------------------------------ 9

1.3 实验内容------------------------------------------------------------------------- 9

1)、2)略--------------------------------------------------------------------------- 9

3)在MATLAB 中求取传递函数及其开环阶跃响应----------------------------------------- 10

1. 传递函数

--------------------------------------------10

2. 状态空间方程----------------------------------------------------------------------------------------- 11

3. 球杆系统在Simulink 下的模型建立-------------------------------------------------------------- 11

1.4 实验设备------------------------------------------------------------------------ 14 实验二球杆系统的数字P 控制器设计 ------------------------------------------ 15

2.1 实验目的------------------------------------------------------------------------ 15

2.2 实验原理------------------------------------------------------------------------ 15

2.3 实验设备---------------------------------------------------

--------------------- 16

2.4 实验内容------------------------------------------------------------------------ 16 实验三球杆系统的数字PD 控制器设计 ---------------------------------------- 18

3.1 实验目的------------------------------------------------------------------------ 18

3.2 实验原理------------------------------------------------------------------------ 18

3.3 实验设备------------------------------------------------------------------------ 20

3.4 实验内容------------------------------------------------------------------------ 20 实验四球杆系统的数字PID 控制器设计--------------------------------------- 21

4.1 实验目的

--------------------- 21

4.2 实验原理------------------------------------------------------------------------ 21

4.3 实验设备------------------------------------------------------------------------ 22

4.4 实验内容------------------------------------------------------------------------ 22 实验五根轨迹算法设计球杆系统控制器----------------------------------------- 24

5.1 实验目的------------------------------------------------------------------------ 24

5.2 实验原理及内容------------------------------------------------------------------ 24

5.3 实验设备

------------- 28

实验六频率响应法设计球杆系统控制器----------------------------------------- 29

6.1 实验目的---------------------------------------------------------------- 29

6.2 实验原理及内容---------------------------------------------------------- 29

6.3 实验设备---------------------------------------------------------------- 33

实验七球杆系统在Matlab Simulink 环境下的实时控制 -------------------------- 34

7.1 实验目的------------------------------------------------------------------------ 34

7.2 实验原理---------------------------------------------------

--------------------- 34

7.3 实验设备------------------------------------------------------------------------ 41

7.4 实验内容------------------------------------------------------------------------ 41 附:IPM MOTION实验程序使用说明--------------------------------------------- 42

球杆系统说明

1 系统简述

球杆系统(Ball & Beam )是为自动控制原理等基础控制课程的教学实验而设计的实验设备。该系统涵盖了许多经典的和现代的设计方法。这个系统有一个非常重要的性质——它是开环不稳定的。不稳定系统的控制问题成了大多数控制系统需要克服的难点,有必要在实验室中研究。但是由于绝大多数的不稳定控制系统都是非常危险的,因此成了实验室研究的主要障碍。而球杆系统就是解决这种矛盾的最好的实验工具,它简单、安全并且具备了一个非稳定系统所具有的重要的动态特性。

整个装置由球杆执行系统、控制器和直流电源等部分组成。该系统对控制系统设计来说是一种理想的实验模型。正是由于系统的结构相对简单,因此比较容易理解该模型的控制过程。

球杆执行系统(如图1 所示)由一根V 型轨道和一个不锈钢球组成。V 型槽轨道一侧为不锈钢杆,另一侧为直线位移电阻器。当球在轨道上滚动时,通过测量不锈钢杆上输出电压可测得球在轨道上的位置。V 型槽轨道的一端固定,而另一端则由直流电机(DC motor )的经过两级齿轮减速,再通过固定在大齿轮上的连杆带动进行上下往复运动。V 型槽轨道与水平线的夹角可通过测量大齿轮转动角度和简单的几何计算获得。这样,通过设计一个反馈控制系统调节直流电机的转动,就可以控制小球在轨道上的位置。

GBB1004 型球杆系统由三大部分组成:IPM100 智能驱动器、球杆装置和控制计算机。IPM100 智能驱动器使用方法请参照《IPM100SK 用户手册》;计算机为装有Windows 的计算机或是其他兼容机。

图1 球杆系统执行机构原理图

在一长约0.4 米的轨道上放置一不锈钢球,轨道的一侧为不锈钢杆,另一侧为直线位移传感器,当球在轨道上滚动时,通过测量不锈钢杆上输出的电压信号可获得球在轨道上

的位置x 。电机转动带动齿轮系驱动杠杆臂Lever Arm 转动,轨道Beam 随杠杆臂的转动与水平方向也有一偏角α,球的重力分量会使它沿着轨道滚动,设计一个控制系统通过调节伺服角度θ使得不锈钢球在Beam 上的位置能被控制。

此系统为一个单输入(电机转角θ)、单输出(小球位置)系统,输入量θ利用伺服电机自带角度编码器来测量,输出量x 由轨道上电位器的电压信号来获得。系统组成框图如下:

图2 球杆系统组成原理图

系统包括计算机、IPM100 智能伺服驱动器、球杆本体和光电码盘、线性传感器几大部分,组成了一个闭环系统。光电码盘将杠杆臂与水平方向的夹角、角速度信号反馈给IPM100 智能伺服驱动器,小球的位移、速度信号由直线位移传感器反馈。智能伺服控制器可以通过RS232 接口和计算机通讯,利用鼠标或键盘可以输入小球的控制位置和控制参数,通过控制决策计算输出(电机转动方向、转动速度、加速度等),并由IPM100 智

能伺服驱动器来实现该控制决策,产生相应的控制量,使电机转动,带动杠杆臂运动,使球的位置得到控制。

2 机械结构

选用直流伺服电机,采用齿轮箱减速机构进行减速,在输出齿轮上距齿轮圆心d(d 小于齿轮半径)处连接一杠杆臂Leaver Arm,此连接处螺钉不能固定太紧,杠杆臂的另一端与轨道Beam 铰链,机构的另一端是一固定座,此固定座上端与轨道的左侧铰链,见下图:

图3 球杆系统机械图图4 转角α和β示意图

电机箱内部机构:电机,齿轮减速机构。

整个机构运行如下:电机转动带动与连杆相连的齿轮转动,此时连接点与齿轮中心连线和水平线的夹角为θ(角度θ应被限定在一定角度范围内,即使导轨倾角α最大和最小),轨道会绕左侧与固定座铰链处转动,轨道与水平方向的角度为α。此处角度编码器用于测量角度θ,此为系统的输入信号。

3 电器部分

a) 球滚动时位移的测量:直线位移传感器

线性轨道传感器接+5V电压。轨道两边测得的电压作为IPM100 控制卡A/D 输入口的信号。当小球在轨道上滚动时,通过不锈钢杆上输出的电压信号的测量可得到小球在轨道上的位置。

篇三:合肥工业大学自动控制理论综合实验球杆实验报告

合肥工业大学

电气与自动化工程学院

专业中心实验室李扬XX2178

实验一球杆系统的数学模型

实验目的

l 掌握对实际物理模型的建模方法

l 掌握在Matlab 中利用Simulink 等工具对系统进行模型分析的方法。实验内容:

1) 分析并推导系统的数学模型;

2) 求解系统的状态空间方程和传递函数方程;

自动控制理论实验1

在matlab中建立一下m文件并运行:

m=0.028;R=0.0145;g=-9.8;J=0.4*m*R^2;a=-m*g/(J/R^2+m );A=[0 1 0 0;0 0 a 0;0 0 0 1;0 0 0 0] B=[0;0;0;1] C=[1 0 0 0] D=0

[n,d]=ss2tf(A,B,C,D);G=tf(n,d); 返回:

A =0 1.000000 00 7.00000 000 1.0000 0000

B = 0001

C = 1 0 0 0

D = 0

Transfer function:

-4.441e-016 s^3 + 1.998e-015 s^2 + 3.997e-015 s + 7

--------------------------------------------------- s^4

上式即为传递函数方程。

3) 在Matlab 下建立系统的模型并进行阶跃响应仿真。

为得到阶跃响应,输入命令: step(G) 得到阶跃响应曲线如下:

Step Response

e

duitlpmA

Time (sec)

实验二球杆系统的数字P 控制器设计

实验目的

了解P 控制器原理及其对球杆系统的控制作用实验原理:

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

Nachos_Project_1_2014-操作系统实验

Nachos实验项目 本实验项目采用纽约大学计算机系相关课程的实验设计。这些实验的内容以及nachos 的完整介绍请参考相关文档。 Nachos实验项目将采用分组方式完成。每4人为一组(个别组除外)。分组确定后,未经特别批准,不得变更。请各组组长在自己的起始目录下创建试验结果提交目录“nachos”(不含引号,均为小写字母)。 每次实验,我们都将指定需要提交的内容和截止时间,第一次试验的提交内容放在起始目录下的“nachos/1”目录内,第二次的放在“nachos/2”内,依次类推。请大家关注,并严格按要求操作。一个小组只要提交一份实验报告即可。对未按实验提交要求操作而造成提交失败的,将被视为实验未完成(提交内容由程序自动收集)。 从第4周起,双周的周二下午2:30~5:30为试验时间并兼做理论课程答疑时间。实验地点在404。 实验一体验Nachos下的并发程序设计 (实验指导:os_lab.ppt) 1内容简述 本次实验的目的在于对nachos进行熟悉,并初步体验nachos下的并发程序设计。实验内容分三部分:安装nachos;用C++实现双向有序链表;在nachos系统中使用你所写的链表程序并演示一些并发错误。 2实验内容(详见英文文档nachos-lab.pdf文档3.1章) 2.1安装nachos 2.2实现双向有序链表(50%) 如对c++不很熟悉,可以参考nachos-3.4/c++example/中的有关实现。 2.3体验nachos线程系统(50%) 需要做的更改有: 1)将dllist.h, https://www.doczj.com/doc/d018451048.html,, https://www.doczj.com/doc/d018451048.html,等文件拷贝到nachos-3.4/code/threads/目录中。 2)修改https://www.doczj.com/doc/d018451048.html,mon中的THREAD_H、THREAD_C、THREAD_O以保证新的文件确 实被编译了。 3)根据实验内容,https://www.doczj.com/doc/d018451048.html,,https://www.doczj.com/doc/d018451048.html,等文件可能需要改动。 3实验结果的提交 本实验应提交的内容: https://www.doczj.com/doc/d018451048.html,mon https://www.doczj.com/doc/d018451048.html, https://www.doczj.com/doc/d018451048.html, dllist.h https://www.doczj.com/doc/d018451048.html,

《管理信息系统》课程设计实验报告

《管理信息系统》课程设计实验报告 课程名称:管理信息系统 指导老师: ******* 院系:商学院 专业班级: ******** 姓名: ******** 学号: ******** 实验日期: 2011.7.11 实验地点:一机房

《管理信息系统》课程设计任务书 一.课程设计目的及意义: 《管理信息系统》课程设计是在完成《管理信息系统》课程学习之后的一次实践性教 学,是本课程理论知识的一次综合运用。通过本课程设计,能够进一步加深对信息、信息系 统、管理信息系统等基础理论知识的理解,能初步掌握结构化的生命周期法、面向对象法等 系统工程方法,进一步加强熟练应用管理信息系统的操作技能,并能够借助于管理信息系统 解决实际问题。 二.课程设计要求: 1.本课程设计时间为一周。 2.本课程设计以教学班为单位进行上机操作及实验。 3.按照任务要求完成课程设计内容。 三.课程设计任务要求: 1.任务内容:进入山东轻工业学院主页,在“网络资源”区域进入“网络教学平台”,输入各自的用户名和密码(学生学号及密码),进入本网络教学平台系统,在充分熟悉本系统 的前提下,完成下列任务要求。 2.任务要求: ①按照课程讲解的系统分析步骤和理论对本系统进行系统分析。 ②绘制不少于 3 个的主要业务流程图。 ③描述上述主要业务流程图的逻辑处理功能。 ④分析本系统的优缺点,提出改进意见,并描述改进的逻辑处理功能,绘制业务流 程图。 四.课程设计评分标准: 按照《管理信息系统课程设计大纲》的要求,本课程 1 学分,采用百分制计分,其中 任务要求②占30 分,任务要求③占30 分,任务要求④占30 分,考勤及实践表现占10 分。五.本课程设计自2011 年 6 月 27 日至 2011 年 7 月 1 日。

管理信息系统实验报告97692

《管理信息系统》实验报告 实验项目:教务处排课系统分析 实验学时:18 学时 姓名: 学号: ________________ 专业班级: 实验时间: _______ 实验成绩: __________________________

东北财经大学 《管理信息系统》实验报告实验项目名称:

沟通能力,养成对问题全面分析、思考和严谨认真的态度,增强创新意识五、教师评语 签名: 日期: 管理系统实验报告

实验小组成员: 实验对象:教务处排课信息系统 实验对象背景介绍:教务管理系统是一个庞大而复杂的系统,它包括:学生学籍管理系统、排课 系统、教师管理系统、学生成绩系统、系统设置、班级信息系统、教学培养计划管理系统、教学资源管理系统、招生系统教务信息发布系统和事务处理系统。随着科学技术的进步与相应的管理信息系统的升级,教务系统管理平台充分利用互联网络B/S 管理信息模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。教务管理系统内部子系统多样庞杂, 今天我们主要讨论的研究对象是排课管理信息系统。 排课管理系统是每个学校必不可少的内容,它的优劣直接学校教学工作质量和学校的正常教学活动秩序。随着现在生源数量的不断增长以及各行业竞争日益激烈,为了满足中国社会主义事业发展对高素质人才的需求,各大高校都在尽自己努力,以本校现状及需求作为基础,以科技发展进步作为依托,发展完善一个功能完整,操作简单快捷,高效率,与本校其他教务管理系统良好适应的排课系统与之配套,使教师等教学资源利用达到最大化,为学生提供优良的教育环境。因此,东北财经大学作为一个知名的财经类高校, 要达到适应教育现状及 提高自身教育层次的目标,完善教务排课管理系统显得尤为重要。 系统功能简述排课管理系统需要合理调配各个班级专业所需的专业课程选修必修课程,相应教师,教师及上课班级,尽可能全面的考虑到教师的身体状况,工作条件,家庭状况甚至与学校距离,教师及学生时间,各种课程按重要程度以及学生兴奋点和接受能力合理排序,教师的容量用途,学校集体活动或教师会议等多方面因素,以计算机安排为主,手工调整为辅的方式做出各个院系各个专业各个班级的课程安排。 排课管理系统的目标不仅是对于原有系统进行改进提高,还使课程管理科学化系统化准确化,减少手工录入的误差可能性,方便操作者的随时添加、查询、修改,是统计表格格式规范化统一化,提高工作效率,降低人工成本,提高处理数据能力与速度,提高教学质量,优化学校教务管理系统,为学校的进一步发展提供技术支持与可能性。 系统分析(1)系统分析任务:根据系统设计任务书所确定的范围,并在充分认识原有系统的基础上进行详细的调查分析,通过问题识别、可行性分析、详细调查、系统化分析,进而确定新系统的基本目标和逻辑功能结构,最后完成新系统的逻辑方案设计。 (2)可行性分析和详细调查概述:由于实验的限制,假定建立排课管理信息系统在管理上、技术上、经 济上都是可行的。而详细调查采用一定的调查方法发现了现行系统有以下优缺点: 现有系统优缺点分析 1. 选课分为预选、正选、补退选,一定程度上完善了选课系统。 2. 在选课中,按年级差异区分次序,一定程度上缓解短时间内系统压力,保证了高年级学生顺利完成课业。 3. 学生面临选课时,具有多重选择性,使学生有机会挑选感兴趣的课程,更加人性化设置。 4. 正选是以随机抽选的形式来的话,会更具有公平性。 5?学生可以自主跨专业选择自己喜欢的课,使选课更具有自主性。 6?在登录选课系统时,需要学生输入个人账号信息,保证了学生信息隐私,具有一定的安全性。

Nachos实验报告9

计算机科学与技术学院实验报告:9 实验题目:设计并实现具有优先级的线程调度策略姓名:李威 日期:2013-12-1 学号:201100300259 班级:11级软件3班Email:sduliwei@https://www.doczj.com/doc/d018451048.html, 实验目的: Nachos系统采用基本的FCFS的线程调度策略,修改成为具有优先级的线程调度策略 硬件环境: 软件环境: linux操作系统,Nachos操作系统 实验步骤: 1.修改Thread类的构造函数,加入优先级priority属性,并且加入getPrioty方法。以便在线程的 等待队列中找到优先级最高的线程。其中,线程优先级的范围从1到7,默认为7,即最低优先级。 修改代码如下:(https://www.doczj.com/doc/d018451048.html,,thread.h) class Thread { …………………………………… public: Thread(char* debugName, int priority=7);// initialize a Thread ………………………………………………… int getPriority(){return this->priority; } Thread::Thread(char* threadName, int p) { if(p<1) priority = 1; else if(p>7) priority = 7; else priority = p; name = threadName; stackTop = NULL; stack = NULL; status = JUST_CREATED; #ifdef USER_PROGRAM space = NULL; #endif } 2,首先,了解Nachos系统原来的线程调度方式。通过读https://www.doczj.com/doc/d018451048.html,,https://www.doczj.com/doc/d018451048.html,,https://www.doczj.com/doc/d018451048.html,文件 中的内容了解线程调度的方式。

系统设计实验报告

系统设计实验报告——远程在线考试系统

目录软件需求说明书························1 引言··························· 1.1编写目的······················· 1.2背景························· 1.3定义························· 1.4参考资料······················· 2 程序系统的结构························ 3 程序设计说明·························

1引言 1.1编写目的 本文档的编写目的是为远程在线考试系统项目的设计提供: a.系统的结构、设计说明; b.程序设计说明; c. 程序(标识符)设计说明 1.2背景 随着网络技术的飞速发展,现在很多的大学及社会上其它的培训部门都已经开设了远程教育,并通过计算机网络实现异地教育。但是,远程教育软件的开发,就目前来说,还是处于起步的阶段。因此,构建一个远程在线考试系统,还是有很大的实际意义的。 根据用户提出的需求,本项目组承接该系统的开发工作 a.开发软件系统的名称:远程在线考试系统 b.本项目的任务提出者:福州大学软件学院 c.用户:各类大专院校学校、中小学校。 1.3定义 远程在线考试系统 远程在线考试系统是基于用Browser/Web模式下的,可以实现考试题库管理、多用户在线考试、自动阅卷功能的系统。

1.4参考资料 ?GB 8566 计算机软件开发规范 ?GB 8567 计算机软件产品开发文件编制指南?软件设计标准 ?《ASP与SQL-Server2000》清华大学出版社?《可行性研究报告》 ?《项目计划文档》 ? 2程序系统的结构 3程序1(标识符)设计说明

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

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

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

nachos Lab7实习报告

shell实现实习报告 页脚内容1

目录 内容一:总体概述 (3) 内容二:任务完成情况 (3) 任务完成列表(Y/N) (3) 具体Exercise的完成情况 (4) 内容三:遇到的困难以及解决方法 (19) 内容四:收获及感想 (20) 内容五:对课程的意见和建议 (20) 内容六:参考文献 (20) 页脚内容2

内容一:总体概述 本次实习需要实现用户程序shell。shell是提供使用者使用界面的软件(命令解析器),他接收用户命令,然后调用相应的应用程序。本次shell实现的基础是前面已经完成的相关功能。注意到nachos已经实现简单的shell,我们只需要在此基础上进行相关的修改。 内容二:任务完成情况 任务完成列表(Y/N) 页脚内容3

具体Exercise的完成情况 设计实现一个用户程序shell,通过./nachos -x shell进入用户交互界面中。在该界面中可以查询支持的功能、可以创建删除文件或目录、可以执行另一个用户程序并输出运行结果,类似Linux上跑的bash。你实现的越完善,碰到的问题越多,学到的也会越多。 本实验所修改的代码包括内核和用户程序两部分。 首先,需要解析输入的命令,这部分现有程序已经完成 Write(prompt, 2, output); Read(&buffer[i], 1, input); 因为在Lab6中,我没有考虑标准输入和标准输出的问题,所以需要修改https://www.doczj.com/doc/d018451048.html,处理read系统调用和处理write系统调用的部分 针对处理read系统调用的部分,如果系统调用的第3个参数是0(表示标准输入),那么读取从用户界面输入的字符串存入相应的位置 if(fd == 0){ for (int i = 0; i < count; i++) content[i] = getchar(); } 针对处理write系统调用的部分,如果系统调用的第3个参数是1(表示标准输出),那么输出缓冲区 页脚内容4

操作系统实验报告

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

nachos实验七实验报告

nachos实验报告七 实验题目: Extension of AddrSpace 学号:201200301057 日期:2014-11-29 班级:计软12-3 姓名:高鹏辉 实验目的: 在了解了Nachos 装入并执行单个用户进程的情况后,我们就需要进一步完成用户内存空间的扩充以便多用户程序同时驻留内存,进而使多用户进程并发执行。 硬件环境: Mem:3.9G CPU:Intel? Core?2 Quad CPU Q9500 @ 2.83GHz × 4 Disk:15.5 GB 软件环境: System:ubuntu12.04LST i386 gcc: (Ubuntu 4.6.3-1ubuntu5) 4.6.3 nachos system 实验步骤: 要在Nachos中实现多用户程序同时驻留内存并发执行,首先涉及到Nachos的两个系统调用:Exec()和Exit()。这两个系统调用也是构造父子进程并发执行的基础。假设我们有以下两个用户程序:../test/exec.c和../test/halt.c ../test/halt.c 第65页 用户进程管理设计 1 #include "syscall.h" 2 int 3 main() 4 { 5 Halt() 6 } ../test/exec.c 1 #include "syscall.h" 2 int 3 main() 4 { 5 SpacId pid; 6 pid = Exec("../test/halt.noff");

7 Halt() 8 } 在文件../test/exec.c第5行上的语句Exec是一条Nachos的系统功能调用,它的功能为装入并执行以其参数为名的可执行文件,即创建一个新的用户进程。假设我们先执行../test/exec.noff 程序,则../test/exec.noff 会在它还没有执行结束时又装入并执行另外一个程序halt.noff,并与它同时驻留内存. pageTable[i].physicalPage=usermap-->Find();避免从头开始物理存储覆盖了前一个用户程序的内存内容 利用Nachos在../userprog/bitmap.h 中文件定义的Bitmap类。利用bitmap 记录和申请内存物理帧,使不同的程序装入到不同的物理空间中去,下面是对新的内存分配存储算法,改进了对多个用户程序的同时进驻内存的支持

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

人事管理系统实验报告

摘要 人事管理是企业管理中的一个重要内容,随着时代的进步,企业也逐渐变得庞大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下,开发一个人事管理系统就显得非常必要。本系统结合公司实际的人事、制度,经过实际的需求分析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的单机版人事管人事理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工假条信息录入、修改、查询、删除模块,员工工资信息的录入,计算,查询,以及系统用户的设置以及系统的维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。本文系运用规范研究方法进行的专题研究。全文分六个部分:第一部分,是本课题的来源和课题研究的目的和意义;第二部分,是开发工具的选择,本系统主要运用的是Visual Basic 6.0作为系统前台应用程序开发工具,Access作为后台数据库;第三部分,是系统的需求分析,主要是人事管理系统的需求分析;第四部分,是系统分析与实现,包括系统功能模块的设计和数据库的设计;第五部分,是代码的设计与实现,系统事件运行的主要代码;第六部分,是系统的实现,最后,是软件的测试 关键词:人事管理系统设计SQL Server 2005数据库Visual Basic 6.0 维护测试

第一章绪论 1.1 引言 随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。人力资源管理是结合公司实际的人事、制度,经过实际的需求分析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的单机版人事管人事理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,本企业人事管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工假条信息录入、修改、查询、删除模块,员工工资信息的录入,计算,查询,以及系统用户的设置以及系统的维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务,基本上能够满足现代企业对人事管理的需要。 1.2 项目背景 本课题基于我国企业管理信息化建设现状,结合在实际工作中所遇到的问题和收获,对企业人事管理系统在设计开发等方面进行研究,重点研究系统开发中所采用的软硬件平台规范、数据库结构设计、开发工具的选择与使用,目的是从技术手段的角度阐述如何实现企业从传统经营管理模式向信息化管理模式转变的过程,以及人事管理系统在企业管理信息化中所起到的重要作用。本课题的开发主要是要花费相当多的人力和时间,虽然开发出来的软件可能离具体产生效益还有一定的距离。但是,出于通过毕业设计来丰富自己的专业知识,并从长远利益来考虑,本课题的设计开发还是具有相当大的经济可行性的。 1.3 实现意义 现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的人事管理的形式和内涵都在发生着根本性的变化。在过去,一支笔和一张绘图桌,可能就是进行办公的全部工具。今天,电脑、扫描仪和打印机等,已基本取代了旧的办公用具。如今,人事管理己完全可以通过电脑进行,并在计算机辅助下准确快速地完成许多复杂的工作。这些都大大地缩短管理的时间。而今天,人事管理的内容己经转变为对更为广泛的系统价值的追求。信息管理,如今已是一个热门话题,它已为许

操作系统实验报告

操作系统实验报告 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的镜像文件,如图所示:

nachos01

实验一体验Nachos下的并发程序设计 一、小组成员及分工 汪于波(23020078104116):https://www.doczj.com/doc/d018451048.html,的修改、https://www.doczj.com/doc/d018451048.html,的修改和实验报告 潘羽龙(23020078104100):https://www.doczj.com/doc/d018451048.html,的实现 吴道裕(23020078104132):https://www.doczj.com/doc/d018451048.html,的实现和实验报告的完成 谭原(23020078104111):dllist.h的实现和https://www.doczj.com/doc/d018451048.html,mon的修改 二、实验目的 对nachos进行熟悉,并初步体验nachos下的并发程序设计。 三、实验内容 1.安装nachos; 2.用C++实现双向有序链表; 3.在nachos系统中使用你所写的链表程序并演示一些并发错误 四、实验步骤 1.首先明确Nachos各部分的关系 在~/nachos/nachos-3.4/code/下有一个https://www.doczj.com/doc/d018451048.html,mon,在code/的各个子目录下的Makefile都继承这个https://www.doczj.com/doc/d018451048.html,mon。通过阅读https://www.doczj.com/doc/d018451048.html,知道,main函数一旦启动,立即调用Initialize,进行初始化的操作,然后对相应的参数进行处理,之后在分模块进行相应模块下的函数调用,执行相应的功能。 2.编写相应的函数 实验要求利用对双向链表的操作来演示并发程序可能出现的错误,首先需要实现双向链表dllist,包括dllist.h,https://www.doczj.com/doc/d018451048.html,。当DLList类实现后,需要编写链表驱动函数Insert 和Remove来对链表进行驱动。通过改写https://www.doczj.com/doc/d018451048.html,,使得多个线程在没有进行任何互斥操作的情况下对同一数据结构进行操作,在这个过程中就可能出现并发错误。改写https://www.doczj.com/doc/d018451048.html,mon和https://www.doczj.com/doc/d018451048.html,。 3.详细设计 a)dllist.h(~/nachos/nachos-3.4/code/threads/) 类DLList的声明 class DLLElement { public: DLLElement(void *itemPtr,int sortKey);//initialize a list element DLLElement *next;//next element on list DLLElement *prev;//previous element on list int key; void *item; }; class DLList { public: DLList();//initialize the list DLList(int type); ~DLList();//de-allocate the list

管理信息系统实验报告答案要点

实验

3、分组讨论并确定小组管理信息系统的题目,并给出题目的具体功能和要求。心得体 会:(可以从以下几个方面来总结:你在上机过程中遇到了哪些难题?你是怎么克服的?你的收获有哪些?你有什么没有解决的问题等) 实验

书E 选脚 ■1. 订盼蔚豆 建立学生表 则剩余不够的部分还须向其他书商订购,同时 在订购信息中添加该教材在另一个书商中订购的信息。 1、请画出上述内容的 E-R 图。 2、把E-R 图转换成合理的关系模式: 学 生(学号,姓名,性别,院系,年龄) 教 材(书号,书名,出版社,出版日期, 书商(商号,电话,联系人,商名) 山膿E 軀 nanie = ^Buy_Booksdb , j filename - J E: \Buy_Bcoksdb* mdf', size = 5j maxsize - 20, f llegrovrth = 1 ) log on ( rtajne-' Buy^Bookslog 1、 f ilenajue~, E:\Buy_Bcakslog. ldf'. size=2_, maxsize! 8, fllegrawth-1 ] Go 口. ■号, 3、在SQL Serve r (或Access )中建立数据库和表(截图) 建立数据库: create database Buy Books on primary 主键为学号 主编) 主键为书号 主键为商号 ' —i r - ! 見意「腿 性别 商号 1 ---------- 戟条人

CREATE TABLE St udent ( Sno char 9- primary key. Sname char (20 i unique, Ssex char (2), Sage smallint. Sdept char (2Q 1 ) f -f 建立教材表 CREATE TABLE Books ( Eno char 9) primary key Btitle char (40), Bauthor char ^20), Bpress char 40 Bdate datetime ): 建立书商表 -CREATE TABLE SSellcr BSno char 9[ priinaty key, BSnane char 201 . Tel char 30;. Person char (201 feedback char '40 1 鼻 /*书号* /車书名*/ 八作者于/ /廉也版社康/ " 由版日期柑

操作系统实验报告

操作系统实验报告 银行家算法 班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗 一、设计题目 加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、设计要求

内容: 编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1)下列状态是否安全?(三个进程共享个同类资源) 进程已分配资源数最大需求数 (状态) (状态) (2)考虑下列系统状态 分配矩阵最大需求矩阵可用资源矩阵 问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配? 三、设计分析 一.关于操作系统的死锁 .死锁的产生 计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序: ●申请资源 ●使用资源 ●归还资源 若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。 在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。 2.死锁的定义 一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。 .死锁的防止 .死锁产生的条件: ●互斥条件

山东大学nachos源码解读

Nachos源码解读 山东大学软件学院 2013级软件工程 哈根

1、从Machine.java开始——Nachos内核启动 (3) 2、Nachos 参数解析、设备创建和Debug方法 (4) 1) Nachos 启动参数解析 (4) 2) Nachos配置文件 (5) 3) Nachos 设备创建 (5) 4) Nachos Debug方法 (5) 3、Nachos 中断简述 (6) 1) PendingIntterrupt 中断处理与Intterupt增加中断调度 (6) 2) Intterupt中断查询 (6) 3) Timer 计时器类 (6) 4) Alarm 类 (7) 4、Nachos 内核线程及调度算法简述 (7) 1) 漫谈TCB (7) 3) ThreadQueue线程队列及调度算法关系 (10) 5、Nachos 文件系统简述 (11) 6、Nachos 用户进程、处理器和指令简述 (12) 1) Nachos 用户程序解析 (12) 2) Nachos 处理器和指令简述 (13) 3) Nachos 系统调用 (14) 7、Nachos 安全管理简述 (14)

1、从Machine.java开始——Nachos内核启动 Nachos的程序执行从Machine.java的main方法开始。主要进行的是处理启动参数、载入配置文件、设置工作目录、安装安全管理器、创建设备、并启动第一块TCB等操作,在TCB启动时会调用AutoGrader的start方法,其中启动了内核。 在AutoGrader的start方法执行时,AutoGrader首先会解析启动命令传入的参数,接着执行初始化操作,然后从配置文件中读取Kernel.kernel的值,构造内核,并且执行内核的初始化方法。紧接着,执行run方法,内含kernel的自检、run方法以及最后的终止。 由于不同project使用的内核不同,所以各个内核 的效果也是不一样的。下面以project1的内核为例 简要说明。 在Kernel抽象类中,会检查Kernel中的静态成员 变量kernel是否为空,并把当前对象赋值给Kernel, 这也决定了内核可以通过Kernel.kernel调用。在构 造器结束后,AutoGrader会执行Kernel的initialize 方法,对于phase1的ThreadedKernel而言,在该 方法中初始化了调度器,文件系统,alarm等。在 执行完initialize方法后,会进入AutoGrader的run 方法,依次执行内核自检、运行、停机操作。 对于phase1的ThreadedKernel而言,run方法 是空的,也就是执行完开机自检后就自动停机了。 开机自检依次KThread、Semaphore以及SynchList 的自检操作。 在phase2中,启动的是UserKernel,由UML图继承关系知,该类继承了ThreadedKernel,在该类的方法体中也多见super关键字,即ThreadedKernel做的事情,UserKernel也做了。初始化过程中,UserKernel还初始化了一个控制台,用来接收屏幕中用户的输入,并且还设置processor的异常处理器(exceptionHandler),用来处理指令周期中中断周期的各类系统调用以及其他中断异常。自检(selfTest)过程中还会接收用户字符,来判断控制台是否正常。run

c#学生信息管理系统实验报告

摘要 本文描述的是基于Windows环境的学生信息管理系统,主要功能模块包括:学生信查询,学生信息管理,学生成绩录入,主要工具Microsoft Visual Studio 2005 设计窗体, SQL server2005建立数据库,实现学校信息管理的各个功能。 本程序提供了管理员权限和用户权限,其中管理员可以对信息进行管理,而用户只可以对信息进行查询,以确保程序的安全性。 本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的描述。 一、需求分析 1系统目标 1 学生信息、课程信息、成绩信息的增加、删除、修改、查询 2 分别设置管理员权限和用户权限 2功能需求分析 本系统的功能需求分析如下: (1)学生信息查询:学生可以根据学号、姓名等进行模糊查询. (2)学生信息管理:主要是用于学生信息更新、插入、删除; (3)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新;3性能需求分析 (1)登录、用户界面需求:简洁、易懂、易用、友好的用户界面。 (2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管 理等。 二总体设计 1设计概述 根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。

把这些模块结合起来组成一个整体。逐一实现各个功能。2系统数据库的设计 1.所用到的数据库中的表信息: adminmsg(管理员表) 列名字段类型长度主/ 外键对应中文名 Userid int4编号Username Nvarchar50姓名Password Nvarchar50密码user(用户表) 列名字段类型长度主/ 外键对应中文名 Userid int4编号Username Nvarchar50姓名Password Nvarchar50密码Studentmsg(学生信息表) 列名字段类型长度主/ 外键对应中文名 Studentid int4Y 学号Studentname Nvarchar 50 姓名Sex Byte 1 性别department Nvarchar 50 所在系speciality Nvarchar50专业Coursemsg(课程信息表) 列名字段类型长度主/ 外键对应中文名 courseid int4Y 课程号coursename Nvarchar 50 课程名称required Nvarchar 10 性质credit int 4 学分Scoremsg(成绩表) 列名字段类型长度主/ 外键对应中文名 Studentno int4Y 学号courseid int 4 Y 课程号score int 4 成绩

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