操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)
操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

实验二Linux得基本命令操作及vi得使用

实验目得:

1、熟悉Linux操作系统环境

2、熟悉Linux操作系统得文件结构

3、熟悉Linux操作系统得基本命令

4、熟悉Linux操作系统得文件组织方式

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

实验内容及要求:

1、登陆实验室得Linux服务器。

启动电脑,进入Windows操作系统,在“开始"-〉“运行”中输入

“Telnet 10、200、41、178”,即可登陆实验室得Linux服务器。在“Logi n:”提示后输入“stu”+学号(如02号同学输入stu02),按下回车键。在“Password:”提示后输入“123”(注意输入密码时屏幕上不会有“*”等符号出现,这与Windows不同),按下回车键,若出现“[os root os]$"或“-bash-2、05b$”,表示已成功登陆系统,可以开始输入指令操作。

思考:

(用pwd指令)查瞧自己登陆后位于Linux得哪个目录,写出该目录得路径,与自己周围得同学比较,瞧就是否相同。(可查阅Linux资料了解“/home"目录得功能介绍)

2、在Linux中进行以下基本操作:

1)在当前目录下新建一个名为(自己姓名首字母缩写+学号后3位数)得子目录.写出您所用得指令。(例如:mkdirzq000 )

2)进入刚创建得子目录环境下。(提示:指令cd)

3)在刚创建得子目录下新建一个名为abc、txt得文件。写出您所用得指令。

(提示:新建文件得指令就是touch)

4)将/目录下(即根目录下)得wele、txt文件复制到自己得子目录下,写出您所用得指令。

cp –i/root/stu62/abc、txt/home/wele、txt

5)写出wele、txt文件得内容。(提示:用cat指令查瞧)

Hello,Boysand girls ,wele tothe wonderful Linux world!

3、在Linux中进行以下基本操作:

1)进入自己得主目录。写出您使用得指令.

2)运行指令:

ls

(在命令行输入“ls”,按下回车键,即可运行)

?列出瞧到当前目录里得文件列表。

思考:当前目录里得文件列表就是否用不同颜色表示不同类型得文件?蓝色代表什么?白色代表什么?上网查询其她颜色所代表得文件类型。

1、蓝色-->目录

2、绿色——〉可执行文件3?、红色--〉压缩文件

4、浅蓝色—->链接文件5?、灰色—-〉其她文件

?3)运行指令:

ls>mylist、txt

?这时再ls,会发现目录中多了list、txt这个文件,打开它查瞧里面得内容(用cat指令),您有什么发现?

?4)运行以下指令,每运行一条,就ls查瞧当前目录内容.思考每一条指令得作用.

cp mylist、txtmydir、txt 将mylist文件复制成mydi r文件

rm mylist、txt删除文件

mkdir mydir 创建目录

cp mydir、txt mydir/复制文件mydir、txt到mydi r/目录

5)尝试运行cd/root 命令,能否成功?得到什么提示?

4、使用vi编辑器建立、编辑、显示以及加工处理文本文件?a、进入与退出vi

〈1>进入vi?在系统提示符($)下输入命令vi与想要编辑(建立)得文件名(如example),便可进入vi。

?<2〉退出vi?在命令方式下可有几种方法退出vi编辑器:

:wq 把编辑缓冲区得内容写到您编辑得文件中,退出编辑器,回到Linuxshell下。

:ZZ 仅当作过修改时才将缓冲区内容写到文件上。

:x 与:ZZ 相同。?:q! 强行退出vi。感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容.这样,先前对该文件所做得修改或输入都被抛弃。

b、新建文件1键.

<2>输入插入命令i(屏幕上瞧不到字符i).

<3>然后,输入以下文本行:

To theonly woman tht I,

Formang year you have been my wife?〈4>发现这两行有错,进行改正: 按键,从插入方式回到命令方式。

按光标上移键,使光标移到第一行。?按光标左移键,使光标移到“tht"得第二个“t”处。?输入i(这就是插入命令),然后输入a。该行变成如下形式:?To t

he only woman that I,?按光标右移键,使光标移到“I"上.

我们想在“I”之后输入一个空格与单词“love"。为此,输入附加命令“a”。结果屏幕显示为:

To the only woman thataI,?这就是怎麽回事儿?、、、、、、原来就是:我们先前使用了插入命令i,至今并未用〈Esc>键返回命令方式。所以,输入得所有字符都作为输入文本予以显示。5最后输入如下所示得文本:?To the only woman thatI love,

For many year you have been mywwife?I liveyou wich my life?and could not have picked much better、

?<7〉将您编辑得文本文件存盘.(利用:wq命令,或者:x 命令) <8〉重新进入vi编辑程序,编辑上面得文件。(如:$ vi myfile)

<9>在屏幕上见到myfile文件得内容。在屏幕底边一行显示出该文件得名称、行数与字符个数:“myfile”4 lines,130 characters?它仍然有错,需进一步修改。?〈10〉将光标移到第二行得year得r处。输入a命令,添加字符s。

〈11〉利用取代命令r将mywwife改为my wife。12将光标移至第三行.输入新行命令O(大写字母),屏幕上有什麽变化? (注意:输入命令时,vi应处于命令模式)(提示:光标移至上一行(新加空行)得开头.)

<13〉输入新行得内容:

We've been through much together?此时,vi处于哪种工作模式?(提

示:插入模式)

〈14〉按〈Esc〉,回到命令方式.将光标移到第四行得live得i字母处。利用替换命令s将i改为o。?<15〉在第四行得you之后添加单词dearly。将wich改为with.?〈16〉修改后得文本就是以下内容:

To theonly woman that I love,

For many years youhave been my wife

We've been through much together

I love you dearly with my life

and could nothave picked muchbetter、?将该文件存盘,退出v i.

<17〉重新编辑该文件。并将光标移到最后一行得have得v字母处,使用d$命令将v至行尾得字符都删除.

<18>现在想恢复17步得原状,怎麽办?(提示:使用复原命令u)

〈19>使用dd命令删除第一行;将光标移至through得u字母处,使用C(大写字母)命令进行修改,随便乱输一串字符。将光标移到下一行得开头,执行5x命令,结果就是什么?(提示:删掉从光标处开始得5个字符)然后执行重复命令(、),结果就是什么?(提示:再删掉从光标处开始得5个字符)

?〈20>屏幕内容乱了!现在想恢复17步得原状,怎麽办?(提示:不写盘,强行退出vi)能用u或U命令恢复屏幕原状吗? (提示:可以)

实验结果及讨论:

1、比较Linux与Windows得文件目录结构有哪些相同与异同。

Linux操作系统中得文件目录结构

“/"根目录部分有以下子目录:

/usr目录包含所有得命令、程序库、文档与其它文件。这些文件在正常操作中不会被改变得。这个目录也包含您得Linux发行版本得主要得应用程序,譬如,Netscape。

/var 目录包含在正常操作中被改变得文件:假脱机文件、记录文件、加锁文件、临时文件与页格式化文件等。

/home目录包含用户得文件:参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。

/proc 目录整个包含虚幻得文件.它们实际上并不存在磁盘上,也不占用任何空间。(用ls –l 可以显示它们得大小)当查瞧这些文件时,实际上就是在访问存在内存中得信息,这些信息用于访问系统

/bin系统启动时需要得执行文件(二进制),这些文件可以被普通用户使用。

/sbin系统执行文件(二进制),这些文件不打算被普通用户使用。(普通用户仍然可以使用它们,但要指定目录.)

/etc操作系统得配置文件目录。

/root 系统管理员(也叫超级用户或根用户)得Home目录。

/dev 设备文件目录.LINUX下设备被当成文件,这样一来硬件被抽象化,便于读写、网络共享以及需要临时装载到文件系统中。正常情况下,设备会有一个独立得子目录.这些设备得内容会出现在独立得子目录下。LINUX没有所谓得驱动符。

/lib 根文件系统目录下程序与核心模块得共享库.

/boot 用于自举加载程序(LILO或GRUB)得文件。当计算机启动时(如果有多个操作系统,有可能允许您选择启动哪一个操作系统),这些文件首先被装载。这个目录也会包含LIN UX核(压缩文件vmlinuz),但LINUX核也可以存在别处,只要配置LILO并且LILO 知道LINUX核在哪儿。

/opt 可选得应用程序,譬如,REDHAT 5、2下得KDE (REDHAT 6、0下,KDE放在其它得XWINDOWS应用程序中,主执行程序在/usr/bin目录下)

/tmp 临时文件。该目录会被自动清理干净。

/lost+found 在文件系统修复时恢复得文件

“/usr”目录下比较重要得部分有:

/usr/X11R6X—WINDOWS系统(version 11,release 6)

/usr/X11同/usr/X11R6 (/usr/X11R6得符号连接)

/usr/X11R6/bin 大量得小X-WINDOWS应用程序(也可能就是一些在其它子目录下大

执行文件得符号连接).

/usr/doc LINUX得文档资料(在更新得系统中,这个目录移到/usr/share/doc)。/usr/share 独立与您计算机结构得数据,譬如,字典中得词.

/usr/bin与/usr/sbin 类似与“/”根目录下对应得目录(/bin与/sbin),但不用于基本得启动(譬如,在紧急维护中).大多数命令在这个目录下.

/usr/local本地管理员安装得应用程序(也可能每个应用程序有单独得子目录)。在“main”安装后,这个目录可能就是空得。这个目录下得内容在重安装或升级操作系统后应该存在。

/usr/local/bin可能就是用户安装得小得应用程序,与一些在/usr/local目录下大应用程序得符号连接.

/proc目录得内容:

/proc/cpuinfo关于处理器得信息,如类型、厂家、型号与性能等。

/proc/devices 当前运行内核所配置得所有设备清单.

/proc/dma 当前正在使用得DMA通道./proc/ 当前运行内核所配置得文件系统。

/proc/interrupts 正在使用得中断,与曾经有多少个中断.

/proc/ioports 当前正在使用得I/O端口。

举例,使用下面得命令能读出系统得CPU信息。

cat /proc/cpuinfo

/bin.bin就是binary得缩写。这个目录沿袭了UNIX系统得结构,存放着使用者最经常使用得命令。例如cp、ls、cat,等等。

/boot。这里存放得就是启动Linux时使用得一些核心文件。

/dev。dev就是device(设备)得缩写。这个目录下就是所有Linux得外部设备,其功能类似DOS下得、sys与Win下得、vxd。在Linux中设备与文件就是用同种方法访问得.例如:/dev/hda代表第一个物理IDE硬盘。

/etc.这个目录用来存放系统管理所需要得配置文件与子目录。

/home.用户得主目录,比如说有个用户叫wang,那她得主目录就就是/home/wang也可以用~wang表示。

/lib.这个目录里存放着系统最基本得动态链接共享库,其作用类似于Windows里得、d ll文件.几乎所有得应用程序都须要用到这些共享库。

/lost+found。这个目录平时就是空得,当系统不正常关机后,这里就成了一些无家可归得文件得避难所.对了,有点类似于DOS下得、chk文件。

/mnt。这个目录就是空得,系统提供这个目录就是让用户临时挂载别得文件系统.

/proc。这个目录就是一个虚拟得目录,它就是系统内存得映射,我们可以通过直接访问这个目录来获取系统信息。也就就是说,这个目录得内容不在硬盘上而就是在内存里.

/root。系统管理员(也叫超级用户)得主目录。作为系统得拥有者,总要有些特权啊!比如单独拥有一个目录。

/sbin。s就就是SuperUser得意思,也就就是说这里存放得就是系统管理员使用得管理程序。

/tmp。这个目录不用说,一定就是用来存放一些临时文件得地方了。

/usr。这就是最庞大得目录,我们要用到得应用程序与文件几乎都存放在这个目录下.其中包含以下子目录;

/usr/X11R6.存放X-Window得目录;

/usr/bin.存放着许多应用程序;

/usr/sbin。给超级用户使用得一些管理程序就放在这里;

/usr/doc。这就是Linux文档得大本营;

/usr/include。Linux下开发与编译应用程序需要得头文件,在这里查找;

/usr/lib。存放一些常用得动态链接共享库与静态档案库;

/usr/local。这就是提供给一般用户得/usr目录,在这里安装软件最适合;

/usr/man。man在Linux中就是帮助得同义词,这里就就是帮助文档得存放目录;

/usr/src。Linux开放得源代码就存在这个目录,爱好者们别放过哦!

/var.这个目录中存放着那些不断在扩充着得东西,为了保持/usr得相对稳定,那些经常被修改得目录可以放在这个目录下,实际上许多系统管理员都就是这样干得。顺带说一下系统得日志文件就在/var/log目录中。

总结来说:

用户应该将文件存在/home/user_login_name目录下(及其子目录下)。

本地管理员大多数情况下将额外得软件安装在/usr/local目录下并符号连接在/usr /local/bin下得主执行程序.

系统得所有设置在/etc目录下.

不要修改根目录(“/")或/usr目录下得任何内容,除非真得清楚要做什么。这些目录最好与LINUX发布时保持一致。大多数工具与应用程序安装在目录:/bin,/usr/sbin,/sbin, /usr/x11/bin,/usr/local/bin。所有得文件在单一得目录树下.没有所谓得“驱动符"。

windows操作系统中得文件目录结构(就是以文件夹与文件得形式存在得)

1、盘符

在对数据文件进行操作时,一般要用盘符指出被操作得文件或目录在哪一磁盘.盘符也称驱动器名.常用得盘符有(其中冒号“:”不能省)以下几个:

A:表示软盘驱动器A,简称A盘.

B:表示软盘驱动器B,简称B盘

C:表示软盘驱动器C,简称C盘

D:表示软盘驱动器D,简称D盘

E:表示软盘驱动器E,简称E盘

一张软盘片插在软盘驱动器A中旧称为A盘,插在软盘驱动器B中旧称为B盘。在对文件与目录进行操作时,如果省略盘符,则默认为当前盘。计算机系统启动后,当前盘为启动盘.

2、文件与文件名

文件就是按一定格式建立在外存储介质上得一组相关信息得集合。计算机中得文件,一般上存储在磁盘、光盘或磁带中,如果没有特殊说明,我们认为文件上存储在磁盘上得,称为磁盘文件。每一个文件必须有一个名字,称为文件名。系统将文件名及相关信息存于称之为目录区得地方,而把文件得内容存于文件区(数据区)。WINDOWS对文件进行管理主要就是通过文件目录来实现"按名存取"。

(1)文件得命名规则:主文件标识符、扩展名其中文件扩展名又称为后缀。例如:DOS命令处理程序得文件名为:

MAND、其中MAND为文件标识符,为文件扩展名又称为后缀。

文件扩展名一般用于说明文件得类型。计算机系统对某些文件得扩展名有特殊得规定,甚至有些扩展名就是系统在操作过程中自动加上得,下面列出一些计算机系统常用得文件扩展名。

、可执行二进制代码文件,也称为命令文件。

、exe 可执行程序文件

、bat批处理文件

、txt 文本文件

、bak备份文件

、sys系统文件

、obj目标程序文件

、lib 库文件

、c C语言源程序文件

、cpp C++语言源程序文件

3、目录与路径

(1)文件目录即Windows操作系统中得文件夹。为了实现对文件得统一管理,同时又方便用户,操作系统采用树状结构得目录来实现对磁盘上所有文件得组织与管理。

①树形目录结构:根目录用”\"表示如图2、1-1 磁盘得树状目录结构

如图2、1-1 磁盘得树状目录结构

②子目录与父目录

③当前盘与当前目录

(2)路径从根目录或当前目录至所要找得文件或目录所需要经过得全部子目录得顺序组合。

①绝对路径:从根目录开始到目标文件或目录得一条路径。

②相对路径:从当前目录开始到目标文件或目录得一条路径.相对路径不就是以"\"开头,而就是从当前目录开始。

2、Linux得可执行文件通常放在哪个目录中?写出该目录得路径。

在bin或者sbin目录里面,bin目录就是给普通用户用得,sbin就是给root用户用得。

3、谈谈您今天上实验课得收获,存在得问题或疑问。如果有实验内容以外得发

现也可谈谈。(字数不限)

注意:写实验报告时,实验步骤不一定要全抄,可选重要得。但实验目得、实验内容以及实验步骤中提出得问题及答案一定要写。

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

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

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

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

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

操作系统课程设计答案

// tjty.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #define Bsize 3 #define Psize 20 struct pageInfor { int content;//页面号 int timer;//被访问标记 }; class PRA { public: PRA(void); int findSpace(void);//查找是否有空闲内存 int findExist(int curpage);//查找内存中是否有该页面 int findReplace(void);//查找应予置换的页面 void display(void);//显示 void FIFO(void);//FIFO算法 void LRU(void);//LRU算法 void Optimal(void);//OPTIMAL算法 void BlockClear(void);//BLOCK恢复 pageInfor * block;//物理块 pageInfor * page;//页面号串 private: }; PRA::PRA(void) { int QString[20]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}; block = new pageInfor[Bsize]; for(int i=0; i

block[i].timer = 0; } page = new pageInfor[Psize]; for(i=0; i= block[pos].timer) pos = i;//找到应予置换页面,返回BLOCK中位置return pos; } void PRA::display(void) {

vi 操作指令

vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个和pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符

操作系统原理-进程调度实验报告

一、实验目的 通过对进程调度算法的设计,深入理解进程调度的原理。 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程调度分配处理机,是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程。 进程通过定义一个进程控制块的数据结构(PCB)来表示;每个进程需要赋予进程ID、进程到达时间、进程需要运行的总时间的属性;在RR中,以1为时间片单位;运行时,输入若干个进程序列,按照时间片输出其执行序列。 二、实验环境 VC++6.0 三、实验内容 实现短进程优先调度算法(SPF)和时间片轮转调度算法(RR) [提示]: (1) 先来先服务(FCFS)调度算法 原理:每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理器分配给该进程,使之得到执行。该进程一旦占有了处理器,它就一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。 将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍和最简单的方法。它优先考虑在系统中等待时间最长的作业,而不管要求运行时间的长短。 按照就绪进程进入就绪队列的先后次序进行调度,简单易实现,利于长进程,CPU繁忙型作业,不利于短进程,排队时间相对过长。 (2) 时间片轮转调度算法RR

原理:时间片轮转法主要用于进程调度。采用此算法的系统,其程序就绪队列往往按进程到达的时间来排序。进程调度按一定时间片(q)轮番运行各个进程. 进程按到达时间在就绪队列中排队,调度程序每次把CPU分配给就绪队列首进程使用一个时间片,运行完一个时间片释放CPU,排到就绪队列末尾参加下一轮调度,CPU分配给就绪队列的首进程。 固定时间片轮转法: 1 所有就绪进程按 FCFS 规则排队。 2 处理机总是分配给就绪队列的队首进程。 3 如果运行的进程用完时间片,则系统就把该进程送回就绪队列的队尾,重新排队。 4 因等待某事件而阻塞的进程送到阻塞队列。 5 系统把被唤醒的进程送到就绪队列的队尾。 可变时间片轮转法: 1 进程状态的转换方法同固定时间片轮转法。 2 响应时间固定,时间片的长短依据进程数量的多少由T = N × ( q + t )给出的关系调整。 3 根据进程优先级的高低进一步调整时间片,优先级越高的进程,分配的时间片越长。 多就绪队列轮转法: (3) 算法类型 (4)模拟程序可由两部分组成,先来先服务(FCFS)调度算法,时间片轮转。流程图如下:

操作系统实验报告一

重庆大学 学生实验报告 实验课程名称操作系统原理 开课实验室DS1501 学院软件学院年级2013专业班软件工程2 班学生姓名胡其友学号20131802 开课时间2015至2016学年第一学期 总成绩 教师签名洪明坚 软件学院制

《操作系统原理》实验报告 开课实验室:年月日学院软件学院年级、专业、班2013级软件工 程2班 姓名胡其友成绩 课程名称操作系统原理 实验项目 名称 指导教师洪明坚 教师 评语教师签名:洪明坚年月日 1.实验目的: ?进入实验环境 –双击expenv/setvars.bat ?检出(checkout)EPOS的源代码 –svn checkout https://www.360docs.net/doc/6f9517679.html,/svn/epos ?编译及运行 –cd epos/app –make run ?清除所有的临时文件 –make clean ?调试 –make debug ?在“Bochs Enhanced Debugger”中,输入“quit”退出调试 –调试指令,请看附录A 2.实验内容: ?编写系统调用“time_t time(time_t *loc)” –功能描述 ?返回从格林尼治时间1970年1月1日午夜起所经过的秒数。如果指针loc 非NULL,则返回值也被填到loc所指向的内存位置 –数据类型time_t其实就是long ?typedef long time_t; 3.实验步骤: ?Kernel space –K1、在machdep.c中,编写系统调用的实现函数“time_t sys_time()”,计算用户秒数。需要用到 ?变量g_startup_time,它记录了EPOS启动时,距离格林尼治时间1970年1午夜的秒数 ?变量g_timer_ticks

vi操作命令大全完整版

v i操作命令大全 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

一vi的操作模式 vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。 在输入模式下,按Esc键切换到指令模式下。 在指令模式下,按输入指令(i、a、o等)进入输入模式。 二进入vi $ vi filename 直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。 如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。 $ view filename 以只读方式打开文件filename 三指令模式 3.1进入输入模式 a 在当前游标之后输入 A 在当前行之末输入 i 在当前游标之前输入

I 在当前行之首输入 o 在当前行之下新增一行,并在新增行输入 O 在当前行之上新增一行,并在新增行输入 输入结束后,按Esc键退出输入模式。 3.2游标移动 h 向左移动一个字元 l 向右移动一个字元 j 向下移动一个字元 k 向上移动一个字元 b 左移一个单词,至词首 w 右移一个单词,至词尾 0 移到当前行行首 $ 移到当前行行尾 + 移至下一行的行首 - 移至上一行的行首 H 移至视窗的第一行 M 移至视窗的中间一行 L 移至视窗的最后一行 G 移至该文件的最后一行 nG 移至该文档的第n行 n+ 下移n行 n- 上移n 行 3.3视窗移动 * + f 视窗下卷一页 * + b 视窗上卷一页 + d 视窗下卷半页 + u 视窗上卷半页 * + e 视窗下卷一行 * + y 视窗上卷一行 3.4删除操作 x 删除游标所在字元 X 删除游标前一字元 dw 从游标当前位置开始向后删除一个单词 db 从游标当前位置开始向前删除一个单词 d0 从行首删除至当前游标位置 d$ 从游标当前位置删除至行尾 dd 删除游标所在行 D 同d$

操作系统原理实验-系统内存使用统计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的工程,单击完成。

操作系统原理实验指导

操作系统实验指导 操作系统是计算机的最重要的系统软件,它在计算机中具有核心地位,其作用是对计算机系统资源进行统一的调度和管理,提供各种强有力的系统服务,为用户创造灵活而又方便的使用环境。一个精心设计的操作系统能极大地扩充计算机系统的功能,充分地发挥系统中各种资源的使用效率,提高系统工作的可靠性。 操作系统原理是计算机科学与技术专业的一门主要专业课程,它涉及计算机系统中各种软、硬资源管理的实现原理与方法,内容非常丰富,综合性非常强,并且还具有很强的实践性。只有把理论与实践紧密地结合起来,才能取得较好地学习效果。 培养计算机专业学生的系统程序设计能力,也是本课程的重要环节。系统程序要求结构清晰、合理、可读性好,有准确而简明的注释。通过实验可以培养学生正规系统程序设计能力。 本实验包括下列六个方面: 实验一几种操作系统的界面 实验二进程调度 实验三存储器管理 实验四存储器管理 实验五磁盘驱动调度 实验六文件管理系统 上述每个实验约需要10个学时。可根据实际情况选用。最好学生自己独立完成,如有困难,可参考一些示例,弄清每个实验的思想和实现方法,上机调试通过,不能完全照搬示例。 实验一几种操作系统的界面 1、目的与要求 目的:通过本实验,学生应熟悉1~2种操作系统的界面。在熟练使用的基础上,能了解各种命令和调用在系统中的大致工作过程,也就是通过操作系统的外部特性,逐步深入到操作系统的内在实质内容中去。 要求:能熟练地在1~2种操作系统环境下工作。学会使用各种命令,熟悉系统提供的各种功能。主动而有效地使用计算机。 熟悉系统实用程序的调用方法和各种系统调用模块的功能和用法。 2、示例 用1~2种操作系统提供的各种手段,建立、修改、编辑、编译和运行程序,最后撤消一个简单程序。要尽可能多地使用系统提供的各种命令和功能。 操作系统可为如下两种序列: (1)Windows 98或Windows 2000或Windows XP。 (2)Linux或Unix。 下面简要介绍一下Unix操作系统。 Unix是一个分时操作系统,面向用户的界面shell是一种命令程序设计语言,这种语言向用户提供了从低到高,从简单到复杂的三个层次的使用方式。它们是简单命令、组合命令和shell过程。 简单命令:Unix命令一律使用小写字母。 例如:ls -l 显示文件目录(长格式) rm 删除一个文件 cat 合并和传送文件、 cp 复制文件 mv 文件改名 cc 编译C语言源程序 组合命令:shell简单命令可以用管道算符|组合构成功能更强的命令。

Vi编辑器详细操作方法

熟悉VI 是学习UNIX 系统的一个关口 vi 是visual edit 的缩写 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目

实验指导(2015完全版)

操作系统上机实验指导书 (第一版) 闫大顺李晟编著 吴家培主审 计算机科学与工程学院 2014.8

操作系统实验指导 本课程是为《计算机操作系统》课所开的实验。计算机操作系统课程是一门实践性很强的技术课程,本课程实验的目的在于培养学生的实践能力,促进理论与实践的结合。要求学生通过上机编程,熟悉对操作系统原理,并熟练使用程序接口,并了解如何模拟操作系统原理的实现,从而加深对操作系统原理的领会,加深对操作系统实现方法的理解,与此同时使学生在程序设计方面也能够得到很大程度的提高。 实验的目的是使学生理论联系实际,提高学生系统理解与开发能力。这里所列的实验分为必做和选做。具体实验题的选择,不仅要考虑课程内容,而且要考虑学生目前的编程能力,要由浅入深。教师可通过运行示例或动画,帮助学生理解实验要求。学生应选择自己熟悉的语言与开发环境去完成实验。根据以往的教学经验,Delphi、C++ Builder,JBuilder由于提供了许多可重用的构件,易于学习、使用,VC++学习、使用困难较多。实验要求尽量在windows操作系统下,也可以在Linux下完成,由于多数没有专门学习Linux,在其平台下做试验比较困难。实验的硬件要求是能够支持VC++、Delphi、C++ Builder,JBuilder的微机即可。每个学生都独立在一台计算机上完成自己的实验内容,杜绝学生的抄袭。 实验报告的要求 1. 每位同学准备实验报告本,上机前作好充分的准备工作,预习本次实验的内容,事先熟悉与实验有关的软硬件环境。 2. 实验时遵守实验室的规章制度,爱护实验设备,对于实验设备出现的问题,要及时向指导老师汇报。 3. 提交实验文件格式:[班级][学号]_[实验题号].[扩展名] 例:计051班学号为03的学生第四个实验的文件名为:j05103_4.c 4. 最终的实验报告按照实验名称、实验目的、实验内容,实验过程(程序设计、实现与调试)、实验总结五部分书写,按时上交。实验总结是对于实验过程中出现的问题或疑惑的分析与思考。认真按照要求填写到实验报告纸上。

操作系统实验报告

操作系统实验报告 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

实验二进程调度1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言 4设计思想: (1)程序中进程可用PCB表示,其类型描述如下:

structPCB_type { intpid;//进程名 intstate;//进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 intcpu_time;//运行需要的CPU时间(需运行的时间片个数) } 用PCB来模拟进程; (2)设置两个队列,将处于“就绪”状态的进程PCB挂在队列ready中;将处于“阻塞”状态的进程PCB挂在队列blocked中。队列类型描述如下: structQueueNode{ structPCB_typePCB; StructQueueNode*next; } 并设全程量: structQueueNode*ready_head=NULL,//ready队列队首指针 *ready_tail=NULL,//ready队列队尾指 针

Vi设计操作流程

Vi 设计操作流程: Vi 设计:( 标志设计和VI 导入) 1. 签定VI 设计合同(客户方下载合同书,盖章签字后快递或传真至银瑞公司,并预付30% 的合 同款,); 2. 由客户方填写VI 设计调查问卷; 3. 银瑞广告在接到客户方汇款单的传真后开始设计,7 个工作日内向客户方面提供标志设计初 稿,双方电话、E-mail 沟通修改,定稿后客户方即付合同款的40% ,银瑞广告继续做VI 导入设计; 4. 定稿(整个项目周期20 个工作日左右); 5. 客户方支付设计余款; 6. 收到客户方汇款单传真,邮寄VI 手册和VI 电子文件; 7. 项目结束。 标志设计的服务流程 1. 签定标志设计合同(远程客户以传真件为准,盖章签字后合同生效,客户预付50%的合同款) 2. 客户方填写标志设计调查问卷 3. 银瑞在接到客户方汇款(或汇款传真件)后开始7 个工作日内向客户方面提供标志设计初稿 4. 双方沟通修改(或电话、E-mail 沟通) 5. 定稿(整个项目周期15 个工作日左右) 6. 客户方支付银瑞公司标志设计50%余款 7. 收到客户款项(款项传真)后,我们把标志电子文件交给客户(或邮寄标志电子文件) 8. 双方签定知识产权转让协议书 9. 项目结束 在线委托流程 " 在线委托" 是一种方便快捷的网络服务系统,您可以通过网络提交委托业务。

>>> 运作程序 委托 ↓ 签约 (以电话、传真、e-mail 方式沟通) (下载商业设计合同) (下载标志设计合同) ↓ 标志设计客户填写 标志设计客户调查问卷 (下载标志设计客户调查问卷) ↓ 设计 (收到设计预付款后) ↓ 审稿 (在合同规定时间内向客户提供设计初稿) ↓ 修改 (e-mail 方式沟通) ↓ 客户确定 (传真、e-mail 方式沟通) ↓ 客户付清余款后,乙方提交设计电子文档 ↓ 双方签定知识产权转让协议 (传真、e-mail 方式) ( 下载知识产权转让协议)

操作系统原理实验四

实验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); ﹜

操作系统实验报告4

《操作系统》实验报告 实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜ 修改后: #include #include 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); } 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。 4.正在运行的进程 (2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include

Vi基本操作

Vi基本操作 首先看一下vi的三种模式的转换图: 需要先按Esc进入普通模式,这按“:”即进入了命令模式。再命令模式下想进入编辑模式, 则需要先按Esc键,然后再按“ i,a,o,O,s,S ”等进入编辑模式。 三种模式的简单说明: 1普通模式: 使用Vi打开一个文件后,默认是普通模式,即不能进行输入,仅可以执行一些操作命令; 2、编辑模式: 在此模式下可以进行常规的输入操作,可以在左下角看到插入的标记“--插入--”或“-- INSERT -- ”; 3、命令模式:在命令模式下,主要是执行保存、退出、搜索、替换等操作,则左下角可以看到“:",并有光标闪烁等待输入命令。

普通模式: 普通模式转为编辑模式 0:在光标所在行的上一行新增一行 o:在光标所在行的下一行新增一行 a:从当前光标所在的位置的下一个字符开始输入 i :在光标所在的位置插入新输入的字符 s:删除光标后的一个字符,然后进入插入模式; S:删除光标所在的行,然后进入插入模式; 移动 h:将光标向左移动一格 I :将光标向右移动一格j :将光标向下移动一格k:将光标向上移动一格 $:将光标移到当前行的最后面 数字0:将光标移到当前行的最前面 G :将光标移到最后一行的开头gg:将光标移到首行开头w或W将光标移到下一个字若输入“ w”,则标点符号如“ .”,“,”,“/ ”等字符都被当成一个字e或E:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。 b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。 翻页 ctrl+b :将页面向前卷动一页 ctrl+f :将页面向后卷动一页 ctrl+u :将光标向前移动半页 ctrl+d :将光标向右移动半页 ctrl+e :屏幕向下卷动一行,也可以说文章和光标向上卷动一行 ctrl+y :屏幕向上卷动一行,也可以说文章和光标向下卷动一行 复制文字 yy :可将光标目前所在位置的正行复制,复制时不会将文字反白显示 nyy :其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下 面2行一起复制 yw:可复制光标所在位置到整个单词结束的字符 nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面 的2个字一起复制 P:可将复制的文字粘贴到当前光标所在的位置。若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行 shift+P 在光标之前粘帖

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

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

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

[键入文字] 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. 记录并分析程序运行结果。

操作系统实验报告_实验五

实验五:管道通信 实验内容: 1.阅读以下程序: #include #include #include main() { int filedes[2]; char buffer[80]; if(pipe(filedes)<0) //建立管道,filedes[0]为管道里的读取端,filedes[1]则为管道的写入端 //成功则返回零,否则返回-1,错误原因存于errno中 err_quit(“pipe error”); if(fork()>0){ char s[ ] = “hello!\n”; close(filedes[0]); //关闭filedes[0]文件 write(filedes[1],s,sizeof(s)); //s所指的内存写入到filedes[1]文件内 close(filedes[1]); //关闭filedes[0]文件 }else{ close(filedes[1]); read(filedes[0],buffer,80); //把filedes[0]文件传送80个字节到buffer缓冲区内 printf(“%s”,buffer); close(filedes[0]); } } 编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

2.阅读以下程序: #include #include #include main() { char buffer[80]; int fd; unlink(FIFO); //删除FIFO文件 mkfifo(FIFO,0666); //FIFO是管道名,0666是权限 if(fork()>0){ char s[ ] = “hello!\n”;

vi操作

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrl+b;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前

I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g:将文件中所有p1均用p2替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息

操作系统原理实验五

实验五线程的同步 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所示。

相关文档
最新文档