操作系统课内实验报告

操作系统课内实验报告

ID:6122920

大小:1.24 MB

页数:22页

时间:2018-01-03

操作系统课内实验报告_第1页
操作系统课内实验报告_第2页
操作系统课内实验报告_第3页
操作系统课内实验报告_第4页
操作系统课内实验报告_第5页
资源描述:

《操作系统课内实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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在编辑器中输入以下内容#!/bin/bashechoHelloWorld!执行脚本使用指令:$./scriptØ编

3、写bash脚本,统计/my目录下c语言文件的个数通过bash脚本,可以有多种方式实现这个功能,而使用函数是其中个一个选择。在使用函数之前,必须先定义函数。进入自己的工作目录,编写名为count的文件脚本程序:#!/bin/bashfunctioncount{echo–n"Numberofmatchesfor$1:"#接收程序的第一个参数ls$1

4、wc–l#对子程序的第一个参数所在的目录进行操作}将count文件复制到当前目录下,然后在当前目录下建立文件夹,在my目录下建立几个c文件,以便用来进行测试1)系统调用实验该实验是通过实验者对“Linux操作系统的系统调用机制

5、”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。Ø编程调用一个系统调用fork(),观察结果。在应用程序中调用系统调用fork()非常简单,下面的程序可以很清楚的显示出有fork()系统调用生成了子进程,而产生的分叉作用:#includeintmain(){intiUid;iUid=fork();if(iUid==0)for(;;){printf("Thisischildprocess.");sleep(1);}if(iUid>0)fo

6、r(;;){printf("Thisisparentprocess.");sleep(1);}if(iUid<0)printf("Cannotusesystemcall.");return0;}程序运行结果:Ø编程调用创建的系统调用foo(),观察结果。在内核源码中添加如下代码:asmlinkageintsys_foo(intx){printf(“%d”,x);}编程调用创建的系统调用foo(),观察结果。#include#include_syscall1(char*,foo,int,ret)main(){

7、intI,J;I=100;J=0;J=foo(I);printf("Thisistheresultofnewkernel");printf("%d",j);}重新编译内核,编译成功后的内核版本如下:Ø自己创建一个系统调用mycall(),实现功能:显示字符串到屏幕上。在内核源码中添加如下代码:#includeasmlinkagelongsys_newcall(inti){//printk("thisisasystemcallmadebyyourself");return(i*10);}测试新的System_callCODE:v

8、itest.cØ编程调用自己创建的系统调用。测试:CODE:./test实验体会:通过本次实验,我们理解了面向操作命令的接口Shell,学会了简单的shell编码,理解了操作系统调用的运行机制,掌握了创建系统调用的方法。本次实验通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这让我们初步了解了操作系统的生成过程。实验二:进程管理实验实验目的1)加深对进程概念的理解,明确进程和程序的区别。2)进一步认识并发执行的实质。3)分析进程争用资源的现象,学习解决进程互斥的方法。4)了解Linux系统中进程通信的基本原理。进程是操作系统中最重要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。