【实验报告】操作系统中共享内存
操作系统布置了作业,是写实验报告!
有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 选项!