操作系统课程设计--系统调用Word格式文档下载.docx

上传人:聆听****声音 文档编号:978447 上传时间:2023-04-29 格式:DOCX 页数:12 大小:72.37KB
下载 相关 举报
操作系统课程设计--系统调用Word格式文档下载.docx_第1页
第1页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第2页
第2页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第3页
第3页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第4页
第4页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第5页
第5页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第6页
第6页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第7页
第7页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第8页
第8页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第9页
第9页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第10页
第10页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第11页
第11页 / 共12页
操作系统课程设计--系统调用Word格式文档下载.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统课程设计--系统调用Word格式文档下载.docx

《操作系统课程设计--系统调用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计--系统调用Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。

操作系统课程设计--系统调用Word格式文档下载.docx

指导教师:

工作单位:

计算机科学与技术学院题 目:

系统调用

初始条件:

理论:

学习了《操作系统》课程,掌握对操作系统的了解。

实践:

计算机技术系实验中心提供计算机及软件开发环境。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

学习在Linux中产生一个系统调用以及怎样通过往Linux内核中增加一个新函数从而在该内核空间中实现对用户空间的读写。

这个函数的功能是返回当前的系统时间。

时间安排:

2011年12月26日-30日(第17周)

序号

阶段内容

所需时间

1

消化资料、系统设计

1天

2

编程、调试

3天

3

撰写报告

合计

5天

指导教师签名:

2011年12月24

系主任(或责任教师)签名:

年 月日

一.设计题目与要求

设计题目:

系统调用

实验条件要求:

每人一台Linux主机且有超级用户权限。

二.总的设计思想及系统平台,语言,工具等

1.设计思想:

系统调用说的是操作系统提供给用户程序调用的一组“特殊”接口。

用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置系统时间等。

Linux系统调用按照功能逻辑大

致可分为“进程控制”、“文件系统控制”、“系统控制”、“存管管理”、

“网络管理”、“socket控制”、“用户管理”、“进程间通信”几类。

2.系统调用平台及语言:

本课程设计在Linux操作系统下,使用c语言完成.用到的工具有

GCC编译器和vi编译器.

三.数据结构与模块说明(功能与流程图)

ctime(将时间和日期以字符串格式表示)

相关函数time,asctime,gmtime,localtime

表头文件#include<

time.h>

定义函数char*ctime(consttime_t*timep);

函数说明ctime()将参数timep所指的time_t结构中的信息转换成真实世界所

使用的时间日期表示方法,然后将结果以字符串形态返回。

此函数已经由时区转换成当地时间,字符串格式为“WedJun30

21:

49:

081993\n”。

若再调用相关的时间日期函数,此字符串可能会被破坏。

返回值返回一字符串表示目前当地的时间日期。

#include<

main()

{

time_ttimep;

time(&

timep);

printf(“%s”,ctime(&

timep));

UntitledDocument

}

gettimeofday(取得目前的时间)

相关函数time,ctime,ftime,settimeofday

表头文件#include<

sys/time.h>

#include<

unistd.h>

定义函数intgettimeofday(structtimeval*tv,struct

timezone*tz)

函数说明gettimeofday()会把目前的时间有tv所指的结构返回,当

地时区的

信息则放到tz所指的结构中。

timeval结构定义为:

structtimeval{longtv_sec;

/*秒*/

longtv_usec;

/*微秒*/

};

timezone结构定义为:

structtimezone{

inttz_minuteswest;

/*和Greenwich时间差了多少分钟*/inttz_dsttime;

/*日光节约时间的状态*/

上述两个结构都定义在/usr/include/sys/time.h。

开始

程序流程图

产生系统调用

增加新函数

功能函数

结束

放回当前时间

四.源程序

stdio.h>

#include<

intmain()

while

(1)

chartimebuf[100];

time_tt;

time(&

t);

strftime(timebuf,sizeof(timebuf),"

%Y年%m月%d日%H:

%M:

%S"

localtime(&

t));

printf(“%s\n”,timebuf);

fflush(stdout);

sleep

(1);

return0;

五.运行结果与运行情况

(1),输入gedittime.c命令,然后编写代码,如图:

(2)用gcc编译器进行编译连接,然后输入“./time”命令,运行编译连接之后的程序。

结果我们可以看到。

此程序可以进行系统调用来显示当前的日期和时间。

六.调试记录

每个系统调用都是通过一个单一的入口点多路传入内核。

eax寄存器用来标识应当调用的某个系统调用,这在 C 库中做了指定

(来自用户空间应用程序的每个调用)。

当加载了系统的C库调用索引和参数时,就会调用一个软件中断(0x80 中断),它将执行

system_call函数(通过中断处理程序),这个函数会按照eax内容中的标识处理所有的系统调用。

在经过几个简单测试之后,使用system_call_table和eax中包含的索引来执行真正的系统调用了。

从系统调用中返回后,最终执行 syscall_exit,并调用resume_userspace返回用户空间。

然后继续在C库中执行,它将返回到用户应用程序中。

1.向内核中添加新系统调用,需要执行3个基本步骤:

(1)添加新函数。

(2)更新头文件。

(3)针对这个新函数更新系统调用表。

2.对用户内存进行读写

Linux内核提供了几个函数,可以用来将系统调用参数移动到用户空间中,或从中移出。

方法包括一些基本类型的简单函数(例如

get_user或put_user)。

要移动一块儿数据(如结构或数组),您可以使用另外一组函数:

copy_from_user和

copy_to_user。

可以使用专门的调用移动以null结尾的字符串:

strncpy_from_user和strlen_from_user。

您也可以通过调用access_ok来测试用户空间指针是否有效。

这些函数都是在

linux/include/asm/uaccess.h中定义的。

可以使用access_ok宏来验证给定操作的用户空间指针。

这个函数有3个参数,分别是访问类型(VERIFY_READ或VERIFY_WRITE),指向用户空间内存块的指针,以及块的大小

(单位为字节)。

如果成功,这个函数就返回0:

3.使用系统调用

内核已经使用新系统调用完成更新,接下来就从用户空间应用程序中使用这些系统调用需要执行的操作。

七.自我评价与总结

通过这次课程设计,我对Linux系统调用有了更深刻的认识,在Linux中产生一个系统调用以及通过往Linux内核中增加一个新函数从而在该内核空间中实现对用户空间的读写。

本次课程设计基本实现了要求.另外.我还深刻认识到仅仅学习理论知识是远远不够的,必须将理论与实践结合起来,多上机实践,这样才能对专业知识有更深刻的了解。

本科课程论文评分标准

班级

学号

姓名

课设题目

评阅点

评分标准(细则)

分值

给分

功能及算法

(40分)

正确实现本程序所需全部功能,算法设

计正确合理且有一定创意

40分

实现所需功能,算法正确

30分

基本实现所需功能

15分

有明显重大错误

5分

无法实现程序功能

0分

界面和操作性

(20分)

界面美观、合理,可操作性强

20分

界面合理,可操作

界面尚可,基本可操作

10分

可操作较差

程序可读、可维护性

(15分)

程序可读性好、逻辑清晰,程序完整,

可维护性好,

程序可读、可维护

基本可读可维护

逻辑混乱、不可读

论文质量

(25分)

论文规范,行文流畅,层次清晰

25分

论文书写基本规范,文理较通畅

结构较合理,层次较清楚,基本符合要

结构混乱,文不对题目,或者有明显抄

袭现象

总分

教师签名:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2