第9单元 进程间通信
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理课后习题答案操作系统原理是计算机科学与技术专业的一门重要课程,它涉及到计算机操作系统的基本概念、原理和实践。
在学习过程中,我们不可避免地会遇到一些习题,下面我将为大家提供一些操作系统原理课后习题的答案。
1. 什么是操作系统?答:操作系统是计算机系统中的一个重要组成部分,它是用户与计算机硬件之间的桥梁,负责管理和控制计算机系统的各种资源,提供良好的用户界面,并且实现对应用程序的支持和管理。
2. 操作系统的主要功能有哪些?答:操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口等。
进程管理负责对进程的创建、调度和终止进行管理;内存管理负责对内存空间的分配和回收进行管理;文件系统管理负责对文件的存储和访问进行管理;设备管理负责对计算机硬件设备的管理和控制;用户接口负责提供给用户友好的操作界面。
3. 什么是进程和线程?答:进程是指在计算机系统中正在运行的一个程序,它是操作系统对一个正在执行的程序的抽象。
线程是进程中的一个执行单元,一个进程可以包含多个线程,这些线程共享进程的资源,但每个线程都有自己的执行路径和执行状态。
4. 进程间通信的方式有哪些?答:进程间通信的方式包括共享内存、消息传递、管道和信号等。
共享内存是指多个进程共享同一块内存空间,通过读写这块共享内存来实现进程间的通信;消息传递是指进程通过发送和接收消息来进行通信;管道是一种特殊的文件,可以用于进程间的单向通信;信号是一种软件中断,用于通知进程发生了某个事件。
5. 什么是死锁?如何避免死锁?答:死锁是指在多个进程之间,每个进程都在等待其他进程释放资源,从而导致所有进程都无法继续执行的情况。
为了避免死锁,可以采取以下几种方法:避免使用互斥、占有和不可剥夺的资源;按照相同的顺序申请资源,释放资源时按照相反的顺序释放;引入资源的优先级,保证每个进程都可以获得它所需要的资源;引入超时机制,当进程等待时间过长时,释放已经占有的资源。
计算机软件技术基础第三版课后答案

第一章1.1什么是信息?信息与数据的区别和联系在何处?信息定义之一:信息是现实世界中存在的客观实体、现象、关系进行描述的数据。
信息定义之二:信息是经过加工后并对实体的行为产生影响的数据。
与数据的区别和联系:数据定义:数据是现实世界客观存在的实体或事物的届性值,即指人们听到的事实和看到的景象。
我们把这些数据收集起来,经过处理后,即得到人们需要的信息。
信息和数据的关系可以归结为:1. 信息是有一定含义的数据。
2. 信息是经过加工(处理)后的数据。
3. 信息是对决策有价值的数据。
1.2信息有哪些基本届性?信息的基本届性有:1. 事实性。
2. 等级性。
3. 可压缩性。
4. 可扩散性。
5. 可传输性。
6. 共享性。
7. 增值性和再生性。
8. 转换性。
1.3计算机的主要特点是什么?计算机最主要的特点是:1. 高速自动的操作功能。
2. 具有记忆的能力。
3. 可以进行各种逻辑判断。
4. 精确高速的计算能力。
1.5完整的计算机系统应该包括哪几部分?目前最完整的计算机系统学说认为由五部分组成:1. 人员2. 数据3. 设备4. 程序5. 规程1.6什么是计算机硬件?什么是计算机软件?硬件:泛指实际存在的物理设备,包括计算机本身及其外围设备。
微型计算机的硬件系统:主机、外存储器、输入设备、输出设备、微机的系统总线。
软件:是指计算机程序、方法、规则的文档以及在计算机上运行它时所必须的数据。
计算机软件一般分为系统软件和应用软件。
1.8软件技术发展的几个阶段各有什么特点?它与硬件的关系如何?第一阶段:局级语言阶段特点:这一时期,编译技术代表了整个软件技术,软件工作者追求的主要目的是设计和实现在控制结构和数据结构方面表现能力强的高级语言。
但在这一时期内,编译系统主要是靠手工编制,自动化程度很低。
硬件关系:此时期计算机的硬件要求仅能用机器指令来编制可运行的程序。
第二阶段:结构程序设计阶段特点:在程序的正确性方面,提出了结构化程序设计思想使程序的可靠性提高了。
操作系统期末考试试卷

操作系统期末考试试卷0250-0252操作系统试卷A0250—0252操作系统试卷A一、简答题(每题5分,共30分)1。
什么是虚拟设备?2。
What’s the differrence between a process and a program?3。
What’s Hyper—Treading technology?4.死锁的必要条件是什么?5.为什么将文件控制块分成主部和次部两部分?6.若系统有同类资源m个,被n个进程共享,问:当m〉n和m〈=n时每个进程最多可以请求多少个这类资源,使系统一定不会发生死锁?为什么?二、填空题(每空1分,共10分)1.操作系统的两个重要特性是:(1) 和(2) .2。
只能在管态下执行的指令称为(3) .处理机状态由目态转换为管态的唯一途径是(4),管态到目态的转换可以通过修改(5) 来实现。
3.进程在其生存期内可以处于如下三种基本状态之一:运行态、就绪态和等待态。
当一个就绪进程(6)时,其状态由就绪变为运行,当一个运行进程被抢占处理机时,其状态由运行变为(7) ,当一个运行进程因某事件受阻时,其状态由运行变为(8) ,当进程所等待的事件已经发生时,该进程状态由(9) 变为就绪。
4。
线程是进程内的一个相对独立的(10).三、计算题(每题10分,共40分)1.设某计算机系统采用虚拟页式存储管理方法,进程的虚拟地址空间为64KB,页面尺寸为4KB。
假设当前进程的页表如右图所示(页表以二进制形式表示),请将虚拟地址8196和2050转换为物理地址。
2。
设某计算机系统采用虚拟页式存储管理方法,内存中为该进程分配4个物理页架,开始时内存页架为空,假设进程在一段时间内的页面访问序列如下:6,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,请画图表示采用以下页面淘汰算法时的缺页中断次数:(1)最佳页面淘汰算法(OPT);(2)先进先出页面淘汰算法(FIFO);(3)使用过最久的先淘汰(LRU)。
操作系统智慧树知到答案章节测试2023年阜阳师范大学

第一章测试1.单处理机系统中,可并行的是()。
Ⅰ.进程与进程Ⅱ.处理机与设备Ⅲ.处理机与通道Ⅳ.设备与设备A:Ⅰ、Ⅱ、ⅣB:Ⅰ、Ⅱ、ⅢC:Ⅱ、Ⅲ、ⅣD:Ⅰ、Ⅲ、Ⅳ答案:C2.单道批处理系统的主要缺点是()。
A:CPU利用率不高B:失去了交互性C:不具备并行性答案:A3.提高单机资源利用率的关键技术是()。
A:脱机技术B:多道程序设计技术C:交换技术D:虚拟技术答案:B4.()操作系统允许一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
A:网络B:实时C:分时D:分布式答案:C5.实时操作系统必须在()内处理来自外部的事件。
A:一个机器周期B:被控制对象规定时间C:周转时间D:时间片答案:B6.在过去很长一段时间内,鉴于计算机系统非常昂贵,所以有效性曾一度是操作系统最为重要的设计目标。
()A:对B:错答案:A7.操作系统的所有程序都必须常驻内存。
()A:错B:对答案:A8.采用多道程序设计的系统中,系统中的程序道数越多,系统的效率越高。
()A:错B:对答案:A9.多道程序的并发执行失去了封闭性和可再现性,因此多道程序设计中无需封闭性和可再现性。
()A:错B:对答案:A10.批处理系统不允许用户随时干预自己程序的执行。
()A:错B:对答案:B11.微内核是指精心设计的、能够提供现代操作系统核心功能的小型内核,其通常运行在系统态,而且开机启动后常驻内存,不会因内存紧张而换出到外存。
()A:错B:对答案:B第二章测试1.并发性是指若干事件在()发生。
A:不同时间间隔内B:同一时间间隔内C:同一时刻D:不同时刻答案:B2.一个进程被唤醒,意味着()A:进程变为运行状态B:PCB移动到就绪队列之首C:优先级变大D:该进程可以重新竞争CPU答案:D3.进程和程序的本质区别是()。
A:前者分时使用CPU,后者独占CPUB:前者在一个文件中,后者在多个文件中C:前者存储在内存,后者存储在外存D:前者是动态的,后者是静态的答案:D4.下列选项中,会导致进程从执行态变为就绪态的事件是()。
计算机等级考试四级信息安全

操作系统概述一、操作系统基本概念、特征、分类1.操作系统的分类(前三种为基本分类)(1)批处理系统①特点:成批处理②分类:简单批处理系统和多道批处理系统③优点1)作业流程自动化较高2)资源利用率较高3)作业吞吐量大,提高了整个系统效率④缺点:用户不能直接与计算机交互,不适合调试程序(2)分时系统(3)实时系统(4)个人操作系统(5)网络操作系统(6)分布式操作系统(7)嵌入式操作系统2.计算机存储体系中,操作系统涉及的存储设备为寄存器、高速缓存、内存、硬盘二、操作系统主要功能1 .进程管理(1)进程控制①与进程一一对应的是进程控制块(2)进程同步(3)进程间通信(4)调度①进程调度进程的就绪队列中选一个分配处理器资源,执行1) 有CPU资源让出不一定调度,没有CPU资源让出一定不会发生调度。
②线程调度线程的就绪队列中选一个分配处理器资源,执行③作业调度作业后备队列中选若干个作业分配资源,装入内存建立进程2.存储管理3 .文件管理4.设备管理5.用户接口(1)操作系统提供给用户应用程序编程的唯一接口是系统调用三、操作系统发展演化过程,典型操作系统四、操作系统结构设计、典型的操作系统结构1.操作系统体系构造的三个类型:整体式构造、层次式构造和微内核构造(1)微内核构造:基于客户/服务器模式(C/S模式)操作系统运行机制一、内核态与用户态二、中断与异常三、系统调用接口四、存储系统五、I/O系统六、时钟(Clock)进程线程模型一、并发环境与多道程序设计二、进程的基本概念,进程控制块(PCB)1.概念:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
2.组成:指令(代码、程序)、数据和进程控制块。
PCB是进程的灵魂,指令和数据是进程的躯体。
3.分类:从操作系统角度来看,可将进程分为系统进程和用户进程两类。
优先级前者高于后者。
4.进程队列:就绪队列、等待队列、运行队列5.PCB内容可分为调度信息和现场信息两大部分。
大学计算机习题参考答案.

《大学计算机基础与计算思维》习题参考答案第一章计算机引论一、简答题(1)什么是数据?什么是信息?二者有什么关系?答:数据是记录下来的可以鉴别的符号,它可以通过语言、文字、符号、图形、声音、光、电等来记录客观事物的状态。
数据是对客观事物的一种符号描述,而信息是经过加工后的数据,是可以用来通信的知识。
信息是用来消除随机不确定性的东西。
二者关系为:数据是信息的原材料,而信息则是数据加工后的产品。
(2)支撑人类社会文明的三要素是什么?如何理解三者在不同历史时期的地位和作用?答:三要素为:信息、物质、能源。
不同历史时期三种要素的利用比例不同。
(3)什么是数字化?在计算机领域内又如何理解?答:数字化分为广义和狭义二种,广义的数字化:指信息经过数字化处理的广泛应用。
狭义的数字化:是指由数字信号(数码)取代模拟信号来表征、处理、存储、传输各种信息的过程。
在计算机领域内,我们可以将数字化理解为将许多复杂的信息转变为可以度量的数字、数据,再以这些数字、数据建立起适当的数字化模型,把它们转变成一系列二进制代码,引入计算机内部,进行统一处理。
(4)简述计算机的发展阶段。
答:1932年英国数学家亚伦.图灵(Alan Turing)提出一人计算模型,称图灵机,现在的计算机在本质上与图灵机是一样的。
1936年,Konrad Zuse建造了一台可编程的数字化计算机,它引入了二进制系统和电子管的使用。
第一代计算机:1946至1956年,世界上第一台计算机ENIAC,电子管元件。
宾夕法尼亚大学的美籍匈牙利数学家冯.诺依曼改进了ENIAC研制出了世界上第二台计算机EDVAC,作了重要改进:一是采用了二进制,二是程序和数据存入计算机内部。
冯.诺依曼为现代计算机在体系结构和工作原理奠定了基础。
当今的计算机依然遵循的是冯.诺依曼提出的计算机体系结构。
第二代计算机:(5) 简述计算机的特点。
运算速度快、计算精度高、存储容量大、具有逻辑判断功能、可靠性高、自动化程度高、通用性强等。
ipc通信机制

ipc通信机制IPC通信机制是指进程间通信(IPC)的一种实现方式。
在计算机中,一个进程是指正在运行的程序,而IPC是指两个或多个进程之间进行通信的方式。
进程间通信机制是操作系统中的一个重要功能,可以让不同的进程之间能够进行数据交换、资源共享等操作。
本文将从IPC通信机制的基本概念、常见机制、实现方式和应用场景等方面进行详细介绍。
一、IPC通信机制的基本概念IPC通信机制是指进程之间进行通信的方式,它主要包括以下几个基本概念:1. 进程(Process):是计算机中正在运行的程序的实例,它具有独立的内存空间和执行环境。
2. 线程(Thread):是进程中的一个执行单元,它与其他线程共享进程的内存空间和执行环境。
3. 进程间通信(IPC):是指两个或多个进程之间进行通信的方式,主要包括消息队列、共享内存、管道、信号量和套接字等机制。
4. 消息队列(Message Queue):是一种进程间通信机制,它允许一个进程向另一个进程发送消息。
5. 共享内存(Shared Memory):是一种进程间通信机制,它允许多个进程共享同一块内存区域。
6. 管道(Pipe):是一种进程间通信机制,它允许一个进程向另一个进程发送数据流。
7. 信号量(Semaphore):是一种进程间通信机制,它允许多个进程访问同一资源,并保证资源的正确使用。
8. 套接字(Socket):是一种进程间通信机制,它允许不同计算机上的进程之间进行通信。
二、常见的IPC通信机制在实际应用中,常见的IPC通信机制包括消息队列、共享内存、管道、信号量和套接字等。
下面将分别介绍这五种常见的IPC通信机制:1. 消息队列消息队列是一种进程间通信机制,它允许一个进程向另一个进程发送消息。
消息队列通常由内核维护,可以用于进程之间的异步通信,也可以用于进程之间的同步通信。
消息队列的优点是可以实现进程之间的松耦合,即发送方和接收方不需要同时存在,可以先发送消息,然后等待接收方处理。
电子科大02级操作系统试卷-有答案

0250-0252操作系统试卷A一、简答题(每题5分,共30分)1.什么是虚拟设备?2.What’s the differrence between a process and a program?3.What’s Hyper-Treading technology?4.死锁的必要条件是什么?5.为什么将文件控制块分成主部和次部两部分?6.若系统有同类资源m个,被n个进程共享,问:当m>n和m<=n时每个进程最多可以请求多少个这类资源,使系统一定不会发生死锁?为什么?二、填空题(每空1分,共10分)1.操作系统的两个重要特性是: (1) 和 (2) 。
2.只能在管态下执行的指令称为 (3) 。
处理机状态由目态转换为管态的唯一途径是 (4) ,管态到目态的转换可以通过修改 (5) 来实现。
3.进程在其生存期内可以处于如下三种基本状态之一:运行态、就绪态和等待态。
当一个就绪进程 (6) 时,其状态由就绪变为运行,当一个运行进程被抢占处理机时,其状态由运行变为 (7) ,当一个运行进程因某事件受阻时,其状态由运行变为 (8) ,当进程所等待的事件已经发生时,该进程状态由 (9) 变为就绪。
4.线程是进程内的一个相对独立的 (10)。
三、计算题(每题10分,共40分)1.设某计算机系统采用虚拟页式存储管理方法,进程的虚拟地址空间为64KB,页面尺寸为4KB。
假设当前进程的页表如右图所示(页表以二进制形式表示),请将虚拟地址8196和2050转换为物理地址。
2.设某计算机系统采用虚拟页式存储管理方法,内存中为该进程分配4个物理页架, 开始时内存页架为空,假设进程在一段时间内的页面访问序列如下:6,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,请画图表示采用以下页面淘汰算法时的缺页中断次数:(1)最佳页面淘汰算法(OPT);(2)先进先出页面淘汰算法(FIFO);(3)使用过最久的先淘汰(LRU)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int semop(int semid, struct sembuf *sops, unsigned nsops); semid:信号量集ID sops:指向在集合上执行操作的结构体数组
struct sembuf{ unsigned short sem_num; /*信号量编号,从0开始*/ short sem_op; /*在信号量上的操作(可以为正、零、负)*/ short sem_flg; /*IPC_NOWAIT 或SEM_UNDO*/ }
23
共享内存操作基本过程
创建将被共享的内存空间(确定大小) 各个进程操作
将该空间映射到本进程中 进行正常的读写操作 解除映射
如果需要,删除被共享的内存空间
24
创建共享内存shmget
int shmget (key_t key, size_t size, int shmflg);
5
pipe举例
父子进程使用管道通信
在fork前创建管道,如父进程的文件描述符为3、4 fork后子进程也继承了父进程的管道3、4 父进程或子进程只需拥有管道的一端
父进程文件描述符 0 1 2 3 4
子进程文件描述符 0 1 2 3 4
P400
6
程序15-1
有名管道fifo
单独构成一种独立的文件系统
管道对于管道两端的进程而言,就是一个文件,但它不
是普通的文件,它不属于某种文件系统,而是自立门户, 单独构成一种文件系统,并且只存在于内存中。 发送进程
4
字符先进先出
接收进程
创建管道pipe
#include <unistd.h> int pipe(int pfd[2]); 参数:pfd:文件描述符数组,0读1写 返回值:成功返回0,错误返回-1(置errno) 说明: 创建一个管道,这个管道是由pfd[0],pfd[1]两个文件 描述符表示的一个通信信道,大小65536(2.6.11以 后)。 pdf[1]为写文件描述符,pfd[0]为读文件描述符。 对管道读写用read,write
25
shmget举例
int shmid; key_t key=ftok(“/home/key”,1); 创建共享内存 shmid = shmget(key,4096,IPC_CREAT | IPC_EXCL | 0600); 打开共享内存 shmid = shmget(key,4096,SHM_R |SHM_W);
无名管道只有具有公共祖先的亲缘进程可以使用 ,如父子进程通信。 有名管道有名字,能够获得其名字的进程都可以 使用。 有名管道的名字可以在目录树中找到(其中一种 文件类型),但占用的是内存空间,不拥有磁盘 块。
7
mkfifo
#include <sys/stat.h> int mkfifo(const char *path, mode_t perms); 参数:
IPC都有一个键key_t
11
信号量(semaphore)
对多个进程访问共享资源进行控制。 实质是一个整数计数器,记录可同时访问共享资源 的单元个数。
当进程要求使用某资源,先对信号量减1 >=0:进程可以用该资源 <0:进程休眠,直至信号量值大于或等于0时被唤醒。 进程对资源访问结束时,信号量值加1 <=0:证明有其他进程等待,唤醒队列第一个进程。
nsops:在se关于struct sembuf
一般情况下:
如果sem_op为负数,申请资源,信号量值减少
如果信号量值足够,则直接使用 如果信号量值不够,且没有指定IPC_NOWAIT,那么 调用进程挂起等待。 如果sem_op是正数,释放资源,信号量值增加 如果sem_op为0,调用进程将挂起到信号量的值也为0。
shmid:共享内存ID cmd:控制命令P428,如果为IPC_RMID则要删除
buf:指向shmid_ds结构体的指针
成功返回0;失败返回-1
删除共享内存举例:
shmctl(shmid,IPC_RMID,NULL) ;
29
消息队列
一系列连续排列的消息,保存在内核中,通过消 息队列的引用标识符访问。 每个消息都包括两部分:类型和正文 任何进程都可以向消息队列中发送指定类型消息 ,其他进程都可以从消息队列中根据类型获取相 应的消息。 消息类型 消息类型 消息类型
12
IPC 键
key_t ftok(const char * pathname,int id);
pathname:一个现存文件 id:id值 返回值:成功返回键值;失败返回-1
原理:ftok通过pathname和id组合生成键值,通过路径名 取其stat结构中的st_dev和st_ino,再与id的低8位组合。
semctl举例
设置信号量集中的第1个信号量初值为40
semctl(semid,0,SETVAL,40);
获取信号量的值
semctl(semid,0,GETVAL,0);
删除信号量集
semctl(semid,
0,IPC_RMID,NULL)
18
semop——申请和释放
key:共享内存的键值 size:共享内存大小 shmflg表示调用函数的操作类型,也可用于设置共享内
存的访问权限,两者通过or表示。
IPC_CREAT:若内核中没有key对应的共享内存,则创建。 IPC_EXCL :与IPC_CREAT一起使用,若共享内存已存在, 则创建失败。
成功返回共享内存ID;失败返回-1
9
5打开后,读关闭,写错误;写关闭,读返回0
IPC(Inter-Process Communication)
信号量 共享内存 消息队列
分为POSIX和SystemV
10
systemV IPC
信号量、共享内存、消息队列
IPC资源只在本机通信中使用,不能跨网络。
,方便合作进程在同一个IPC上 会合,一般通过ftok生成 IPC资源生存期与内核相同,除非用户删除它,否则建 立好的IPC资源一直存在直到系统结束。当系统重启后 ,原先建立的所有IPC资源会全部消失。 可使用ipcs显示状态、ipcrm删除对象。 访问权限:读、写,没有执行。
正文
30
正文
正文
16
semctl——设初值及删除
int semctl(int semid, int semnum, int cmd, ...);
semid:信号量集ID semnum:信号量集中信号量的序号 cmd:控制命令,见P425
从系统中删除该信号量集合 返回成员semnum的semval值 设置成员semnum的semval值
Linux系统编程
第9单元 进程间通信
第9单元 进程间通信
9.1管道 9.2 FIFO 9.3信号量 9.4 共享内存 9.5 消息队列
2
Linux进程间通信
信号,管道
3
管道
单向传输,如果需要双方通信需建立两个管道 具有公共祖先的进程间使用,而有名管道fifo:无 亲缘关系进程间也可使用
SHM_R/SHM_W 代表所有用户可读/写
26
映射shmat与解除映射shmdt
void *shmat(int shmid, const void *shmaddr, int shmflg); shmid:共享内存的ID shmaddr:映射地址,一般设为NULL由系统指定进程空 间的地址 shmflg:映射内存的读写方式,SHM_RDLONLY只读, 否则读写。 返回值:shmat成功返回实际映射地址,失败返回-1 int shmdt(const void *shmaddr); shmaddr:映射地址 返回值:shmdt成功时返回0,失败返回-1
IPC_RMID GETVAL SETVAL
第四项是联合,根据控制命令设置不同的类型值 union semun { 返回值:成功返回0;失败返回-1 int val; struct semid_ds *buf; ushort *array; struct seminfo *__buf; }; 17
进程A 共享内存
进程B
22
由于数据是由内存直接映射到进程空间,所以速度 快。但涉及同步问题,可用信号量来实现同步。
共享内存与管道的区别
共享内存与管道都是利用内存空间进行进程间通 信。 进程server从一个文件传输到进程client的过程看 两者的区别,管道需要4次复制,共享内存需要2 次复制,速度快。
如果sem_flag设为SEM_UNDO
如果sem_op为负数,sem_op绝对值加到信号量值上。 如果sem_op是正数,信号量值减去sem_op
20
semop举例
向第一个信号量申请1个资源,设置不等待 struct sembuf sem_lock = { 0, -1, IPC_NOWAIT }; semop(semid, &sem_lock, 1);
返回值:成功返回信号量集ID;失败返回-1,并设置
errno
15
创建信号量集举例
int semid; key_t key=ftok(“/home/key”,1); semid=semget(key,1,IPC_CREAT|IPC_EXCL|0666); semid=semget(key,1,IPC_CREAT|0666); //创建1个信号量集 //0666代表任何人都可以读和更改信号量 semid=semget(key,0,0); //打开信号量集