2014-2015(1)操作系统实验
哈工大《操作系统》实验3

向kernel/printk.c中添加日志打印功能,将以下代码添加到原文件中:
在kernel/fork.c、kernel/sched.c和kernel/exit.c中,找到正确的状态转换点,并添加合适的状态信息,把它输出到log文件之中。
fork.c的修改如下:
exit.c的修改如下:
sched.c的修改如下:
在虚拟机上运行ls -l /var”或“ll /var”查看process.log是否建立,及它的属性和长度;
修改时间片
include/linux/sched.h宏INIT_TASK中定义的:
0,15,15, 分别对应state、counter和priority,将priority值修改,即可实现对时间片大小的调整。
0,15,15, 分别对应state、counter和priority,
priority值修改,即可实现对时间片大小的调整。
在修改时间片将priority由15改为150后,Process 9~20 中Turnaround, Waiting, CPU Burst, I/O Burst变化不大,原因可能是程序中I/O操作占用的时间对于总时间影响的权重过大,导致处理时间体现的并不明显。
或者变化不大的原因是,子进程连续占用cpu的时间要比时间片大很多。
操作系统实验报告银行家算法

五邑大学实验报告操作系统课程实验报告2013~2014年度第1学期院系:计算机学院学号: 11080101姓名:宋蓓蕾任课教师:白明成绩评定:实验一:银行家算法完成日期:2013年12月20日1、实验目的银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。
加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
2、实验内容(1) 设计进程对各类资源最大申请表示及初值确定。
(2) 设定系统提供资源初始状况。
(3) 设定每次某个进程对各类资源的申请表示。
(4) 编制程序,依据银行家算法,决定其申请是否得到满足。
3、算法设计(全部代码)#include <STRING.H>#include <stdio.h>#include <stdlib.h>#include <CONIO.H> /*用到了getch()*/#define M 5 /*进程数*/#define N 3 /*资源数*/#define FALSE 0#define TRUE 1/*M个进程对N类资源最大资源需求量*/int MAX[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};/*系统可用资源数*/int AVAILABLE[N]={10,5,7};/*M个进程对N类资源最大资源需求量*/int ALLOCATION[M][N]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; /*M个进程已经得到N类资源的资源量*/int NEED[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};/*M个进程还需要N类资源的资源量*/int Request[N]={0,0,0};void main(){int i=0,j=0;char flag;void showdata();void changdata(int);void rstordata(int);int chkerr(int);showdata();enter:{printf("请输入需申请资源的进程号(从0到");printf("%d",M-1);printf("):");scanf("%d",&i);}if(i<0||i>=M){printf("输入的进程号不存在,重新输入!\n");goto enter;}err:{printf("请输入进程");printf("%d",i);printf("申请的资源数\n");printf("类别: A B C\n");printf(" ");for (j=0;j<N;j++){scanf("%d",&Request[j]);if(Request[j]>NEED[i][j]){printf("%d",i);printf("号进程");printf("申请的资源数> 进程");printf("%d",i);printf("还需要");printf("%d",j);printf("类资源的资源量!申请不合理,出错!请重新选择!\n");goto err;}else{if(Request[j]>AVAILABLE[j]){printf("进程");printf("%d",i);printf("申请的资源数大于系统可用");printf("%d",j);printf("类资源的资源量!申请不合理,出错!请重新选择!\n");goto err;}}}}changdata(i);if(chkerr(i)){rstordata(i);showdata();}elseshowdata();printf("\n");printf("按'y'或'Y'键继续,否则退出\n");flag=getch();if (flag=='y'||flag=='Y'){goto enter;}else{exit(0);}}/*显示数组*/void showdata(){int i,j;printf("系统可用资源向量:\n");printf("***Available***\n");printf("资源类别: A B C\n");printf("资源数目:");for (j=0;j<N;j++){printf("%d ",AVAILABLE[j]);}printf("\n");printf("\n");printf("各进程还需要的资源量:\n"); printf("******Need******\n");printf("资源类别: A B C\n");for (i=0;i<M;i++){printf(" ");printf("%d",i);printf("号进程:");for (j=0;j<N;j++){printf(" %d ",NEED[i][j]);}printf("\n");}printf("\n");printf("各进程已经得到的资源量: \n"); printf("***Allocation***\n");printf("资源类别: A B C\n");for (i=0;i<M;i++){printf(" ");printf("%d",i);printf("号进程:");/*printf(":\n");*/for (j=0;j<N;j++){printf(" %d ",ALLOCATION[i][j]);}printf("\n");}printf("\n");}/*系统对进程请求响应,资源向量改变*/void changdata(int k){int j;for (j=0;j<N;j++){AVAILABLE[j]=AVAILABLE[j]-Request[j]; ALLOCATION[k][j]=ALLOCATION[k][j]+Request[j]; NEED[k][j]=NEED[k][j]-Request[j];}}/*资源向量改变*/void rstordata(int k){int j;for (j=0;j<N;j++){AVAILABLE[j]=AVAILABLE[j]+Request[j]; ALLOCATION[k][j]=ALLOCATION[k][j]-Request[j]; NEED[k][j]=NEED[k][j]+Request[j];}}/*安全性检查函数*/int chkerr(int s){int WORK,FINISH[M],temp[M];int i,j,k=0;for(i=0;i<M;i++)FINISH[i]=FALSE;for(j=0;j<N;j++){WORK=AVAILABLE[j];i=s;while(i<M){if (FINISH[i]==FALSE&&NEED[i][j]<=WORK){WORK=WORK+ALLOCATION[i][j];FINISH[i]=TRUE;temp[k]=i;k++;i=0;}else{i++;}}for(i=0;i<M;i++)if(FINISH[i]==FALSE){printf("\n");printf("系统不安全! 本次资源申请不成功!\n");printf("\n");return 1;}}printf("\n");printf("经安全性检查,系统安全,本次分配成功。
单片机最后复习 2014-2015(1)end

目标代码;而指令由 CPU 执行,在汇编过程中,产生可执行
的目标代码,完成对数据的运算与处理。 (2)常用的伪指令: ORG END DB DW DS EQU BIT
3、单片机基本程序结构
入口 入口 否 过程 否 入口 P1 条件满足?
是
P2 过程A P3 出口 出口 出口 过程B 条件满足?
是
(a) 顺序结构
1、答案: SP=60H DPTR=5030H
某程序段如下,假设SP=30H,DPTR=4455H。 PUSH DPL PUSH DPH POP 08H 程序执行后,SP = (08H) =
单片机的其他资源
6、引脚 单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟 引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、 20脚)外,还有PSEN、EA、ALE、RESET等引脚。
MCS-51 单片机片内RAM的配置图
特殊功能寄存器名称、 标识符、 地址一览表
返回
返回
注意
数据指针(DPTR):
数据指针为16位寄存器,编程时,既可以按16位 寄存器来使用,也可以按两个8位寄存器来使用,即 高位字节寄存器DPH和低位字节DPL。 DPTR主要是用来保存16位地址,当对64kB外部 数据存储器寻址时,可作为间址寄存器使用,此时, 使用如下两条指令: MOVX A, @DPTR MOVX @DPTR, A 在访问程序存储器时,DPTR可用来作基址寄存 器,采用基址+变址寻址方式访问程序存储器,这条 指令常用于读取程序存储器内的表格数据。 MOVC A, @A+@DPTR
80H 7FH
真正RAM区
00H
MCS-51 单片机片内RAM的配置图
信工学院2014-2015-1课程表

河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
河北北方学院信息科学与工程学院2014/2015第一学期总课表
信工学院课程表第21页。
操作系统实验(一)

操作系统实验年级2014 级专业学号姓名指导教师年月日实验一 Windows任务管理器的使用一、实验目的通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能.二、实验内容启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口.1.分别查看每个选项卡的内容,了解相关参数的含义及其当前内容.2.在“进程”选项卡上单击“查看”菜单,然后单击“选择列”命令.单击要增加显示为列标题的项目,然后单击“确定”.分别了解“进程”选项卡各列的含义及其当前内容.3.为更改正在运行的程序的优先级,可在“进程”选项卡上右键单击您要更改的程序,指向“设置优先级”,然后单击所需的选项.更改进程的优先级可以使其运行更快或更慢(取决于是提升还是降低了优先级) ,但也可能对其他进程的性能有相反的影响.(查看进程管理器,说明按照名字序号前5个进程的主要用途和功能.)4、修改windows服务选项,将windows的远程用户修改注册表的服务设置成禁止. :打开控制面板→管理工具→服务→找到"Remote Registry",双击,启动类型设置为禁用.5、修改windows的磁盘管理并设定配额选项。
设定配额的磁盘格式必须是NTFS,如果你的硬盘是FAT32格式;可通过以下命令:convert 盘符:/fs:ntfs 将某一磁盘分区转为NTFS。
6、修改windows启动选项,将其中的前三个自动启动的选项去掉. :开始→运行→输入msconfig,到启动页.7、修改windows的虚拟内存交换空间.8、修改windows使得windows启动时,显示操作系统列表时间为5秒,并写出启动文件的具体内容. :右键我的电脑→属性→高级→启动和故障恢复的设置→显示列表时间设为5,→点击编辑→列出具体内容,一般是:[boot loader]timeout=0default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect9、查看windows本地安全策略,并修改为定期强制修改密码.写出本地安全策略的审核的内容. :开始→运行→输入gpedit.msc →计算机设置→Windows设置→安全设置→账户策略→密码策略→密码最长存留期设置为需要的天数即可.10、获得此计算机网卡的网络配置及mac地址.开始→运行→输入cmd回车→输入ipconfig /all回车即是.11、在D盘新建一个文件夹,以自己的拼音缩写命名,并利用命令将其映射为I盘,例如为aaa,命令:subst I: d:\aaa.即将c:\aaa映射为I盘. (注:I盘是虚拟盘,不是实际的硬盘)语法subst [drive1:[drive2:}Path}subst drive1:/d参数drive1:指定要为其指派路径的虚拟驱动器.drive2:指定包含指定路径的物理驱动器(如果不是当前的驱动器).Path指定要指派给虚拟驱动器的路径./d删除虚拟驱动器./?在命令提示符显示帮助.注释以下命令在subst 命令中使用的驱动器上无法工作(或不应使用):chkdskDiskcompDiskcopyformatlabelrecoverdrive1 参数必须在lastdrive 命令指定的范围之内.如果没有,subst 将显示下列错误消息:Invalid parameter - drive1:范例若要为路径B:\User\Betty\Forms 创建虚拟驱动器Z,请键入:subst z:b:\user\betty\forms现在,不用键入完整路径,而是通过键入虚拟驱动器号,后跟冒号,即可到达该目录,如下所示:z:winxp中的映射盘符命令:subst另附上软件extrasubst.zip(创建虚拟驱动器)12、通过设备管理器查看系统所有组件配置.包括驱动程序,装载的所有程序,windows组件,硬件组件的IRQ等.13、查看windows的版本及注册信息. :开始→运行→输入winver回车14、利用windows自带的聊天工具,进行局域网内的聊天,并写出详细步骤. 首先启动服务中的Messager服务,Sp2以后版本默认为禁止的,将其设为自动,然后要发消息就开始→运行→输入net send 对方IP地址信息内容.回车即可15、利用命令查看windows进程中每个进程所提供的服务.命令:tasklist /SVC (注:查看svchost进程情况)实验二 Windows进程观测一、背景知识Windows提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。
大学计算机基础教案设计

课程教案(2014 —2015 学年第 1 学期)课程名称:大学计算机基础院(系、部):信息学院教研室(实验室):计算机科学与信息工程系授课班级:14信管3班/4班,注资1班/2班任课教师:李蓉北京物资学院教案(首页)第1章计算机基础知识(4学时)一、教学目的及要求通过本章的学习,让学生了解计算机发展、计算机中各种信息的表示方法,了解计算机系统的组成与工作原理,并对现代信息技术有所了解。
二、知识点分析计算机发展及应用,现代信息技术基础知识,不同进位计数制的转换及数值、字符、多媒体等在计算机中的表示,计算机系统组成及微型计算机系统组成。
三、教学方法及教学手段多媒体讲授+机房讲授。
四、教学内容与教学设计1.1 计算机概述(1)计算机的诞生与发展(2)计算机的分类(3)计算机的应用领域(4)计算机的发展趋势1.2 信息化与信息技术(1)信息化(2)信息技术(3)信息社会中的计算机1.3数据在计算机中的表示(1)数制及其不同进制之间的转换(2)数据存储单位(3)字符、汉字在计算机中的表示1.4 计算机系统(1)计算机硬件系统(2)计算机软件系统1.5微型计算机系统(1)微型计算机系统的组成(2)微型计算机的硬件组成(3)微型机的选购配置(4)微型机的启动五、讨论、思考题、作业思考题:1.计算机的发展经历了哪几个阶段?各阶段主要特征是什么?2.计算机主要应用于哪些领域?3.信息有哪些特征?4.计算机系统是由哪两部分组成的?计算机硬件由哪五部分组成?5.程序设计语言按其发展的先后可分为哪几种?6.源程序都必须经过相应的翻译程序翻译成目标程序后才能由计算机来执行,这种翻译通常有哪两种方法?7.计算机中的信息为何采用二进制表示?8.衡量CPU性能的主要技术指标有哪些?9.RAM和ROM的功能是什么?比较它们的特点与不同之处?第2章操作系统(6学时)一、教学目的及要求通过本章学习使学生了解操作系统的概念,操作系统的分类。
大一计算机实验报告

《大学计算机基础》实验报告(2014-2015学年第1学期)实验成绩:“Ctrl+V”,完成文档的粘贴。
选择“删除”把文档删除(4)对文档进行查找与替换操作。
单机“开始”选项卡中的“查找”选项进行查找,单击“查找替换”选项进行替换(5)练习字符、段落格式的设置;单击右键选择“段落”选项,在段落对话框中修改段落。
在开始选项卡中进行字符设置(6)练习分栏版式的设置;在“页面布局”选项卡中设置分栏(7)练习项目符号、编号的设置;选中要添加项目符号的文本。
单击图标,选择合适的项目符号。
选中要添加项目符号的文本。
单击图标,选择合适的编号。
(8)练习边框、底纹的设置;在页面布局选项卡中进行页面设置如图在“页面布局”选项卡的“页面边框”选项中设置边框和底纹(9)练习页面设置、页眉/页脚的设置;在插入选项卡中设置页眉和页脚(10)练习利用文本框和表格进行复杂版面编排的方法。
在插入选项卡中设置文本框和表格(11)表格的建立和单元格内容的输入;在插入选项卡中插入表格,在“插入表格”对话框中输入表格信息。
插入表格后,单击某单元格,在单元格内输入信息(12)表格的编辑和格式化;选中表格,单击右键选择“表格属性”选项,在表格属性对话框中对表格进行修改。
(13)表格排序和对表格数据进行计算;单击表格中临近数据的左右或上下单元格。
选择“布局”选项卡。
3选择“数据”中的“公式”按钮。
4选择“粘贴函数”下三角按钮。
在函数列表中选择需要的函数。
完成运算(14)表格和边框工具栏的使用。
选中表格,单击右键点击“边框和底纹”,在弹出的对话框中设置边框和底纹实验项目三:Excel使用1、预习要求:Excel的基本概念和操作,Excel图表的制作。
2、实验目的:熟练掌握Excel表格的一些基本操作,熟练掌握Excel图表的制作方法。
3、实验内容及要求:(1)练习Excel工作表的创建和编辑;在“文件”选项卡中进行工作表的创建,在表格窗口中进行编辑。
操作系统实验_实验1课案

广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室 2015年11月11日实验课操作系统成绩程名称实验项进程管理与进程通信指导老师陈康民目名称(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)进程管理(一)进程的创建实验一、实验目的1、掌握进程的概念,明确进程的含义2、认识并了解并发执行的实质二、实验内容1、编写一段程序,使用系统调用fork( )创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。
试观察记录屏幕上的显示结果,并分析原因。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
三、实验步骤1、编写一段程序,使用系统调用fork( )创建两个子进程。
代码:#include <stdio.h>main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0) putchar('b');else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0) putchar('c');else putchar('a');}}运行结果:bca,bac, abc ,……都有可能。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
代码:#include <stdio.h>main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0)for(i=0;i<10;i++)printf("daughter %d\n",i);else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0)for(i=0;i<10;i++)printf("son %d\n",i);elsefor(i=0;i<10;i++)printf("parent %d\n",i);}}结果:parent…son…daughter..daughter..或parent…son…parent…daughter…等四、分析原因除strace 外,也可用ltrace -f -i -S ./executable-file-name查看以上程序执行过程。
实验一 Windows 7操作系统应用实训

2014-2015学年第一学期课程名称:计算机文化基础学院:机械学院班级:机械B1431班授课教师:张彤芳实训项目:Windows 7操作系统应用实训实训时间:第一周至第三周实训地点:实208-1实训课时:6时同组成员:无实训目的:1、学习Windows 7操作系统的相关知识。
2、学会安装Windows 7操作系统。
实训设备:计算机、Windows 7操作系统光盘实训原理:1、Windows 7系统的启动与退出。
2、窗口、菜单和常用工具栏的操作。
3、控制面板操作。
4、安装Windows 7操作系统。
实训内容:任务一、鼠标与键盘操作1、鼠标包括左键、右键与滚轮。
2、鼠标操作分为单击、双击、右击、拖曳。
3、键盘分为功能键区、编辑键区、数字键区、主键区。
任务二、Windows 7操作系统的桌面基本操作1、图标。
2、快捷方式图标。
3、任务栏。
4、开始按钮。
任务三、新建文件夹1、新建文件夹。
2、打开文件夹。
3、复制文件夹。
4、删除文件夹。
5、选定文件夹。
6、重命名文件夹。
任务四、附件的使用1、画图工具。
2、计算器工具。
3、记事本工具。
任务五、Windows 7窗口操作1、窗口依次包括:边框、标题栏、地址栏、工具栏、菜单栏、工作区、滚动条、常见任务等。
2、改变窗口的排列方式。
3、改变窗口大小。
任务六、控制面板操作1、添加、删除程序。
2、设置时间和日期。
3、设置声音。
4、设置显示。
5、设置桌面小工具。
任务七、屏幕保护设置1、设置屏幕保护。
2、设置主题和外观。
3、设置分辨率。
实训小结:通过本次实验,我学会了什么?。
操作系统实验报告

武汉理工大学学生实验报告书实验课程名称操作系统开课学院计算机科学与技术学院指导老师姓名刘军学生姓名李安福学生专业班级软件sy1201 2014 — 2015 学年第一学期《操作系统》实验教学大纲课程编号:课程名称:操作系统/Operating System实验总学时数:12学时适应专业:计算机科学与技术、软件工程承担实验室:计算机科学与技术学院实验中心一、实验教学的目的和任务通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。
二、实验项目及学时分配三、每项实验的内容和要求:1、Linux键盘命令和vi要求:掌握Linux系统键盘命令的使用方法。
内容:见教材p4, p9, p40, p49-53, p89, p1002、Linux下的C编程要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。
内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。
3、SHELL编程和后台批处理要求:掌握Linux系统的SHELL编程方法和后台批处理方法。
内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。
(2) 将上面SHELLL程序后台运行。
观察原C程序运行时输入输出情况。
(3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。
4、Linux系统调用使用方法。
要求:掌握Linux系统调用使用方法。
内容:学习使用time, ctime, sleep, exit等Linux系统调用使用方法。
5、Linux系统进程控制要求:掌握Linux系统中进程控制原语fork的使用方法。
内容:设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。
以上每项实验均要求每人一个Linux联机终端独立完成。
软件工程-实验三

/**
*判断是否是三角形。是返回ture;不是返回false
*/
public static boolean isTriangle(Triangletriangle){
boolean isTriangle=false;
// 判断边界,大于0小于或等于Long.MAX_VALUE,出界返回false
if((triangle.lborderA > 0&& triangle.lborderA<= Long.MAX_VALUE/2)
(2)JUnit的特征
A、使用断言方法判断期望值和实际值差异,返回Boolean值。
B、测试驱动设备使用共同的初始化变量或者实例。
C、测试包结构便于组织和集成运行。
D、支持图型交互模式和文本交互模式。
(3)JUnit框架组成
A、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。
(一)相关概念
黑盒测试——把测试对象看作一个封闭的盒子,针对程序的功能来设计测试数据。
白盒测试——把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的。
回归测试——软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用。
单元测试——是最小粒度的测试,以测试某个功能或代码块。一般由程序员来做,因为它需要知道内部程序设计和编码的细节。
F、JUnit Framework中的出错异常(AssertionFailedError)。
JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。(可参考《程序员》2003-6期)。
哈工大《操作系统》实验1

(5)重新编写一个setup.s,然后将其中的显示的信息改为:“Now we are in SETUP”。
再次编译,重新用make命令生成BootImage,结合提示信息和makefile文修改build.c,具体将setup.s改动如下:mov cx,#27mov bx,#0x0007 ! page 0, attribute 7 (normal)mov bp,#msg1mov ax,#0x1301 ! write string, move cursorint 0x10dieLoop:j dieLoopmsg1:.byte 13,10,13,10.ascii "Now we are in SETUP".byte 13,10,13,10将build.c改动如下:if(strcmp("none",argv[3]) == 0)//添加判断return 0;if ((id=open(argv[3],O_RDONLY,0))<0)die("Unable to open 'system'");// if (read(id,buf,GCC_HEADER) != GCC_HEADER)// die("Unable to read header of 'system'");// if (((long *) buf)[5] != 0)// die("Non-GCC header of 'system'");for (i=0 ; (c=read(id,buf,sizeof buf))>0 ; i+=c )if (write(1,buf,c)!=c)die("Write call failed");close(id);fprintf(stderr,"System is %d bytes.\n",i);if (i > SYS_SIZE*16)die("System is too big");return(0);(6)验证:用make是否能成功生成BootImage,运行run命令验证运行结果。
河北大学2014-2015年春学期选课须知与操作说明

《河北大学本科生选课须知》《本科生网上选课操作说明》河北大学教务处河北大学本科生选课须知一、选课原则1.《河北大学本科专业人才培养方案》是选课的重要依据,学生应在了解本专业人才培养方案的基础上,根据《班级课表》(参考课表),结合自己的实际情况,在导师的指导下进行选课。
2.学生每学期选课不超过30学分(含实验、实习、实践课程,不含重修学分),每学期所取得学分原则上不低于15学分(毕业学期除外)。
3.选课时首先要保证必修课,再考虑选修课;对于有选课限制的课程,应满足选课限制条件;对于有先修要求的课程,应先修读先修课程;同一课程理论课和实验课分别开课的,应同时选修。
4.上课时间冲突的课程只能选修其中一门课程。
5.修完本学期选读的课程,取得规定学分且平均学分绩点达到4.0以上(含4.0)学有余力的学生,可在下学期初履行相应审批手续后选修高一年级课程,但选修课程一定要符合所属年级专业人才培养方案,其它情况不允许提前修读高年级课程。
6.需要多学期修读才能完成的课程(如大学数学、大学外语、大学体育等)应连续选修。
7.选修通识通选课应满足本专业人才培养方案中的修读要求,且每学期最多选修2门。
8.预选结束后,对于选课人数较多的课程(或课堂),教务处将与开课单位协商,是否增加课容量。
正选结束后,对于选课人数不足开课班容量基数要求的课程(或课堂),原则上不予开课。
正选结束后,教务处将公布停开课程(或课堂)情况,在补选阶段,学生应根据公布停开课程(课堂)情况改选其它课程(课堂)。
9.课程一旦最终选定,学生必须参加该课程的学习和考核,无故不参加课程学习和考核者,按旷课、旷考处理,该课程成绩记为“0”分,并记入成绩单;未选中的课程,学生不能参加该课程的学习和考核,其成绩无效。
二、选课阶段选课分为预选、正选、补选重修三个阶段。
1.预选阶段。
学生一定要参加预选,只有参加预选的课程,才有资格在正选阶段进行抽签。
预选阶段可以选课,也可以退课。
操作系统实验报告_7

操作系统实验报告学院:计算机与通信工程学院专业:计算机班级:学号:姓名:指导教师:成绩:2014年12月25日实验一线程的状态和转换(5分)1 实验目的和要求目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。
要求:(1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码;(2)修改EOS的源代码,为线程增加挂起状态。
2 完成的实验内容2.1 EOS线程状态转换过程的跟踪与源代码分析(分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等)EOS定义的线程状态在ps/psp.h的THREAD_STATE枚举中,包含Zero(线程状态转换过程中的中间状态)、Ready(就绪)、Running(运行)、Waiting(等待)、Terminated (结束)。
线程在不同的状态间相互转换时,通过调用ps/sched.c文件中的下面几个函数完成:PspReadyThread(将指定线程插入其优先级对应的就绪队列的队尾,并修改其状态码为Ready)、PspUnreadyThread(将指定线程从就绪队列中移除,并修改其状态码为Zero)、PspWait(将当前运行线程插入指定等待队列的队尾,并修改状态码为Waiting,然后执行线程调度)、PspUnwaitThread(将阻塞线程从其所在的等待队列中移除,并修改其状态码为Zero)、PspWakeThread(调用PspUnwaitThread 函数使线程脱离阻塞状态,然后调用PspReadyThread函数使线程进入就绪状态,从而唤醒被阻塞的线程)、PspSelectNextThread(使被抢先的线程从运行状态进入就绪状态,并决定哪个就绪线程应该进入运行状态)。
实验中通过对上述函数添加断点,通过EOS的loop命令观察线程状态的变化、使用pt命令查看各线程状态。
计算机远程监控系统 实验报告

通达学院2014/2015 学年第 1 学期课程设计实验报告模块名称远程计算机监控系统专业通信工程学生班级70学生学号11007034学生姓名指导教师目录1.1任务内容: (4)1.2应完成内容 (4)二.需求分析 (4)2.1用户需求 (5)2.2可采用的技术方案 (5)2.3可行性技术研究 (5)三.流程图设计 (6)3.1事件驱动的程序设计 (6)3.2...用户界面对象对象介绍. (8)四.程序设计 (10)4.1...绑定的线程函数C LIENT T HREAD的实现. (10)4.2...鼠标键盘模拟消息的源代码部分. (12)五.设计小结 (17)计算机远程监控系统一.设计要求1.1 任务内容:基于Windows的远程控制软件开发毕业设计的主要任务是要求做出从系统角度计的远程控制模式,并制作相应实用软件。
采用服务器(Server),客户端(Client)模式,使用Socket编程的基本原理及Windows的消息系统。
实现基本的远程控制要求,界面新颖友好。
用VC开发!要求:1).远程控制模式架构,如基于主从模式;2).远程控制功能实现,如开关机,远程监视;3).远程控制安全考虑;4).远程控制实现平台与技巧;5).远程控制软件实现,要求至少能在两台电脑上正常运行;6).界面新颖友好。
1.2应完成内容1).远程控制模式架构,如基于主从模式;2).远程控制功能实现,如开关机,远程监视;3).远程控制安全考虑;4).远程控制实现平台与技巧;5).远程控制软件实现,要求至少能在两台电脑上正常运行;6).界面新颖友…二.需求分析计算机技术支持的业务运营支撑系统是随着市场经营的需要不断得到完善和提高的。
系统功能上经历了从最初的资料录入管理到生产派单管理、生产流程管理、统计管理、业务组织管理,一直到决策支持管理的过程.但是因应系统建设的需要,我们必须给出一个清晰的合理的业务定义——需求分析就是一个比较合适的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验项目名称:进程的同步(实验一)
1、实验目的
(1) 掌握进程和线程基本概念和属性;
(2) 掌握用PV操作解决并发进程的同步问题;
(3) 掌握用于同步的信号量初值的设置;
(4) 掌握如何处理共享资源的直接制约关系。
2、实验内容
(1) 设计一个模拟若干售票网点的售票程序。
界面可以参考图1。
还应设计多个后台售票线程并发运行。
图1售票
(2) 模拟:桌上有一只盘子,每次只能放入一个水果。
爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,一个女儿专等吃盘子里的苹果,一个儿子专等吃盘子里的桔子。
只要盘子空则爸爸或妈妈都可以向盘子放一个水果,仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。
放-取水果的几种情况如图2(a)~(f)所示,可以参照进行设计。
(a)盘子空时取水果 (b)父亲放入苹果
(c) 儿子取水果 (d) 女儿取水果
(e)儿子取走桔子 (f)盘子满时放水果
图2 放-取水果
(3) 自选其它能反映进程互斥问题的应用。
实验项目名称:处理机调度(实验二)
1、实验目的
(1) 掌握几种处理机调度算法的基本思想和特点;
(2) 理解并发与并行的区别;
(3) 比较几种算法的特点。
2、实验内容
编写程序模拟处理机调度,参照图3。
(1) 时间片轮转
(2) 动态优先权调度
(3) 高响应比优先调度
图3 模拟处理机调度
实验项目名称:银行家算法(实验三)
1、实验目的
银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。
加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
2、实验内容
(1) 设计进程对各类资源最大申请表示及初值确定。
(2) 设定系统提供资源初始状况。
(3) 设定每次某个进程对各类资源的申请表示。
(4) 编制程序,依据银行家算法,决定其申请是否得到满足。
具体设计可参照图4(a)~(c) 进行。
(a) 某时刻系统资源情况
(b)测试安全性
(c)安全序列
图4银行家算法
实验项目名称:存储器管理(实验四)
1、实验目的
存储器是计算机系统的重要组成部分。
本实验要求用高级语言编写和调试一个简单的没有虚拟内存的系统中的内存管理—动态分区管理程序。
加深理解内存的分配与回收,分配与回收的策略、地址映射、内存保护等概念,并掌握动态分区这种内存管理的具体实施方法。
2、实验内容
设计一个模拟内存管理中采用“动态分区”方式的存储器管理程序。
动态申请一段内存,对该段内存进行“动态分区”方式的管理,选择至少一种分配策略,建立相应的数据结构(如内存分配表,内存空闲表等),可以动态申请和释放内存空间,给出当前“内存”的使用情况。
可以参照图5(a)~(c)进行设计。
(a)已创建若干进程
(b)撤消进程对话框
(c) 某时刻进程占用内存状态
图5动态分区管理
实验项目名称:设备管理(实验五)
1、实验目的
了解设备管理的功能和任务,理解SPOOLing的概念、系统组成和特点。
本实验要求用高级语言编写和调试一个简单的模拟利用SPLOOLing技术进行输入/输出的程序。
加深理解将一台物理I/O设备虚拟为多台逻辑设备,同时允许多个用户共享一台物理设备的具体实施方法。
2、实验内容
模拟一个利用SPOOLing技术的输入/输出管理,建立相应的数据结构及缓冲空间,给出当前系统中运行进程的设备使用情况和等待队列的情况。
实验项目名称:文件管理(实验六)
1、实验目的
了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。
实验要求用高级语言编写和调试一个简单的模拟文件管理程序。
加深理解有关盘块的分配与回收、目录管理等的具体实施策略。
2、实验内容
模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。
建立相应的数据结构(如:位示图等),模拟盘块管理。
可以参照图6界面进行设计。
图6。