操作系统OS实验报告-Linux基本操作与编程+作业调度算法模拟+Linux文件操作与内存管理算法模拟
xxxxx大学xxxxxxx学院
实验报告
课程名称: 操作系统
姓 名:
系: 计算机系
专 业:
年 级:
学 号:
指导教师:
职 称:
2011年 11 月 25 日
实验项目列表
序号 实验项目名称 成绩 指导教师
Linux基本操作与编程 1
作业调度算法模拟 2
Linux文件操作与内存管理算法模拟 3
福建农林大学计算机与信息学院实验报告
系: 计算机系 专业: 年级: 09 姓名: 学号: 实验课程:_ 操作系统____ 实验室号_ _ 计算机号 161 实验时间: 2011/10/21 指导教师签字: 成绩:
Linux基本操作与编程
实验环境
1、硬件环境:
计算机设备:P4+256MB内存
2、软件环境:
VM+red hatLinux 2.4.20
Visual c++ 6.0
1、实验目的:
1) 熟悉Linux操作系统的环境和使用。
2)了解LINUX系统的安装过程。
3)熟悉Linux的进程机制。
)熟悉LINUX环境编程。 4
2、实验内容:
(1)完成红旗LINUX系统的登录,启动终端。
(2)创建一个新用户,名为dd1。要求记录操作步骤或命令序列。
(3)编写能输出“Hello world!”问候语的C程序,并在终端中编译、执
行。要求记录所使用的命令及结果。
操作步骤:
1)在文本编辑器中,编写C程序a.c如下:
源代码:
2) 在终端中,用gcc命令进行编译,生成可执行文件a。
gcc a.c –o a
3) 在终端中执行a 的命令如下:
./a
结果:
(4)编写一个程序:显示信息“Time for Play!”,并能在后台运行一段
时间(自定义)后,弹出信息提醒用户。要求记录所使用的命令及结果。
源代码:
结果:
(5)进程的创建:编制一段程序,使用系统调用fork( )创建两个子进程,在该程序运行时,在系统中就有一个父进程和两个子进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,子进程分别显示字符 b和字符c。试观察、记录并
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
屏幕上,进程运行的情况。
系统调用函数说明:
fork()函数,创建一个新进程。
格式:int fork()
其中返回int取值意义如下:
0:创建子进程,从子进程返回的id值
>0:从父进程返回的子进程id值
-1:创建失败
源代码:
结果:
3、实验结果分析:
(对上述实验内容中的各题结果,进行分析讨论。并回答下列问题) 1)进程包括哪些特征, (
答:进程是OS中最重要的概念~它具有以下特征:
结构特征,动态性,并发性,独立性,异步性
(2)在Linux中,如何设置前、后台命令和程序的执行,
答:前后台的执行差别就在符号&~在输入命令时~如果在命令后加上&~
即可将&前的命令全部调入后台。如果~没有加即默认为前台。
(3)你所使用的Linux系统的内核版本是多少,目前你所了解的各发行版
本的情况如何,
答:我所使用的Linux版本 2.4.20-8
所了解的发行版本情况:目前至少有386个Linux版本可用~这个数字表明有多少人想建立自己的版本~把Linux同其他开放源代码软件结合在一起形成一个完整的操作系统产品。但是事实是很少有人熟悉除了Red Hat、Suse和Debian之外的Linux版本。 Linux 发行版众多~十大 Linux 发行版名单如下:Ubuntu~openSUSE~Fedora~Debian GNU/Linux~Mandriva Linux~PCLinuxOS~MEPIS Linux~KNOPPIX~Slackware~ Linux Gentoo~Linux FreeBSD。 ArchLinux~一个基于KISS,Keep It Simple and Stupid,的滚动升级的操作系统。
CentOS~从Red Hat发展而来的发行版~由志愿者维护。它包含一个与Red Hat 100%兼容的系统和一个开发中的但并不总是兼容。
Debian~一个强烈信奉自由软件~并由志愿者维护的系统。
Fedora~是Red Hat的社区版
Gentoo~一个面向终极用户的发行版~所有软件的源代码需要自行编译。 Knoppix~第一个Live CD发行版~可以从可移动介质运行~Debian的衍生版。 Kubuntu, 使用KDE桌面的Ubuntu。
Linux Mint~从Ubuntu衍生并与Ubuntu兼容的系统。
Mandriva~最初为Red Hat的衍生版~现在由法国一个同名的公司维护。 OpenGEU~Ubuntu的衍生版。
openSUSE~最初由Slackware分离出来~现在由Novell维护。 PCLinuxOS~Mandriva的衍生版本~由社区维护的非常流行的发行版。 Red Hat Enterprise Linux~Fedora的商业版~由Red Hat维护和提供技术支持。
Slackware~最早的发行版之一~1993年建立~由Patrick J. Volkerding维护。 Ubuntu~一个非常流行的桌面发行版~由Canonical维护。
gOS和其他上网本用的系统
(4)如何定制knoppix的启动模式,
答:运行saveconfig~会产生一个knoppix.sh和configs.tbz~并保存到某个分区,启动时添加myconfig=/dev/partition即可读出~也可以用myconfig=scan让Knoppix自己去寻找这两个文件。
用户数据(/home/knoppix)也可被保留到软盘或者USB盘上~启动时添加home=/dev/sda1 (不能是DOS格式的文件系统)~也可home=scan让Knoppix自己去寻找。如果想保留在硬盘的DOS分区上~可以创建一个loopback文件(映像文件)。
4、
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:你对本次实验有什么体会或看法。
本次的实验主要是让我们对Linux有一定的理解~同过本次的实验使我对Linux的发行版本有了更深刻的了解。并且学会了使用Linux的vi编辑器和gcc命令编译程序~也使我对进程的理解更加的深入。在创建进程时~fork会返回两个值~一个是0~一个是子进程的id~并且父进程的消亡~子进程也随之消亡~回收进程资源。通过本次的实验也使我知道如何在Linux下如何安装一个软件包。
福建农林大学计算机与信息学院实验报告
系: 计算机系 专业: 年级: 09 姓名: 学号: 实验课程:_ 操作系统____ 实验室号____ _ 计算机号 实验时间: 2011/11/4 指导教师签字: 成绩:
作业调度算法模拟
实验环境
3、硬件环境:
计算机设备:P4+256MB内存
4、软件环境:
VM+red hatLinux 2.4.20
Visual c++ 6.0
1、实验目的:
1) 掌握作业调度的主要功能及算法。
2) 通过模拟作业调度算法的设计加深对作业管理基本原理的理解。 3) 熟悉Linux环境下应用程序的编程方法。
2、实验内容:
(1)编写程序p.c,其功能是从键盘输入两个实数,输出这两个实数的平方
和,生成可执行文件为pow。记录编译的命令和结果。
源代码:
结果:
(2)作业调度算法(FCFS)编程模拟:
编制一段程序,对所输入的若干作业,按FCFS算法模拟调度,观察、记录并分析调度的输出结果情况。
(3)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法对模拟作业的调度,并观察分析运行结果。
源代码:
结果:
3、实验结果分析:
(对上述实验各题所使用的原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析。)
5、总结:你对本次实验有什么体会或看法。
答:本次的实验主要是对作业调度算法的模拟实现~从中使我知道fcfs和sjf调度的不同。Fcfs是一种最简单的调度算法~该算法即可用于作业调度~也可用于进程调度~但fcfs不利于短作业。而sjf是指对短作业或短进程优先调度的算法。但sjf调度对长作业不利~可能导致长作业长期不能被调度。从中也使我知道根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标~通常采用不同的调度算法。
福建农林大学计算机与信息学院实验报告
系: 计算机系 专业: 年级: 09 姓名: 学号: 实验课程:_ 操作系统____ 实验室号____ _ 计算机号 161 实验时间: 2011/11/11 指导教师签字: 成绩:
Linux文件操作与内存管理算法模拟
实验环境
6、硬件环境:
计算机设备:P4+256MB内存
7、软件环境:
VM+red hatLinux 2.4.20
Visual c++ 6.0
1、实验目的:
1)熟悉LINUX文件系统;
2)通过编写文件操作的程序,进一步掌握操作系统的文件管理机制。 3)模拟内存管理算法的实现方法;
4)掌握简单的用户接口(字符菜单)的设计方法。
2、实验内容:
(1)浏览LINUX文件系统,进行下列操作并记录结果。
1)运行pwd命令,确定你当前的工作目录。
2)利用以下命令显示当前工作目录的内容: ls –l
3)运行以下命令: ls –al
4)使用mkdir命令建立一个子目录subdir。
5)使用带-d选项的ls命令,只能看到当前目录的信息。
6)使用cd命令,将工作目录改到根目录(/)上。
7)使用ls命令列出根目录的内容,再分别列出各子目录的内容。
bin
fxl
home
lib
misc
opt
qtopia
sbin
tmp
var
boot
etc
hi
initrd
Lost+found
mnt
proc
root
test
usr
8)使用ls-l命令列出/dev的内容。
9)使用不带参数的命令cd改变目录,然后用pwd命令确定你当前的工作目录是哪里,
10)使用命令cd../..,你将工作目录移到什么地方?
(2)在LINUX下查看你的文件。
1利用cd命令,将工作目录改到你的主目录上。
2)将工作目录改到你的子目录subdir,然后运行命令: date > file1
将当前日期和时间存放到新建文件file1中。
3)使用cat命令查看file1文件的内容。
4)利用man命令显示date命令的用法: man date
5)将date命令的用法附加到文件file1的后面:man date >> file1
6)利用cat命令显示文件file1的内容。
7)利用ls -l file1命令列出文件file1的较详细的信息。运行ls -l/bin
命令显示目录的内容。
8)利用ls -l/bin|more命令行分屏显示/bin目录的内容。
9)利用cp file1 fa命令生成文件file1的副本。然后利用ls -l命令查看工作目录的内容。
10)利用rm fa命令将文件fa删除。再利用ls -l命令查看工作目录内容。
(3)在LINUX下(也可在TURBO C中)编写显示文件内容的程序CAT.C,要求在运行时能提示输入文件名,当完成文件名输入后,在屏幕上显示文件内容。 源代码:
结果:
(4)虚拟内存程序设计,包括FIFO和LRU算法。
设计一个能模拟内存管理行为的系统程序,该系统至少应包括FIFO和LRU
算法(Least Recently Used)(当需要置换一页时,选择最长时间未被使用的那
一页淘汰掉。)的实现。
源代码:
结果:
(5)设计一个字符菜单的接口界面,其功能是能根据用户的选择,运行相应的程序模块,实现诸如改名文件、删除文件、显示文件等功能。(提示:要先将各模块分别命名成各函数,以便于主程序(MAIN.C)调用。可参考程序中的命名方法,各函数名可以自定。)
源代码:
结果:
3、实验结果分析:
(对上述实验各题所使用的原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析。)
4、总结:你对本次实验有什么体会或看法。
答:本次的实验使我对Linux的系统调用有了更深的理解。在Linux系统中我们可以在图形界面进行操作~也可以在命令行中进行操作~通过本次的实验使
我对Linux的命令有了更深的理解。使我知道了转移指令cd~列出清单命令ls 还
有分页命令more等等。通过本次的实验使我对Linux的system,,的用法更加
熟悉。