欢迎来到天天文库
浏览记录
ID:53771204
大小:1.33 MB
页数:18页
时间:2020-04-06
《操作系统课内实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安交通大学实验报告操作系统实验报告2130505133计算机36班操作系统实验实验一:用户接口实验实验目的1)理解面向操作命令的接口Shell。2)学会简单的shell编码。3)理解操作系统调用的运行机制。4)掌握创建系统调用的方法。操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。用户接口实验也因此而分为两大部分。首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell编程方法。然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。在本次实验中,最具有吸
2、引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了解操作系统的生成过程极为有利。实验内容1)控制台命令接口实验该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让实验者理解面向操作命令的接口shell和进行简单的shell编程。Ø查看bash版本。在shell提示符下输入:$echo$BASH_VERSION我们的版本是4.3.42(1)-release(2)建立bash脚本,输出Helloword在编辑器中输入
3、以下内容#!/bin/bashechoHelloWorld!执行脚本使用指令:$./scriptØ编写bash脚本,统计/my目录下c语言文件的个数通过bash脚本,可以有多种方式实现这个功能,而使用函数是其中个一个选择。在使用函数之前,必须先定义函数。进入自己的工作目录,编写名为count的文件脚本程序:#!/bin/bashfunctioncount{echo–n"Numberofmatchesfor$1:"#接收程序的第一个参数ls$1
4、wc–l#对子程序的第一个参数所在的目录进行操作}将count文件复制到当
5、前目录下,然后在当前目录下建立文件夹,在my目录下建立几个c文件,以便用来进行测试1)系统调用实验该实验是通过实验者对“Linux操作系统的系统调用机制”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。Ø编程调用一个系统调用fork(),观察结果。在应用程序中调用系统调用fork()非常简单,下面的程序可以很清楚的显示出有fork()系统调用生成了子进程,而产生的分叉作用:#includei
6、ntmain(){intiUid;iUid=fork();if(iUid==0)for(;;){printf("Thisischildprocess.");sleep(1);}if(iUid>0)for(;;){printf("Thisisparentprocess.");sleep(1);}if(iUid<0)printf("Cannotusesystemcall.");return0;}程序运行结果:Ø编程调用创建的系统调用foo(),观察结果。在内核源码中添加如下代码:asmlinkageintsy
7、s_foo(intx){printf(“%d”,x);}编程调用创建的系统调用foo(),观察结果。#include#include_syscall1(char*,foo,int,ret)main(){intI,J;I=100;J=0;J=foo(I);printf("Thisistheresultofnewkernel");printf("%d",j);}重新编译内核,编译成功后的内核版本如下:Ø自己创建一个系统调用mycall(),实现功能:显示字符串到屏
8、幕上。在内核源码中添加如下代码:#includeasmlinkagelongsys_newcall(inti){//printk("thisisasystemcallmadebyyourself");return(i*10);}测试新的System_callCODE:vitest.cØ编程调用自己创建的系统调用。测试:CODE:./test实验体会:通过本次实验,我们理解了面向操作命令的接口Shell,学会了简单的shell编码,理解了操作系统调用的运行机制,掌握了创建系统调用的
9、方法。本次实验通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这让我们初步了解了操作系统的生成过程。实验二:进程管理实验实验目的1)加深对进程概念的理解,明确进程和程序的区别。2)进一步认识并发执行的实质。3)分析进程争用资源的现象,学习解决进程互斥的方法。4)了解Linux系统中进程通信的基本原理。进程是操作系统中最重要的概
此文档下载收益归作者所有