操作系统课程实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统》课程实验
实验1:安装Linux系统(4学时)
目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。
2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。
3.学会Linux操作系统的安装步骤和简单配置方法。
4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。
内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。
2.安装Linux系统(如红旗Linux桌面版)。
3.配置Linux系统运行环境。
4.正确地启动、关闭系统。
5.对图形界面进行一般操作。
要求:1.制订安装计划。
2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。
3.在光驱中放入Linux系统安装盘,启动系统。按照屏幕提示,选择/输入相关参数,启动安装过程。
4.安装成功后,退出系统,取出安装盘。重新开机,登录Linux系统。
5.对Linux系统进行配置,如显示设备、打印机等。
6.利用鼠标对图形界面进行操作。
说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。
2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。
实验2:Linux 应用及shell编程(4学时)
目的:1.掌握Linux一般命令格式和常用命令。
2.学会使用vi编辑器建立、编辑文本文件。
3.了解shell的作用和主要分类。
4.学会bash脚本的建立和执行方式。
5.理解bash的基本语法。
6.学会编写简单的shell脚本。
内容:1.正确地登录和退出系统。
2.熟悉使用date,cal等常用命令。
3.进入和退出vi。利用文本插入方式建立一个文件。
4.学会用gcc编译器编译C程序。
5.建立shell脚本并执行它。
6.学会使用shell变量和位置参数、环境变量。
7.学会使用bash的特殊字符和一般控制结构编写shell脚本。
要求:1.登录进入系统,修改个人密码。
2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。
3.进入vi。建立一个文件,如file.c。进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。最后,将该文件存盘。回到shell状态下。
4.运行gcc file.c -o myfile,编译该文件,会发现错误提示。理解其含义。
5.利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。
6.对主教材第2章中的适当例题进行编辑,然后执行。从而体会通配符、引号、输入输出重定向符、成组命令的作用;能正确使用自定义变量、位置参数、环境变量、输入/输出命令;能利用if语句、while语句、for语句和函数编写简单的脚本。
实验3:进程管理(4学时)
目的:1.加深对进程概念的理解,明确它与程序的区别,突出理解其动态性特征。
2.学会使用ps命令观察进程的状态,并分析进程族系关系。
3.学会使用系统调用对进程进行控制。
内容:1.使用ps命令查看系统中运行进程的信息。
2.利用系统调用实现进程的创建、终止、等待、睡眠等操作。
要求:1.使用ps命令,列出与当前shell 有关进程的基本信息。
2.执行ps –ef命令,显示系统中所有进程的全面信息。
3.执行ps –la命令,显示系统中所有进程的全面信息,并分析进程族系关系。
4.编写一个C程序,使用系统调用fork( )创建子进程,利用getpid( )和getppid( ) 分别获得进程的PID和父进程PID,使用sleep( )将相关进程挂起给定时间。
5.编写一个C程序,完成父进程创建一个子进程,子进程运行中显示当前系统的记录时钟;父进程将数字1~100循环显示到标准输出上;另外,应控制子进程先运行,然后父进程运行。
实验4:存储管理(3学时)
目的:1.加深对分区存储管理技术有关概念的理解。
2.学会设计动态分区法分配内存所用的数据结构。
3.掌握分区分配的最先适应算法。
内容:1.设计动态分区法分配内存所用的数据结构,即空闲分区表。
2.编程实现最先适应算法。
要求:1.将系统中的1024KB内存区作为若干进程共同使用的内存空间;建立空闲分区表,其中每个表项包括分区序号、分区大小、分区始址以及分区状态等信息。
2.用C 语言编写程序,建立若干进程,给定其名称和所需内存大小。
3.按照主教材中给出的最先适应算法的提示,编程实现其功能。即:为各个进程分配内存空间,并显示内存分配情况;当进程结束时,回收其占用的内存空间,修改空闲分区表,显示内存分配情况;当没有空闲空间可以满足进程申请时,应给出提示信息,让该进程等待;所编制的程序应具有退出功能。
实验5:文件管理(3学时)
目的:1.掌握Linux有关文件和目录操作的常用命令。
2.学会用系统调用和库函数进行编程,实现对文件的创建、打开、关闭、读和写。
内容:1.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。
2.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。
3.使用系统调用对文件进行操作,编程实现对文件的创建、打开、关闭、读和写。
要求:1.浏览文件系统:运行pwd命令,确定当前工作目录;运行ls -l命令,理解各字段含义;使用cd命令,改变工作目录;用mkdir建立一个子目录subdir,将工作目录改到subdir。
2.文件操作:验证当前工作目录在subdir;运行date > file1,然后运行cat file1,看到什么信息?运行cat subdir,会有什么结果?为什么?利用ls -l file1,了解链接计数是多少?运行cp file1 file2,然后ls -l,看到什么?运行mv file2 file3,然后ls -l,看到什么?运行rm file3,然后ls -l,结果如何?运行ls -l,理解各文件的权限是什么?用两种方式改变file1的权限。
3.利用系统调用编写一个C程序,完成对用户指定文件的内容进行拷贝。
4.利用系统调用和库函数进行编程,将用户输入的信息插入到已存文件的不同位置