广东海洋大学操作系统.实验(2)
实验表二 广东海洋大学实验项目表.doc
广东海洋大学实验项目表
实验
项目
信息
实验序号
1
实验名称
戴维宁定理与诺顿定理
开设实验室
电工
实验类别
□演示型□操作型√验证型□综合型□设计型□研究创新型
实验类型
□公共课√学科基础□专业基础□专业课
实验要求
√必做□选做
实验总时数
2
每周分配
2
面向专业
机制பைடு நூலகம்
实验班级
1061-3
实验指导书
√有□无
实验批数
2
设备性质
通用电工实验装置
TH-TD
20
√公用□专用
□公用□专用
□公用□专用
□公用□专用
□公用□专用
□公用□专用
主
要
实
验
材
料
一次性材料:非一次性材料:合计:(单位:元)
材料名称
型号规格
数量
单位
消耗额(元)
材料性质
戴维南定理实验板
DGJ-05
20
块
□一次性√非一次性
□一次性□非一次性
□一次性□非一次性
□一次性□非一次性
□一次性□非一次性
□一次性□非一次性
□一次性□非一次性
□一次性□非一次性
备注
主讲教师签名: 实验室主任签名:
系主任签名: 日期: 年 月 日
备注:此表一式四份,设备处、教务处、学院、实验室各存一份,签名须手写。
每批人数
80
每批组数(实验套数)
20
每组人数
4
每组是否同时
√是□否
实验者类别
□研究生√本科□教师
广东海洋大学_计算机科学与技术_数据库实验2
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验2数据的查询、更新课程名称数据库系统原理课程号1620072学院(系) 信息学院专业计算机科学与技术班级 1113学生姓名学号实验地点科技楼实验日期04-12实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。
sp_addtype char20,'varchar(20)',null2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。
(1) 建立“学生课程数据库”数剧库:CREATE DATABASE学生课程数据库ON PRIMARY(NAME=Student_dat,FILENAME='D:\学生课程数据库.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME=Student_log,FILENAME='D:\学生课程数据库.ldf',SIZE=5MB,FILEGROWTH=10%)GO(2)创建学生表CREATE TABLE Student(Sno INT PRIMARY KEY,Sname CHAR(10),Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),Sage SMALLINT CHECK(Sage BETWEEN 15 AND 30),Sdept CHAR(20));插入数据:INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95001','李敏勇','男',20,'CS') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95002','刘晨','女',19,'IS')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95003','王敏','女',18,'MA')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('95004','张立','男', 18 ,'IS');(2)创建课程表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(10)NOT NULL,Cpno CHAR(4),Credit INT CHECK(Credit>=0 AND Credit<=100), Teacher char20);插入数据:INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(1,'数据库',5, 4,'王芳')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(2 ,'数学',NULL,2,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(3 ,'信息系统',1,4,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher) VALUES(4,' 操作系统', 6, 3,'高升')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(5 ,'数据结构',7, 4,'宋明')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(6 ,'数据处理',NULL,2,'张彬')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(7,'Pascal语言',6,4,'李磊');(2)创建学生选修表CREATE TABLE SC(Sno INT FOREIGN KEY REFERENCES Student(Sno),Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno), Grade INT CHECK( Grade>=0 AND Grade<=100 ), PRIMARY KEY(Sno,Cno));插入数据:INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','1',92)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','2',85)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','3',88)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95002','2',90)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95003','2',55)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95004','2',70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95030','谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分UPDATE SCSET Grade=98WHERE SC.Sno IN(SELECT SC.Sno FROM Student,SCWHERE Student.Sno = SC.Sno AND Student.Sname ='李敏勇')ANDo IN(SELECT o FROM SC,CourseWHERE o = o AND ame='数据库')3) 删除学生表Student中谢非的记录并保存DELETE StudentWHERE Student.Sname ='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录? DELETE StudentWHERE Student.Sname ='李敏勇'不能删除李敏勇学生的记录:“DELETE 语句与REFERENCE 约束"FK__SC__Sno__07020F21"冲突。
2022年广东海洋大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)
2022年广东海洋大学计算机科学与技术专业《操作系统》科目期末试卷A(有答案)一、选择题1、文件系统采用多级目求结构的目的是()。
A.减少系统开销B.节约存储空间C.解决命名冲突D.缩短传送时间2、用户在删除某文件的过程中,操作系统不可能执行的操作是A.删除此文件所在的目录B.删除与此文件关联的目录项C.删除与此文件对应的文件控制块D.释放与此文件关联的内存缓冲区3、有若干并发进程均将一个共享变量count的值加1 次,那么有关count中的值说法正确的是()。
1)肯定有不止确的结果2)肯定有止确的结果3)若控制这些并发进程互斥执行count加1操作,count中的值正确A.1)和3)B.2)和3)C.3)D.1)、2)、3)的说法均不正确4、下列关于管程的叙述中,错误的是()。
A.管程只能用于实现进程的互斥B.管程是由编程语言支持的进程同步机制C.任何时候只能有一个进程在管程中执行D.管程中定义的变量只能被管程内的过程访问5、下面关于管程的叙述错误的是()。
A.管程是进程的同步工具,解决信号量机制大量同步操作分散的问题B.管程每次只允许一个进程进入管程,C.管程中V操作的作用和信号量机制中V操作的作用相同D.管程是被进程调用的,是语法范围,无法创建和撤销6、若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的操作是()。
I.处理越界错误 II.置换页面 II1.分配内存A.仅I、IIB.仅I、IIIC. 仅I、IIID.I,II和III7、在空白表中,空白区按其长度由小到大进行查找的算法称为()算法。
A.最佳适应B.最差适应C.最先适应D.先进先出8、操作系统提供了多种界面供用户使用,其中()是专门供应用程序使用的一种界面。
A.终端命令B.图形用户窗C.系统调用D.作业控制语言9、下列选项中,不是操作系统关心的主要问题的是()。
A.管理计算机裸机B.设计、提供用户程序与计算机及计算机硬件系统的接口C.管理计算机中的信息资源D.高级程序设计语言的编译10、通道又称I/O处理器,用于实现()之间的信息传输。
【系统】广东海洋大学操作系统历年考题及答案
【关键字】系统广东海洋大学 —— 学年第 学期《操作系统》课程试题课程号:√ 考试√ A 卷√ 闭卷1、判断题(10小题,每小题1分,共10分)1. 进程的并发性是多个进程同时运行。
( X ) 答案:错 难度系数:C 知识点:进程2. 实时系统中的进程调度,通常采用抢占式的优先数高者优先调度算法。
( √ ) 答案:对 难度系数:C 知识点:操作系统概念3. 因为临界资源一次只能允许一个进程使用,所以临界资源不能共享。
( X ) 答案:错 难度系数:B 知识点:临界资源4. Spooling 系统就是脱机I/O 系统。
( √ ) 答案:对 难度系数:C 知识点:Spooling5. 一旦出现死锁, 所有进程都不能运行。
( X ) 答案:错 难度系数:C 知识点:死锁6. 分区式管理中内存的保护通常是由硬件实现的。
( X ) 答案:错 难度系数:B 知识点:内存分区式管理7. 段页式系统中,以页为单位管理内存空间,以段为单位管理地址空间。
( √ ) 答案:对 难度系数:C 知识点:内存段式式管理 8. 流式文件是指无结构的文件。
( √ ) 答案:对 难度系数:C 知识点:文件 9. 一个运行的进程用完了分配给它的时间片后,它的状态变为阻塞。
( X ) 答案:错 难度系数:B 知识点:进程状态10. 采用多道程序设计的系统中,系统的程序道数越多,系统的效率越高。
( X ) 答案:错 难度系数:B 知识点: 多道程序2、 选择题(10小题,每小题2分,共20分) 1.(D )不是基本的操作系统。
A 、批处理操作系统B 、分时操作系统C 、实时操作系统D 、网络操作系统答案:D 难度系数:C 知识点:操作系统概念2.处理器执行的指令被分成两类,其中有一类称为特权指令,它只允许( C )使用。
A 、操作员 B 、联机用户 C 、操作系统 D 、目标程序答案:C 难度系数:C 知识点:操作系统特权指令3.进程所请求的一次打印输出结束后,将使进程状态从(D ) A 、运行态变为就绪态 B 、运行态变为等待态 C 、就绪态变为运行态 D 、等待态变为就绪态班级:计科1141姓名:阿稻学号:加白纸张密封 线答案:D 难度系数:B 知识点:进程状态4.分页式保存管理中,地址转换工作是由(A )完成的。
广东海洋大学_计算机科学与技术_汇编实验1
实验1 DEBUG的使用实验1、进入Debug环境,完成下列步骤,熟悉DEBUG指令。
1、用R命令查看寄存器的值,将AX的值修改为1,BX的值修改为10。
2、用D命令查看内存0:0200处的内容。
3、用E命令将”I am a student!!”写入内存0:0200处。
用D命令查看是否写入成功。
4、用A 命令向内存0:0210处写入汇编指令MOV AX,1234MOV BX,0158ADD AX, BX(注意:在一般的PC机中,DOS方式下,DOS和其他合法的程序一般都不会使用0:200~0:2FF(0:200h~0:2FFh)的256 个字节的空间。
所以,我们使用这段空间是安全的。
)5、使用U命令反汇编,并用T命令执行指令,查看执行后的结果,3条指令执行后AX的值为多少?实验2、使用Debug命令设置下列寄存器及存储器的内容(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H.,用汇编(A)、单步执行(T)等命令求解下列7个问题的答案,记录每条指令执行后AX的值并分析每条指令中源操作数使用的是何种寻址方式。
(1)MOV AX,1200H(2) MOV AX,BX(3) MOV AX,[1200H](4) MOV AX,[BX](5) MOV AX,1100[BX](6) MOV AX,[BX][SI](7) MOV AX,1100[BX][SI]各种寻址方式的特点:(1)立即寻址方式:操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段;(2)寄存器寻址方式:操作数在寄存器中,指令指定寄存器号;(3)直接寻址方式:操作数的有效地址包含位移量的一种成分,其值就存放在中指令的操作码之后;(4)寄存器间间接寻址:操作数的有效地址只包含基址寄存器内容或变址寄存器内容的一种成分;(5)寄存器相对寻址方式:操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和,所以有效地址由两种成分组成;(6)基址变址寻址方式:操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和,所以有效地址由两种成分组成;(7)相对基址变址寻址方式操作数的有效地址是一个基址寄存器和一个变址寄存器的内容和指令中指定的位移量之和,所以有效地址由三种成分组成。
广东海洋大学数据库实验一报告
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验1数据库及其对象创建与管理课程名称数据库原理及应用课程号 16732201学院(系) 信息学院专业信息管理与信息系统班级信管1111学生姓名陈梓哲学号201111671106 实验地点海安A705 实验日期2013/10/16实验一数据库及其对象的创建与管理一、实验目的1、掌握用SSMS或Transact-SQL语句创建、查看、修改、删除数据库的方法;2、掌握数据库的备份和恢复方法;3、掌握数据库的分离和附加方法;4、掌握用SSMS或Transact-SQL语句创建、修改、删除表及向其添加数据的方法。
二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用SSMS在“对象资源管理器”中完成如下任务:(1)(2)再修改学生课程数据库Student 的主数据文件的大小,使其扩大两倍,然后查看扩大后的数据库属性。
2、用SSMS ,在数据库Student 中:(1)创建如下四个表,并设置相关的约束条件:SS表:Course表:SC表:Teacher表:(2) 用SSMS修改将刚才所创建表:①在Course表中插入如下两列:②将SC 表中列Grade 的类型改为smallint③在S 表中创建CHECK 约束,约束名为Sagechk ,要求实现年龄在15~45取值④在Course 表中创建外键约束,约束名为Fk_Tno ,要求实现Course 表中的Tno 必须参照Teacher 表的Tno 取值。
⑤删除Course 表中Tno 列(3)删除将刚才所创建Teacher 表(4)向表插入以下数据3、用SSMS 方法完成如下数据库的分离和附加:(1)分离Student 数据库 ⑵附加Student 数据库4. 用SSMS 方法完成如下数据库的备份和恢复: ( 选作实验)(1)备份数据库①创建备份设备,其名称为bk_Student0,保存文件为D:\Student0.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student0中。
广东海洋大学学生实验报告书(学生用表)
实验名称带返工的产品制造模型课程名称课程号学院(系) 专业班级学生姓名学号实验地点实验日期实验名称:带返工的产品制造模型实验目的:通过这个模型学习基本的排队系统建模的方法,同时练习和熟悉Flexsim的基本操作和基本概念。
实验步骤:1创建对象:从Flexsim的基本界面的对象库中用鼠标拖动一个Source、两个Queue、四个Processor和一个Sink对象到模型窗口并布置好位置和重新命名各对象名字。
2连接对象:按照产品流动的路径,从Suorce开始两两连接对象,产品将沿着连接在对象间流动。
(1)连接Source到Queue1;(2)连接Queue1分别到Processor1、Processor2和Processor3;(3)连接Processor1、Processor2、Processor3到Queue2;(4)连接Tester到Sink;(5)连接Tester到Queue1;3设置产品到达间隔时间:在Source对象的属性窗体里设置产品的到达时间间隔,它服从5秒的指数分布,在弹出的属性窗体中设置产品到达时间为exponential(0,5,1).4设置产品类型和颜色:在Suorce的属性窗体中,选择触发器Triggers页,选择在创建产品是的类型和颜色。
5设置Queue1的最大容量和输出路径:设置Queue1的最大容量为10000,在Flow页,在发送到端口Send To Port字段的下拉列表选择By Expression,并设置输出路径。
6设置加工时间:设置三台机器的加工时间服从均值为10秒的指数分布。
在Processor1的属性窗体,在Process time字段的下拉列表中选择Statictical Distribution,在出现的代码模板中编制Statistical Distribution:exponential(0,10,1)。
对Processor2和Processor3做出同样的设置。
广东海洋大学操作系统.实验(3)
班级:计科1141 学号:201411621110 姓名:邓超荣实验三进程间通信(管道)实验目的了解管道(pipe)在进程通信中所起的重要作用。
实验内容父子进程通过两条管道进行通信。
父进程从键盘读取一系列整数、每读取一个整数就将这个整数通过管道1传送给子进程,直到得到的整数是-1为止。
儿子进程将读到的数据进行处理(处理的方式可以包括但是不限于:求和、插入法排序、冒泡法排序等,学生自定义),并将结果通过管道2传递给父进程进行显示。
请编写完成上述任务的程序,观察实验结果,(对管道的使用以及所涉及到的进程并发执行时的同步、阻塞、唤醒、进程终止等行为控制)进行详细分析。
1#include <stdio.h>2#include <unistd.h>3#include <sys/types.h>4#include <string.h>5int main ()6{7 int fd1[2];//定义fd1数组8 int fd2[2];//定义fd2数组9 pid_t pid;1011 pipe(fd1);//将数组fd1存放到管道112 pipe(fd2);//将数组fd2存放到管道213 pid = fork();//复制原进程,生成一个子进程14 if (pid == 0)//先执行子进程15 {16 close(fd1[1]);//关闭管道117 close(fd2[0]);//关闭管道218 int num;//定义num存放输入的数值19 int sum = 0;//初始化sum,存放父进程读入的一系列整数的和20 char str[10];//定义一个长度为10的数组,存放从管道1读入的整数21 while(read(fd1[0], str, 100)>0)//通过管道1把数据传给子进程22 {23 sscanf(str, "%d", &num);//输入num,存放到str24 printf("receive a number : %d\n", num);//输出正数25 fflush(stdout);//刷新缓存26 sum += num;//整数相加27 }28 close(fd1[0]);//关闭管道129 sprintf(str, "%d", sum);30 write(fd2[1], str, strlen(str));//将sum写入到str并通过管道2传送31 close(fd2[1]);//关闭管道232 _exit(0);//退出33 }34 else//执行父进程35{36 int n;37 char str[10];38 close(fd1[0]);39 close(fd2[1]);40 while(1)41 {42 scanf("%d", &n);//输入整数43 if(n == -1)break;//如果子进程得到的数据为-1,则停止接受数据,并对数据进行相加处理44 sprintf(str, "%d\n", n);45 write (fd1[1], str, strlen (str));//将管道1的所有整数写入46 }47 close(fd1[1]);48 read(fd2[0], str, 100);//读出求和结果并通过管道2传给父进程49 close(fd2[0]);//关闭管道250 printf("\nsum is %s\n", str);51 fflush(stdout);52 _exit(0);53 }54 return 0;55 }该程序分析如下:第7/8行分别定义两个数组,第11/12行分别把两个数组存放在两个管道中,其中fd1存放到管道1,fd2存放到管道2,第13行复制父进程,生成子进程,第14-30行先执行子进程,父进程阻塞。
广东海洋大学_计算机科学与技术_汇编实验2
实验2 建立运行汇编语言程序实验目的:1. 熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。
2. 编写源程序,掌握汇编语言程序格式。
3. 掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。
实验内容:在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。
1、有3个内存单元x, ,y z,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+ 2z -y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。
由图中红色部分可看出: 标志位从NC变为CY,即进位值从0变为1.2、写一个完整的源程序,用DEBUG调试运行,查看运行结果。
DATA SEGMENTAUGEND DD 99251SUM DD?DATA ENDSEXTRA SEGMENTADDENG DQ-15962EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:EXTRASTART:MOV AX,DATAMOV DS,AXMOV DX,EXTRAMOV ES,DXMOV AX,WORD PTR AUGENDMOV DX,WORD PTR AUGEND+2ADD AX,WORD PTR AUGENDADC DX,WORD PTR AUGEND+2MOV WORD PTR SUM,AXMOV WORD PTR SUM+2,DXMOV AH,4CHINT 21HCODE ENDS3、完成实验教程第一章的内容。
学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。
实验报告要求:1、将程序1的调试运行查看结果的过程截图,并分析标志位值的变化情况。
解: 如上图所示.2、分析一个完整的汇编语言源程序应由哪些部分组成?解: 一个完整的汇编语言源程序由: 数据段,代码段.程序指令,中断指令四部分组成.3、总结汇编源程序从编写到执行的过程。
2022年广东海洋大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)
2022年广东海洋大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、下列关厂索引表的叙述中,正确的是()。
A.索引表中每个记录的索引项可以有多个B.对索引文件存取时,必须先查找索引表C.索引表中含有索引文件的数据及其物理地址D.建立索引表的i1的之,是减少存储空间,2、在磁盘上容易导致存储碎片发生的物理文件结构是()A.链接B.连续C.索引D.索引和链接3、下列关于线程的叙述中,正确的是()。
I.在采用轮转调度算法时,一进程拥有10个用户级线程,则在系统调度执行时间上占用10个时间片II.属于同·个进程的各个线程共享栈空间III.同一进程中的线程可以并发执行,但不同进程内的线程不可以并发执行IV.线程的切换,不会引起进程的切换A. 仅I、II、IIIB. 仅II、IVC.仅II、IIID.全错4、银行家算法在解决死锁问题中用于()。
A.预防死锁B.死锁避免C.检测死锁D.解除死锁5、进程和程序的本质区别是()A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的6、()存储管理方式提供一维地址结构。
A.分段B.分页C.分段和段页式D.以上都不对7、下面有关外层页表的叙述中错误的是()。
A.反映在磁盘上页面存放的物理位置B.外层页表是指页表的页表C.为不连续(离散)分配的页表再建立一个页表D.若有了外层页表,则需要一个外层页表寄存器就能实现地址变换8、下列选项中,操作系统提供给应用程序的接口是()。
A.系统调用B.中断C.库函数D.原语9、计算机开机后,操作系统最终被加载到()。
A.BIOSB.ROMC.EPROMD.RAM10、下列关于SPOOLing技术的叙述中,错误的是()A.需要外存的文持B.需要多道程序设计技术的支持C.可以让多个作业共享一台独占设备D.由用户作业控制设备与输入/输出之间的数据传送11、下列有关设备独立性的说法中,正确的是()。
广东海洋大学微机原理与接口实验二
实验二:系统中断实验
系统8259的设置如下:
①两片8259A的CAS0~CAS2同名端互联,从片8259A的INT与主8259A的IR2
中断请求输入连接;
②主片8259A的端口地址在020H~03FH范围内有效,从片8259A的端口地址在
0A0H~0BFH范围内有效。
由于将芯片的A0与地址总线的最低位连接,所以两
个芯片的有效地址分别为20H、21H和A0H、A1H;
③主从片8259A的中断触发极性都为边沿(上升沿)有效;
④选择为全嵌套方式,即IR0最高、IR1、IR2(从片的IR0~IR7)、然后是主片
的IR3~IR7。
⑤主、从芯片均采用非缓冲结构,主片的SP/EN端接高电平,从片的SP/EN端接
低电平;
⑥设定0~7级对应的中断号为08H~0FH,8~15级对应的中断号为70~77H。
具体连接图以及相关的中断向量见指导书121页。
实验要求:
1、必做:设计一个中断处理程序。
要求中断请求信号以跳变方式由IR3引入(可为任一定
时脉冲信号),当CPU响应IR3请求时,输出字符串“8259A IR3 INTERRUPT!”,中断10次,程序退出.
2、选做:将上述的中断请求跳变方式由从片的IR2输入,当CPU响应请求时,输出字符串
“8259A IR10 INTERRUPT!”,中断10次,程序退出.。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表)实验名称_____________ 课程名称操作系统课程号_______学院(系)软件学院专业________ 班级________________学生姓名_____________ 学号_____________ 实验地点___________ 实验日期__________一、实验目的修改MINIX操作系统内存管理的源程序,将MINIX的首次适应算法改为最佳适应和最差适应算法,对修改之后的MINIX源代码进行重新编译和重新启动,以测试你修改的正确性。
二、实验内容1、打开Minix3,进入alloc.c所在目录2、修改原算法为最佳适应算法(BEST_FIT)和最差适应算法(WORST_FIT)的程序如下:#i nclude "pm.h"#in clude <mini x/com.h>#in clude <mini x/call nr.h>#in clude <sig nal.h>#i nclude <stdlib.h>#i nclude "mproc.h"#in clude "../../ker nel/c on st.h"#in clude "../../ker nel/con fig.h"#in clude "../../kernel/type.h"#defi ne NR_HOLES (2*NR_PROCS)#defi ne NIL_HOLE (struct hole *) 0PRIVATE struct hole{ struct hole *h_n ext; phys_clicks h_base; phys_clicks h_le n; /* pointer to next entry on the list */ /* where does the hole begi n? */ /* how big is the hole? */} hole[NR_HOLES];PRIVATE u32_t high_watermark=0;PRIVATE struct hole *hole_head; /* pointer to first hole */PRIVATE struct hole *free_slots;/* ptr to list of un used table slots */#defi ne s ((phys_clicks) -1)FORWARD _PROTOTYPE( void del_slot, (struct hole *prev_ptr, struct hole *hp)); FORWARD _PROTOTYPE( void merge, (struct hole *hp) );#defi ne s() (0)/* max # en tries in hole table *//*alloc_mem*/PUBLIC phys_clicks alloc_mem(clicks)phys_clicks clicks; /* amount of memory requested */ #defi ne USING_BEST_FIT#ifdef USING_BEST_FIT{〃先找到第一个满足要求的空洞,〃再以第一个为标准寻找最适合的空洞。
计科1141广东海洋大学java实验二详解
GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表)Java程序设计与开发实验名称实验二Java流程控制课程名称门「课程号技术学院(系)数学与计算机学院专业计算机科学与技术班级 ______________钟海楼2016.10.1 学生姓名邓超荣学号201411621110实验地点实验日期04017 5一实验目的:掌握Java流程控制语句掌握字符串的定义与使用二实验内容:1、超级素数:一个n位超级素数是指一个 n位正整数,它的前1位,前2位,...,前n位均为素数,例如,7331是个4位超级素数,因为7,73, 733, 7331均为素数。
由键盘输入n (n<9),然后输出全部的1---n位超级素数.可参考下面的类 class Prime{public boolea n isPrime( Io ng nu m){ // 输入:一个长整数,若为素数则返回true,否则返回false;if (num==1) return false ;for (long i=2;i<=Math. sqrt(num);i++){if (nu m%i==0)return false;return true ; public boolean findPrime( long a){ // 判断一个数是否为超级素数 boolean flagPrime= true ;long b;b=a;while (b>=10) b=b/10;if (b==1) return false ;b=a;flagPrime= true ;while (b>0){flagPrime=flagPrime &&isPrime(b);if (flagPrime== true )b=b/10;elsebreak ;}if (flagPrime== true )return true ;elsereturn false ;实验代码:Test_01.javapackage eclipse_test5;Prime.javaimport java.util.Scanner;public class test_01 {public static void main(String[] args) { // TODO Auto-generatedmethod stub int n;Prime prime=new Prime();Scanner scan=new Scanner(System.in);System.out.println(" 请输入 N 的值 (N<9)"); n= scan.nextInt();System.out.println(" 超级素数是: "); System.out.println(" "+2);for(int i=3;i<exp(n);i=i+2){if(prime.findPrime(i)==true)System.out.println(" "+i); scan.close();}static long exp(int x){〃产生 10A x 这样的数long num=1;if(x>9) x=9;for(int i=1;i<=x;i++){num=num*10;}return num;}}import java.util.Scanner;//超级素数class Prime{public boolean isPrime(long num){ // 输入:一个长整数,若为素数则返回true,否则返回false;if(num==1) return false;for(long i=2;i<=Math.sqrt(num);i++){if(num%i==0)} return true;}public boolean findPrime(long a){ // 判断一个数是否为超级素数 boolean flagPrime=true;long b;b=a;while(b>=10) b=b/10;if (b==1) return false;b=a;flagPrime=true;while(b>0){flagPrime=flagPrime &&isPrime(b);if(flagPrime==true)b=b/10;elsebreak;}if (flagPrime==true)return true;else}运行结果请输入N的值(N<9)2超圾素数是:23572329313753597173792•编写一加密程序,要求从键盘上输入一个字符串,然后输出加密后的字符串。
广东海洋大学.net实验2
广东海洋大学学生实验报告书(学生用表)实验名称HTML和css应用课程名称.Net开发技术课程号1625230 8X0学院(系) 数据与计算机专业计算机科学与技术班级 1141学生姓名学号实验地点钟海楼04002实验日期2017.03.16(一)实验目的:了解基本的html标签与css基本应用。
(二)实验内容与要求:Html,css(三)主要仪器设备:Windows系统下的计算机一部。
(四)实验原理:其中,HTML常用的标签如下:1.<meta 属性="属性值"/>例如,以下语句表示文档的内容类型为html类型,字符编码为国际通用的字符编码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>2.<h1>…</h1>网页内容的标题标签,h1到h5代表大小不同的标题.3.<body> …… </body><body>标记定义文档的主体。
body标记包含文档的所有内容(如:文本、超链接、图像、表格和列表等)4.<title>…</title>网页标题.5.<div>…</div><div> 标签可以把文档分割为独立的、不同的部分.6.<hr/><hr> 标签在 HTML 页面中创建一条水平线。
水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分。
GDOU-B-11-112其中,css应用如下:1.#ID选择器名 {属性1:值1;属性2:值2; ……; 属性n:值n }ID选择器以“#”为标志,依靠这个唯一的标志可以定义一套样式。
其中,ID选择器名前的“#”符号一定不能省略。
广东海洋大学学生移动编程实验报告书2
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验二 UI界面设计课程名称移动编程技术课程号16552101学院(系) 信息(软件)学院专业软件工程班级应用1123学生姓名钟炜堂学号201211701131 实验地点钟04002 实验日期15.10.14实验二 UI界面设计实验目的:1.熟悉和掌握界面控件设计2.了解Android界面布局3.掌握控件的事件处理实验内容:1.设计一个图书选购程序,在该程序中,共有5种图书,选中图书后,单击“确定”按钮,则在屏幕的下方显示所选择的图书。
一个条目的布局文件<LinearLayoutandroid:layout_width="fill_parent"android:layout_height="20dp"android:layout_marginTop="2dp"android:orientation="horizontal"><LinearLayoutandroid:layout_height="20dp"android:layout_weight="0.7"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#008c08"android:text="语文书"android:textColor="#ffffff"android:textSize="18dp"/></LinearLayout><LinearLayoutandroid:layout_height="20dp"android:layout_weight="0.3"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#8c0084"android:text="确定"android:textColor="#ffffff"/> </LinearLayout></LinearLayout>2.使用表格布局实现个人信息(用户名,性别,电话,邮箱)录入的界面,单击“确定”按钮,则在屏幕的下方显示录入的个人信息。
广工操作系统实验报告
广工操作系统实验报告操作系统实验报告学生学院计算机学院专业班级2010级计算机科学与技术四班学号3110006015 学生姓名张法光指导教师何翠红2013年 1月 05 日目录实验一、进程调度 ..................................................................... ............ 4 实验二、作业调度 ..................................................................... ............ 8 实验三、动态分区分配方式的模拟 (16)实验四、文件系统 ..................................................................... . (24)31 实验一进程调度1、实验目的编写并调试一个模拟的进程调度程序,采用“短进程优先”调度算法对五个进程进行调度。
以加深对进程的概念及进程调度算法的理解(2、实验原理在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。
对调度的处理又都可采用不同的调度方式和调度算法。
调度算法是指:根据系统的资源分配策略所规定的资源分配算法。
短进程优先调度算法是指对短进程优先调度的算法,它是从后备队列中选择一个或者若干个进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
短进程优先调度源程序如下:#include<stdio.h>#define n 5#define num 5#define max 65535typedef struct pro{int PRO_ID;//进程号int arrive_time;//到达时间int sum_time;//运行总时间int flag;}Pro;//整数排序int bubble(int temp[]){int i,j,tem=0;for(i=1;i<num;i++)4{int lastX=1;for(j=0;j<num-i;j++) {if(temp[j]>temp[j+1]) {tem=temp[j];temp[j]=temp[j+1]; temp[j+1]=tem;lastX=0;}}if(lastX==1) break; }return temp[0];}//进程排序Pro bubble(Pro p[]) {int i,j;Pro temp={0};Pro s[num];for(i=0;i<num;i++){ s[i]=p[i];}for(i=1;i<num;i++){int lastX=1;for(j=0;j<num-i;j++){if(s[j].sum_time>s[j+1].sum_time) {temp=s[j];s[j]=s[j+1];s[j+1]=temp;lastX=0;}}if(lastX==1) break;}return s[0];}5void SPF(int p){if(n>0){int i,j,k,l,tc=0;Pro seq[n];Pro temp_seq[n];printf("************************************************************ ****\n");printf("10计科4班张法光 3110006015\n");printf("\n");printf("实验一:短进程优先调度算法SPF\n");printf("请依次输入5个进程的进程号、到达时间和执行时间\n");printf("成员变量用逗号隔开;进程间用回车隔开\n");printf("************************************************************ ****\n");for(i=0;i<n;i++){scanf("%d,%d,%d",&seq[i].PRO_ID,&seq[i].arrive_time,&seq[i].sum_time );}printf("调度顺序是:\n");//初始化tcint temp[num];for(i=0;i<num;i++){temp[i]=seq[i].arrive_time;}tc=bubble(temp);//tc是断点啊//flag 表示对应i的pro的队列情况//-1表示未进入过队列,0表示在队列中,1表示被清除了for(i=0;i<n;i++){seq[i].flag=-1;}for(i=0;i<n;i++){for(j=0;j<n;j++){if(seq[j].flag!=1&&seq[j].arrive_time<=tc){seq[j].flag=0;}}for(j=0;j<n;j++){temp_seq[j]=seq[j];if(seq[j].flag!=0){temp_seq[j].sum_time=max;}6}l=bubble(temp_seq).PRO_ID;for(j=0;j<n;j++){if(l==seq[j].PRO_ID){k=j;}}tc=tc+bubble(temp_seq).sum_time;seq[k].flag=1;printf("%d",l);}printf("\n");}}void main(){SPF(n);}运行结果:结果分析与实验小结非抢占式的短进程优先调度相对简单,有个易错的地方就是最早来的不管所需服务时间长短均必须先服务,而且数量可能不止一个,此时可以再根据短进程优先法则调度。
操作系统实验三
//发出请求的进程
int Request_RESOURCE_NEMBER[MAX_RESOURCE]; //请求资源数
void Read_Available_list(); void Read_Max_list(); void Read_Allocation_list(); void PrintInfo(); void Read_Request(); void Allocate_Source(); void Recover_TryAllocate(); int Test_Safty(); void RunBanker();
}
//打印各数据结构信息 void PrintInfo() {
cout<<"进程个数: "<<PROCESS_NUM<<"\t"<<"资源个数: "<<RESOURCE_NUM<<endl; cout<<"可用资源向量 Available:"<<endl; int i,j; for(i=0;i<RESOURCE_NUM;i++)
//* 3 2 2
*//
//* 9 0 2
*//
//* 2 2 2
*//
//* 4 3 3
*//
//*
*//
//*
*//
//* Allocation_list.txt
*//
//* 0 1 0 //表示各个进程已分配各类资源的数目
*//
//* 2 0 0
*//
//* 3 0 2
*//
//* 2 1 1
*//
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级:计科1141 学号:201411621110 姓名:邓超荣实验二进程间通信(信号量)实验目的了解信号量在进程控制中所起的重要作用。
实验内容父子两个进程共同完成递增正整数序列(1\2\3\4\5\6\7\8\9\10\11\12\13\14\15\16……100)的显示。
其中一个进程负责显示奇数,另一个进程显示偶数。
请分别编写“不带有信号量不能完成上述任务”和“使用信号量正确完成上述任务”的程序,观察实验结果,进行细致分析。
(1)不带有信号量不能完成上述任务1:#include <stdio.h>2:#include <stdlib.h>:3:#include <sys/types.h>:4:#include <sys/ipc.h>5:#include <sys/sem.h>:6:#include <unistd.h>7:union semun://使用union开辟空间,把定义的数据放到统一个足够大的空间8:{9: int val;//定义val,当执行SETVAL命令时使用10: struct semid_ds *buf;//定义buf,在IPC_STAT/IPC_SET命令时使用11: unsigned short *array;//在使用GETALL/SETALL命令时使用的指针12: struct seminfo *__buf;//在IPC_INFO命令时使用13:};14:int init_semvalue (int id, int v)15;{16: union semun sem_union;//调用union semun 对象17: sem_union.val = v;18: semctl (id, 0, SETVAL, sem_union);//系统调用senmctl用来执行在信号量及上的控制操作;获取关键字值id,设置信号量的数目为0;SETVAL设置信号量集中的一个单独的信号量的值。
19: return (1);//返回1,则成功20: }21:int P (int id)//定义p()方法,控制信号量22: {23: struct sembuf op;24: op.sem_num = 0;//将要处理的信号量个数为025: op.sem_op = -1;//sem_op为-1,信号量将减去126: op.sem_flg = 0;//定义操作标志为027: semop (id, &op, 1);//&op是指向将要操作的数组的指针;1为数组中的操作的个数28: return 1;29: }30: int V (int id)//定义V()方法,控制信号量31: {32: struct sembuf op;33: op.sem_num = 0;34: op.sem_op = 1;35: op.sem_flg = 0;36:semop (id, &op, 1);37: return 1;38: }39: int main (int argc, char *argv[])40: {41:int var_cri = 0; int s1,s2; pid_t pid;42: s1 = semget ((key_t) 2234, 1, 0666 | IPC_CREAT);//创建信号量集s1 43: s2 = semget ((key_t) 2235, 1, 0666 | IPC_CREAT);//创建信号量集s2 44: init_semvalue(s1,1);45:init_semvalue(s2,0);46 pid = fork ();47: if(pid != 0 ){:48; int i = 1;49: while (1){50:51: printf("%d,", i);52: fflush(stdout);53: i += 2;54:55: if(i>100)break;56: }57: }58: else{59: int i = 2;60: while (1){61:62: printf("%d,", i);63: fflush(stdout);64: i += 2;65:66: if(i>100)break;67: }68: }69:}该程序分析如下:第9行中val用于存放信号量集中的一个单独信号量的值。
第10行定义结构体buf,在信号量执行IPC_SET命令时存放信号量的许可权,第11行,array指针存放所有信号量的semvals值,定义_buf存放系统信道返回的信号量和参数信息。
第14行到20行,系统通过调用semctl()方法,对信号量进行控制操作。
第21行至29行设置信号量,对进程进行管理,第30行到38行同理;第42,43行创建信号量集s1和s2,第44行将s1的信号量设置为1,第45行将s2的信号量设置为0,第46行调用fork()方法生成一个几乎和原进程一样的进程,就拥有了两个进程,第47到69行,由于不带信号量,没有对进程进行控制,所以只能输出1/3/5/7/9…/97/99的信号量。
(2) 使用信号量正确完成上述任务1:#include <stdio.h>2:#include <stdlib.h>:3:#include <sys/types.h>:4:#include <sys/ipc.h>5:#include <sys/sem.h>:6:#include <unistd.h>7:union semun://使用union开辟空间,把定义的数据放到统一个足够大的空间8:{9: int val;//定义val,当执行SETVAL命令时使用10: struct semid_ds *buf;//定义buf,在IPC_STAT/IPC_SET命令时使用11: unsigned short *array;//在使用GETALL/SETALL命令时使用的指针12: struct seminfo *__buf;//在IPC_INFO命令时使用13:};14:int init_semvalue (int id, int v)15;{16: union semun sem_union;//调用union semun 对象17: sem_union.val = v;18: semctl (id, 0, SETVAL, sem_union);//系统调用senmctl用来执行在信号量及上的控制操作;获取关键字值id,设置信号量的数目为0;SETVAL设置信号量集中的一个单独的信号量的值。
19: return (1);//返回1,则成功20: }21:int P (int id)//定义p()方法,控制信号量22: {23: struct sembuf op;24: op.sem_num = 0;//将要处理的信号量个数为025: op.sem_op = -1;//sem_op为-1,信号量将减去126: op.sem_flg = 0;//操作标志为027: semop (id, &op, 1);//&op是指向将要操作的数组的指针;1为数组中的操作的个数28: return 1;29: }30: int V (int id)//定义V()方法,控制信号量31: {32: struct sembuf op;33: op.sem_num = 0;34: op.sem_op = 1;35: op.sem_flg = 0;36:semop (id, &op, 1);37: return 1;38: }39: int main (int argc, char *argv[])40: {41:int var_cri = 0; int s1,s2; pid_t pid;42: s1 = semget ((key_t) 2234, 1, 0666 | IPC_CREAT);//创建信号量集s1 43: s2 = semget ((key_t) 2235, 1, 0666 | IPC_CREAT);//创建信号量集s2 44: init_semvalue(s1,1);45:init_semvalue(s2,0);46 pid = fork ();//原来的进程的所有值都复制到新的新进程中,两个几乎一样的进程47: if(pid != 0 ){:48; int i = 1;49: while (1){50: P(s1);//调用P()方法接受信号量s151: printf("%d,", i); //输出i的值152: fflush(stdout);//立刻将要输出的内容输出53: i += 2; //i=3;//由于i!=2,进程1受到阻塞,转至else执行54: V(s2);//调用V()方法接受信号量s255: if(i>100)break;56: }57: }58: else{59: int i = 2;60: while (1){61: P(s2);//获取信号量s262: printf("%d,", i);//输出信号量263: fflush(stdout);64: i += 2;//i=4;由于i1=3,进程2受到阻塞,而进程1中i=3, 所以进程1被释放65: V(s2);66: if(i>100)break;67: }68: }69:}该程序分析如下:第46行调用fork()方法生成一个几乎和原进程一样的进程,就拥有了两个进程,第47行判断进程是否存在,第49到57行,i的初始值为1,此时调用进程1,输出信号量1后,i变为3,由于i不等于2,所以进程1阻塞,此时进程2空闲,转至进程2,此时i=2,进程2输出信号量2后,i变为4,此时i不等于3,所以进程2被阻塞,而进程1中i=3,所以进程1被释放。
如此类推,进程1输出奇数。
进程2输出偶数,两进程交替输出,实现父子两个进程共同完成递增正整数序(1/2/3/4/5……/99/100);。