操作系统实验指导2.docx

上传人:b****7 文档编号:10814945 上传时间:2023-02-23 格式:DOCX 页数:52 大小:43.33KB
下载 相关 举报
操作系统实验指导2.docx_第1页
第1页 / 共52页
操作系统实验指导2.docx_第2页
第2页 / 共52页
操作系统实验指导2.docx_第3页
第3页 / 共52页
操作系统实验指导2.docx_第4页
第4页 / 共52页
操作系统实验指导2.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

操作系统实验指导2.docx

《操作系统实验指导2.docx》由会员分享,可在线阅读,更多相关《操作系统实验指导2.docx(52页珍藏版)》请在冰豆网上搜索。

操作系统实验指导2.docx

操作系统实验指导2

课程名称:

操作系统实验课程编号:

16001226a

系部

信息科学与技术

教师

夏少芳

课时

2

班级

09级计科本1、网工1

地点

系统集成实验室

人数

25-30人  

课题

实验一LINUX系统安装及初级命令

课型

讲授课、演示课。

教学媒体

实物、投影、幻灯、CAI(计算机辅助教学)

教学方法

讲授法、演示法、案例法

教学重点

安装LINUX操作系统,熟悉LINUX命令的格式,掌握一些常用的命令及如何使用帮助

教学难点

安装LINUX操作系统,熟悉LINUX命令的格式,掌握一些常用的命令及如何使用帮助

教学目标

知识

掌握、理解

技能能力

掌握

教学内容及进程

进程

教学内容

备注

教学内容讲解

安装LINUX操作系统,熟悉LINUX命令的格式,掌握一些常用的命令及如何使用帮助。

1.安装LINUX系统(或使用虚拟机安装)及修改密码。

2.基本命令GEDIT、SU、WHOAMI、SHUTDOWN、PWD、LS、CD、TOUCH、CAT、CP、MV、GZIP、TAR、RM|、CHMOD等的使用。

3.LINUX下的帮助命令MAN、HELP。

4.LINXU下文本编辑器。

用时20分钟

操作步骤

一、启动Linux系统

屏幕会显示:

[root@localhost/root]#

注意超级用户的提示符是“#”,其他用户的提示符是“$”。

二、退出系统

命令格式:

shutdown[选项]时间[警告]

Linux系统对文件和目录的操作命令

Ø命令格式:

ls[选项][目录或是文件]

Øcp[选项]源文件或目录目标文件或目录

$cpfile1.txtfile2.txt

$cp–i/usr/file3.txt/home/xh/file4.txt

Ømv[选项]源文件或目录目标文件或目录

$mvfile1file2

$mvfile..

Ørm[选项]文件名|目录名

$rmfile1.txt

$rm–i*

$rm–rfxh

Ømkdir[选项]dir-name

$mkdirxh

$mkdir–pnewdir/subdir

$mkdir–m744dir

Ørmdir[选项]dir-name

$rmdirdir

Øcd[路径]

$cd..

$cdsubdir

Øpwd

$pwd

•cat[选项]文件列表

$cat–blinuxbook.txt

$cat>testfile.txt

$catfile1file2>file3

•find目录列表[选项

grep[选项]字符串文件列表

more[选项]文件名

Linux与用户有关的命令

•passwd修改用户口令

命令格式:

passed[用户名]

•su[使用者账号]更改当前用户

•df(DiskFilesystem)检查文件系统的磁盘空间占用情况

•命令格式:

df[选项]

•who查看当前在线上的用户情况

•who

•ps进程查看命令

•ps[选项]

•$ps–u

•$ps–l

•$ps–al

•$ps–aux

•cal显示日历

•cal[选项][月份][年]

•$cal

•$cal-y

•date显示和设置系统日期和时间

•date[选项]+显示时间格式

•$date

$date08211550

70

课程名称:

操作系统实验课程编号:

16001226a

系部

信息科学与技术

教师

夏少芳

课时

2

班级

09级计科本1、网工1

地点

系统集成实验室

人数

25-30人  

课题

实验二SHELL初步

课型

讲授课、演示课。

教学媒体

实物、投影、幻灯、CAI(计算机辅助教学)

教学方法

讲授法、演示法、案例法

教学重点

熟悉SHELL基本操作,并使学生有机会使用LINUX中最常用的数据处理命令

教学难点

熟悉SHELL基本操作,并使学生有机会使用LINUX中最常用的数据处理命令

教学目标

知识

掌握、理解

技能能力

掌握

教学内容及进程

进程

教学内容

备注

教学内容讲解

熟悉SHELL的基本操作,并使学生有机会使用LINUX中最常用的数据处理命令

1、使用通配符来进行文件名的查找。

2、重定向标准输入、标准输出、标准错误输出。

3、使用管道操作,将一个进程的输出作为别一个里程的输入。

4、使用FIND、GREP命令在目录中,对满足条件文件名进行递归查找。

5、了解VI编辑器的基本用法。

6、在文本文件中,查找符合指定模式的文本行。

7、显示一个文本文件的前几行或者后几行。

用时20分钟

Shell的基本操作

•I/O重定向

command>file

•二.管道pipe

command1|command2[|command3...]

who|sort >user_list

•通配符

ls*.c

lsa*

lsfile?

ls[abc]

ls/bin/[a-d]*

•find目录列表[选项]

•grep[选项]字符串文件列表

$grep'textfile'example

vi的使用

一、进入vi

$vimyfile

二、退出vi

q!

离开vi,并放弃刚才编辑的内容。

wq存盘并退出

ZZ存盘并退出

x同wq

w存盘但并不退出

q退出vi,若文件被修改过,则会被要求确认是否放弃修改的内容。

此指令可与w配合使用。

命令模式的常用命令

命令

说明

功能键

h

向左移一个字符

I

向右移一个字符

J

向上移一个字符

k

向下移一个字符

0

移至该行之首

Home

$

移至该行之末

End

插入模式的常用命令

命令

命令说明

a

从光标所在位置后面开始新增文本

A

从光标所在行最后面的地方开始新增文本

i

从光标所在位置前面开始插入文本

I

从光标所在列的第一个非空白字元前面开始插入文本

o

在光标所在列下新增一行并进入输入模式

O

在光标所在列上方新增一行并进入输入模式

末行命令模式的常用命令

命令

说明

:

q

结束编辑

:

q!

强制离开vi,放弃存盘

:

w

存盘

:

wfilename

将编辑内容保存为名为filename的文件

:

wq

存盘并退出

80

课程名称:

操作系统实验课程编号:

16001226a

系部

信息科学与技术

教师

夏少芳

课时

2

班级

09级计科本1、网工1

地点

系统集成实验室

人数

25-30人  

课题

实验三C编程与调试

课型

讲授课、演示课。

教学媒体

实物、投影、幻灯、CAI(计算机辅助教学)

教学方法

讲授法、演示法、案例法

教学重点

熟悉C编程工具GCC、GDB、MAKE并为后续项目作准备

教学难点

熟悉C编程工具GCC、GDB、MAKE并为后续项目作准备

教学目标

知识

掌握、理解

技能能力

掌握

教学内容及进程

进程

教学内容

备注

教学内容讲解

熟悉C编程工具GCC、GDB、MAKE并为后续项目作准备。

1、使用VI编辑一个C文件HELLO.C,并使用GCC编译。

2、使用GDB对程序进行调试。

3、使用MAKE进行项目文件管理。

用时20分钟

实验内容

Linux的编译器gcc

命令格式:

gcc[选项]源文件[目标文件]

例:

$gcchello.c–ohello

1.gcc的主要选项

-xlanguagefilename

  设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp

-xlanguagefilename

  设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp

-S

  只激活预处理和编译,就是指把文件编译成为汇编代码

-E

  只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面

-o

  制定目标名称,缺省的时候,gcc编译出来的文件是a.out

2.gdb调试

gdb中有关调试过程中显示数据的命令

gdb中有关文件的命令

gdb中有关程序运行的命令

3.用gcc编译运行一个c程序

4.用gdb进行调试

5.make命令的应用

无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。

然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序

要写一个Makefile来告诉make命令如何编译和链接这几个文件。

我们的规则是:

    1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。

    2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。

    3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。

只要我们的Makefile写得够好,所有的这一切,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。

Makefile的规则

Target:

prerequisites ...

            command

 target也就是一个目标文件,可以是Object File,也可以是执行文件

prerequisites就是,要生成那个target所需要的文件或是目标。

    command也就是make需要执行的命令。

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。

说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。

这就是Makefile的规则。

也就是Makefile中最核心的内容。

陈皓

概述

——

什么是makefile?

或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。

这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。

特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。

因为,makefile关系到了整个工程的编译规则。

一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:

Delphi的make,Visual C++的nmake,Linux下GNU的make。

可见,makefile都成为了一种在工程方面的编译方法。

现在讲述如何写makefile的文章比较少,这是我想写这篇文章的原因。

当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。

必竟,这个make是应用最为广泛的,也是用得最多的。

而且其还是最遵循于IEEE 1003.2-1992 标准的(POSIX.2)。

在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。

这里所默认的编译器是UNIX下的GCC和CC。

 

关于程序的编译和链接

——————————

在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。

然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

编译时,编译器需要的是语法的正确,函数与变量的声明的正确。

对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。

一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。

链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。

链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。

总结一下,源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。

在编译时,编译器只检测程序语法,和函数、变量是否被声明。

如果函数未被声明,编译器会给出一个警告,但可以生成Object File。

而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:

Link 2001错误,意思说是说,链接器未能找到函数的实现。

你需要指定函数的Object File.

好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧。

 

Makefile 介绍

———————

make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。

首先,我们用一个示例来说明Makefile的书写规则。

以便给大家一个感兴认识。

这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。

我们的规则是:

    1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。

    2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。

    3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。

只要我们的Makefile写得够好,所有的这一切,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。

一、Makefile的规则

在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。

    target ... :

 prerequisites ...

            command

            ...            ...

    target也就是一个目标文件,可以是Object File,也可以是执行文件。

还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

    prerequisites就是,要生成那个target所需要的文件或是目标。

    command也就是make需要执行的命令。

(任意的Shell命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。

说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。

这就是Makefile的规则。

也就是Makefile中最核心的内容。

说到底,Makefile的东西就是这样一点,好像我的这篇文档也该结束了。

呵呵。

还不尽然,这是Makefile的主线和核心,但要写好一个Makefile还不够,我会以后面一点一点地结合我的工作经验给你慢慢到来。

内容还多着呢。

二、一个示例

正如前面所说的,如果一个工程有3个头文件,和8个C文件,我们为了完成前面所述的那三个规则,我们的Makefile应该是下面的这个样子的。

    edit :

 main.o kbd.o command.o display.o \

           insert.o search.o files.o utils.o

            cc -o edit main.o kbd.o command.o display.o \

                       insert.o search.o files.o utils.o

    main.o :

 main.c defs.h

            cc -c main.c

    kbd.o :

 kbd.c defs.h command.h

            cc -c kbd.c

    command.o :

 command.c defs.h command.h

            cc -c command.c

    display.o :

 display.c defs.h buffer.h

            cc -c display.c

    insert.o :

 insert.c defs.h buffer.h

            cc -c insert.c

    search.o :

 search.c defs.h buffer.h

            cc -c search.c

    files.o :

 files.c defs.h buffer.h command.h

            cc -c files.c

    utils.o :

 utils.c defs.h

            cc -c utils.c

    clean :

            rm edit main.o kbd.o command.o display.o \

               insert.o search.o files.o utils.o

反斜杠(\)是换行符的意思。

这样比较便于Makefile的易读。

我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中,然后在该目录下直接输入命令“make”就可以生成执行文件edit。

如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下“make clean”就可以了。

 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。

    2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。

    3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。

    4、如果edit所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。

(这有点像一个堆栈的过程)

    5、当然,你的C文件和H文件是存在的啦,于是make会生成 .o 文件,然后再用 .o 文件生命make的终极任务,也就是执行文件edit了。

这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。

用时80分

 

课程名称:

操作系统实验课程编号:

16001226a

系部

信息科学与技术

教师

夏少芳

课时

2

班级

09级计科本1、网工1

地点

系统集成实验室

人数

25-30人  

课题

实验四进程调度算法的设计

课型

讲授课、演示课。

教学媒体

实物、投影、幻灯、CAI(计算机辅助教学)

教学方法

讲授法、演示法、案例法

教学重点

通过对进程调度算法的设计,深入理解进程调度的原理

教学难点

通过对进程调度算法的设计,深入理解进程调度的原理

教学目标

知识

掌握、理解

技能能力

掌握

教学内容及进程

进程

教学内容

备注

教学内容讲解

通过对进程调度算法的设计,深入理解进程调度的原理。

1、实现短进程优先调度算法。

2、时间片轮转调度算法。

(相关原理参考教材)

用时20分钟

课堂小结

1.短作业优先算法

2.时间片轮转算法

用时10分

课程名称:

操作系统实验课程编号:

16001226a

系部

信息科学与技术

教师

黄俊英

课时

2

班级

09级计科本2,11计科接本1

地点

系统集成实验室

人数

25-30人  

课题

实验五内存页面置换算法的设计

课型

讲授课、演示课。

教学媒体

实物、投影、幻灯、CAI(计算机辅助教学)

教学方法

讲授法、演示法、案例法

教学重点

通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面转换算法

教学难点

通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面转换算法

教学目标

知识

掌握请求页式存储管理的页面置换算法、理解虚拟存储

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1