操作系统专科实验.docx

上传人:b****5 文档编号:5153683 上传时间:2022-12-13 格式:DOCX 页数:40 大小:33.17KB
下载 相关 举报
操作系统专科实验.docx_第1页
第1页 / 共40页
操作系统专科实验.docx_第2页
第2页 / 共40页
操作系统专科实验.docx_第3页
第3页 / 共40页
操作系统专科实验.docx_第4页
第4页 / 共40页
操作系统专科实验.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

操作系统专科实验.docx

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

操作系统专科实验.docx

操作系统专科实验

目录

实验1Linux文件与目录的基本使用1

实验目的1

实验学时:

2学时1

实验过程:

1

1.文件与文件名1

2.目录2

3.LinUX文件与目录的部分常用命令2

4.上机指导4

实验2Vi编辑器的使用和Linux下的编程6

实验目的学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。

6

实验学时:

2时6

实验内容1.进入和退出vi。

2.利用文本插入方式建立一个文件。

3.在新建的文本文件上移动光标。

4.对文本文件执行删除、复原、修改、替换操作。

6

四.实验步骤6

实验3Linux的进程管理10

实验4进程调度17

实验5虚拟页式管理27

实验1Linux文件与目录的基本使用

实验目的

1、熟悉Linux的文件和目录

1)掌握Linux文件名通配符的使用。

2)了解Linux系统目录的特点。

2、了解Linux文件系统

1)了解Linux文件系统根目录的子目录。

2)了解/bin目录中的

实验学时:

2学时

实验过程:

1.文件与文件名

(1)Linux的文件名长度可达256个字符,且不能使用如下字符做文件名:

!

@#$%n&。

()【】{}…、/;<>空格

(2)Linux文件区分大小写。

ABC与abc、Abc、aBc、abc、‘·均不相同。

·

(3)文件名中如果有多个小数点,则最右边的一个为分隔符。

其右边部分往往用于表

示文件类型。

如:

.txt,.rpm,.C。

2.目录

/homelfeng/ls01.txt

注意:

MD-DOS与Linux/UNIX的分隔符相反。

3.LinUX文件与目录的部分常用命令

(1)ls命令。

功能:

查看指定目录下的文件和目录。

注意:

ls是list的缩写,不是is。

命令与参数间、参数与参数间必须用空格分隔。

格式:

ls[options][filename/dirname…]

常用选项说明:

-a显示所有文件和目录,包括隐含文件。

-l显示文件的完整信息。

-F用在每个文件名的后面或前面添加一个特定的后缀字符的方法指出它的类型。

/子目录

*可执行文件,

无普通文件

.开头隐含文件.‘

-r将文件以相反次序显示(依英文字母次序)。

-t将文件依建立时间的先后次序列出,后建的排在前面。

-R若目录下有文件,则其下的文件也依次序列出。

Filename/dirname若为文件名,则显示filename指定文件的目录信息;

若为目录名,则显示dirname指定目录中的内容;若默认,则显示当前目录中的内容。

范例1:

列出目前工作目录下所有名称是s开头的文件,越新的越排后面:

ls-ltrS*

范例2:

将/bin目录及文件详细信息列出:

ls-1R/bin

范例3:

列出目前工作目录下所有文件及目录;目录于名称后加“/”,可执行文件于名

称后加“*”

Is-AF

(2)mkdir命令。

功能:

创建名为dirname的子目录。

格式:

mkdir[options]

(3)rmdir命令。

功能:

删除目录名为dirllalile的子目录。

格式:

rmdir

(4)cd命令

功能:

更改当前目录为dimame。

格式:

cd[dirname

范例1:

进入idl目录。

[feng@locallaostfeng]$cdidl

[feng@localhostial]$

范例2:

进入用户tlc的目录。

[feng@localhostfeng]$cd~tlc

[feng@localhost-tlc]$

(5)cp命令。

格式1:

cploptions]

功能:

更名复制,将由source制定名称的源文件复制到dest,并更名为由dest指定的

文件名。

格式2:

cp[options]

功能:

将由sotiree…指定的一组源文件复制到由‘directory指定的目录下。

范例1:

文件的改名复制,即复制文件srcf到本地并改名为dstf。

[feng@localhostfeng]$cpsrcfdstf

范例2:

复制当前目录下所有文件到/tmp目录。

[feng@localhostfeng]$cp。

/map

(6)mv命令。

功能:

移动一个或一批文件到指定的目录。

格式:

mv[options]

常用选项说明:

-i若目的地已有同名文件,则先询问是否覆盖旧文件。

范例:

将所有的C语言程序文件移至Finished子目录中。

mv-i*.cFinished

(7)rm命令。

功能:

删除由filenam.e/dirname…指定的文件或目录。

格式:

rm[options]

使用权限:

所有使用者。

常用选项说明:

一i删除前逐一询问确认。

一f即使原文件属性设为只读,也直接删除,无须逐_确认。

一r将指定目录下的所有文件及子目录一并删除。

-d直接将欲删除的目录的硬连接数据删成0,删除该目录。

一v显示指令执行过程。

--help在线帮助。

一一version显示版本信息。

范例1:

删除所有C语言程序文件;删除前逐一询问确认。

范例2:

将Finished,子日录及子目录中所有文件删除。

rm-rFinished

4.上机指导‘,

观察当前目录如下:

[feng@localhostfeng]$lS一1

total40

drwxr-xr-x5fengfeng4096Mar2405:

35Desktop

-rw-rw-r--1fengfeng20Mar2410:

18cmd.t

-rw-rw-r--lfengfeng0Mar2409:

56fgo1.txt

-rw-rw-r--1fengfeng92Mar2409:

55jobs01.tXt

-rw-rw-r--1fengfeng94Mar24lO:

Ol'jobs02.txt

-rw-rw-r--1fengfeng0Mar2410:

50kilt02.tXt

-rw-rw-r--1rootroot783Mar2515:

56ls01.tXt

drwx----……2fengfeng4096Mar2409:

29nsmail

-rw-rw-r--_1fengfeng112Mar2409:

42ps01.txt

-rw-rw-r--一1fengfeng140Mar2410:

02ps02.txt

“-rw-rw-r--_1fengfeng3Mar2410:

45

-rw-rw-r---一1fengfeng1777Mar2409:

41top01.txt

[feng@localhostfeng]$

文件目录项由如下内容组成:

权限标志,inode的连接数,文件属主的登录名,共享该

文件访问的用户组组名,字节数,最后修改日期时间,文件(目录名)。

第1行(drwxr-xr—x5fengfeng4096Mar2405:

35Desktop)解释如下:

--

权限标志为rwxr—xr-x,inode的连接数为5,文件属主的登录名为feng,共享该文件访问的用户组组名为feng,字节数为4096,最后修改日期时间为Mar2405:

35,文件(目录名)为Desktop。

[feng@localhostfeng]$ls—aF

bashlogout

.bash_history.bash_profile

.gnome,desktop/

.mc/

.netscape!

.sawfish/

.ICEauthority.Xauthority

.bashrc.emacs

.gnome_private/.kde/

.screenrcDesktop/

.gnome/

.kderc

[feng@localhostfeng]$

 

实验2Vi编辑器的使用和Linux下的编程

实验目的

学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。

实验学时:

2时

实验内容

1.进入和退出vi。

2.利用文本插入方式建立一个文件。

3.在新建的文本文件上移动光标。

4.对文本文件执行删除、复原、修改、替换操作。

四.实验步骤

1.vi编辑器

vi是UNIX世界里最通用的全屏编辑器,所有的UNⅨ机器都提供本编辑器.UNIX

里提供的是vi的加强版-vim,同vi完全兼容。

vi的原意是“visual”,即可视编辑器,用户

键入的内容会立即被显示出来。

学会vi可以让用户在任何一台UNIX机器,无论是SUN、

、HP、AIx、SGI.,还是Linux或FreeBSD上,都可以得心应手地编辑文件。

vi编辑器的使用:

(1)进入。

只要在命令行上键入vi就可以进入vi的编辑环境,输入“vi文件名”,则

vi自动装入文件或开始一个新文件。

“。

vi有两种状态,即编辑状态和命令状态。

用户在输入状态下可以输入文字瓷

态是用来执行打开文件,存档,离开vi等操作命令。

执行vi后首先进入指令状

入的任何字符都作为指令来处理∥vi屏幕的左方出现波浪号“~”,代表本行为空

(2)进入编辑状态。

以下为相应的指令:

①追加(append)。

j

a从光标所在位置后面开始追加文字,光标后的文字随追加的文字向后

A从光标所在列最后面的地方开始追加文字。

②插入(insert)。

i从光标所在位置前面开始插入文字,光标后的文字随追加的文字向后移动。

I从光标所在行的第一个非空白字符前面开始插入文字。

③开始(open),。

o在光标所在行下新增一行并进入输入状态。

O在光标所在行上方新增一行并进入输入状态。

(3)编辑命令:

x删除光标所在字符。

dd删除光标所在的行。

r修改光标所在字符接下来要修正的字符。

R进入改写状态,新增文字会覆盖原先文字。

s删除光标所在字符,并进入输入状态。

S删除光标所在的行,并进入输入状态。

(4)从编辑状态退出到命令状态。

按Esc键。

(5)退出命令。

q结束编辑(quit)。

如果不想存档而要放弃编辑过的文件则用:

q!

强制离开。

w存档(write)其后可加所要存档的名。

wq即存档后离开。

2。

Linux下的编程

(1)源程序。

所谓源程序就是使用程序设计语言编写的程序文本文件,C语言的源程序

以:

c作为类型名的文件,在Linux中,G源程序可使用Linux的编辑器

(2)编译O编译是由编译器将源程序转换为相应的目标程序,编译器只能发现源程序

中的语法错误而不能发现语义错误:

如果源程序中存在语法错误,编译器会输出出错信息并停止编译,这时需要修改源程序后重新编译,如此反复直至编译器不再发现错误,才得到正

确的目标程序。

3.GCC编译器的使用

在Linux下使用C语言进行编程,使用得最多的编译器为GNUC编译器,简称GCC。

这个软件符合自由软件基金会的GPL原则,在各种版本的Linux中都有该编译器。

该编译

器支持C、c++、ObjectiveC等语言。

GCC编译C源程序并生成可执行文件要经过以下四步:

(1)预处理。

GCC编译器调用cpp程序,对各种命令如:

#define、#include、#iF进行分析。

(2)编译。

GCC编译器调用cci程序,根据输入文件产生中间文件。

,、

⑶汇编。

Gcc编译器调用as程序,用中间文件作为输入,产生以o作为类型名的目标文件。

(4)连接。

GCC编译器调用1d程序,将各目标程序组合于可执行文件中的适当位置,这一程序引用的函数也放在可执行文件中。

GCC的基本用法:

gcc[options][filenames]

(1)有多个选项时,不能只用一个连字符来表达,必须个选项用各自的连字符,如:

gcc-P-gtest.c

gcc-pgtest.c

效果不等效。

(2)当gcc不带任何选项时,它将.c文件编译成一个叫做a.out的可执行文件,如:

gcctest.c

输出的文件就为a.out。

常用选项如表所示。

选项

功能

一C

对源程序进行预处理、编译和汇编,产生目标文件,但不进行连接。

每个源程序产生一个

目标文件

一0<文件名

定义输出的执行文件名为<文件名>

一S

在编译后停止,产生类型名为s的汇编代码文件,不生成中间文件

一E

在预处理后停止,输出预处理后的源代码至标准输出,不进行编译

一0

对程序编译进行优化,减少被编译程序的长度和执行时间,但此时的编译速度比不做优化慢

且要求较多的内存

一02

比-O优化效果更好,但编译速度较慢

一g

产生一张用于调试和排错的扩展符号表,以便用@qu的调试程序gdb进行调试

例如,hello.c源程序如下:

#include

main(){

printf("HelloWorld!

");

}

编译:

gcc一0hellohello.c

./hello

4·调试源程序

当编译后得到的目标程序在运行中出现故障时,需要对源程序进行调试以找出错误,排

除故障。

LINUX提供了调试源程序的工具GCB,GCB不仅允许用户运行程序时显示源代码,而且在调试过程中允许在预设的断点处暂停程序的运行,显示变量的内容。

下面介绍gdb的基本使用方法。

在shell提示符下键入命令“gdb<文件名>”,则启动gdb并等待由文件名指定的目标

程序文件,并给出gdb的提示符:

“(gdb)”。

在gdb的提示符下,键人命令“q’’(或quit)

gdb中的常用命令如表所示。

命令

功能

R(run)

运行程序

P<变量>(或print<变量)

显示变量内容

P&<变量>(或print&<变量>)

显示变量地址

where

显示函数的调用情况及使用的参数

Infolocals

显示已定义的变量和参数

1<行号)(或list<行号>)

显示指定行号开始的源代码

I<函数>[或fist<函数>]

显示函数中的源代码

lnfobreak

列出所有的断点

d(或deletel

删除所有断点

注意:

在使用GCB调试程序前,必须使用gcc—g对源程序进行编译。

5.运行源程序

经调试排错后目标程序即可正常运行,并产生就有的的正确结果。

运行目标程序的方法是

shell提示符下键入目标程序的绝对路径和目标程序名。

6上机指导

(1)建立C源程序文件demon程序内容如下

main(){

intI,j,k;

i=4:

d0{

for(j=o;j

printf(““);

for(k=0;k<9—2*i;++k)

printf(“*”);

printf(“\n”);

}while(--i>0);

}

用vi编辑器建立C源程序文件demo.C的方法如下:

①键入命令“videmo.c”,启动vi;

②按命令“i”,进入Vi的插入状态;

③输入程序内容;

④按Esc键,再键入“:

”,切换到vi的命令状态;

⑤最后键入命令“wq”,保存文件内容后退出vi。

至此,c源程序文件star.c已建立。

(2)编译成可调试的可执行文件如下:

[feng@localhostdemo]$gcc–g-Odemodemo.c

[feng@localhostdemo]$ls-1

total20

[feng@localhostdemo]$

(3)程序的运行效果如下:

【feng@localhostdemo】$./demo

*

***

******

*******

实验3Linux的进程管理

一.实验目的:

1.掌握监视系统的几个Linux基本命令:

PS--查看系统的进程

tty--查看当前使用的终端

df--查看系统的文件系统的空间使用情况

du--查看具体某个文件和目录的磁盘空间的占用情况

free--查看使用的内存资源的情况

2.掌握Linux下的联机帮助手册的使用

3.掌握Linux命令的简要帮助的获取方法

4.掌握一些其他常用的Linux命令:

cal--显示日历

date--显示系统的日期和时间

clear--清屏

find--查找文件

uname--查看系统信息

who--查看其他登录的用户

which--查看命令的全路径

二.实验学时:

2学时

三.实验内容:

1.使用ps查看系统的进程运行情况,使用不同的命令选项并比较显示结果的差别;查看当前系统已安装的文件系统的空间使用情况;查看用户的家目录占用了多少空间;查看使用的内存资源的情况.

2.查看ls命令的详细使用方法,查看ps命令的详细使用方法.

3.获取ls命令的简要帮助信息,获取ps命令的简要帮助信息.

4.用cal命令显示日历,用date命令显示系统的日期和时间,用clear清除屏幕,用find命令在系统中查找文件ch1.doc,用uname命令查看系统的信息,用who命令查看其他登录的用户,用which命令查看一些命令的全路径,用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,将doc.tar.gz复制到用户的家目录并展开压缩文件.

四.实验步骤:

1.几个主要命令

(1)ps命令。

功能:

显示正在执行的进程的信息。

格式:

ps[options][pids]

常用选项;

-l以长列表的形式列出。

-a显示其他用户的进程。

-e显示环境。

-r只显示正在运行的程序。

栏目说明:

、‘

UID用户的标识号。

PID进程的标之射争,是系统赋予每个正在执行的进程的惟一编号。

PPID父进程的标识号。

PRI进程优先级。

SIZE虚拟内存大小。

RSS驻留空间大小。

STAT进程状态。

(注:

R—一进程正在运行;s——睡眠;D—不可中断睡眠;

T-停止或跟踪;Z-僵尸进程;W一没有驻留页。

TTY进程所在的虚拟终端号。

TIME该进程已经运行的时间。

COMMAND该进程的名称。

(2)jobs命令。

功能:

列出当前正在运行的作业信息,该命令没有选项和参数。

格式:

jobs

(3)kill命令。

功能:

终止(或撤销)-个进程。

格式:

kill[options]pid

常用选项:

一1输出信号名列表。

一p指kill只输出已命名pid,而且不送信号给它。

一s<信号名>指出欲发出的信号,信号是以信号名或数字给出的。

(4)nice命令。

功能:

通过修改调度优先级来运行一个程序。

格式:

nice[options:

][COMMAND[arg…]]

常用选项:

一n加上由指定的优先级而不是默认值10。

一version输出版本信息

(5)&命令。

功能:

将进程放到后台运行。

方法:

在要运行的程序命令的最后加上“&”字符。

例子:

yes>/dev/null&

yes命令项标准输出发送无穷尽的一串y。

/dev/null像一个黑洞,任何被送入这个黑洞的数据都会消失。

【root@locaUaost/root】#yes>/dev/null&

[1]164

[root@localhost,].#

[1]yes的作业号。

164进程标识号“

(6)作业控制。

①前后台作业控制。

前台作业是指正在对其进行交互操作的作业。

在同一时刻只能由

一个作业在前台运行。

后台作业是指不接收终端的输入,不需要进行交互操作,而只是默默运行的作业。

②将前台作业放到后台。

例如,对2号作业。

bg%2,:

另法:

用Ctrl+z终止该作业,在Shell提示符下键入命令bg.再切换到前台用命令。

③将后台作业放到前台。

例如:

对2号作业。

fg%2。

④挂起作业和撤销作业。

挂起作业只是暂时终止该作业的运行,用户需要它时可以在

前台或后台恢复它的运行,用Ctrl+z。

撤销是指终止该作业。

例如,直接撤销l号作业,用kill%1。

或用进程号PID撤销:

kill164。

⑤指定时间运行作业at。

功能:

在一个特定的时间执行作业或删除队列中的文件。

格式:

at[-v][-q队列][-f文件名][-mldbv]时间

常用选项:

一v显示版本号。

一f从指定文件名的文件中读取作业。

一l列出用户排在队列中的作业。

时间形式:

HHMM或HH:

MM,MMDDYY,MM/DD/YY或MM,DD.YY,.

(7)观察系统动态的进程控制和进程调度的工具top。

功能:

显示系统动态的进程控制和进程调度,还可查看内存动态使用的实时信息。

格式:

top[options]

字段说明:

uptime显示系统已运行时间和系统的三个加载均值,加载均值是指那

准备在1分、5分、15分内运行的进程的平均数。

Process显示在最近一次更新是运行的进程总数并做分类,可通过交互命令t来切换进程和状态显示。

CPUstates显示在用户模式下的CPU利用的百分比、系统方式、优先级任

务(优先级任务是指那些优先级为负的)和空闲任务。

Mem显示内存使用的统计,包含总的可用内存、空闲内存、已用内存、

共享内存和用于缓存的内存。

可通过交互命令m来切换内

存信息显示。

Swap显示对交换空间的统计,包含总的交换空间、可用交换空间和

已用交换空间。

PID进程的标识号,是系统赋予每个正在执行的进程的惟一编号。

父进程的标识号。

PPID父进程的标识号

UID用户的标识号

USER显示任务所有者的用户号。

PRI进程优先级

NI显示任务的nice值

SIZE虚拟内存大小。

TSIZE显示任务的代码大小。

DSIZE显示数据加上堆栈的大小,但对ELF进程不显示。

TRS显示文本驻留空间的大小。

SWAP显示此任务使用的交换空间的大小。

D显示脏页的大小。

”,-

LIB显示使用的库页的大小,对ELF进程也无效。

RSS显示被任务占用的物理内存的总量(以KB计)。

SHARE先时任务占用的共享内存的量。

’、

STAT进程状态。

(注:

R——进程正在运行S——睡眠;D——不可

中断睡眠;T--停止或跟踪;Z--僵尸进程;W——没有驻

留页。

TTY进程所在的虚拟终端号。

TIME该进程已经运行的时间。

COMMAND该进程的名称。

交互命令:

空格键立即更新显示。

i不显示空闲的或僵尸进程信息。

n或#改变显示的进程数量。

q退出top。

r重新调整一个指定进程的优先级。

f或F在显示时加上或移去字段。

o或O

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

当前位置:首页 > 高等教育 > 艺术

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

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