资源描述:
《课程设计操作系统课程设计指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统课程设计指导书由于操作系统课程的学时和条件有限,在理论学习过程屮没有给同学们提供实验的机会。木课程设计的冃的,是给同学提供一个集中实验的机会。希望同学们通过该设计加深对所学习课程的基本知识和基本理论的理解。本设计的内容是基于《操作系统原理》教材的,但还要求同学们必须対以前的《C语言程序设计》和《数据结构》等内容进行认真的复习。课程小学到的UNIX系统调川等是我们使用的主要工具。系统调用函数说明、参数值及定义1.fork()创建一个新进程。用法:intfork()其中返回int取值意义如下:0:创建子进程
2、,从子进程返回的id值>0:从父进程返回的子进程id值-1:创建失败2.lockf(files,function,size)用作锁定文件的某些段或者整个文件。头文件:#inelude〈unistd・h>参数定义:intlockf(files,function,size);intfiles,function;longsize;其中:files是文件描述符;function是锁定和解锁;1表示锁定;0表示解锁;Size是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。3.msgget(key,flag)获
3、得一个消息的描述符头文件:#inelude#inelude〈sys/ipc.h>#include参数定义:intmsgget(key,flag)key_tkeyintflag;语法格式:msgqid=msgget(key,flag);其中:msgqid:该系统调用返回的描述符,失败则返回T;flag:本身由操作允许权和控制命令值相“或”得到。女口:IPC.CREAT
4、0400是否该队列应被创建;1PCEXCL10400是否该队列的创建映是互斥的等。1.msgsnd
5、(id,msgp,size,flag)发送一消息头文件;#include#include#include参数定义:intmsgsnd(id,msgp,size,flag);intid,size,flag;structmsgbuf*msgp;其中:id:返回消息队列的描述符;msgp:指向用户存储区的一个构造体指针;size:指示illmsgp指向的数据结构中字符数组的长度,即消息的长度。这个数组的最大值由MSG_MAX系统可调用参数来确定。f
6、lag:规定当核心用尽内部缓冲空间时应执行的动作;若在标志flag屮未设置TPC_NOWATT位,则当该消息队列中的字节数超过-•最大值时,或系统范围的消息数超过某一最大值时,调用msgsnd进程睡眠。若是设置IPC_N0WAIT,则在此情况下,msgsnd立即返冋。2.msgrcv(id,msgp,size,type,flag)接受一消息头文件:#inelude#include#inelude参数定义:intmsgrcv(id,msgp,s
7、ize,type,flag)intid,size,type,flag;structmsgbuf*msgq;structmsgbuf{longmtypescharmtext[];};语法格式:count=msgrcv(id,msgp,size,type,flag);其中:id:消息描述符;msgp:用来存放欲接收消息的拥护数据结构的地址;size:msgp中数据数组的大小;type:用户耍读的消息类型:type^O:接收该队列的第一个消息;type>0:接收类空type的笫一个消息;type<0:接收小于或等于t
8、ype绝对值的最低类型的第一个消息。flag:规定倘若该队列无消息,核心M当做什么事,如果此时设置了IPC_NOWAIT标志,则立即返冋,若在flagH'设宜了MSG_NOERROR,且所接收的消息大小大于sizo,核心截断所接受的消息。count:返回消息正文的了节数。1.msgctl(id,cmd,buf)〈sys/ipc.h>杏询一个消息描述符的状态,设置它的状态及删除一个消息描述符。头文件:#include#include#include参数定义:intms
9、gct1(id,cmd,buf)intid,cmd;structmsqiqds*buf;其屮:两数调用成功时返回0,调用不成功时返回-1。id:用来识别该消息的描述符;cmd:规定命令的类型。TPC_STAT:将与id相关联的消息队列首标读入bufoTPC_SET:为这个消息序列设置有效的用八和小组标识及操作允许权和字节的数量。IPC.RMID:删除id的消息队列。buf:是含有控制参