操作系统实验1

  • 格式:docx
  • 大小:15.92 KB
  • 文档页数:2

广东海洋大学学生实验报告书(学生用表)
实验任务:
一、在windows中安装虚拟机软件VMVare
二、在VMVare中安装minix3.1.0(用于存储管理实验)、minix3.4(为了信号量实验)
三、在minix3.1.0或者minix3.4中编写文件复制程序,功能是把一个文件复制到另一个文件,编译链接执行这个程序,通过系统调用功能感受操作系统的功能扩展机角色。

实验内容:
安装VMVare:
VMVare是一款风靡全球的虚拟机软件,同时也是全球桌面到数据中心虚拟化解决方案的领导厂商。

VMVare可以帮助你在一台机器上像运行多个应用程序一样运行多个操作系统,这实际上是通过虚拟机器技术实现的。

为了更好的完成实验,我们需要借助这款软件。

首先,我们可以在它的官网上下载VMVare的安装包到本地,打开后遵循提示完成安装。

VMVare 是收费软件,所以在完成安装后我们可以去网上搜索可用的激活码激活软件,激活成功后就意味着软件已经可以使用了。

安装minix3.4/minix3.1.0:
Minix是一款十分小型的类Unix操作系统,它是为教学目的设计的系统,因此十分适合我们的实验使用。

Minix是开源免费的,我们可以在它的官方网站上下载到镜像文件。

准备好镜像文件后,打开安装好的VMVare,在主页里选择创建新的虚拟机,在创建向导里选择典型模式进行创建,接着按照提示,完成虚拟机的创建,并进入Minix系统的安装。

minix 系统的安装在官方文档中有说明,并且安装过程中会有提示过程。

当完成安装后,重新启动便可以正常使用系统了。

体验操作系统的系统调用功能:
要完成这个实验,我们需要在minix里编写一个C语言程序。

这个程序的功能是将一个文本文件的内容复制到另一个文本文件中。

在这个C程序中,用到了3个函数:open(),read(),
write(),它们的作用分别是打开文件,读取文件,对文件进行写操作,它们实际就是操作系统提供给用户的3个系统调用。

open()的定义为:
int open(const char* pathname, int flags)
open(const char* pathname, int flags, mode_t mode)
其中,pathname是要打开文件的路径,flags参数指定文件打开的方式,这个参数可以通过多个常数的位或运算传递多种的方式,其中包括只读(O_RDONLY),只写(O_WRONLY),读写(O_RDWR),创建文件(O_CREAT),追加方式打开(O_APPEND);当使用O_CREAT方式打开文件时,可以通过一个额外的mode参数来控制所创建文件的权限。

在对每个文件进行读写前,都需要打开文件,所以open()系统调用对于用户的使用十分重要。

在实验中,我们使用了两次open(),分别把被复制的文件和复制的目标文件打开。

read()的定义:
size_t read(intfd, void *buf, size_t count)
fd参数用于指定所读取文件的文件描述符,buf参数则接受一个指针,用于指定储存读出结果的内存空间,count则指定从文件中读取多少个字节。

这个系统调用的返回值是从文件中读出的字节数;如果返回0,则表示已经读取到了文件的末尾;如果返回-1,则表示在读取文件的过程中发生错误。

在我们的实验程序中,对被复制的文件进行读取,利用循环,每次读取一个字符,知道读取完毕。

write函数的定义:
ssize_t write(intfd, const void* buf, size_t count);
fd参数指定了写入文件的文件描述符,以buf指针为起点,把buf中的count个字节内容写入到文件之中;如果成功向文件写入内容,则这个系统调用会返回真正写入到文件的字节数;如果这个函数返回0,则表示并没有向文件写入任何内容;如果返回-1,则表示在写入过程中发生了错误。

在我们的实验程序里,在读取文件的循环中,将每次读取的一个字符,都写入到目标文件中,知道读取完毕,循环结束。

实验结论:
在这次实验中,我完成了VMVare的下载安装,并且学习了如何在VMVare里安装可用的虚拟机。

同时,我在Minix3里通过一个文件复制的小程序,理解了操作系统作为功能扩展机的作用。

在这个小程序中,我们需要对文件进行打开、读写的操作,但是显然我们的硬件并没有直接提供诸如打开文件、读写文件之类的方法,而我们却可以使用open()这类函数,这些被称为系统调用的函数,正是操作系统为我们提供,它通过提供这些系统调用函数实现了对硬件功能的扩展,帮助用户更方便的使用计算机。

这些正是它作为功能扩展机的角色体现。