当前位置:文档之家› 操作系统实验指导书

操作系统实验指导书

操作系统实验指导书
操作系统实验指导书

实验前准备工作:Linux的安装

一. 实验目的

1.掌握Red Hat Linux操作系统的安装步骤。

2.掌握启动、关闭操作系统的方法。

二.实验准备

Red Hat Linux操作系统既可以单独安装在一个计算机系统中;也可以与其它操作系统如windows操作系统一起安装在一个计算机系统中,但注意在安装时要先装windows操作系统,再装Linux;或者利用主机的资源(如CPU、内存、硬盘),模拟出的一台新计算机。然后在虚拟机中安装windows、Linux等系统,使用虚拟机对主机的要求比较高,建议内存512MB以上。

1.硬盘分区

理解硬盘、分区的名称:

?IDE硬盘名称: /dev/hda, /dev/hdb ……

?SCSI硬盘名称:/dev/sda, /dev/sdb ……

分区名称:/dev/hda1, /dev/hda2 ……

一个硬盘最多分4个主分区和扩展分区,扩展分区最多只能建1个,扩展分区不能直接放数据,还必须建立逻辑分区才能使用。

安装Red Hat Linux至少需要两个硬盘分区:一个或多个―Linux native‖类型的分区,一个―Linux swap‖类型的分区。即使将Linux安装在一个专门的硬盘上,或者一台不安装其他操作系统的计算机上,仍然需要为其创建分区。在安装过程中,会提示用户为Red Hat Linux 创建分区,必须保证有足够的硬盘空间来创建分区。推荐以下分区配置:

(1)一个根分区

(2)一个交换分区

(3)一个/usr分区

(4)一个/home分区。

2. 安装类型

Red Hat Linux提供了三种类型的安装:

(1)客户机类型安装(workstation)

(2)服务器类型安装(server system)

(3)自定义类型的安装(custom system)

三.实验内容

请在虚拟机中安装Linux。

1. 安装虚拟机软件

常用的虚拟机软件有Vmware和VPC,如果主机性能较好,还能同时虚拟出多台虚拟机;一台虚拟机对应主机上的一个目录,删除该目录就删除了虚拟机;该目录拷到其它电脑

上可直接使用。

使用虚拟机的步骤

(1) 安装Vmware软件

(2) 在Vmware中新建虚拟机

?确定虚拟机的配置

内存大小、硬盘类型(IDE&SCSI)、硬盘大小、网卡工作方式

?网卡工作方式

桥方式:虚拟机与主机的网络地位相等,可直接上网

NAT方式:虚拟机通过主机上网

HOST方式:虚拟机只能与主机通信,不能与其它主机通信。

?操作步骤:单击―File-New-Virtual Machine-下一步-Custom‖……

(3) 修改虚拟机配置

?打开虚拟机―File-Open‖

?修改虚拟机,单击―Edit virtual machine setting‖

调整虚拟机内存大小

设置光驱使用光盘镜像文件

添加硬盘(注意不同调整已有硬盘的大小)

调整网卡的工作方式

(4) 在虚拟机上安装操作系统

?准备好虚拟机(内存128MB以上,硬盘6GB)

?设置好光驱为使用ISO光盘镜像文件

?安装引导

?检查光盘介质(选skip)

?选择安装时使用的语言(简体中文)

?选择键盘、鼠标类型(一般选默认)

?选择安装类型(根据需要而定,本次选个人桌面)

?磁盘分区(双系统中一定要选Disk Druid手工分区,在虚拟机中则可选择自动分区) ?配置引导装载程序(默认)

?配置网络(根据实际,配IP地址、子网掩码、网关、DNS服务器地址、主机名) IP地址192.168.7.1XX (XX为座位号)

子网掩码:255.255.255.0

网关:192.168.7.254

DNS地址:172.18.0.5

?防火墙(选无防火墙)

?配置附加语言(选Chinese(P.R. of China))

?选择时区(亚州/上海)

?设置根用户口令(千万别忘)

?选择软件包(选定制,加上KDE桌面和开发工具)

?开始安装,最后重启电脑(中途需要更换光盘)

(5) 安装后的配置

?创建引导软盘(不需要)

?配置显卡和显示器

?配置色彩深度和分辨率

?建立新用户并设定口令,如帐号test口令123456(前面安装时指定的口令是针对root

用户的,是系统的超级用户,平时使用电脑最好用普通用户登录系统)。

四. 实验报告要求

实验课题、目的与主要内容要求,实际进行的实验详细记录及每一个实验阶段环节的分析与结论,实验总结。本次实验报告中应包括下列内容:

1、电脑中的第1块IDE硬盘名称叫什么?

2、1块硬盘最多可以分几个主分区和扩展分区

3、简单描述RedHat安装中的主要步骤

实验1 Linux基本操作

一. 实验目的

1. 通过本实验使学生了解Linux提供的用户界面中键盘命令操作界面。

2. 熟练掌握常用的键盘命令。

3. 熟悉Linux提供的图形用户界面。

4. 以Windows的窗口操作经验使用Linux的窗口,增强触类旁通的能力。

二. 实验指导

常用Linux键盘命令

命令功能示例或格式

ls 显示文件和目录列表cd /home表示进入/home目录

touch 生成一个空文件touch hello.c

cp 复制文件或目录cp hello.c hello.c.bak 将hello.c复制

为hello.c.bak

mv 移动文件或目录、文件或目录改

名mv hello. hello.c.bak将hello.c改名为hello.c.bak

rm 删除文件或目录rm hello.c cat 显示文本文件内容cat hello.c more/less 分页显示文本文件内容more hello.c

less hello.c

head/tail 显示文本文件的前若干行或后

若干行head hello.c tail hello.c

wc 统计指定文本文件的行数、字

数、字符数

wc hello.c

ln 建立链接文件ln linux-2.4-18 linux 将linux-2.4-18

硬链接成为linux

ln –s linux-2.4-18 linux 将

linux-2.4-18符号链接成为linux whereis 查找系统文件所在的路径Whereis ls

find 在文件系统中查找指定文件find –name hello.c

grep 在指定文本文件中查找指定的

字符串grep abc file1 在file1中查找并列出串abc所在的整行文字

pwd 显示当前工作目录pwd

cd 切换目录cd /usr /home 从/usr切换到/home ls 显示目录ls /src 显示/src目录中所有内容mkdir 创建目录mkdir mysub 在当前目录下创建

一个新目录mysub。

rmdir 删除目录rmdir mysub 删除mysub子目录,

只有空子目录才能删除

tree 显示目录树tree

file 识别文件类型file hello.c

diff 比较文件(可以是二进制的)或

目录的内容diff file1 file2 比较file1与file2的不同处

chmod 更改文件或目录的权限chmod 755 dir1 将目录dir1设

定成任何人皆有读取及执行的权

利,但只有拥有者可作写修改。其

中7=4+2+1,5=4+1

chmod 700 file1 将file1设为拥

有者可以读、写和执行

chown 更改文件或目录的拥有者或组chown user file1 将文件file1改

为user所有

date 显示、修改日期和时间

cal 显示日历格式:cal [月份] 年

clear 清屏格式:clear

man 显示在线帮助信息man ls 显示ls命令的用法

useradd 创建新用户useradd user1 添加一个用户usre1

passwd 设置和修改密码格式:passwd 用户名,如passwd -d

用户名可删除用户密码userdel 撤销用户格式:userdel [-r] 用户名

mount 挂载文件系统mount -t vfat /dev/sdb6 /mnt 表

示将/dev/sd6上的FAT32文件系统

挂载到/mnt。

umount 卸载文件系统umount /mnt //卸载/mnt上的文件

系统

注意:Linux字符命令区分大小字。

三.实验内容

1. 系统登录、注销和关机

?登录:输入用户帐号和口令。建议平时使用时不要使用系统的root帐号。以免误删文件。

?记录桌面上出现的图标,并说明各图标功能。

?记录主菜单中(单击桌面的―小红帽‖图标)的各命令项,并说明各自功能。

?注销关机:单击主菜单,选择注销、关机或重启。

2. 在窗面上右击,选择―新建终端‖(或―New Terminal‖),进入字符界面,完成下列操作。

(1) 目录操作

?在/home下建立自己的子目录,子目录名自己取,然后再在自己的子目录下再创建若干个子目录。

?进入/home目录,查看创建的子目录。

?删除一部分自己创建的子目录。

?再回到自己的子目录,显示当前目录清单。

?显示当前目录所处的路径。

?在自己的子目录下再创建子目录sub1和sub2。

?进入sub1子目录。

(2) 文件操作

?复制一部分文件到sub1子目录,如/usr/src/linux-2.4/kernel/*.c。

?用长格式显示目录清单,看看文件的权限。

?查看sub1目录中是否有sys.c文件。

?如果有sys.c,将其改名为mysys.c。

?查看sub目录中是否有mysys.c文件,是否还有sys.c文件。

?建立mysys.c的一个文件链接,文件名为mydoc.c。

?用ls –l 命令查看文件mydoc.c和文件mysys.c是否完全一样。

?分别用more和less命令显示mysys.c的内容。

?返回父目录。

?查找mysys.c文件。

?进入sub1子目录。

?修改mysys.c的权限为:

文件拥有者:可读、可写、可执行

所属同组用户:可读、可执行

其他用户:可读

?删除sub1中mysys.c以外的所有文件,并查看是否完成。

?删除mysys.c。

?返回用户目录。

?删除sub1和sub2目录。

(3) 历史命令的调用

用光标移动键↑↓显示已经使用过的历史命令,体会其方便之处。

(4) 自动补全功能

在输入文件或目录名时,可以用Tab键补全与已输入字符相匹配的文件或目录名。(5) 日期与时间

?显示系统当前日期与时间。

?显示2009年3月的日历。

?显示2009年全年的日历。

(6) 用户管理

?以root登录。

?添加用户名为a1的用户。

?为该用户设置密码:123456。

?注销或重启系统。

?用a1登录。

?注意用户状态下的提示符与管理员状态下的不同。

?注销或重启系统。

?显示/etc/passwd和/etc/shadow文件的内容,查看a1用户信息。

?删除a1用户。

(7). 加载和卸载U盘

?自备U盘,在Linux中加载它,并列出U盘中的文件和目录。

?将/etc/fstab复制到U盘中。

?缷载U盘。

(8) 自行执行其他Linux字符命令。

3. 进入Linux的资源管理器,以图形操作界面完成上述目录操作、文件操作和用户管理三大类操作,并比较与字符界面的区别。

四.实验报告

(1)需给出实验课题、目的与主要内容要求。

(2)实际进行的实验详细记录:完整的命令串、命令执行结果、结果分析。

实验2 Linux进程控制

一. 实验目的

1.学会查看和杀死进程。

2.学会使用作业控制命令。

3.加深对进程概念的理解,明确进程与程序的区别。

4.熟悉linux下vi的使用。

二. 实验指导

1. Linux中的进程有3种不同类型:交互进程、批处理进程和守护进程。

2. 查看系统中的进程

格式:ps [选项]

例如:ps //显示当前用户在shell下所运行的进程。

ps -u osmond //显示用户osmond的进程。

ps -aux //显示系统中正在运行的所有进程的详细信息。

3. 杀死系统中的进程

格式:kill [signal] PID

PID是进程的识别号;signal是向进程发出的进程信号。

4. 常用作业控制命令

命令或快捷键功能说明

cmd & 命令后的&表示将命令放到后台运行

终止一个正在前台运行的进程

强行终止一个正在前台运行的进程

挂起一个正在前台运行的进程

jobs 显示后台作业和被挂起的进程

bg 作业名在后台恢复运行一个被挂起的进程

fg 作业名在前台恢复运行一个被挂起的进程

5. vi文本编辑工具

进入Linux的字符界面,输入vi,进入vi编辑程序。

vi提供二种工作模式:输入模式(insert mode)和命令模式(command mode)。使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。

(1)命令模式

在输入模式下,按ESC可切换到命令模式。命令模式下,常用的指令有::q! 离开vi,并放弃刚在缓冲区内编辑的内容

:wq 将缓冲区内的资料写入磁盘中,并离开vi

:n 光标直接跳到第n

:w 将当前编辑的内容存盘

:w file 将当前编辑的内容写入file文件中

:r file 打开另一个文件file

:e file 新建另一个文件file

:f file 把当前文件改名为file

(2)命令模式下光标的移动

H 左移一个字符

J 下移一个字符

K 上移一个字符

L 右移一个字符

(3)输入模式

输入以下命令即可进入vi 输入模式:

a(append) 在光标之后加入资料 i(insert) 在光标之前加入资料 o(open) 新增一行于该行之下,供输入资料用 dd 删除当前光标所在行 x 删除当前光标字符 X 删除当前光标之前字符 U 撤消 F 查找 ESC 离开输入模式

6. 有关进程控制系统调用

三.实验内容

1. 请在字符界面下完成下列作业控制操作:

? 显示当前运行的进程

? 运行后台睡眠进程(sleep 命令,格式:sleep 秒数) ? 挂起sleep 进程 ? 运行cat 命令

cat > example

输入若干字符如this is a example. ? 挂起cat 进程

? 显示当前运行的进程 ? 显示当前被挂起的进程 ? 将cat 进程调度到前台运行 ? 正常结束cat 进程

? 显示当前被挂起的进程 ? 显示当前运行的进程 ? 杀死sleep 进程

? 显示当前运行的进程

2. vi 工具的使用

函数名 调用格式 功能

fork()

int fork() 例:

pid=fork();

创建一个新进程,fork( )返回值意义如下: 0:在子进程中,pid 变量保存的fork( )返回值为0,表示当前进程是子进程。

>0:在父进程中,pid 变量保存的fork( )返回值为子进程的id 值(进程唯一标识符)。 -1:创建失败。

execl() int execl(新程序名,0) 重新加载进程,用新程序替换原进程。如execl("bin/ls",0); 用bin/ls 替换原进程。 wait ()

int wait(int status) 例: wait();

等待子进程运行结束。如果子进程没有完成,父进程一直等待。wait( )将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait( )前已有子进程暂停或终止,则调用进程做适当处理后便返回。 exit ()

void exit(int status)

终止进程的执行

(1) 进入Linux的字符界面,输入vi,进入vi。

例:$vi hello.c

(2) 利用实验指导中的相关内容完成在屏幕上显示―Hello world‖的C语言源程序hello.c 的创建。保存上述程序,并退出vi。

3 用gcc编译上述C程序,并运行之。

编译:gcc –o hello hello.c

运行:./hello

4 进程控制之一:

(1) 先在vi窗口中编写下列程序:

使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示―a―;子进程分别显示字符‖b―和字符―c‖。

(2) 保存上述程序,并退出vi。

(3) 编译并多次运行上述程序,分析运行结果。

参考程序

#include

main( )

{

int p1,p2;

while((p1=fork( ))= = -1); /*创建子进程p1*/

if (p1= =0)

{

putchar('b');

exit(0);

}

else

{

while((p2=fork( ))= = -1); /*创建子进程p2*/

if(p2= =0)

{

putchar('c');

exit(0);

}

else

{

putchar('a');

exit(0);

}

}

}

5. 进程控制之二:分析下列程序的运行结果,getpid()函数为取当前进程号。

#include

main( )

{

int p1,p2;

printf(―pid=%d,‖,getpid());

while((p1=fork( ))= = -1); /*创建子进程p1*/

if (p1= =0)

putchar('b');

else

putchar('c');

printf(―pid=%d,‖,getpid());

}

6. 进程控制之三:(选做)

创建一个子进程,并给它加载新程序hello,hello即上述显示―Hello world‖程序。

提示:创建程序parent.c,在该程序中创建子进程,在子进程分支中用execl加载hello。

四.实验报告

(1)需给出实验课题、目的与主要内容要求。

(2)实际进行的实验详细记录:完整的命令串或程序、执行结果、结果分析。

实验3 进程通信

一.实验目的

了解和熟悉Linux支持的消息队列通信机制、管道通信机制。

二.实验内容

(1)进程的管道通信

编写程序实现进程的管道通信。使用系统调用pipe()建立一管道,二个子进程P1和P2分别向管道各写一句话:

Child 1 is sending a message!

Child 2 is sending a message!

父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。

(2)消息的创建、发送和接收。

使用系统调用msgget( ),msgsnd( ),msgrev( ),及msgctl( )编制一消息长度为1k的消息发送和接收的程序。

三.实验指导

1. 所涉及的系统调用

(1) pipe( ):建立一无名管道。

格式:int pipe(filedes)

参数定义:int filedes[2]; 其中,filedes[1]是写入端,filedes[0]是读出端。

使用头文件:

#include

#inlcude

#include

(2) read( )

格式:int read(fd,buf,nbyte)

功能:从fd所指示的文件中读出nbyte个字节的数据,并将它们送至由指针buf所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。

参数定义:int fd; 文件指针

char *buf; 接收数据缓冲区

unsigned nbyte; 读取数字数

(3) write( )

格式:write (fd,buf,nbyte)

功能:把nbyte 个字节的数据,从buf所指向的缓冲区写到由fd所指向的文件中。如文件加锁,暂停写入,直至开锁。

参数定义同read( )。

(4) msgget( ):创建一个消息,获得一个消息的描述符。

格式:msgqid=msgget(key,flag)

使用头文件:

#include

#include

#include

参数定义:key_t key; int flag;

其中:key是用户指定的消息队列的名字;flag是用户设置的标志和访问方式。如IPC_CREAT |0400 是否该队列已被创建。无则创建,是则打开;

IPC_EXCL |0400 是否该队列的创建应是互斥的。

msgqid 是该系统调用返回的描述符,失败则返回-1。

(5) msgsnd()

发送一消息。向指定的消息队列发送一个消息,并将该消息链接到该消息队列的尾部。

格式:msgsnd(msgqid,msgp,size,flag)

使用头文件同msgget()。

参数定义:int msgqid,size,flag;

struct msgbuf * msgp;

其中msgqid是返回消息队列的描述符;msgp是指向用户消息缓冲区的一个结构体指针。缓冲区中包括消息类型和消息正文,即

{

long mtype; /*消息类型*/

char mtext[ ]; /*消息的文本*/

}

(6) msgrcv( )

接受一消息。从指定的消息队列中接收指定类型的消息。

格式:msgrcv(msgqid,msgp,size,type,flag)

使用头文件同msgget()。

参数定义:int msgqid,size,flag;

struct msgbuf *msgp;

long type;

(7)msgctl( )

消息队列的操纵。读取消息队列的状态信息并进行修改,如查询消息队列描述符、修改它的许可权及删除该队列等。

系统调用格式:msgctl(msgqid,cmd,buf);

使用头文件同msgget()。

参数定义:int msgqid,cmd;

struct msgqid_ds *buf;

其中,函数调用成功时返回0,不成功则返回-1。buf是用户缓冲区地址,供用户存放控制参数和查询结果;

2. 参考程序

1.

#include

#include

#include

int pid1,pid2;

main( )

{ int fd[2];

char outpipe[100],inpipe[100];

pipe(fd); /*创建一个管道*/

while ((pid1=fork( ))= =-1);

if(pid1= =0)

{

lockf(fd[1],1,0);

sprintf(outpipe,"child 1 process is sending message!"); /*把串放入数组outpipe中*/ write(fd[1],outpipe,50); /*向管道写长为50字节的串*/

sleep(5); /*自我阻塞5秒*/

lockf(fd[1],0,0);

exit(0);

}

else

{

while((pid2=fork( ))= =-1);

if(pid2= =0)

{ lockf(fd[1],1,0); /*互斥*/

sprintf(outpipe,"child 2 process is sending message!");

write(fd[1],outpipe,50);

sleep(5);

lockf(fd[1],0,0);

exit(0);

}

else

{ wait(0); /*同步*/

read(fd[0],inpipe,50); /*从管道中读长为50字节的串*/

printf("%s\n",inpipe);

wait(0);

read(fd[0],inpipe,50);

printf("%s\n",inpipe);

exit(0);

}

}

}

运行结果:

延迟5秒后显示:child 1 process is sending message!

再延迟5秒显示:child 2 process is sending message!

2.

1)、client.c

#include

#include

#include

#define MSGKEY 75

struct msgform

{ long mtype;

char mtext[1000];

}msg;

int msgqid;

void client()

{ int i;

msgqid=msgget(MSGKEY,IPC_CREAT|0660); /*打开75#消息队列*/ for(i=10;i>=1;i--)

{

msg.mtype=i;

printf(―(client)sent\n‖);

msgsnd(msgqid,&msg,sizeof(msg),0); /*发送消息*/

}

exit(0);

}

main( )

{ client( ); }

2)、server.c

#include

#include

#include

#define MSGKEY 75

struct msgform

{ long mtype;

char mtext[1000];

}msg;

int msgqid;

void server( )

{ msgqid=msgget(MSGKEY,IPC_CREAT|0600); /*创建75#消息队列*/ do

{

msgrcv(msgqid,&msg,sizeof(msg),0,0); /*接收消息*/

printf(―(server)received\n‖);

}while(msg.mtype!=1);

msgctl(msgqid,IPC_RMID,0); /*删除消息队列,归还资源*/

exit(0);

}

main( )

{ server( ); }

实验4 内存管理

一.实验目的

请求页式存储管理中常用页面置换算法模拟,理会操作系统对内存的调度管理。

二.实验内容

假设有一程序某次运行访问的页面依次是:0,1,2,4,3,4,5,1,2,5,1,2,3,4,5,6,试计算当内存为4~20页时,下列不同页面调度算法的命中率。

①先进先出算法(FIFO);

②最近最少使用算法(LRU);

③最佳淘汰算法(OPT):先淘汰最不常用的页地址;(选做)

④最少访问页面算法(LFU)。(选作)

命中率的算法为:命中率= 1 - 缺页中断次数/总页数。

三. 实验报告要求

(1) 实验报告中要有程序特别是算法的详细流程图;

(2 ) 实验报告中要有程序清单及执行的结果;

(3) 对不同算法的性能进行评价。

实验5 文件系统管理之一:Linux文件管理

1.实验目的

(1)掌握Linux提供的文件系统调用的使用方法;

(2)熟悉文件和目录操作的系统调用用户接口;

(3)了解操作系统文件系统的工作原理和工作方式。

2.实验内容

(1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:

***********

0. 退出

1. 创建新文件

2. 写文件

3. 读文件

4. 复制文件

5. 修改文件权限

6. 查看文件权限

7. 创建子目录

8. 删除子目录

9. 改变当前目录到指定目录

10. 链接操作

***********

3. 实验指导

(1).有关系统调用

FILE *fopen(const char *filename, int flags);//打开或创建文件

flags参数取值:O_RDONL Y--只读方式O_WRONLY—只写方式O_RDWR—读写方式

还可以用或运算对下列标志进行组合

O_CREAT---如果文件不存在则创建,存在则不再创建

O_TRUNC---如果文件已存在,则清除文件原有内容

O_EXECL---如果文件已存在,又设置了O_CREAT,则强制open失败

O_APPEND---每次写入时从文件尾部开始。

例:创建一个可读可写的文件file1,可用fd=open(―file1‖,O_CREAT|O_RDWR);

int fclose(int fd); //关闭文件

size_t fwrite(const void*buffer,size_t size,size_t count,FILE*stream); //写文件

size_t fread( void*buffer, size_t size, size_t count, FILE*stream ); //读文件

int fseek( FILE*stream, long offset, int origin ); //文件读写指针定位

int chmod(char *pathname, mode_t mode); //更改文件权限

int mkdir(const char *path,mode_t mode); //mode是子目录的权限

int rmdir(const char *path);

int chdir(const char *path);

int link(const char *pathname1,const char *pathname2);

创建一个指向已经存在且可共享的文件的共享指针,创建时,将其所在的子目录下创建一个目录项,其i结点号复制被共享文件pathname1的i结点号,并将pathname1的磁盘i结点计数加1。

int unlink(const char *pathname); //取消指定的目录连接

有关头文件:

#include

#include

#include

#include

#include

#include

#include

#include

实验5 文件系统管理之二:Windows文件管理

1 实验目的

通过分析磁盘映像文件,了解FAT文件系统中文件的物理结构、文件组织、文件查找、文件的读写操作。感性认识FAT格式文件的管理。

2 实验预备知识

FAT文件格式的物理组织结构。

3 实验要求

事先预习,自行查阅实验预备知识。

4 实验内容(以下实验可二选一)

(1)构建一个大小为32M的FAT16磁盘格式文件存储系统。提示:

新建一数据文件fat16.dat,把该文件看作磁盘,将FAT磁盘文件的物理结构数据写入fat16.dat。

FAT磁盘数据分析:

1)扇区大小选512字节,32M由包含65536个扇区。

3) 1-128扇区为FAT表,前两项分别为0xFFF8,0xFFFF,其余清0。

4) 129-256扇区为备份FAT。

5) 257-288扇区为根目录区,初始全清0。

6) 289-65535扇区为数据区,全清0。

用C语言的文件操作命令将上面分析的数据写入fat16.dat。

(2)网上下载winhex工具,在winhex中打开一个U盘或硬盘,分析该盘上的数据,即找出该盘上的文件和目录,并将它们与在资源管理器中看到的文件和目录进行对比。

5. 实验报告

(1) 必须给出实验课题、目的与主要内容要求。

(2)实际进行的实验详细记录及分析与结论,实验总结。

实验6 Linux字符设备驱动

1 实验目的

(1)了解Linux设备驱动程序的编写、编译和装载、卸载方法;

(2)了解设备文件的创建;

(3)了解如何编写测试程序测试自己的驱动程序能否正常工作。

2实验内容

(1)设计两个终端设备文件实现一个字符设备驱动程序,使一对进程之间利用该字符设备驱动程序能互相传递可变长度的信息。要求:使用终端文件的基本操作,如init(),open(),release(),read(),write(),ioctl()。

(2)以可加载的模块方式编译(1)的驱动程序,并编写测试程序测试之。

3实验指导

(1)Linux设备驱动程序与外界的接口

?驱动程序与操作系统内核的接口通过file_operations数据结构完成

?驱动程序与系统引导的接口利用驱动程序对设备进行初始化

?驱动程序与设备的接口描述驱动程序如何与设备进行交互

?根据驱动程序的功能,设备驱动程序代码可以分为5个部分:驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作、设备的中断与轮询处理。

(2)设备驱动程序的注册与注销

注册函数:register_chrdev(driver_major,driver_name,&driver_fops);

driver_major:主设备号,driver_name:设备名或描述,driver_fops:设备文件操作file operations指针

注销函数:unregister_chrdev(driver_major,driver_name);

(3)编写file operations数据结构中有关函数。

struct file_operations dynchar_fops={

seek

read

write

readdir

poll

ioctl

mmap

open

flush

release

fsync

fasync

check media change

revalidate

lock

};

(4)编译设备驱动模块

gcc -O2 -D__KERNEL__ -DMODULE –I /usr/src/linux-2.4/include –c driver.c

其中:-O2指明对程序进行优化编译、连接

-D__KERNEL__表示将程序编译为内核代码而不是普通用户代码

-DMODULE表示把文件作为模块而不是普通可执行文件来编译。

编译成功后将在同一目录下生成可加载的目标代码文件driver.o

(5)设备驱动模块的加载

insmod driver.o

加载后可以用lsmod命令查看是否加载成功,再用vi /proc/devices命令获取实际主设备号(6)创建字符设备文件driver

mknod /dev/driver c 主设备号次设备号

创建成功后,通过ls 命令可以查询到/dev下的driver文件。

(7)编写driver的测试程序,按文件进行使用:先用open函数打开,再用read、write函数进行读写。

(8)参考程序

/**************************************************************/

/***** chardev.c *****/

/**************************************************************/

#ifndef __KERNEL__

# define __KERNEL__

#endif

#ifndef MODULE

# define MODULE

#endif

#define WE_REALLY_WANT_TO_USE_A_BROKEN_INTERFACE

#define __NO_VERSION__

#include

#include

char kernel_version[]=UTS_RELEASE;

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

《操作系统原理》信管专业实验指导书资料

《操作系统原理》实验指导书 班级:_______________ 学号:_______________ 姓名:_______________ 山东建筑大学管理工程学院 信息管理与信息系统教研室

目录 引言 (1) 实验题目一 (2) 实验题目二 (4) 实验题目三 (6) 实验题目四 (8) 实验题目五 (10) 实验题目六 (12)

引言 操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。 操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。 本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。

实验题目一:模拟进程创建、终止、阻塞、唤醒原语 一、题目类型:必做题目。 二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进 程控制功能的理解,掌握操作系统模块的设计方法和工作原理。 三、实验环境: 1、硬件:PC 机及其兼容机。 2、软件:Windows OS ,Turbo C 或C++、VC++、https://www.doczj.com/doc/038237656.html, 、Java 等。 四、实验内容: 1、设计创建、终止、阻塞、唤醒原语功能函数。 2、设计主函数,采用菜单结构(参见后面给出的流程图)。 3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供 随时查看各队列中进程的变化情况。 五、实验要求: 1、进程PCB 中应包含以下内容: 2、系统总体结构: 其中: 进程名用P1,P2标识。 优先级及运行时间:为实验题目二做准备。 状态为:就绪、运行、阻塞,三种基本状态。 指针:指向下一个PCB 。

机器人技术实验指导书

工业机器人实验指导书实验一、工业机器人的安装与调试 一、实验学时:2学时 二、实验目的: 1、学习并掌握六自由度工业机器人的结构特点。 2、能根据安装说明书对机器人套件进行安装调试 三、实验设备: 1、六自由度工业机器人套件 2、LOBOT机器人舵机控制板 3、计算机一台 四、实验原理: 六自由度机械手臂是一套具有6个自由度的典型串联式小型关节型机械手臂, 带有小型手抓式;主要由机械系统和控制系统两大部分组成,其机械系统的各部分采用模块化结构,每个部分分别由一个伺服电动机来带动,每个电动机在根据控制要求以及程序的要求来运动从而实现运动要求。 此六自由度机械手臂的特点:1.手部和手腕连接处可拆卸,手部和手腕连接处为机械结构。b.手部是机械手臂的末端操作器,只能抓握一种工件或几种在形状、尺寸、质量等方面相近似的工件,只能执行一种作业任务。c.手部是决定整个机械手臂作业完成好坏,作业柔性好坏的关键部件之一。此机械手臂的手爪是机械钳爪式类别中的平行连杆式钳爪。

五、实验步骤: 1.首先,先熟悉一下需要用到的螺丝及铜柱 2.取1 个圆盘和1 个金属舵盘 3.用4 个M3*6 螺丝的将金属舵盘装在圆盘上面。 4.再取出1 个圆盘和1 个多功能支架,用M4*15 螺丝和螺母,将其固定 5.取2 个圆环+大轴承+双通铜柱(长15mm)+4 个M4*80 螺丝。 6.将螺丝穿入圆环。2 个圆环中间是轴承,下面用铜柱锁紧。(越紧越好)。 7.取出方孔圆盘+1 个MG996R 舵机,用4 个M4*8 螺丝和M4 螺母将舵机固 定在圆盘上。注意方向不要搞错,舵机输出轴在圆盘中心位置。这个舵机要调到90 度(中间)的位置,即往左往右都可以控制旋转90 度。 8.取出之前装好的带有金属舵盘的圆盘。将其固定在舵机输出轴上,注意 图中的位置,将小圆盘上2 个孔之间连线和方孔大圆上2 个孔之间的连线处于平行状态。 9.将之前装好的这两个部分,连到一起 10.方孔大圆盘下面用M4 螺母锁紧。 11.将另一个小圆盘,放上去,孔位和下面对准,取出4 个M4*20螺丝及螺丝, 将上下两个圆盘锁紧,越紧越好!(上螺丝的时候,手指可以抵着M4 螺

实验指导书(六自由度)

实验一:6SPT-1六自由度液压伺服平台综合实验、实验目的: 1、掌握电液位置伺服控制系统的基本原理; 2、掌握六自由度平台的结构解算的概念及其软件实现; 3、掌握VB6.0软件与下位机PAC通过以太网通信的方法; 4、掌握6SPT-1六自由度液压伺服平台复现指令信号的实施方法。 、预备知识: 1、熟练掌握PLC的梯形图语言(LD)编程和结构化文本语言(ST)编 程; 2、熟练掌握VB6.0编程,能使用VB6.0实现以太网通信; 3、有一定的矩阵计算能力。 二、试验原理: 1、电液位置伺服控制系统的基本原理 电液位置伺服控制系统以液体作为动力传输和控制介质,利用电信号进行控制输入和反馈。只要输入某一规律的输入信号,执行元件就能启动、快速并 准确地复现输入量的变化规律。控制系统结构图如图3.1所示: 图3.1电液位置伺服控制系统结构图 2、六自由度平台逆解算法

图3.2 空间机构位置关系示意图 六自由度平台又称为Stewart平台,其结构如图3.2所示,Stewart平台由 上、下两个平台、六个驱动关节和连接球铰组成,上平台为运动平台,下平台为基座,上、下平台的六个铰点分别组成一个六边形,连接6个液压缸作为驱动关节,每个液压缸两端各连接一个球铰。六个驱动关节的伸缩运动是独立的由液压比例压力阀控制各液压缸作伸缩运动,从而改变各个驱动缸的长度,使 动平台在空间的位置和姿态发生变化。因此该平台是通过六个驱动杆的协调动 作来实现三个线性移动及三个转动共六个自由度的运动。 S tewart平台机构的空间位置关系是指运动平台的六个自由度与六个驱动杆长度的关系,是研究该并联机构最基本的任务,也是机构速度、加速度、误差分析、工作空间分析、动力分析等的基础。 对于6-SPS平台机构,其特点是动静平台铰点共面,考虑到工作空间的对称性要求,将平台的6个铰点分成3组,三组铰点沿圆周120。均布,动、静平台的相邻两边到中心的夹角分别为30。和90° o 为求解六自由度平台的空间位置关系,首先在静、动平台上分别建立静、动坐标系。如图3.3所示,静坐标系XYZ原点0位于静平台的中心,X-Y平面

操作系统实验指导书

实验前准备工作:Linux的安装 一. 实验目的 1.掌握Red Hat Linux操作系统的安装步骤。 2.掌握启动、关闭操作系统的方法。 二.实验准备 Red Hat Linux操作系统既可以单独安装在一个计算机系统中;也可以与其它操作系统如windows操作系统一起安装在一个计算机系统中,但注意在安装时要先装windows操作系统,再装Linux;或者利用主机的资源(如CPU、内存、硬盘),模拟出的一台新计算机。然后在虚拟机中安装windows、Linux等系统,使用虚拟机对主机的要求比较高,建议内存512MB以上。 1.硬盘分区 理解硬盘、分区的名称: ?IDE硬盘名称: /dev/hda, /dev/hdb …… ?SCSI硬盘名称:/dev/sda, /dev/sdb …… 分区名称:/dev/hda1, /dev/hda2 …… 一个硬盘最多分4个主分区和扩展分区,扩展分区最多只能建1个,扩展分区不能直接放数据,还必须建立逻辑分区才能使用。 安装Red Hat Linux至少需要两个硬盘分区:一个或多个―Linux native‖类型的分区,一个―Linux swap‖类型的分区。即使将Linux安装在一个专门的硬盘上,或者一台不安装其他操作系统的计算机上,仍然需要为其创建分区。在安装过程中,会提示用户为Red Hat Linux 创建分区,必须保证有足够的硬盘空间来创建分区。推荐以下分区配置: (1)一个根分区 (2)一个交换分区 (3)一个/usr分区 (4)一个/home分区。 2. 安装类型 Red Hat Linux提供了三种类型的安装: (1)客户机类型安装(workstation) (2)服务器类型安装(server system) (3)自定义类型的安装(custom system) 三.实验内容 请在虚拟机中安装Linux。 1. 安装虚拟机软件 常用的虚拟机软件有Vmware和VPC,如果主机性能较好,还能同时虚拟出多台虚拟机;一台虚拟机对应主机上的一个目录,删除该目录就删除了虚拟机;该目录拷到其它电脑

土工实验指导书及实验报告

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二OO九年五月

目录 实验一试样制备 实验二含水率试验 实验三密度试验 实验四液限和塑限试验 实验五颗粒分析试验 实验六固结试验 实验七直接剪切试验 实验八击实试验 土工试验复习题

实验一试样制备 一、概述 试样的制备是获得正确的试验成果的前提,为保证试验成果的可靠性以及试验数据的可比性,应具备一个统一的试样制备方法和程序。 试样的制备可分为原状土的试样制备和扰动土的试样制备。对于原状土的试样制备主要包括土样的开启、描述、切取等程序;而扰动土的制备程序则主要包括风干、碾散、过筛、分样和贮存等预备程序以及击实等制备程序,这些程序步骤的正确与否,都会直接影响到试验成果的可靠性,因此,试样的制备是土工试验工作的首要质量要素。 二、仪器设备 试样制备所需的主要仪器设备,包括: (1)孔径0.5mm、2mm和5mm的细筛; (2)孔径0.075mm的洗筛; (3)称量10kg、最小分度值5g的台秤; (4)称量5000g、最小分度值1g和称量200g、最小分度值0.01g的天平;

(5)不锈钢环刀(内径61.8mm、高20mm;内径79.8mm、高20mm或内径61.8mm、高40mm); (6)击样器:包括活塞、导筒和环刀; (7)其他:切土刀、钢丝锯、碎土工具、烘箱、保湿器、喷水设备、凡士林等。 三、试样制备 (一)原状土试样的制备步骤 1、将土样筒按标明的上下方向放置,剥去蜡封和胶带,开启土样筒取土样。 2、检查土样结构,若土样已扰动,则不应作为制备力学性质试验的试样。 3、根据试验要求确定环刀尺寸,并在环刀内壁涂一薄层凡士林,然后刃口向下放在土样上,将环刀垂直下压,同时用切土刀沿环刀外侧切削土样,边压边削直至土样高出环刀,制样时不得扰动土样。 4、采用钢丝锯或切土刀平整环刀两端土样,然后擦净环刀外壁,称环刀和土的总质量。 5、切削试样时,应对土样的层次、气味、颜色、夹杂物、裂缝和均匀性进行描述。 6、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

操作系统原理实验-系统内存使用统计5

上海电力学院 计算机操作系统原理 实验报告 题目:动态链接库的建立与调用 院系:计算机科学与技术学院 专业年级:信息安全2010级 学生姓名:李鑫学号:20103277 同组姓名:无 2012年11 月28 日上海电力学院

实验报告 课程名称计算机操作系统原理实验项目线程的同步 姓名李鑫学号20103277 班级2010251班专业信息安全 同组人姓名无指导教师姓名徐曼实验日期2012/11/28 实验目的和要求: (l)了解Windows内存管理机制,理解页式存储管理技术。 (2)熟悉Windows内存管理基本数据结构。 (3)掌握Windows内存管理基本API的使用。 实验原理与内容 使用Windows系统提供的函数和数据结构显示系统存储空间的使用情况,当内存和虚拟存储空间变化时,观察系统显示变化情况。 实验平台与要求 能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS了解系统内存和虚拟空间使用情况,会使用VirtualAlloc()函数和VirtualFree()函数分配和释放虚拟存储空间。 操作系统:Windows 2000或Windows XP 实验平台:Visual Studio C++ 6.0 实验步骤与记录 1、启动安装好的Visual C++ 6.0。 2、选择File->New,新建Win32 Console Application程序, 由于内存分配、释放及系统存储 空间使用情况均是Microsoft Windows操作系统的系统调用,因此选择An application that support MFC。单击确定按钮,完成本次创建。 3、创建一个支持MFC的工程,单击完成。

操作系统实验-实验指导书

3 《操作系统》实验指导书 实验学时:16 适用专业:计算机科学与技术,软件技术 操作系统上机实验 一、实验目的 主要目的是配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解,同时加强学生对系统设计、程序编写、代码调试、软件开发过程基本技能的掌握。 上机作业应作到:覆盖讲授的所有原理内容,使得学生通过上机实践对原理有更深的理解;每一道上机作业,都要求学生必须完成一个完整的、可运行的小型软件,籍此提升基本的软件开发技能。 二、实验要求 (1)上机实验之前,学生应当为每次上机的内容作好充分准备。对每次上机需要完成的题目进行认真的分析,选择合适的算法,列出实验具体步骤,写出符合题目要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容以及思考题的要求进行上机操作。录入程序,编译调试,反复修改,直到使用要求的算法,使程序正常运行,得出正确的输出结果为止。 (3)上机作业要求提交原始代码、设计文档和可运行程序。以完整的作业包的形式提交。实验报告应当包括:实验题目,程序清单,运行结果,所选取的算法及其优缺点以及通过上机取得了哪些经验。程序清单要求格式规范,注意加注释(包含关键

字、方法、变量等),在每个模块前加注释,注释不得少于20% 三、实验内容 上机实验包括:操作系统使用、SHELL编程、进程管理、进程调度、死锁处理、存储管理、文件系统几个部分。 实验1: SHELL编程 实验目的 熟悉linux常用命令,为以后的实验打下良好基础; 熟悉vi编辑器的使用; 了解Shell程序的语法规则,能编写简单的Shell程序。 实验内容 1、使用常用的Linux命令,主要包括如下命令: date, mail, write, man, ls, cat, mv, grep, tail, head, cp, wc, pwd, who等; 2、使用vi编辑器编辑文件,熟悉vi编辑器的各种操作模式和常用命令。 3、使用vi编辑器编写一段Shell程序,取名为mycal,实现与Linux中cal命令类 似的功能,当输入: $mycal [月份名] 年时,屏幕输出指定的年月的月历。例如: $mycal October 2009 屏幕输出2009年10月的月历。 注:参数可以是英文或者是数字。 实验2:观察Linux的行为 实验目的 了解Linux proc文件系统; 加深对Linux系统的理解; 增强Linux系统管理知识。 实验内容 在Linux中,proc文件系统提供了一套在用户态检查内核状态和系统特征的机制。proc文件系统将进程的地址空间、系统的硬件信息、系统相关机制(中断、I/O)等内容全部设置为虚拟的Linux文件,为访问系统内核数据的操作提供接口。 1、以root登录系统,并进入/proc目录,键入ls命令,查看/proc下的内容,同时 查看每个文件的读写权限。 2、根据/proc下的信息,回答:CPU的类型和型号、当前Linux版本、从启动到当 前时刻所经过的时间、当前内存状态。

实验五实验六指导书

实验五 MATLAB 实现DFT MATLAB 为计算数据的离散快速傅时叶变换,提供了一系列丰富的数学函数,主要有fft 、ifft 、fft2、ifft2和czt 等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2幂次或者用添零的方式来添补数据使之成为2的幂次。 1.fft 和ifft 函数 调用格式是: (1)()X fft Y = 如果X 是向量,则采用傅时叶变换来求解X 的离散傅里叶变换;如果X 是矩阵,则计算该矩阵每一列的离散傅里叶变换;如果X 是()D N *维数组,则是对第一个非单元素的维进行离散傅里叶变换。 (2)()N X fft Y ,= N 是进行离散傅里叶变换的X 的数据长度,可以通过对X 进行补零或截取来实现。 (3)[]()dim ,,X fft Y =或()dim ,,N X fft Y = 在参数dim 指定的维上进行离散傅里叶变换;当X 为矩阵时,dim 用来指定变换的实施方向:dim=1,表明变换按列进行;dim=2,表明变换按行进行。 函数ifft 的参数应用与函数fft 完全相同。 2.fft2和ifft2函数 调用格式是: (1)()X fft Y 2= 如果X 是向量,则此傅里叶变换即变成一维傅里叶变换fft ;如果X 是矩阵,则是计算该矩阵的二维快速傅里叶变换;数据二维傅里叶变换fft 2(X )相当于()()''X fft fft ,即先对X 的列做一维傅里叶变换,然后再对变换结果的行做一维傅里叶变换。 (2)()N M X fft Y ,,2= 通过对X 进行补零或截断,使得X 成为()N M *的矩阵。 函数ifft2的参数应用与函数fft2完全相同 fftn 、ifftn 是对数据进行多维快速傅立变换,其应用与fft2、ifft2类似;在此,不再叙述。 3.czt 函数 调用格式是: ()A W M X czt X ,,,= 式中X 是待变换的时域信号()n x ,其长度设为N ,M 是变换的长度,W 确定变换的步

操作系统原理实验四

实验4 进程控制 1、实验目的 (1)通过对WindowsXP进行编程,来熟悉和了解系统。 (2)通过分析程序,来了解进程的创建、终止。 2、实验工具 (1)一台WindowsXP操作系统的计算机。 (2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 3、预备知识 (3)·CreateProcess()调用:创建一个进程。 (4)·ExitProcess()调用:终止一个进程。 4、实验编程 (1)编程一利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下: # include < stdio.h > # include < windows.h > int main(VOID) ﹛STARTUPINFO si; PROCESS INFORMA TION pi; ZeroMemory(&si,sizeof(si)); Si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, “c: \ WINDOWS\system32\ mspaint.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) ﹛fprintf(stderr,”Creat Process Failed”); return—1; ﹜ WaitForSingleObject(pi.hProcess,INFINITE); Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜

计算机网络实验指导书(6个实验)

实验一交换机的基本配置 一.实验原理 1.1以太网交换机基础 以太网的最初形态就是在一段同轴电缆上连接多台计算机,所有计算机都共享这段电缆。所以每当某台计算机占有电缆时,其他计算机都只能等待。这种传统的共享以太网极大的受到计算机数量的影响。为了解决上述问题,我们可以做到的是减少冲突域类的主机数量,这就是以太网交换机采用的有效措施。 以太网交换机在数据链路层进行数据转发时需要确认数据帧应该发送到哪一端口,而不是简单的向所有端口转发,这就是交换机MAC地址表的功能。 以太网交换机包含很多重要的硬件组成部分:业务接口、主板、CPU内存、Flash、电源系统。以太网交换机 的软件主要包括引导程序和核心操作系统两部分。 1.2以太网交换机配置方式 以太网交换机的配置方式很多,如本地Console 口配置,Telnet远程登陆配置,FTP TFTP配置和哑终端方式 配置。其中最为常用的配置方式就是Console 口配置和Telnet远程配置。 1.3以太网交换机基本配置方法 1.3.1交换机的用户界面交换机有以下几个常见命令视图: (1)用户视图:交换机开机直接进入用户视图,此时交换机在超级终端的标识符为。 (2)系统视图:在用户视图下输入实system-view命令后回车,即进入系统视图。在此视图下交换机的标识符 为:。](3)以太网端口视图:在系统视图下输入interface命令即可进入以太网端口视图。在此视图下交换 机的标识符为:。 (4)VLAN配置视图:在系统视图下输入vlan vlan —number即可进入VLAN配置视图。在此视图下交换机的标识符为:。 (5)VTY用户界面视图:在系统视图下输入user-interface vty number 即可进入VTY用户界面视图。在此视图下交 换机的标识符为:。 进行配置时,需要注意配置视图的变化,特定的命令只能在特定的配置视图下进行。 1.3.2交换机的常用帮助在使用命令进行配置的时候,可以借助交换机提供的帮助功能快速完成命令的查找和配置。 (1)完全帮助:在任何视图下,输入?”获取该视图下的所有命令及其简单描述。 (2)部分帮助:输入一命令,后接以空格分隔的?”,如果该位置为关键字,则列岀全部关键字及其描述;如果该位置为参数,则列岀有关的参数描述。 在部分帮助里面,还有其他形式的帮助,如键入一字符串其后紧接?”,交换机将列岀所有以该字符串开头的命令; 或者键入一命令后接一字符串,紧接?”,列岀命令以该字府串开头的所有关键字。 实验内容:交换机配置方法

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

(修改后) 系统仿真综合实验指导书(2011[1].6)

系统仿真综合实验指导书 电气与自动化工程学院 自动化系 2011年6月

前言 电气与自动化工程学院为自动化专业本科生开设了控制系统仿真课程,为了使学生深入掌握MATLAB语言基本程序设计方法,运用MATLAB语言进行控制系统仿真和综合设计,同时开设了控制系统仿真综合实验,30学时。为了配合实验教学,我们编写了综合实验指导书,主要参考控制系统仿真课程的教材《自动控制系统计算机仿真》、《控制系统数字仿真与CAD》、《反馈控制系统设计与分析——MATLAB语言应用》及《基于MATLAB/Simulink的系统仿真技术与应用》。

实验一MATLAB基本操作 实验目的 1.熟悉MATLAB实验环境,练习MATLAB命令、m文件、Simulink的基本操作。 2.利用MATLAB编写程序进行矩阵运算、图形绘制、数据处理等。 3.利用Simulink建立系统的数学模型并仿真求解。 实验原理 MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。 1.命令窗口(The Command Window) 当MATLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。 在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。 2.m-文件编辑窗口(The Edit Window) 我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB 主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。 3.图形窗口(The Figure Window) 图形窗口用来显示MATLAB程序产生的图形。图形可以是2维的、3维的数据图形,也可以是照片等。 MATLAB中矩阵运算、绘图、数据处理等内容参见教材《自动控制系统计算机仿真》的相关章节。 Simulink是MATLAB的一个部件,它为MATLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。 有两种方式启动Simulink:

操作系统原理实验报告(终版)

操作系统原理实验报告(终版)

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

[键入文字] XX学校 实验报告 课程名称: 学院: 专业班: 姓名: 学号: 指导教师: 2011 年3 月

目录 实验1 进程管理 (3) 一、实验目的 (3) 二、实验内容 (3) 三、实验要求 (3) 四、程序说明和程序流程图 (4) 五、程序代码 (5) 六、程序运行结果及分析 (7) 七.指导教师评议 (8) 实验2 进程通信 (9) 一、实验目的 (9) 二、实验内容 (9) 三、实验要求 (9) 四、程序说明和程序流程图 (9) 五、程序代码 (11) 七.指导教师评议 (14) 实验3 存储管理 (15) 一、实验目的 (15) 二、实验内容 (15) 三、实验要求 (15) 四、程序说明和程序流程图 (16) 六、程序运行结果及分析 (23)

七.指导教师评议 (23) 实验4 文件系统 (24) 一、实验目的 (24) 二、实验内容 (24) 三、实验要求 (24) 四、程序说明和程序流程图 (24) 五、程序代码 (26) 六、程序运行结果及分析 (26) 七.指导教师评议 (27)

实验1 进程管理 一、实验目的 1. 弄清进程和程序的区别,加深对进程概念的理解。 2. 了解并发进程的执行过程,进一步认识并发执行的实质。 3. 掌握解决进程互斥使用资源的方法。 二、实验内容 1. 管道通信 使用系统调用pipe( )建立一个管道,然后使用系统调用fork( )创建2个子进程p1和p2。这2个子进程分别向管道中写入字符串:“Child process p1 is sending message!”和“Child process p2 is sending message!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。 2. 软中断通信 使用系统调用fork( )创建2个子进程p1和p2,在父进程中使用系统调用signal( )捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill( )分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后终止。而父进程等待2个子进程终止后,输出信息“Parent process is killed!”后终止。 三、实验要求 1. 根据实验内容编写C程序。 2. 上机调试程序。 3. 记录并分析程序运行结果。

《计算机操作系统》实验指导书

《计算机操作系统》 实验指导书 (适合于计算机科学与技术专业) 湖南工业大学计算机与通信学院 二O一四年十月

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。 实验成绩考核: 实验成绩占计算机操作系统课程总评成绩的20%。指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。有以下情形之一者,实验成绩为不及格: 1.迟到、早退、无故缺勤总共3次及以上者; 2.未按时完成实验达3次及以上者; 3.缺交实验报告2次及以上者。

Matlab实验指导书(实验六)

MATLAB实验指导书 编著:李新平 二零零八年三月十四日

实验六、数据插值和数据拟合 6.1 实验目的 1)掌握用 MA TLAB 计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点 的数目,对三种插值结果进行初步分析。 2)掌握用 MA TLAB 进行多项式最小二乘拟合,会选择合适的函数及转化为线性函数。 3)通过实例学习用数据插值和数据拟合解决实际问题。 6.2 分段线性插值 设给定一元未知函数 ) (x f y = 的 1 + n 个结点的数据 b x x a n = < < = L 0 对应的函数 值 n y y , , 0 L ,根据这些结点数据求其余 ) ( i j x j 1 点的函数值 j y ,可将相邻两个节点之间用 直线连接起来,如此形成的一条折线(见右图)构成的分段线性函数 ) (x I n 来近似表示未知函 数 ) (x f ,从而解决该插值问题的方法就称为分段线性插值。可用如下公式表示: ) ( ) ( ) ( 0 x f x l y x I n j j j n ? = ? = 其余 , 0 , , ) ( 1 1 1 1 1 1 + + + - - - £ £ - - £ £ - - ? ? ? ? ? í ì = j j j j j j j j j j j x x x x x x x x x x x x x x x l 可用 MA TLAB 命令 y=interp1(x0,y0,x)来实现, 其中参数 x0 为给定结点数据的横坐标向 量,参数 y0 为 x0 对应的函数值,参数 x 为要未知结点的横坐标向量,函数返回值 y 为参数 x 根据分段线性插值得到的函数值。 【例】插值求在[0,15]区间内步长为 0.1 的机床加工数据: >>x0=[0 3 5 7 9 11 12 13 14 15]? y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]? >>x=0:0.1:15? % 插值点 >>y=inpert1(x0, y0, x) % 插值求得函数值 6.3 拉格朗日插值 设未知函数 ) (x g y = 是n 次多项式,给定该n 次多项式 1 + n 个结点的数据 ), , {( i i y x , } , , 0 n i L = 根据这些结点数据求其余 ) ( i j x j 1 点的函数值 j y ,可考虑如下构造:

操作系统原理实验五

实验五线程的同步 1、实验目的 (1)进一步掌握Windows系统环境下线程的创建与撤销。 (2)熟悉Windows系统提供的线程同步API。 (3)使用Windows系统提供的线程同步API解决实际问题。 2、实验准备知识:相关API函数介绍 ①等待对象 等待对象(wait functions)函数包括等待一个对象(WaitForSingleObject ())和等待多个对象(WaitForMultipleObject())两个API函数。 1)等待一个对象 WaitForSingleObject()用于等待一个对象。它等待的对象可以为以下对象 之一。 ·Change ontification:变化通知。 ·Console input: 控制台输入。 ·Event:事件。 ·Job:作业。 ·Mutex:互斥信号量。 ·Process:进程。 ·Semaphore:计数信号量。 ·Thread:线程。 ·Waitable timer:定时器。 原型: DWORD WaitForSingleObject( HANDLE hHandle, // 对象句柄 DWORD dwMilliseconds // 等待时间 ); 参数说明: (1)hHandle:等待对象的对象句柄。该对象句柄必须为SYNCHRONIZE访问。 (2)dwMilliseconds:等待时间,单位为ms。若该值为0,函数在测试对象的状态后立即返回,若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒,如表2-1所示。 返回值: 如果成功返回,其返回值说明是何种事件导致函数返回。

Static HANDLE hHandlel = NULL; DWORD dRes; dRes = WaitForSingleObject(hHandlel,10); //等待对象的句柄为hHandlel,等待时间为10ms 2)等待对个对象 WaitForMultiple()bject()在指定时间内等待多个对象,它等待的对象与 WaitForSingleObject()相同。 原型: DWORD WaitForMultipleObjects( DWORD nCount, //句柄数组中的句柄数 CONST HANDLE * lpHandles, //指向对象句柄数组的指针 BOOL fWaitAll, //等待类型 DWORD dwMilliseconds //等待时间 ); 参数说明: (1)nCount:由指针 * lpHandles指定的句柄数组中的句柄数,最大数是MAXIMUM WAIT OBJECTS。 (2)* lpHandles:指向对象句柄数组的指针。 (3)fWaitAll:等待类型。若为TRUE,当由lpHandles数组指定的所有对象被唤醒时函数返回;若为FALSE,当由lpHandles数组指定的某一个 对象被唤醒时函数返回,且由返回值说明是由于哪个对象引起的函数 返回。 (4)dwMilliseconds:等待时间,单位为ms。若该值为0,函数测试对象的状态后立即返回;若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒。 返回值:、 如果成功返回,其返回值说明是何种事件导致函数返回。 各参数的描述如表2-2所示。

Linux操作系统实验指导书-4磁盘

《Linux操作系统》实验指导书

实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户user01,具体属性如下: 登录shell为/bin/bash, 主目录/user01, 用户id: 520, 用户组grp01 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell为/bin/bash, 主目录/user02, 用户id: 530, 用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash, 主目录/user03, 用户id: 530, 用户组grp03,附属组grp02 4,对user01,user02,user03,设置密码并登录。 一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk –l 2 显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等)

步骤:df –h 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘是否成功添加。 步骤: 1 关机:init 0 2 添加新硬盘:右键单击虚拟机,选择setting(设置)。在Add中按照要求添加2块新硬盘(HardDisk) 3 开机后,打开终端。输入命令fdisk –l 或ls /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1. 将第二块硬盘sdb分区(5G),要求分区1(sdb1)为主分区,类型为swap (82),大小为500M;分区2(sdb2)为主分区,类型为linux(83),大小为2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm(8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告中。 2. 将第三块硬盘sdc分区(10G),要求分区1(sdc1)为扩展分区,大小为10G;

小学六年级科学实验指导书要点

教材分析 本册共分四个单元,共32课。 第一单元工具和机械本单元介绍了常用工具杠杆、轮轴、滑轮、斜面的原理及在日常生活中的应用。尤其是结合常用工具和实验器材设置了许多和日常生活密切相关的探究活动,在探究活动中让学生掌握各类机械和工具的特点和作用。 第二单元形状和结构本单元介绍了各种建筑物中使用的形状和结构及其特点,从实验材料的选取到各种不同的设计都能切实培养学生的创新意识和创新实践能力。 第三单元能量本单元介绍了电能、水的三态变化、太阳能以及他们之间的联系,学生掌握自然界中的物质可以相互转化,能量可以相互转化的自然规律,使学生养成爱护大自然,保护环境的意识。 第四单元生物的多样性知道生物的种类多种多样。知道同种生物不同的个体各不相同。初步理解生物体不同的形态结构是与它们的生活环境相适应的。知道生物的多样性是人类生存的重要资源。能自己确定标准对生物进行分类,知道分类是研究生物的基本方法。会用制作生物分布图的方法描述某一区域的生物种类。

(一)研究杠杆的秘密 【实验目的】 用杠杆尺做实验、收集并整理数据,分析认识杠杆省力、费力、不省力也不费力的规律。 【实验材料】 杠杆尺25个、钩码25盒。 【实验方法】 在杠杆尺的左边挂上钩码当作被撬动的重物,右边挂上钩码当作撬动时我们用的力。 1.小组任意在杠杆尺两端挂钩码,记录下挂钩码的位置和数量,并记录下此时杠杆尺的状态。 2.重复几次实验,收集几组不同的数据。 3.将2-3个小组的实验数据进行整合,汇集成一个更大的数据库。 4.对这个数据库进行分析,将能省力的情况、费力的情况、不省力也不费力的情况进行统计,分析出杠杆在什么条件下省力?在什么条件下费力?在什么条件下不省力也不 费力? 【注意事项】 1. 在一大堆杂乱无章的数据中,寻找有用的数据来说明问题也是进行科学探究的一种方法。 2. 数据越多越能说明问题,所以在实验中要收集尽可能多的数据。 3.杠杆尺左右只选一个位置挂钩码。 (二)滑轮和滑轮组

操作系统原理实验2+岳青山+0907052247

《操作系统原理》实验报告 实验序号:2 实验项目名称: Windows 基本进程管理 1、实验目的 通过观察任务管理器,来观察各个进程的动态信息。 2、实验工具 (1)一台WindowsXP操作系统的计算机。 (2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 3、预备知识 ·任务管理器,了解用户计算机上正在运行的程序和进程的相关信息。 ·Windows环境中的编程。 相关内容参见本次实验参考资料部分。 4、基本实验 1)观察任务管理器 步骤一:进入WindowsXP。 步骤二:按Ctrl+Alt+Delete(或按Ctrl+Shift+Esc)键都可以调出任务管理器。 步骤三:单击“查看”→“选择列”选项,可以看到一些选项, 这里,可以查看每个进程的PID,CPU使用时间,内存的使用情况,当前的进程是系统的还是用户的,每个句柄的数量,每个进程的优先级,等等。 步骤四:单击“性能”标签,在所示的“性能”选项卡中可以看到CPU的使用情况、内存的使用情况。 2)通过命令观察进程情况、 步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。 步骤二:输入tasklist。 步骤三:继续输入tasklist/?来寻找帮助,里面有更详细的解释。 3)通过命令来关闭一个进程 步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。 步骤二:输入tasklist后回车执行。 步骤三:继续输入taskkill/PID 208/T 5、实验编程 进行一个简单的Windows的图形用户接口(GUI)编程。 步骤一:进入WindowsXP。 步骤二:进入Microsoft Visual Studio C++6.0。 步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如D:\1.cpp),并命名为1.cpp。 步骤四:将下面的程序源代码输入。 步骤五:单击Windows系统的“开始”→“运行”选项,输入cmd。

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