操作系统上机

实 验 报 告

成绩 教 师: 2012 年 12月 5日

班 级: 学 号: 姓 名: 实验地点: 实验时间:

实验一 进程的建立

【实验目的】

创建进程及子进程 在父子进程间实现进程通信 【实验软硬件环境】

Linux 、Windows98、Windows2000 【实验内容】

创建进程并显示标识等进程控制块的属性信息; 显示父子进程的通信信息和相应的应答信息。 (进程间通信机制任选)

【实验程序及分析】

编程思路:首先本程序在Linux用C语言完成的,父子进程的创建用fork函数来实现,然后是父子进程间的通信,这里用pipe实现。可以定义chan1[2], chan1[2],chanx[0]表示读,chanx[1]表示写。他们配合使用。 【实验截图】

【实验心得体会】

通过这次上机练习,我熟悉了用c++实现进程的创建,销毁,父子进程间的通讯等一系列课程中需要学习的内容。本来进程的概念在一开始我始终无法清晰地理解,但是通过自己用mfc的方法去实现它后,我开始慢慢地理解操作系统的进程的运作机制。

虽然,我只是实现了一个父子进程的创建和通讯,但是,管中窥豹,我想自己开始明白一个操作系统正是由很多这种进程实现功能的。其中,系统整体的进程调度,管理等等还有很多东西等着我们去进一步学习、理解。

实验二 进程间的同步

【实验目的】

理解进程同步和互斥模型及其应用 【实验软硬件环境】

Linux 、Windows98、Windows2000 【实验内容】

利用通信API实现进程之间的同步: 建立司机和售票员进程; 并实现他们间的同步运行。

【实验程序及分析】

程序总体思路:由于本次试验时用PV操作实现的互斥与同步模型,所以先实现P、V操作的函数,然后在主程序中利用PV操作函数实现司机和售票员的同步。司机和售票员分别为父进程和子进程,假设司机停车开门,此时为父进程中运行,然后申请开车,但是此时乘客没上车,所以只能阻塞。此时进入子进程,乘客上车,关门,售票员检票,释放开车,然后死机开车,到站,释放开车门。如此循环。

示意图

#include

#include

#include#include#include#include#include

#include//这些是完成以下操作所需要的头文件 int runid=0,stopid=0;

int P(int semid) //P操作实现函数 {

struct sembuf buf={0,-1,0}; //Linux

系统自带的结构体,返回值表示操作申请成功与否 if(semop(semid,&buf,1)==-1) { perror(\ return -1;

} return 0;

}

int V(int semid) { struct sembuf buf={0,1,0}; if(semop(semid,&buf,1)==-1) { perror(\ return -1;

}

return 0;

} int main() { if(fork()==0) { while(1) { P(runid); printf(\ printf(\汽车启动\\n\

printf(\汽车到站\\n\

V(stopid); }

}

else { while(1) { printf(\乘务员开车门\\n\ printf(\乘务员关车门\\n\ V(runid); printf(\售票\\n\ P(stopid);

printf(\乘务员关车门\\n\ }

} return 0;

}

进程同步C语言p v实验报告,操作系统实验报告模板相关推荐

  1. 进程同步c语言实验报告,操作系统实验报告实验3-1

    操作系统实验报告 操作系统实验报告 实验3-1: Linux进程的创建与父子进程同步 1. 实验目的 (1)熟悉在C语言源程序中使用Linux所提供的系统调用界面的方法: (2)掌握Linux中进程的 ...

  2. linux文件操作实验心得,操作系统实验心得(多篇).doc

    操作系统实验心得(多篇) 操作系统实验心得(精选多篇) 第一篇:操作系统实验心得 每一次课程设计度让我学到了在平时课堂不可能学到的东西.所以我对每一次课程设计的机会都非常珍惜.不一定我的课程设计能够完 ...

  3. c语言处理机调度实验报告,操作系统实验处理机调度C语言实现.docx

    操作系统实验处理机调度C语言实现.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  4. linux系统编程界面实验报告,操作系统实验报告-Linux操作使用编程.doc

    操作系统实验报告-Linux操作使用编程 实 验 报 告( 2012/ 2013 学年 第二学期) 课程名称操 作 系 统A实验名称Linux操作.使用.编程实验时间2013年 5 月 6日指导单位计 ...

  5. c语言最佳适应算法实验报告,操作系统实验报告---主存分配与回收(最佳适应算法)...

    1 #include 2 #include 3 #define MAX 600 //设置总内存大小为512k 4 5 structpartition {6 char pn[10];//分区名字 7 i ...

  6. 广州大学Linux实验报告,操作系统实验_实验1

    广州大学学生实验报告 1. 实验目的 1.1.掌握进程的概念,明确进程的含义 1.2.认识并了解并发执行的实质 2.1.掌握进程另外的创建方法 2.2.熟悉进程的睡眠.同步.撤消等进程控制方法 3.1 ...

  7. 编辑Linux系统实验,linux操作系统实验vi编辑器的使用

    姓名: 学号 班级: 实验二 vi编辑器的使用 一.实验目的 1. 掌握Linux系统的vi编辑器 2. 掌握Linux系统的文本编辑 二.实验环境 1. Linux软件和计算机 三.实验内容或步骤 ...

  8. 操作系统 实验报告 linux 内核,linux操作系统内核实验报告.doc

    linux操作系统内核实验报告.doc linux操作系统内核实验报告 篇一:linux操作系统实验报告 LINUX操作系统实验报告 姓 名 班级学号 指导教师 2011 年 05月 16 日 实验一 ...

  9. 慕课嵌入式系统(第九章.ucos-ii操作系统实验)

    慕课电子科技大学.嵌入式系统.第九章.嵌入式实时操作系统实验.ucos-ii操作系统实验 0 目录 9 嵌入式实时操作系统实验 9.1 ucos-ii操作系统实验 9.1.1课堂重点 9.1.2测试与 ...

最新文章

  1. tftp怎么给服务器传文件,TFTP文件传输工具使用
  2. 想成为牛逼程序员? 先数数编程语言之父们的头发
  3. 【C 语言】文件操作 ( 读文本文件 | 文本加密解密 | fgets 函数 | fputs 函数 )
  4. shell题库选择题_shell学习:几道常见shell习题
  5. MongoDB 学习-Windows环境搭建(一)
  6. 自制简单的Tabs(Vue)
  7. socket怎么同时监听两个端口_三十岁了,我同时爱上两个男人,我现在不知道怎么办...
  8. 西门子s1200教程_西门子S-1200入门PLC视频教程百度云资源下载
  9. 常用的工业控制计算机有哪几类,工业控制计算机在行业应用中都有哪些特点?...
  10. sketch插件的学习 末尾链接有彩蛋
  11. 模拟器:思科 给路由器配置IP地址和子网掩码
  12. 【Windows7】win7启动 报错 AutoIt错误,不能打开脚本文件
  13. bigemap地图下载器 好用吗?
  14. Google Bigtable 中文版
  15. 多可系统的权限规则详解
  16. 高职Java竞赛_2019年全国职业院校技能大赛高职组“物联网技术应用”赛项开赛...
  17. java设计画图工具下载_java 版画图工具
  18. FTP服务器无法访问原因
  19. 简单的Web日志分析
  20. 公司倒闭真相(深刻)

热门文章

  1. 为什么APP开发公司一家报价5万一家报价15万?
  2. Python Excel导入Mysql的通用方法
  3. Linux(12)Debain系统安装远程控制软件
  4. 算法-斐波那契数列 java
  5. 在这个浮躁的社会,我要做好自己
  6. VC++ CImageList添加图标(HBITMAP、HICON)
  7. 一次全国竞赛笔试时的试题
  8. HSQLDB基本认识
  9. 仿基因编程原理导论(里面的几个重要的概念正在做修正,所以这只能算是一个原理的初稿。)
  10. 实验三 敏捷开发与XP实践