收藏 分销(赏)

操作系统实验三-进程.doc

上传人:Fis****915 文档编号:554521 上传时间:2023-12-08 格式:DOC 页数:3 大小:98.50KB
下载 相关 举报
操作系统实验三-进程.doc_第1页
第1页 / 共3页
操作系统实验三-进程.doc_第2页
第2页 / 共3页
操作系统实验三-进程.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、操作系统实验三完成人:谌浩旗 学号:71109424 日期:2011-4-8【实验内容】在Linux操作系统上,利用fork()创建一个子进程去生成Fibonacci数列,并采用POSIX share memory 将结果传递给父进程,具体要求见”Operating System Concepts(Seventh Edition)” Chapter 3后的习题3.10。编写程序并在父进程中输出测试结果【实验目的】1. 通过实验,了解Unix/Linux中新进程的创建,以及父进程与子进程之间关系2. 通过实验,掌握共享内存的创建、使用和删除【设计思路】1. 在创建子进程的前面用相应的函数创建共享

2、内存2. 创建子进程,并在子进程内修改内存中存储的值3. 在父进程中输出内存中存储的值 【流程图】创建共享内存创建子进程并修改内存的值父进程中输出修改后的值【主要数据结构及其说明】struct Fibonacci /结构体,用来存储long fib_sequence MAX_SEQUENCE; /数组,存储Fibonacci数值int sequence_size; /数组的大小 shared_data;【源程序并附上注释】#include #include #include #include #include #include #define MAX_SEQUENCE 10/定义共享内存段数据

3、结构typedef struct long fib_sequence MAX_SEQUENCE; int sequence_size; shared_data;int main(int argc, char *argv) /读取表示数列长度的参数,将其转化为int型 int size = 0; int i = -1; while(argv2+i != 0)size = size * 10 + (int)argv2i - (int)0; /参数合法判断 if (size MAX_SEQUENCE) printf(wrong argumentn); return -1; /共享内存段标识符 int

4、 segment_id; /一个指向共享内存段的指针 shared_data *shared_memory; /创建共享内存段 segment_id = shmget(IPC_PRIVATE, sizeof(shared_data), S_IRUSR | S_IWUSR); /加入共享内存 shared_memory = (shared_data *)shmat(segment_id, NULL, 0); /将来自命令行的参数赋值给shared_data shared_memory-sequence_size = size; /创建子进程 pid_t pid; pid = fork(); /创

5、建失败 if (pid 0) printf(create child process failedn);return -1; /子进程操作 else if (pid = 0) /构造Fabonacci数列,并将数据写入共享内存段long preNum = 0, behNum = 1, temp;for (int i = 0; i sequence_size; +i) shared_memory-fib_sequencei = behNum; temp = preNum + behNum; preNum = behNum; behNum = temp;/子进程分离共享内存段 shmdt(shar

6、ed_memory); /父进程操作 else if (pid 0) /等待子进程退出wait(NULL);/打印共享内存段的信息printf(Fibonacci: );for (int i = 0; i sequence_size; +i) printf(%ld , shared_memory-fib_sequencei);printf(n);/父进程分离共享内存段shmdt(shared_memory);/父进程删除共享内存段shmctl(segment_id, IPC_RMID, NULL); return 0;【程序运行时的初值和运行结果】【实验体会】在使用函数创建共享内存时,应当注意函数的返回形式,必要的时候要做强制转换。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服