实验(操作系统)
更新时间:2024-04-29 11:39:01 阅读量: 综合文库 文档下载
- 操作系能力推荐度:
- 相关推荐
操作系统实验
实验一:linux常用命令 一、 实验目的
1、 掌握linux常用命令的使用方法和任务操作能力;
2、 用超级用户与普通用户帐户登录linux系统,了解在linux系统中超级用户与普通用户将具有那些
本质上不同的权限;
3、 能描述在linux 系统启动过程中包含了哪些主要的阶段; 二、 实验内容和要求
1、 使用自己的帐户登录linux系统查看系统提示符确定自己使用的 shell程序类型。 2、 修改个人口令后重新登录。
3、 用who命令查看当前登录在系统中的用户列表、用户总数、系统启动时间等。 4、 查看当前用户的标志符及当前进程的状态。 5、 用 cal命令查看自己的生日是星期几。
6、 将 Windows下的C盘链入linux 系统的根目录下。
7、 将C盘上的一个文本传递到linux下的当前用户目录下,并进行浏览查看。 8、 使用mail进行电子邮件的传递与查看。 9、 在系统中与其他用户对话。
10、练习允许与拒绝其他用户向自己的终端上发送信息。 三、 实验结果:请同学们自己写出 上机执行参考序列:
1、 用户使用的shell可查阅/etc/passwd文件确定。 2、 修改口令的命令为:passwd
5、 cal –m 3 –y 1990
mount/dev/hda1/dosc
vim ./myexample.txt
subject:hello
查看信件只需要键入”mail” % mail
用户屏幕将分成两半,其显示:请同学们自己写 此时zhangming 回应: % talk wangyong@class
则zhangming 的屏幕就会分成两半,双方开始对话。 10、% mesg y
1
实验二:shell编程 一、实验目的
1、 理解shell的基本功能和作用。
2、 了解shell命令解释原理及linux特殊命令的使用方法。
3、 根据需要设定自己的shell环境参数,构造一个具有特色的shell工作环境。 4、 掌握shell 基本程序设计方法,能够编写需要的 shell程序。 二、实验内容和要求(同学们可以任意选择2题)
1、 使用FOR循环语句编写一段B-shell程序,完成显示用户注册目录下a_bub、b_sub 子目录下的所有C
程序文件及其目标的列表。
2、 为了便于系统管理员对磁盘分配的管理,请编写一段B-shsell程序,当文件系统/home的占用空间量改
变时给出相应的提示。要求/home占用量在系统磁盘中为: (1) 小于50%时,提示“用户文件系统磁盘使用负荷量小”。
(2) 大于50%,小于90%时,提示“用户文件系统磁盘使用负荷正常”。 (3) 大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大”。
3、 编写一段shell 程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准(分出及格和优秀)。 三、参考代码 1、 # !/bin/sh
# showfile .sh
if test –d $HOME/ a_sub #测试目录a_sub是否存在 then
echo “---the .c and .obj files in $HOME /a_sub:---” for filename in ?ls $HOME / a_sub? do
case $ filename in #显示文件 *.c) echo $ filename; *.obj) echo $ filename; esac done else
echo “$HOME / a_sub dose not exist!!! ” fi
if test –d $HOME/ b_sub #测试目录b_sub是否存在 then
echo “---the .c and .obj files in $HOME /b_sub:---” for filename in ?ls $HOME / b_sub? do
case $ filename in #显示文件 *.c) echo $ filename; *.obj) echo $ filename; esac done else
echo “$HOME / b_sub dose not exist!!! ” fi
2
2、 cat diskusage.sh
# !/bin/sh # diskusage.sh echo
echo “---disk usage condition---” #获得用户已使用的磁盘空间数 used = ?du -s $HOME | cut -f1 ? echo -e “used blocks:\\t$used ” #获得磁盘空闲块数
free = ? df | tail –l | tr -s “[ ]” | cut –f4 –d “ ” ? echo –e “ free blocks : \\t$free”
#计算出用户可以使用的总的磁盘空间大小 total = $ ( echo ?expr $used + $free? ) echo –e “total blocks : \\ t$total ” echo
echo “---disk usage ratio---” #计算出用户的磁盘占用率
ratio = $( echo “scale=6 ; $used*100/$total ” | bc) echo –e “ usage ratio : \\t$ratio%” if [ ?expr “$ratio < 50 ” ? ] then
echo “用户文件系统磁盘使用负荷量小” else if [ ?expr “$ratio > 90 ” ? ] then
echo “用户文件系统磁盘使用负荷量偏大” else
echo “用户文件系统磁盘使用负荷正常”fi echo
3、 cat score.sh # !/bin/sh #score.sh
echo –e “ please enter the score: \\c”
while read SCORE do
case $SCORE in ? | [ 1-5 ?] echo “Failed !”
echo –e “please enter the score: \\c” ;; 6?) echo “ passed! ”
echo –e “please enter the score: \\c” ;;
7 ? ) echo “ Medium!”
echo –e “please enter the score: \\c” ;;
3
8 ? ) echo “Good !”
echo –e “please enter the score: \\c” ;; 9 ? | 100 ) echo “excellent!”
echo –e “please enter the score: \\c” ;; * ) exit ;; esac done
四、实验结果
请同学们写出shell 程序执行结果和小结、体会。 五 思考问题
1、 shell程序的主要功能有哪些?
2、 请说明使用shell编程时,如何将编写完成的 shell程序提交给系统运行?
4
实验三:文件操作命令 一、实验目的
熟悉和理解文件的概念和文件系统的类型,了解linux系统中文件系统的管理机制,掌握文件系统的装载方法,掌握linux操作系统中文件的基本操作方法。 二、实验环境及工具
装有linux系统的计算机,光盘、优盘各一个。 三、实验内容和要求
1、安装linux操作系统,在linux 操作系统环境下建立一个用户帐户号,为每个用户建立两个文件:test1;test2 .
2、以自己的用户名登录linux操作系统后完成下面的操作: (1) 文件操作 *查看文件与目录 ls ls -l ls /usr/bin dir
*显示文件test1内容(cat、less)
一页一页地显示文件的内容:cat test | more
列出当前目录下的文件,确定包括两个文件test1 、test2,通过下列命令,观察结果,归纳cat命令的功能: cat test1
cat test1 test2>test3 cat test3 | more *文件复制命令(CP)
使用CP命令可将指定的文件复制到指定目录下,并保持文件名不变。 cp /root/* /temp cp test1 text1 cp – r /root / * /temp cp /root / .[a-z] * /temp *删除文件命令(rm)
*移动文件和重新命名文件命令(mv) (2)目录操作命令 *改变当前命令(pew) *建立子目录命令(mkdir) *删除子目录(rmdir) (3)文件系统装卸操作 *CDROM的安装与卸载
使用mount命令把CDROM中的所有目录和文件加入到linux 目录树。挂装CDROM的命令需要以 root身份执行: mkdir / mnt / cdrom
mount –t auto /dev/cdrom /mnt/cdrom
要卸载一个已经安装上的CD-ROM需要退出 /mnt/cdrom目录并以root身份输入如下命令:umount /mnt/cdrom
*优盘的安装与卸载
在计算机的USB口中插入优盘,然后使用如下方法安装与卸载优盘:
5
mkdir /mnt/usb
mount /dev/sda /mnt/usb或mount /dev/sda1 /mnt/usb
使用完优盘后,使用umount /mnt/usb命令卸载优盘,最后才能拔出优盘。 五、实验结果
认真写出实验结果、小结、体会。 六、思考问题
1、用户建立的一个子目录应该具有什么样的权限?
2、如果将子目录X的权限修改成文件主、同组用户和其他用户都具有读写和执行的权限,该用什么样的命令完成?此时文件主是否能删除自己所建立的子目录X?
6
实验四:文件系统实验---系统调用
一、实验目的
1、 掌握文件系统的分层结构中包括哪些层,各层主要解决哪些问题。 2、 掌握文件系统的存储结构包括哪几部分内容,主要由哪些数据结构构成。 3、 文件系统中的动态数据结构的主要作用是什么。 4、 文件的多重索引结构是如何构成的,有哪些特点。 5、 linux的文件索引节点和目录文件的主要作用是什么。
6、 能使用文件管理中的系统调用,编写一些C语言程序解决简单的实际问题。 二、实验内容和要求
1、 编写一段C语言程序使其完成:对用户输入的文件名的内容进行拷贝。 例如:% EXE aFile bFile 则将文件aFile 的内容拷贝到文件bFile中。
2、 编写一段C语言程序使其完成:创建一个新文件,输入一段数据,然后随机移动指针,接着插入一段
数据。完成后,查看文件大小和内容。 三、参考代码 1、#include
if (argc<3){printf(“Usage:mycopy sourceFilename destinationFilename\\n”);exit(1);} if(fd1=open(argv[1],0)<0){printf(“open error .\\n”);exit(1);} if(fd2=creat(argv[2],0644)<0){printf(“create error .\\n”);exit(1);} while((n=read(fd1,buf,512))>0)write(fd2,buf,n); close(fd1);close(fd2); }
2、#include
char buf1[ ]=”abcde”;char buf2=”12345”; main( ) {int fid;
if((fid=creat(“test”,0664))<0){printf(“creat file error\\n”);exit(0);} else {if(write(fid,buf1,5)!=5){printf(“buf1 write error.\\n”);exit(1);}
if(lseek(fid,30,SEEK_SET)==-1){printf(“lessk error.\\n”);exit(2);} if(write(fid,buf2,5)!=5){priintf(“buf2 write error.\\\\n”);exit(3);} close(fid); } exit(0);
}
四、实验结果
请同学们写出程序执行结果和小结、体会。 五、 思考问题
1、 在linux的文件系统中包含几种大的分类?请简述这些分类的含义。
2、 linux的目录文件中主要包含哪些信息项?将I/O设备作为文件统一处理,在系统管理中有哪些优
势?
3、 linux的文件系统是由哪几部分构成?请描述这些组成部分中包括的主要内容。
7
实验五:进程管理----进程创建 一、 实验目的
1、加深对进程概念的理解,明确进程和程序的区别;
2、进一步认识并发执行的实质;分析进程争用资源的现象,学习解决进程互斥的方法; 3、了解linux 系统中进程通信的基本原理。 二 实验准备
1、装有linux系统的计算机
2、阅读 linux的ched.h原代码文件,加深对进程管理概念的理解;阅读linux的fork.c原代码文件,分析对进程的创建过程。 三、实验内容和要求
1、编写一段C语言程序使其完成:父进程创建一个子进程,子进程运行中显示当前系统的记录时钟;父进程运行时完成将1—100循环显示到标准输出流上,同时注意程序运行时控制其执行顺序是,子程序先运行,父进程再运行。 四、参考代码 1、#include
if(pid<0){printf(―Fail when creating new process!\\n‖); exit(1);}
else if(pid==0)print_systime( ); else {wait(NULL);
for(iIndex=1; iIndex<=100; iIndex++) printf(―%d‖, iIndex); printf(―\\n‖); } }
void print_systime(void) {time_t t;
if(time(&t)==((time_t)-1))
{printf(―Error when getting time!\\n‖);exit(1);} else {char *pszTime; pszTime=ctime(&t);
printf(―Now is %s\\n‖, pszTime); } }
五.实验结果 1.写出运行结果
2.按要求认真书写实验报告
8
实验六:进程管理----进程间通信(一) 一、 实验目的
linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉linux支持的消息通信机制及共享存储区机制。 二 实验准备
1、装有linux系统的计算机
2、阅读 linux系统的msg.c 、sem.c和 shm.c等原代码文件,熟悉linux的三种通信机制。 三、实验内容和要求
1、编写一段C语言程序使其完成:父子进程通过无名管道传递三条消息: *管道文件的测试程序开始。 *管道文件测试正在进行。 *管道文件测试结束。
接收进程收到信息后将它们送到标准输出文件上。
2、用 pipe( )创建一个管道文件,然后用fork( )创建两个生产进程和两个消费进程,它们之间通过pipe( )传递信息。 四、部分参考代码 1、#include
char message[3][BUFFSIZ]={―Start the test of pipe file‖,‖Test is going‖, ―Test ends‖}; if(pipe(f_des)==-1){printf(―pipe‖);exit(2);} switch(fork( ))
{case -1:printf(―Fork‖);exit(3); case 0:close(f_des[1]); for(i=0;i<3;i++)
{if(read(f_des[0],message[i],BUFSIZ)!=-1)
printf(―message received by child:[%s]\\n‖,message[i]); fflush(stdout);}
else {printf(―Read Failed‖);exit(4);} } break; default; close(f_des[0]); for(i=0;i<3;i++)
{if(write(f_des[1],message[i],BUFSIZ)!=-1)
{ printf(―message sent by parent:[%s]\\n‖,message[i]); fflush(stdout);}
else {printf(―write Failed‖);exit(5);} } }
9
exit(0); }
五、 实验结果 1、写出运行结果
2、按要求认真书写实验报告 六、思考问题
1、在linux系统中定义了几种通信方式?这些通信方式的主要功能是什么? 2、linux的PIC的主要功能,并说明IPC中包含的通信机制有哪些?
10
实验七:进程管理----进程间通信(二) 一、 实验目的
linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉linux支持的消息通信机制及共享存储区机制。 二 实验准备
1、装有liunx系统的计算机
2、阅读 liunx系统的msg.c 、sem.c和 shm.c等原代码文件,熟悉linux的三种通信机制。 三、实验内容和要求
1.编写一段C语言程序使其完成:两段程序 test1和test2通过一个共享内存进行通信,其中test1 向共享内存中写数据,test2从共享内存中读出数据或信息并将数据或信息送入标准输出上。
2.用clone( )创建四个轻进程(线程),用参数指明共享内存等资源,通过共享内存模拟生产者—消费者问题,利用pthread_mutex_lock( ),
pthread_mutex_unlock( )等函数实现对共享存储区访问的互斥。 四、部分参考代码 1. #include
#define SHM_MODE (SHM_R | SHM_W) #define SHW_SIZE 2048 int main( )
{int segment_id,segment_size; char *shared_memory; pit_t pid;
if((segment_id=shmget(IPC_PRIVATE,SHM_SIZE,SHM_MODE))<0) printf(―shmget error !\\n‖);
if((shared_memory=shmat(segment_id,0,0))==(void*)-1) printf(―shmat error !\\n‖);
printf(―test1 send a message to shar memory. \\n‖); sprintf(shared_memory,‖Hello test2!\\n‖); shmdt(shared_memory); pid=fork( );
if(pid<0)printf(―Creating process error!\\n‖); else if(pid<0){wait(NULL);
shmctl(segment_id,IPC-RMID,0); exit(0);} else
{ if((shared_memory=shmat(segment_id,0,0))==(void*)-1) printf(―shmat error !\\n‖);
printf(―test2 get a message from share memory:%s ‖, shared_memory); shmdt(shared_memory); } }
11
五、 实验结果 1、写出运行结果
2、按要求认真书写实验报告
12
实验八:存储器管理----动态不等长存储资源分配算法 一、 实验目的
理解动态异长存储分区资源管理,掌握所需数据结构和管理程序了解各种存储分配算法的优点和缺点。 二、实验内容和要求
1 、分析Linux最先适应(First Fit,FF) 存储分配算法,即map数据结构、存储分配函数 malloc()和存储释放函数 mfree( ),找出与算法有关的成分。
2、修改上述与算法有关的成分,使其分别体现BF(Best Fit,最佳适应)分配原则和WF(Worst Fit, 最坏适应)分配原则。 三、实验设计
1、按内容要求编写最佳适应和最坏适应存储分配算法。
2、编写测试程序,对存储分配表进行初始化。然后对用户输入的请求和释放,按算法动态更新存储分配表,并将每次更新之后的存储分配表在屏幕上显示出来。 四、参考代码
#ifdef HAVE_CONFIG_H #include
#include
struct map map[MAPSIZE];
int BF_malloc(struct map *map,int size) {register int a,s;
register struct map *bp,*bpp; for(bp=mp;bp->m_size;bp++) {if(bp->m_size>=size){a=bp->m_addr; s=bp->m_size;
for(bpp=bp;bpp->m_size;bpp++) {if(bpp->m_size>=size&&bpp->m_sizem_addr; s=bpp->m_size; bp=bpp;} }
bp->m_addr+=size; if((bp->m_size - =size)==0) do{bp++;
(bp-1)->m_addr=bp->m_addr; }while((bp-1)->m_size=bp->m_size; return (a); } }
13
return (-1); }
int WF_malloc (struct map *map,int size) {register int a,s;
register struct map *bp,*bpp; for(bp=mp;bp->m_size;bp++) {if(bp->m_size>=size){a=bp->m_addr; s=bp->m_size;
for(bpp=bp;bpp->m_size;bpp++) {if(bpp->m_size>s ) { a=bpp->m_addr; s=bpp->m_size; bp=bpp;} }
bp->m_addr+=size; if((bp->m_size - =size)==0) do{bp++;
(bp-1)->m_addr=bp->m_addr; }while((bp-1)->m_size=bp->m_size;
return (a);
} } return (-1); }
void mfree(struct map *map,int aa,int size) { register struct map *bp; register int a; register int t; a=aa;
for(bp=mp;bp=m_addr<=a&&bp->m_sizeq!=0;bp++) if(bp>mp&&(bp-1)->m_addr+(bp-1)->m_size==a) {(bp-1)->m_size+=size;
if(a+size==bp->m_addr){ (bp-1)->m_size+= bp->m_size; while(bp->m_size) {bp++;
(bp-1)->m_addr=bp->m_addr; (bp-1)->m_size=bp->m_size; } } }
else{ if(a+size==bp->m_addr&& bp->m_size) { bp->m_addr - = size; bp->m_size+=size;} else if(size)
do{t=bp->m_addr;
14
正在阅读:
实验(操作系统)04-29
描写立夏节气的诗句大全04-04
西南大学网络与继续教育学院《绩效管理》答案(2018年上)03-08
农民工工资预警机制03-15
2019年医院妇产科工作计划03-08
房屋过户委托书模板_委托书04-18
贫困村基本情况报告12-24
《天龙八部天佛降世》完美攻略08-29
环保承诺书08-22
- 党课
- 抽水试验方案
- 吴赣昌版高数第六章定积分的应用
- 广东省国土资源厅关于“三旧”改造工作实施意见的通知
- 华南理工 网络网上学习指南随堂练习
- 摩西的休妻律法和耶稣的休妻论
- 《清稗类钞》着述类 性理类 经术类
- 责任心是加强执行力建设的关键
- 数字高清COFDM车载无线图像传系统
- 2011年中考思想品德热点专题
- 2016年云南省中考物理试卷
- 2017中考语文专项复习 现代文阅读专题
- C区施工组织设计(400T) - 图文
- 房屋维修施工组织设计
- 七年级英语(上)一二单元检测(含听力)
- 10年嘉祥三诊测试 - 图文
- 借鉴行为主义学习观,提升文言文教学效率
- IX35提车检查表
- 辽宁省信息系统集成服务商名录2018版1241家 - 图文
- 仿人型机器人总体及臂手部结构设计7
- 操作系统
- 实验
- 继续教育16年题库
- 政治生活第二课学案
- 7.4.1.齿轮机构-单元习题加答案
- 五年级上册科学(未排版) - 图文
- 中国科学院海洋所离退休职工管理办法
- 城管执法局创建市级文明单位汇报材料
- 2011%E5%B9%B4%E4%B8%AD%E5%9B%BD%E5%9C%B0%E7%BA%A7%E5%B8%82GD
- 证婚词
- 家长培训主要做法与成效
- 央视汉字听写大赛题库(全)
- 作业批改管理系统
- 第二讲 中国传统法律文化的心理基础 第三节
- 2018年《大学英语》网上学习习题、在线考试及答案
- 表一+英语本科毕业论文编排模式
- 中国对甲基苯甲酸行业市场调查研究报告(目录)
- 湖南工业大学互换性与测量技术
- 全国海洋知识竞赛题库
- 社会工作者接案步骤的建议
- 乐活园艺治疗小组(学员篇)
- 湖北省丹江口市中考语文文言文《核舟记》复习导引