电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

物联网工程操作系统实验报告

17页
  • 卖家[上传人]:liy****000
  • 文档编号:373310957
  • 上传时间:2023-12-15
  • 文档格式:DOC
  • 文档大小:549.50KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、操作系统实验报告专业:物联网工程实验三 一个进程启动另一个程序的执行【实验目的】 在 Linux 环境系统中, execve 系统调用用于执行一个程序(可执行二进制文件或脚本)。exec 函数家族,包括 execl、execlp、execle、execv、execvp,是 execve 系统调用的前端。本实验要求学生学习在一个进程中启动另一个程序执行的基本方法,了解 execve 系统调用和 exec 函数家族的使用方法。【实验内容】(一)初步认识“在一个进程中启动另一个程序的执行”。1、编辑一个源程序 dummy.c,并编译为可执行程序 dummy。/ dummy.c#include #include #include #include int main(int argc, char *argv) int result; printf(nYou are now in a running program %s. n, argv0); printf(My PID is %d. My parents PID is %d.n, getpid(), getppid(); printf( Ple

      2、ase input an integer (0-255), which will be returned to my parent process:n); scanf(%d, &result); printf(Goodbye.nn); return (result &0377);2、再编辑一个源程序 exec_test.c,并编译为可执行程序 exec_test。/ exec_test.c#include #include #include #include #include #include int main(int argc, char *argv) int result; result = fork(); if (result 0) perror(Failed to create child); exit(1); else if (result = 0) / Child 1 char *cmd = ./dummy; printf(Child processs PID is %d. My parents PID is %d.n, getpid(), getppid(); print

      3、f(Child process is about to execute %snn, cmd); result = execlp(cmd, cmd, NULL); if (result = - 1) perror(In child process, failed to exec a program); exit(0); else / parent int status; printf(Parent processs PID is %d.n, getpid(); printf(Parent process is waiting . n); wait(&status); printf( In parent process, status = 0x%x, WEXITSTATUS(status) = %d (i.e. 0x%x)n, status, WEXITSTATUS(status), WEXITSTATUS(status); return (EXIT_SUCCESS);3、 先执行 dummy,观察、分析执行结果;然后执行程序 exec_test,观察、分析执行结果。(注意,两个可执行程序

      4、都在当前目录下)(二)实现一个简单的命令解释外壳(Shell)。1、基本功能:(1)从标准输入读取一行字符串,其中包含欲执行的命令和它的命令行参数(如果有的话)。提示:需要将输入的一行字符串进行拆分,以空格、制表符(t)作为分隔符,分解为命令、命令行参数(零个或多个)。如果用户输入的命令是“quit”,则退出执行。(2)创建一个子进程。(3)在子进程中,执行在(1)读入的命令,如果有命令行参数,也要传递。(4)在父进程中,等待子进程结束,然后打印子进程的返回值。(5)在父进程中,控制转移至(1)。【实验要求】 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。【实验设计】dummy程序:结果显示了该进程的PID和父进程的PID,并且将一个值返回给了父进程。exec_test程序:在子进程中键入的数值返回了父进程,并显示了出来(19).实现一个简单的命令解释外壳(Shell)源代码:/example#include#include#include#include#include#include#includeint main()int pid;i

      5、nt rtn; /子进程的返回值int exec_errorno;char command256;char * p;char * q;char *c20;int i=0,j=0;while(1)/ 从 终端 读取要执行的 命令printf();command0=0;p= fgets(command,256,stdin);if (p= NULL)perror(Error in fgets().);exit(-1);/Delete the last char (new line) in the string returned by fgets() commandstrlen(command)-1 = 0;p=command;q=p;/Quit if user inputs quitif (!strcmp(command,quit)break;/Create a child process to execute command pid = fork();if (pid0) perror(Failed while calling fork.);exit(-1);else if(pid = 0)

      6、/子进程 执行此命令for(;)ci=strtok(p, );if(ci=NULL)break;i+;p=NULL;p=c0;for(j=0;ji;j+)printf(%s n,cj);exec_errorno = execvp(p,c);/如果 exec 函数返回,表明没有正常执行命令 /只有在这种情况下, 才会执行下面的打印错误信息perror(command);exit(exec_errorno);else/父进程,等待子进程结束,并打印子进程的返回值wait(&rtn);printf(n Value returned from child process, rtn =%dn,rtn);printf(WEXITSTATUS(rtn) = %dn,WEXITSTATUS(rtn);return 0;【实验测试结果及分析】此程序通过对execvp()函数的调用,使得通过输入命令被执行。输入的命令用fgets()存入command字符串中,然后反复调用strtok()函数,分割所得字符串,达到将命令分割的目的,使得多命令行参数得以实现。【运行结果】【收获及体会】实验指导书在实验调试和分

      7、析的过程中,我越来越懂得自学能力和自我独立解决问题的重要性。在以后的实验和学习中,我会不断的加强对这方面的训练。【参考资料】实验指导书实验五 线程间的互斥与同步【实验目的】理解 POSIX 线程(Pthread)互斥锁和 POSIX 信号量机制,学习它们的使用方法;编写程序,实现多个 POSIX 线程的同步控制。【实验内容】创建 4 个 POSIX 线程。其中 2 个线程(A 和 B)分别从 2 个数据文件(data1.txt 和 data2.txt)读取 10 个整数. 线程 A 和 B 把从文件中读取的逐一整数放入一个缓冲池. 缓冲池由 n 个缓冲区构成(n=5,并可以方便地调整为其他值),每个缓冲区可以存放一个整数。另外 2 个线程,C 和 D,各从缓冲池读取 10 数据。线程 C、D 每读出 2 个数据,分别求出它们的和或乘积,并打印输出。提示:(1)在创建 4 个线程当中,A 和 B 是生产者,负责从文件读取数据到公共的缓冲区,C 和 D 是消费者,从缓冲区读取数据然后作不同的计算(加和乘运算)。使用互斥锁和信号量控制这些线程的同步。不限制线程 C 和 D 从缓冲区得到的数据来自哪个文件。(2)在生产者线程中,确保从文件读出数据以后,再去“生产”。在开始设计和实现之前,务必认真阅读下列内容:l 课本 6.8.4 节;l 讲义(课堂 PPT)中关于“生产者-消费者问题”的部分;l 课本第 6 章后面的编程项目生产者-消费者问题。【实验要求】 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。【实验设计】#include #include #include #include #include #define NUM_THREADS 5int buffer5;int in = 0; /写入标识int out = 0; /

      《物联网工程操作系统实验报告》由会员liy****000分享,可在线阅读,更多相关《物联网工程操作系统实验报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.