操作系统实验6
操作系统实验题

1、在操作系统中,进程与线程的主要区别是什么?A. 进程是资源分配的基本单位,线程是处理器调度的基本单位B. 进程和线程都是资源分配和处理器调度的基本单位C. 线程是资源分配的基本单位,进程是处理器调度的基本单位D. 进程和线程都不涉及资源分配问题(答案:A)2、以下哪种调度算法可能会导致饥饿问题?A. 先来先服务(FCFS)B. 短作业优先(SJF)C. 时间片轮转(Round Robin)D. 优先级调度(非抢占式)(答案:B)3、在操作系统的存储管理中,分段存储管理方式的主要目的是?A. 提高内存利用率B. 实现内存保护C. 方便用户编程D. 提高程序运行速度(答案:C)4、关于死锁,以下哪个说法是正确的?A. 死锁是指多个进程因竞争资源而无限期等待的现象B. 死锁只可能发生在多道批处理系统中C. 死锁发生时,系统中一定存在多个进程同时处于就绪状态D. 预防死锁的方法之一是破坏“请求和保持”条件,即要求进程一次性申请所有所需资源(答案:A,注:同时D也是预防死锁的一种方法,但题目要求选择正确说法,A更直接描述了死锁的定义)5、在操作系统的文件系统中,目录结构的主要作用是?A. 实现文件的按名存取B. 提高文件存储的效率C. 增强文件系统的安全性D. 便于用户对文件进行备份(答案:A)6、下列哪一项不是虚拟内存技术的优点?A. 扩大内存容量B. 提高内存利用率C. 简化内存管理D. 加快程序运行速度(在某些情况下可能因换页开销而减慢)(答案:D)7、在操作系统的设备管理中,缓冲区的设置主要是为了?A. 提高设备利用率B. 缓和CPU与I/O设备之间速度不匹配的矛盾C. 实现设备的即插即用D. 减少I/O操作的次数(答案:B)8、关于操作系统的中断机制,以下哪个说法是错误的?A. 中断是由硬件或软件发出的,用于请求CPU处理的事件B. 中断处理过程中,CPU会暂停当前程序的执行,转而执行中断处理程序C. 中断向量表是存储中断处理程序入口地址的表D. 在所有情况下,中断处理程序的执行优先级都高于当前正在运行的程序(答案:D,注:中断处理程序的优先级通常较高,但并非在所有情况下都绝对高于所有正在运行的程序,特别是在某些实时系统中可能有更复杂的优先级策略)。
《计算机操作系统》实验指导书

《计算机操作系统》实验指导书(适合于计算机科学与技术专业)湖南工业大学计算机与通信学院二O一四年十月前言计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。
要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。
同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。
为了收到良好的实验效果,编写了这本实验指导书。
在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。
任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。
进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。
实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。
实验成绩考核:实验成绩占计算机操作系统课程总评成绩的20%。
指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。
操作系统实践实验报告模板

郑州轻工业学院实践报告姓名:院(系):专业:班级:学号:指导教师:成绩:时间:2014 年2 月至2014 年5 月目录一、实践目的 .............................................. 错误!未定义书签。
二、实践内容及步骤 .................................. 错误!未定义书签。
三、实践效果分析 ...................................... 错误!未定义书签。
四、小节(结合实际,谈谈认识)........... 错误!未定义书签。
一、实践目的为了增强我们队脚本语言的认识和了解。
熟练掌握脚本语言的特点和应用。
熟练掌握Dreamweaver编写代码的技巧,提高学生的动手能力。
二、实践内容及步骤1、内容:利用Dreamweaver平台编写js代码,制作一个简单的用户注册表单页。
2、步骤:根据需要设计表单,三、实验结果分析1、表单图例2、页面代码外链式js,调用函数邮箱js代码:输入邮箱时自动填充邮箱后缀,(如@)<script type="text/javascript"src="js/autoMail.js"></scrip> 地址js代码:<script type="text/javascript"src="js/Area.js"></script> 日期js代码:点击日期栏,会自动弹出日历表<script type="text/javascript"src="js/Calendar.js"></scrip>3、<html>4、<body>5、<h1align="center">请填写您的个人信息</h1>6、<div align="center"class="main">7、<form action="Student_register"method="post">8、<table class="table"cellspacing="8"9、<td>账户名称:</td>10、<td><input type="text"name="userName"style="height: 25"></input>11、</td>12、</tr>13、<tr>14、<td>用户密码:</td>15、<td><input type="password"name="userPassword"style="height: 25"></input></td>16、</tr><tr>17、<td>确认密码:</td><td><inputtype="password"name="userPasswordAgain"style="height: 25"></input>18、</td><td></td></tr><tr>19、<td>联系电话:</td>20、<td><input type="text"name="userPhone"style="height: 25"></input>21、</td></tr><tr>22、<td>用户年龄:</td>23、<td><input type="text"name="userAge"style="height: 25"></input>24、</td></tr><tr>25、<td>用户Email:</td>26、<td><input id="email"type="text"name="userEmail"style="height: 25"></input></td>27、</tr><tr>28、<td>用户性别:</td>29、<td> <input type="radio"name="userSex"30、id="userSex"value=""checked="checked"style="height: 25"/> 男31、 <input type="radio"name="userSex"id="userSex"32、value=""style="height: 25"/>女33、<td></td></tr><tr>34、<td>用户生日:</td>35、<td><input name="userBirthday"type="text"id="control_date"36、maxlength="10"onclick="newCalendar().show(this);"37、readonly="readonly"style="height:25"/>38、</td>39、</tr>40、<td>用户地址:</td>41、<td><div>42、<select id="s_province"name="s_province"charset="UTF-8"></select> 43、<select id="s_city"name="s_city"charset="UTF-8"></select> 44、<select id="s_county"name="s_county"charset="UTF-8"></select>45、<script class="resources library"src="js/area.js"type="text/javascript"></script><script type="text/javascript">_init_area();</script>46、</div></td>47、</tr>48、</table>49、<br></div>50、<div class="Button"align="center">51、<input style="font-size:20px" type="reset"value="清空">52、<input style="font-size:20px" type="submit"value="提交">53、</div>54、</form>55、<br></br>56、<div class="time"align="right">//获取当前时间57、<jsp:include page="Clock.jsp"></jsp:include>58、</div>59、</body>60、</html>四、小节通过这次独立完成作业,我对js有了更深的理解,明白的它对一个程序员来说是多么重要的,它能代表一个人外表和内心深处,js主要是给用户体现一个更清新、更美观的界面和更流畅的浏览效果。
《操作系统》课程实验内容和实验要求

实验内容和实验要求实验1:安装Linux系统(4学时)目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。
2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。
3.学会Linux操作系统的安装步骤和简单配置方法。
4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。
内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。
2.安装Linux系统(如红旗Linux桌面版)。
3.配置Linux系统运行环境。
4.正确地启动、关闭系统。
5.对图形界面进行一般操作。
要求:1.制订安装计划。
2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。
3.在光驱中放入Linux系统安装盘,启动系统。
按照屏幕提示,选择/输入相关参数,启动安装过程。
4.安装成功后,退出系统,取出安装盘。
重新开机,登录Linux系统。
5.对Linux系统进行配置,如显示设备、打印机等。
6.利用鼠标对图形界面进行操作。
说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。
2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。
实验2:Linux 应用及shell编程(4学时)目的:1.掌握Linux一般命令格式和常用命令。
2.学会使用vi编辑器建立、编辑文本文件。
3.了解shell的作用和主要分类。
4.学会bash脚本的建立和执行方式。
5.理解bash的基本语法。
6.学会编写简单的shell脚本。
内容:1.正确地登录和退出系统。
2.熟悉使用date,cal等常用命令。
3.进入和退出vi。
利用文本插入方式建立一个文件。
4.学会用gcc编译器编译C程序。
5.建立shell脚本并执行它。
6.学会使用shell变量和位置参数、环境变量。
操作系统实验

实验一:系统调用目的:深入理解操作系统是虚拟机实验方法:利用UNIX/LINUX所提供的系统调用来编写C语言程序,程序中要体现出一些典型的系统调用(函数)。
任务:编写一个C语言程序,该程序将一个存放了一系列整数的文本文件进行排序,每个整数占据文件的一行,排序的结果存放到一个新的文件之中。
源文件和目标文件的文件名字由命令行输入。
例如:假设可执行文件的文件名是sort,源文件与目标文件的名字分别是data 和newdata,那么命令行的情形为如下所示内容:./sort data newdata1、命令行参数的传递。
根据C语言编程规范的要求,传递命令行参数通过main函数进行。
main函数的原型是:main(int argc, char **args),其中argc是一个整数,表示命令行中参数的个数,第二个参数是字符串指针数组,这个数组中的第0个元素存放可执行文件名称,其余为参数,用args[1], args[2]... ...访问。
以上述命令行为例,argc为3,args[0]为“./sort”,args[1]为“data”,args[2]为“newdata”2、系统调用的使用(1)打开文件系统调用open在读写一个文件之前,必须打开这个文件,打开文件的过程主要是将文件的控制结构(LINUX中是i节点)调入内存。
本实验中用如下语句打开文件:fd = open(args[1], O_RDONL Y);第一个参数是打开的文件名,第二个参数O_RDONL Y表示只读,O_WRONL Y表示只写,O_RDWR表示读写,O_CREAT表示创建文件。
open系统调用返回一个整数作为文件描述符,以后用这个文件描述符来访问文件,如果因为某种原因(文件不存在,不符合访问权限,存储空间不足等)致使文件无法打开,则open返回-1。
(2)文件信息读取系统调用read本实验使用如下语句读取文件信息read(fd, &ch, 1)fd是open返回的文件描述符,ch为字符变量,1表示从文件中读取一个字节。
操作系统实验指导

操作系统实验指导操作系统是计算机科学中的重要课程之一,通过实验可以让学生更好地理解和掌握操作系统的原理和功能。
本文将为大家介绍一些操作系统实验的指导。
一、实验准备在进行操作系统实验之前,需要先进行一些实验准备工作。
首先,需要安装一个操作系统,一般选择Linux或Windows。
其次,需要安装一些实验所需的软件和工具,例如编译器、调试器等。
此外,还需要准备一些实验材料,如实验手册、实验报告模板等。
二、实验目标每个操作系统实验都应该有明确的实验目标。
实验目标可以根据学生的实际情况和课程要求进行设定。
例如,可以通过实验来掌握进程管理、文件系统、内存管理等操作系统相关知识。
同时,实验目标应该具有可衡量性,可以通过实验结果来评估学生的实验成果。
三、实验内容1.进程管理实验:通过编写一个简单的多进程程序,来了解进程的创建、调度和终止等过程。
2.文件系统实验:通过创建、读写和删除文件,来了解文件系统的组织结构和基本操作。
3.内存管理实验:通过编写一个简单的分页存储管理程序,来了解分页存储管理的原理和实现方法。
4.设备管理实验:通过模拟设备的申请、释放和使用过程,来了解设备管理的原理和调度算法。
四、实验步骤每个操作系统实验都有具体的实验步骤,学生需要按照这些步骤进行实验。
以下是一些常见的实验步骤:1.实验环境准备:包括安装操作系统、配置软件和工具等。
2.实验预备:包括阅读实验手册、了解实验目标和要求等。
3.实验设计:根据实验目标和要求,设计实验方案和实验程序。
4.实验实施:按照实验方案和实验程序,进行实验操作并记录实验数据。
5.实验分析:根据实验数据,进行分析和总结,并得出实验结论。
6.实验报告:根据实验分析和总结,编写实验报告并提交。
五、实验评估实验结果的评估可以根据实验目标和要求来确定。
例如,如果实验目标是了解进程管理,可以通过观察进程的创建和调度情况来评估学生的实验结果。
实验报告的评估可以根据实验报告的内容和结构来确定。
操作系统安装与配置实验报告

操作系统安装与配置实验报告实验目的:
1. 了解操作系统的安装过程。
2. 熟悉操作系统的基本配置。
实验内容:
1. 安装操作系统。
2. 进行基本配置。
3. 测试系统运行情况。
实验步骤:
1. 准备安装光盘或USB启动盘。
2. 将光盘或USB启动盘插入计算机,并启动计算机。
3. 按照提示选择安装语言和时区等信息。
4. 选择安装类型(新安装或升级)。
5. 选择安装目标磁盘。
6. 进行分区和格式化。
7. 完成安装并进行基本配置(设置用户名、密码、网络等)。
实验结果:
1. 成功安装操作系统。
2. 完成基本配置。
3. 系统能够正常运行。
实验总结:
通过本次实验,我了解了操作系统的安装过程和基本配置方法。
在实际操作中,我遇到了一些问题,比如分区和格式化时出现了错误提示,但通过查阅资料和询问同学,最终成功解决了这些问题。
通过这次实验,我对操作系统的安装和配置有了更深入的了解,也提高了自己的解决问题的能力。
希望在以后的实验中能够继续学习和提高。
操作系统实验报告1

《操作系统》实验报告实验序号:01 实验项目名称:操作系统环境学号1107xxx 姓名xxx 专业、班级软件工程1103 实验地点计—502 指导教师徐冬时间2013.9.23 实验目的1) 了解和学习Windows系统管理工具及其使用;2) 熟悉Windows系统工具的内容和应用;由此,进一步熟悉Windows操作系统的应用环境。
工具/准备工作在开始本实验之前,请回顾教科书的相关内容。
需要准备一台运行Windows 操作系统的计算机。
实验内容与步骤1. 计算机管理2. 事件查看器3. 性能监视4. 服务5. 数据库 (ODBC)为了帮助用户管理和监视系统,Windows提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。
如图2所示。
图2 基于虚拟机的操作系统计算环境管理步骤1:登录进入Windows。
步骤2:在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。
在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1) Internet 信息服务;管理IIS,Internet 和Intranet站点的WEB服务器。
2) Server Extensions 管理器;Server Extensions管理器。
3)计算机管理;管理磁盘以及使用其他系统工具来管理本地或远程的计算机。
4)性能;显示系统性能图表以及配置数据日志和警报。
5)本地安全策略;查看和修改本地安全策略,如用户权限和审核策略。
6)事件查看器;显示来自于Windows和其他程序的监视与排错消息。
7)组件服务;配置和管理COM+应用程序。
1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。
步骤3:在“管理工具”窗口中,双击“计算机管理”图标。
“计算机管理”使用的窗口与“Windows资源管理器”相似。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 一、实验目的
– 掌握共享存储区的进程通信方法
• 二、实验内容
– 使用shmget()函数创建共享存储区 – 使用shmat()函数将一个共享区附接到进程虚地 址空间 – 使用shmctl()函数对共享区进行读写操作。 – 编制一长度为1k的共享存储区发送和接收的程 序
实验指导
实验指导
3、shmdt( ) 把一个共享存储区从指定进程的虚地址空间断开。 系统调用格式: shmdt(addr) 该函数使用头文件如下: #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> 参数定义 int shmdt(addr); char addr;
其中,addr是要断开连接的虚地址,亦即以前由连接的系统调用 shmat( )所返回的虚地址。调用成功时,返回0值,调用不成功,返回-1 。
实验指导
4、shmctl( ) 共享存储区的控制,对其状态信息进行读取和修改。 系统调用格式: shmctl(shmid,cmd,buf) 该函数使用头文件如下: #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> 参数定义 int shmctl(shmid,cmd,buf); int shmid,cmd; struct shmid_ds *buf; 其中,buf是用户缓冲区地址,cmd是操作命令。命令可分为多种类型: (1)用于查询有关共享存储区的情况。如其长度、当前连接的进程数、共享区的 创建者标识符等; (2)用于设置或改变共享存储区的属性。如共享存储区的许可权、当前连接的进 程计数等; (3)对共享存储区的加锁和解锁命令; (4)删除共享存储区标识符等。 上述的查询是将shmid所指示的数据结构中的有关成员,放入所指示的缓冲区中; 而设置是用由buf所指示的缓冲区内容来设置由shmid所指示的数据结构中的相应成员
实验指导 – 图示列出二个进程通过共享一个共享存储区 来进行通信的例子。其中,进程A将建立的 共享存储区附接到自己的AA’区域,进程B将 它附接到自己的BB’区域。
用于实现通 信的共享存储区和对共享存储区进行操作的 手段,然而并未提供对该区进行互斥访问及 进程同步的措施
void server() { shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); /*创建共享存储区*/ addr=shmat(shmid,0,0); /*获取首地址*/ do { *addr=-1; while (*addr==-1); printf("(server) received\n"); }while (*addr); shmctl(shmid,IPC_RMID,0); /*撤消共享存储区,归还资源*/ exit(0); } main() { while ((i=fork())==-1); if (!i) server(); while ((i=fork())==-1); if (!i) client(); wait(0); wait(0); exit(0); }
程序说明
• 1、为了便于操作和观察结果,用一个程序作为“引子“,先后fork() 两个子进程,server和client,进行通信。 • 2、server端建立一个key为75的共享区,并将第一个字节置为-1,作为 数据空的标志。等待其他进程发来的消息。当该字节的值发生变化时 ,表示收到了信息,进行处理。然后再次把它的值设为-1,如果遇到 的值为0,则视为为结束信号,取消该队列,并退出server。server每 接收到一次数据后显示“(server)received”。 • 3、client端建立一个key为75的共享区,当共享取得第一个字节为-1时 ,server端空闲,可发送请求。client随即填入9到0。期间等待 server 端的再次空闲。进行完这些操作后,client退出。client每发送一次数 据后显示“(client)sent”。 • 4、父进程在server和client均退出后结束。
实验指导
附: 操作允许权 用户可读 用户可写 小组可读 小组可写 其它可读 其它可写 八进制数 00400 00200 00040 00020 00004 00002
控制命令 值 IPC_CREAT 0001000 IPC_EXCL 0002000 例:shmid=shmget(key,size,(IPC_CREAT|0400)) 创建一个关键字为key,长度为size的共享存储区
思考题
1、比较两种消息通信机制中数据传输的时间 由于两种机制实现的机理和用处都不一样,难以直接进行 时间上的比较。如果比较其性能,应更加全面的分析。 (1)消息队列的建立比共享区的设立消耗的资源少。前者只是 一个软件上设定的问题,后者需要对硬件的操作,实现内存的 映像,当然控制起来比前者复杂。如果每次都重新进行队列或 共享的建立,共享区的设立没有什么优势。 (2)当消息队列和共享区建立好后,共享区的数据传输,受到 了系统硬件的支持,不耗费多余的资源;而消息传递,由软件 进行控制和实现,需要消耗一定的cpu的资源。从这个意义上 讲,共享区更适合频繁和大量的数据传输。 (3)消息的传递,自身就带有同步的控制。当等到消息的时候, 进程进入睡眠状态,不再消耗cpu资源。而共享队列如果不借 助其他机制进行同步,接收数据的一方必须进行不断的查询, 白白浪费了大量的cpu资源。可见,消息方式的使用更加灵活。
实验指导
2、shmat( ) 共享存储区的附接。从逻辑上将一个共享存储区附接到进程的虚拟地址空间上。 系统调用格式: virtaddr=shmat(shmid,addr,flag) 该函数使用头文件如下: #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> 参数定义 char *shmat(shmid,addr,flag); int shmid,flag; char * addr; 其中,shmid是共享存储区的标识符; addr是用户给定的,将共享存储区附接到进程的虚地址空间; flag规定共享存储区的读、写权限,以及系统是否应对用户规定的地址做舍入 操作。其值为SHM_RDONLY时,表示只能读;其值为0时,表示可读、可写;其值 为SHM_RND(取整)时,表示操作系统在必要时舍去这个地址。 该系统调用的返回值是共享存储区所附接到的进程虚地址viraddr。
参考程序
#include <sys/types.h> #include <sys/shm.h> #include <sys/ipc.h> #define SHMKEY 75 int shmid,i; int *addr; void client() { int i; shmid=shmget(SHMKEY,1024,0777); /*打开共享存储区*/ addr=shmat(shmid,0,0); /*获得共享存储区首地址*/ for (i=9;i>=0;i--) { while (*addr!=-1); printf("(client) sent\n"); *addr=i; } exit(0); }
运行结果 和预想的完全一样。但在运行过程中,发现每当client发 送一次数据后,server要等待大约0.1秒才有响应。同样,之 后client又需要等待大约0.1秒才发送下一个数据。 程序分析 出现上述应答延迟的现象是程序设计的问题。当client端 发送了数据后,并没有任何措施通知server端数据已经发出, 需要由client的查询才能感知。此时,client端并没有放弃系 统的控制权,仍然占用CPU的时间片。只有当系统进行调度 时,切换到了server进程,再进行应答。这个问题,也同样 存在于server端到client的应答过程中。
• 当用户需要使用该机制时,必须自己设置同 步和互斥措施才能保证实现正确的通信
实验指导
• 涉及的系统调用
1、shmget( ) 创建、获得一个共享存储区。 系统调用格式: shmid=shmget(key,size,flag) 该函数使用头文件如下: #include<sys/types.h> #include<sys/ipc.h> #include<sys/shm.h> 参数定义 int shmget(key,size,flag); key_t key; int size,flag; 其中,key是共享存储区的名字;size是其大小(以字节计); flag是用户设置的标志,如IPC_CREAT。IPC_CREAT表示若系 统中尚无指名的共享存储区,则由核心建立一个共享存储区; 若系统中已有共享存储区,便忽略IPC_CREAT。
• 共享存储区
– 共享存储区(Share Memory)是UNIX系统中通信速度最高的一种 通信机制。该机制可使若干进程共享主存中的某一个区域,且使 该区域出现(映射)在多个进程的虚地址空间中。 – 一个进程的虚地址空间中又可连接多个共享存储区,每个共享存 储区都有自己的名字 – 当进程间欲利用共享存储区进行通信时,必须先在主存中建立一 共享存储区,然后将它附接到自己的虚地址空间上 – 此后,进程对该区的访问操作,与对其虚地址空间的其它部分的 操作完全相同。 – 进程之间可通过对共享存储区中数据的读、写来进行直接通信