哈工大操作系统实验一

合集下载

哈工大《操作系统》实验2

哈工大《操作系统》实验2

问题回答:Linux 0.11的系统调用最多能传递几个参数?你能想出办法来扩大这个限制吗?
Linux 0.11内核中用户程序能够向内核最多直接传递三个参数,当然也可以不带参数。

为了方便执行,内核源代码在include/unistd文件中定义了宏函数_syscalln(),其中n代表携带的参数个数,可以分别。

因此最多可以直接传递3个参数。

如果需要传递多个参数,大块数据给内核,则可以传递这块数据的指针值。

例如系统调用int read(int fd,char buf,int n)在其宏形式_syscall3(int, read, int, fd, char, buf, int, n),对于include/unistd中给出的每个系统调用宏,都有2+2*n个参数。

其中第一个参数对应系统调用返回值的类型;第2个参数是系统调用的名称;随后是系统调用所携带参数的类型和名称。

哈工大威海计算机操作系统原理实验报告1

哈工大威海计算机操作系统原理实验报告1

计算机操作系统原理实验报告专业: 110420x学号: 1104202xx姓名: xxx哈尔滨工业大学(威海)实验一进程同步和互斥一、实验目的1.掌握临界资源、临界区概念及并发进程互斥、同步访问原理。

2.学会使用高级语言进行多线程编程的方法。

3.掌握利用VC++或Java语言线程库实现线程的互斥、条件竞争,并编码实现P、V操作,利用P、V操作实现两个并发线程对有界临界区的同步访问。

4.通过该实验,学生可在源代码级完成进程同步互斥方案的分析、功能设计、编程实现,控制进程间的同步、互斥关系。

二、实验要求1.知识基础:学生应在完成进程和线程及调度等章节的学习后进行。

2.开发环境与工具:硬件平台——个人计算机。

软件平台-Windows操作系统,VC++语言或Java语言开发环境。

3.运用高级语言VC++或Java语言线程库及多线程编程技术进行设计实现。

三、实验内容1.实现临界资源、临界区、进程或线程的定义与创建。

2.利用两个并发运行的进程,实现互斥算法和有界缓冲区同步算法。

四、程序流程图1.2.生产者消费者问题生产者:消费者:五、实验结果1.互斥问题2.生产者消费者问题六、结果分析有上述程序运行结果可知,此次试验已经基本达到了实验要求,在互斥问题中,由于采用了“模拟一个竞争条件——全局变量”来建立互斥,所以不会明显的条件来判断2个线程是否正确、独立的运行,所以,在运行时间上加以限制,让2个线程在有序运行时只能持续15秒。

在生产者消费者问题中,生产者与消费者的最大上限为10,并且生产者只能生产“同一种物品”,而消费者也只能购买“同一种物品”。

操作系统实验报告哈工大

操作系统实验报告哈工大

计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360117姓名乐云指导教师周学权计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360114姓名郭鑫指导教师周学权操作系统实验实验1 使用虚拟机安装系统 4学时【实验目的】1.了解虚拟机软件的使用。

2.了解使用虚拟机安装Windows及Ubuntu操作系统。

【实验内容】1. 安装虚拟机软件VirtualBox。

2. 配置VirtualBox环境安装WindowsXP,并在虚拟机中启动windowsXP。

3. 配置VirtualBox环境安装Ubuntu 10.10,并在虚拟机中启动Ubuntu。

【实验环境】VirtualBox4.0Windows XPUbuntu 8.04【实验过程】一、创建虚拟机首先运行VirtualBox,单击左上角的“新建”。

单击下一步。

出现如下图的界面,在名称后输入自己起的名字,如test选择自己想要安装的系统类型和版本,本次试验是安装windows xp系统设置完成后,单击下一步。

接下来是设置虚拟机的内存大小,本次实验操作的计算机内存为4GB,所以我选择分配给我的虚拟机的内存为512MB,然后单击下一步。

接着创建虚拟硬盘,选择创建新的虚拟硬盘,单击下一步。

选择虚拟硬盘的类型,默认选择了VDI类型,单击下一步。

接下来选择为动态扩展类型,因为计算机的存储空间不大。

单击下一步。

动态扩展:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间的范围就为0~10G。

固定大小:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间永远不是10G,不管虚拟磁盘空间是否被全部使用。

选择虚拟机在本地磁盘中的位置和大小,单击下一步。

确认虚拟机的详细情况,点击下一步。

这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机安装操作系统选择刚才创建的虚拟机,然后单击上方的“开始”弹出了首次运行向导,单击下一步。

哈工大单片机实验报告

哈工大单片机实验报告

软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把2000~20FFh的内容清零。

三、程序框图四、实验过程(1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。

(2)再利用MOVX语句,将外部存储器指定内容清零。

(3)用CJNE比较语句判断循环是否结束。

五、实验结果及分析问题回答:清零前2000H~20FFH中为内存里的随机数,清零后全变为0。

六、实验源程序;清零程序ORG 0000HMOV DPTR,#2000HMOV R0,#0FFHORG 0660HMAIN: MOV A,#00HMOVX @DPTR,AINC DPTRDJNZ R0,MAINEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序框图四、实验过程(1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位送入2001H低位(2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。

五、实验结果及分析问题回答:将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。

六、实验源程序;拆字程序ORG 0000HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRSWAP AANL A, #0FHINC DPTR-3-MOVX @DPTR, AMOV DPL,#00HMOVX A, @DPTRANL A, #0FHINC DPTRINC DPTRMOVX @DPTR, AEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。

哈工大软件实验报告

哈工大软件实验报告
Loop:
jmp Loop
;===============================================
END
姓名:
学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验5:数据块传送实验
实验目的:
掌握外部扩展RAM中的数据操作。
实验内容:
1.对2040H地址开始的100个字节进行赋值,值为#5AH;
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R1,#20H
MOV R0,#90H
LOOP1:
MOV @R0,#55H
INC R0
DJNZ R1,LOOP1
MOV R0,#90H
MOV R2,#10H
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R0,#09FH
MOV A,R0
SWAP A
;===============================================
; VARIABLES
;===============================================
;===============================================
; Reset Vector

哈尔滨工程大学操作系统(磁盘调度算法)

哈尔滨工程大学操作系统(磁盘调度算法)

操作系统实验报告哈尔滨工程大学计算机科学与技术学院一、实验概述1. 实验名称磁盘调度算法2. 实验目的(1)通过学习EOS 实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机;(2)观察EOS 实现的FCFS、SSTF和SCAN磁盘调度算法,了解常用的磁盘调度算法;(3)编写CSCAN和N-Step-SCAN磁盘调度算法,加深对各种扫描算法的理解。

3. 实验类型验证性和设计性实验4. 实验内容(1)验证先来先服务(FCFS)磁盘调度算法;(2)验证最短寻道时间优先(SSTF)磁盘调度算法;(3)验证SSTF算法造成的线程“饥饿”现象;(4)验证扫描(SCAN)磁盘调度算法;(5)改写SCAN算法。

二、实验环境在OS Lab实验环境的基础上,利用EOS操作系统,由汇编语言及C语言编写代码,对需要的项目进行生成、调试、查看和修改,并通过EOS应用程序使内核从源代码变为可以在虚拟机上使用。

三、实验过程1. 设计思路和流程图(1)改写SCAN算法在已有SCAN 算法源代码的基础上进行改写,要求不再使用双重循环,而是只遍历一次请求队列中的请求,就可以选中下一个要处理的请求。

算法流程图如下图所示。

图3.1.1 SCAN算法IopDiskSchedule函数流程图(2)编写循环扫描(CSCAN)磁盘调度算法在已经完成的SCAN算法源代码的基础上进行改写,不再使用全局变量ScanInside确定磁头移动的方向,而是规定磁头只能从外向内移动。

当磁头移动到最内的被访问磁道时,磁头立即移动到最外的被访问磁道,即将最大磁道号紧接着最小磁道号构成循环,进行扫描。

算法流程图如下图所示。

图3.1.2 CSCAN算法IopDiskSchedule函数流程图(3)编写N-Step-SCAN磁盘调度算法在已经完成的SCAN 算法源代码的基础上进行改写,将请求队列分成若干个长度为N 的子队列,调度程序按照FCFS原则依次处理这些子队列,而每处理一个子队列时,又是按照SCAN算法。

哈尔滨工业大学(威海)操作系统实验报告及答案

哈尔滨工业大学(威海)操作系统实验报告及答案

哈尔滨工业大学(威海)操作系统实验报告说明:本实验报告实验答案,是本人在上实验时的测试数据,由于操作系统实验中后面实验与当时所做实验的计算机的配置有关,因此本实验报的数据仅供参考。

实验1进程的描述与控制Windows 2000编程(实验估计时间:100分钟)1.1 背景知识Windows 2000 可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序。

控制台应用程序可以创建GUI,GUI应用程序可以作为服务来运行,服务也可以向标准的输出流写入数据。

不同类型应用程序间的惟一重要区别是其启动方法。

Windows 2000是以NT技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。

当系统运行时,Windows 2000的服务通常要向系统用户提供所需功能。

服务应用程序类型需要ServiceMail()函数,由服务控制管理器(SCM)加以调用。

SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。

其本身负责使应用程序的行为像一个服务,通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限。

当C++编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。

产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。

装载器指令告诉系统从哪里装载机器代码。

另一个装载器指令告诉系统从哪里开始执行进程的主线程。

在进行某些设置后,进入开发者提供的main()、Servicemain()或WinMain()函数的低级入口点。

机器代码中包括控制逻辑,它所做的事包括跳转到Windows API函数,进行计算或向磁盘写入数据等。

Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL)代码块,在其中包含应用程序所使用的机器代码和应用程序的数据。

哈工大《操作系统》实验1

哈工大《操作系统》实验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命令验证运行结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨工业大学远程教育课程操作系统
实验一
(选做)
主讲人:张英涛
背景知识
n计算机执行的任何程序都必须首先读入内存,CPU 通过内存来访问程序,而安装操作系统实际上是把存放在光盘上的操作系统执行代码存入硬盘的过程•从硬盘上加载程序到内存很方便
•操作系统中的文件系统主要是靠硬盘提供物理支持
n安装操作系统到硬盘,实际上有两方面的作用•在硬盘上建立文件系统
•把操作系统的全部内容事先存放在硬盘上以备使用
•当使用计算机时,从硬盘上加载操作系统到内存,然后将机器控制权转给操作系统内核来执行
背景知识
n在本实验中,通过Windows 2000 Professional 的安装,来了解Windows操作系统的安装及配置,包括安装前的准备工作、驱动程序的配置以及系统的设定等内容
n Windows 2000一共有四个版本,即Professional、Server、Advanced Server和Datacenter Server,它们的差别在于功能以及支持CPU、RAM数量上的
不同
背景知识
n由于用户计算机环境的不同,需要的安装方式和内容也会有所不同。

•升级安装:保存计算机的现有文件及设置,并将原
Windows系统升级为Windows 2000 Professional
•全新安装:有助于提升系统性能。

但不保存计算机中原
有的文件及设置,机器中的所有应用程序都要重新安装
•多重开机安装:使计算机拥有多种操作系统,每次开机
时,可以选择所要启动的系统
背景知识
n多重开机安装
•Windows 2000 Professional的多重开机安装支持下列操作系统:Windows NT 3.51/4.0、Windows 9x、Windows 3.x和MS-DOS
•采用多重开机安装方式,首先需要进行硬盘分区,因为每个操作系统都要求安装在不同的分区
•此外,还提高了对硬件的需求,因为安装多个操作系统的硬盘空间用量非常大
•各个操作系统的安装次序也要注意,原则上次序是MS-DOS、Windows 3.x、Windows 9x优先安装,然后是Windows NT,再安装Windows 2000
实验目的
n通过对Windows 2000 Professional的安装操作,了解操作系统应用环境建立的初步过程
n掌握对Windows操作系统的基本系统设置n了解Windows多操作系统安装的方法
工具/准备工作
n Windows 2000对系统的要求比较高
•CPU:Pentium 166MHz以上
•内存:32MB,建议64MB以上
•磁盘空间(可用空间/总空间) :650MB/2GB,建议1.5GB/4GB
•CD-ROM或DVD-ROM光驱
•网卡和调制解调器
•VGA显卡及显示器、键盘、鼠标
实验内容与步骤
n本实验以光盘启动为例
n可以利用Windows 2000 Professional光盘来直接开机启动,开机后自动执行安装程序
n安装过程可分为两个阶段
•文字模式阶段:选择用来安装Windows 2000的硬盘。

安装程序提供了建立分区、删除分区以及格式化等功能
•GUI图形界面阶段:进行系统设置与复制文件的动作,完成Windows 2000系统的安装
实验提示
n同意接受Windows许可协议
n记录机器总的硬盘空间数据
n选择文件系统:FAT、FAT32和NTFS,但一般建议选择NTFS文件系统
n按提示安装“Service Pack”光盘
n软件的产品序列号(25个字符的产品密钥)。

相关文档
最新文档