操作系统课程设计指导书
由于操作系统课程的学时和条件有限,在理论学习过程中没有给同学们提供实验的机会。本课程设计的目的,是给同学提供一个集中实验的机会。希望同学们通过该设计加深对所学习课程的基本知识和基本理论的理解。本设计的内容是基于《操作系统原理》教材的,但还要求同学们必须对以前的《C语言程序设计》和《数据结构》等内容进行认真的复习。课程中学到的UNIX系统调用等是我们使用的主要工具。
系统调用函数说明、系统调用函数说明、参数值及定义1fork1fork
创建一个新进程。用法:i
tfork其中返回i
t取值意义如下0:创建子进程从子进程返回的id值0:从父进程返回的子进程id值1:创建失败
2lockffilesfu
ctio
size2lockffilesfu
ctio
size
用作锁定文件的某些段或者整个文件。头文件i
cludeu
istdh参数定义i
tlockffilesfu
ctio
sizei
tfilesfu
ctio
lo
gsize其中files是文件描述符;fu
ctio
是锁定和解锁;1表示锁定;0表示解锁;Size是锁定或解锁的字节数,若用0表示从文件的当前位置到文件尾。
3msggetkeyflag
获得一个消息的描述符头文件i
cludesystypeshi
cludesysipchi
cludesyymsgh参数定义:i
tmsggetkeyflagkey_tkeyi
tflag语法格式msgqidmsggetkeyflag;
f其中msgqid:该系统调用返回的描述符失败则返回1flag:本身由操作允许权和控制命令值相“或”得到。如:IPC_CREAT0400是否该队列应被创建IPC_EXCL0400是否该队列的创建映是互斥的等。
4msgs
didm4msgs
didmsgpsizeflags
did
发送一消息头文件i
cludesyytypeshi
cludesysipchi
cludesysmsgh参数定义:i
tmsgs
didmsgpsizeflag;i
tidsizeflagstructmsgbufmsgp其中:id:返回消息队列的描述符;msgp:指向用户存储区的一个构造体指针;size:指示由msgp指向的数据结构中字符数组的长度,即消息的长度。这个数组的最大值由MSG_MAX系统可调用参数来确定。flag:规定当核心用尽内部缓冲空间时应执行的动作;若在标志flag中未设置IPC_NOWAIT位则当该消息队列中的字节数超过一最大值时或系统范围的消息数超过某一最大值时调用msgs
d进程睡眠。若是设置IPC_N0WAIT则在此情况下,msgs
d立即返回。
5msgrcvidmsgpsizetypeflag
接受一消息头文件i
cludesystypeshi
cludesysipchi
cludesysmsgh参数定义i
tmsgrcvidmsgpsizetypeflagi
tidsizetypeflagstructmsgbufmsgqstructmsgbuflo
gmtypescharmtext语法格式cou
tmsgrcvidmsgpsizetypeflag;其中id:消息描述符;msgp:用来存放欲接收消息的拥护数据结构的地址;sizr