哪一天 哪一天 我有吃有穿有住有钱 不再流浪 流浪
标签类目:操作系统

【实验报告】操作系统中共享内存

操作系统布置了作业,是写实验报告!

有4个命题:

1:进程管理   2:信号量  3:高级通信  4;内存管理

因为我对PHP比较熟悉,就打算用php写这实验报告!

网上搜索了一段代码!写下了如下的实验报告!

==============================================================================

php中实现操作系统共享内存

先简单介绍一下php,PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法!学过C的程序员看了php会有似曾相识的感觉!

首先配置php环境!我用的操作系统是windows xp sp2,由于手动配置环境比较浪费时间,所以我采用了服务器套件appserv v2.5.7,这个服务器套件中集成了apache服务器,mysql数据库,php环境,phpmyadmin管理程序,这个软件安装好后,需要在php.ini中取消 ;extension=php_shmop.dll 这行的行首分号,加载shmop扩展。重新启动apache服务器即可!然后在服务器的www目录下创建如下文件并写入程序!

1:create.php

<?php
/*
 * @文件: create.php
 * @功能:将全局变量写入共享内存中
 */
 
//定义全局变量
$super = ”hello world”;

//申请100字节共享内存空间
$shm_id = shmop_open(0xff3, ”c”, 0644, 100);
if (!$shm_id)
{
 echo ”申请空间失败<br>”;
}

//内容写入共享内存空间
if (shmop_write($shm_id, $super, 0))
{
 echo ”全局变量已经写入共享内存<br>”;
}
else
{
 echo ”写入共享内存失败<br>”;
}

//关闭共享内存空间
shmop_close($shm_id);
?>

2:read.php

<?php
/*
 * @文件: read.php
 * @功能:读取共享内存中的内容
 */
 
//读100字节共享内存空间
$shm_id = shmop_open(0xff3, ”a”, 0644, 100);

//获取共享内存空间中的前11个字节的内容
//create.php中 $super 变量长度为11
$share = shmop_read($shm_id, 0, 11);

echo $share;

//关闭
shmop_close($shm_id);
?>

 先运行http://localhost/create.php创建1个100字节的共享内存空间!

然后运行http://localhost/read.php读取这个共享内存空间即可!

===============================================================================

注:程序是从网上抄来的!

unix/linux下需要重新编译php,加入–enable–shmop 选项!

返回顶部