




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验课程操作系统阜阳师范学院FUYANGTEACHERSCOLLEGE实验报告专业年级班级学年第学期姓名学号实验报告实验项目实验一LINUX入门1了解LINUX运行环境的命令及使用格式2熟悉LINUX的常用基本命令实验目的3练习并掌握LINUX下C语言程序的编写、编译、调试和运行方法。实验器材PC、虚拟机1熟悉LINUX的常用基本命令如LOGOUT/EXIT、ADDUSER、USERDEL、LS、CD、PWD、MKDIR、RMDIR、RM、CP、MV、CAT、MAN等。实验内容2用VI编写一个简单的显示“HELLOWORD”的程序,用GCC编译并观察编译后的结果,运行生成的可执行文件。实验要求记录自己实验课上具体的操作内容、过程实验原理(指导)(一)介绍虚拟机安装以及使用方法利用软件技术,在母机HOSTS中虚拟出另外一台或者几台子机GUESTS,而在子机中,可以随意进行任何操作,并且都不会影响主机。VMWARE中创建的OS实际上是在硬盘上创建了一个文件夹,该OS中的所有东西都保存在这个文件夹中的文件里面。设置共享的路径WINDOWSDLIN_SHARELINUX/MNT/HGFS/SHAREFOLDERS/(二)常用基本命令的使用用ROOT账号(超级用户)注册,口令为REDHAT(注意大小写)。注册成功出现号(超级用户系统提示符,普通用户的系统提示符为)。命令格式命令选项处理对象注意(1)命令一般是小写字串。注意大小写有别(2)选项通常以减号()再加上一个或数个字符表示,用来选择一个命令的不同操作(3)同一行可有数个命令,命令间应以分号隔开(4)命令后加上CHARPATH,ARG0,ARG1,ARGN说明如果EXEC调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新进程,新进程的进程标识符ID与调用进程相同,EXEC没有建立一个与调用进程并发的子进程,而是用新进程取代了原来进程。系统调用EXEC和FORK联合使用能为程序开发提供有力支持。用FORK建立子进程,然后在子进程中使用EXEC,这样就实现了父进程与一个与它完全不同子进程的并发执行。头文件INCLUDE函数名功能调用格式5WAIT()等待子进程运行结束INTWAITSTATUSINTSTATUS其中,STATUS是用户空间的地址。说明如果子进程没有完成,父进程一直等待。WAIT将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在WAIT前已有子进程暂停或终止,则调用进程做适当处理后便返回函数名功能调用格式6EXIT()终止进程的执行VOIDEXITSTATUSINTSTATUS其中,STATUS是返回给父进程的一个整数,说明EXIT(0)正常终止;EXIT(1)异常终止函数名功能调用格式7LOCKFFILES,FUNCTION,SIZE用作锁定文件的某些段或者整个文件。INTLOCKFFILES,FUNCTION,SIZEINTFILES,FUNCTIONLONGSIZE其中FILES是文件描述符;FUNCTION是锁定和解锁1表示锁定,0表示解锁。SIZE是锁定或解锁的字节数,为0,表示从文件的当前位置到文件尾。(二)进程创建程序实示例INCLUDEMAININTPWHILEPFORK1/进程创建失败/IFP0PRINTF“THISISACHILDPROCESS”/在子进程中/ELSEPRINTF“THISISAPARENTPROCESS”/在父进程中/实验过程【子任务1】使用系统调用函数FORK创建子进程,用GETPID获取父子进程的ID号,用GETPPID获取子进程的父进程的ID,记录实验结果,观察并分析它们之间的关系。程序体实验结果及分析【子任务2】修改程序,用FORK建立子进程,然后在子进程中使用EXECL,记录实验结果,并对实验结果进行分析系统调用函数EXCEL的工作原理。程序体实验结果及分析【子任务3】修改程序,编写一段程序,使用系统调用FORK创建两个子进程。各进程显示不同的信息。多次运行观察结果,分析执行效果的原因,说明进程并发执行的特点。程序体实验结果及分析【子任务4】修改程序,使用系统调用WAIT、EXIT和SLEEP,实现简单的进程同步,多次运行观察结果,分析执行效果的原因,说明如何使得进程实现简单的同步。程序体程序体实验结果及分析注意事项实验小结教师评语实验成绩教师签名实验日期实验报告实验项目实验三LINUX进程通信4了解什么是信号以及熟悉LINUX系统中进程之间软中断通信的基本原理5了解什么是管道以及熟悉LINUX支持的管道通信方式实验目的6了解什么是消息以及熟悉消息传送的机理实验器材PC、虚拟机任务一进程的软中断通讯任务二进程的管道通信实验内容任务三消息通信实验原理(指导)(一)所涉及的系统调用函数名功能调用格式1KILL发送者进程发送信号。INTKILLPID,SIGINTPID,SIG说明其中,PID是一个或一组进程的标识符,参数SIG是要发送的软中断信号。(1)PID0时,核心将信号发送给进程PID。(2)PID0时,核心将信号发送给与发送进程同组的所有进程。(3)PID1时,核心将信号发送给所有用户标识符真正等于发送进程的有效用户标识号的进程。函数名功能调用格式2SIGNAL预置对信号的处理方式,允许调用进程控制软中断信号。SIGNALSIG,FUNCTIONINTSIGVOIDFUNC说明头文件INCLUDE其中SIG用于指定信号的类型,SIG为0则表示没有收到任何信号,常用如下表值名字说明01SIGHUP挂起(HANGUP)02SIGINT中断,当用户从键盘按C键或BREAK键时03SIGQUIT退出,当用户从键盘按QUIT键时16SIGUSR1用户自定义信号117SIGUSR2用户自定义信号218SIGCLD某个子进程死FUNCTION的解释如下(1)FUNCTION1时,进程对SIG类信号不予理睬,亦即屏蔽了该类信号;(2)FUNCTION0时,缺省值,进程在收到SIG信号后应终止自己;(3)FUNCTION为非0,非1类整数时,FUNCTION的值即作为信号处理程序的指针。函数名功能调用格式3PIPE建立一无名管道。INTPIPEFILEDESINTFILEDES2其中,FILEDES1是写入端,FILEDES0是读出端。说明头文件INCLUDEINLCUDEINCLUDE函数名功能调用格式4READ()从FD所指示的文件中读出NBYTE个字节的数据,并将它们送至由指针BUF所指示的缓冲区中。如该文件被加锁,等待,直到锁打开为止。INTREADFD,BUF,NBYTEINTFDCHARBUFUNSIGNEDNBYTE5WRITE()把NBYTE个字节的数据,从BUF所指向的缓冲区写到由FD所指向的文件中。如文件加锁,暂停写入,直至开锁。INTWRITEFD,BUF,NBYTEINTFDCHARBUFUNSIGNEDNBYTE函数名功能调用格式6MSGGET创建一个消息,获得一个消息的描述符。INTMSGGETKEY,FLAGKEY_TKEYINTFLAG说明其中,KEY是用户指定的消息队列的名字;FLAG是用户设置的标志和访问方式。如IPC_CREAT|0400是否该队列已被创建。无则创建,是则打开;IPC_EXCL|0400是否该队列的创建应是互斥的。MSGQID是该系统调用返回的描述符,失败则返回1。位置到文件尾。函数名功能调用格式7MSGSND发送一消息。向指定的消息队列发送一个消息,并将该消息链接到该消息队列的尾部。INTMSGSNDMSGQID,MSGP,SIZE,FLAGINTMSGQID,SIZE,FLAGSTRUCTMSGBUFMSGP说明其中,MSGQID是返回消息队列的描述符;MSGP是指向用户消息缓冲区的一个结构体指针。缓冲区中包括消息类型和消息正文,即LONGMTYPE/消息类型/CHARMTEXT/消息的文本/SIZE指示由MSGP指向的数据结构中字符数组的长度;即消息的长度。FLAG规定当核心用尽内部缓冲空间时应执行的动作,进程是等待(若在标志FLAG中未设置IPC_NOWAIT位),还是立即返回(若是设置IPC_NOWAI)。函数名功能调用格式8MSGRCV接受一消息。从指定的消息队列中接收指定类型的消息。INTMSGRCVMSGQID,MSGP,SIZE,TYPE,FLAGINTMSGQID,SIZE,FLAGSTRUCTMSGBUFMSGPLONGTYPE说明其中,MSGQID,MSGP,SIZE,FLAG与MSGSND中的对应参数相似,TYPE是规定要读的消息类型,FLAG规定倘若该队列无消息,核心应做的操作。如此时设置了IPC_NOWAIT标志,则立即返回,若在FLAG中设置了MS_NOERROR,且所接收的消息大于SIZE,则核心截断所接收的消息。函数名功能调用格式9MSGCTL消息队列的操纵。读取消息队列的状态信息并进行修改,如查询消息队列描述符、修改它的许可权及删除该队列等。INTMSGCTLMSGQID,CMD,BUFINTMSGQID,CMDSTRUCTMSGQID_DSBUF说明其中,函数调用成功时返回0,不成功则返回1。BUF是用户缓冲区地址,供用户存放控制参数和查询结果;CMD是规定的命令实验过程【任务1】修改参考程序,使用系统调用FORK创建子进程,再用系统调用SIGNAL让父进程捕捉键盘上来的中断信号(即按DEL或CTRLC键);当捕捉到中断信号后,父进程用系统调用KILL向子进程发出信号,子进程捕捉到信号后输出下列信息后终止STOP子进程IDBYSIGNAL16或17CHILDPROCESSLISKILLED父进程等待子进程终止后,输出如下的信息后终止STOP父进程IDBYSIGNAL2PARENTPROCESSISKILLED实验要求分析利用软中断通信实现进程同步的机理,SIGNAL放在程序的不同位置处,记录输出结果并分析原因,修改参考程序,按任务中要求的输出结果形式输出,若需要修改程序,直接在参考程序上修改,并加注释。参考程序修改后程序INCLUDEINCLUDEINCLUDEINTWAIT_MARKVOIDWAITING,STOPMAININTP1;WHILEP1FORK1IFP10WAIT_MARK1SIGNALSIGINT,STOPWAITING;KILLP1,16PRINTF“PARENTPROCESSISKILLEDN”ELSEWAIT_MARK1SIGNAL16,STOPWAITING;PRINTF“CHILDPROCESSISKILLEDN”VOIDWAITINGWHILEWAIT_MARK0VOIDSTOPWAIT_MARK0实验结果及分析【任务2】用系统调用PIPE建立一管道,二个子进程P1和P2分别向管道各写一句话CHILD1ISSENDINGAMESSAGECHILD2ISSENDINGAMESSAGE父进程从管道中读出二个来自子进程的信息并显示。实验要求(1)要求先接收P2,后P1(2)必须考虑其中都有哪些同步和互斥,同时向管道输入端写的字节数必须和从输出端读的字节数一致,若不一致,则会出现什么问题。(3)修改参考程序,按任务中要求的输出结果形式输出,若需要程序,直接在参考程序上修改,并加注释。参考程序修改后程序INCLUDEINCLUDEINCLUDEMAININTPID1,PID2INTFD2CHAROUTPIPE100,INPIPE100PIPEFDWHILEPID1FORK1IFPID10SPRINTFOUTPIPE,“CHILD1PROCESSISSENDINGMESSAGE“WRITEFD1,OUTPIPE,50ELSEWHILEPID2FORK1IFPID20SPRINTFOUTPIPE,“CHILD2PROCESSISSENDINGMESSAGE“WRITEFD1,OUTPIPE,50ELSEREADFD0,INPIPE,50PRINTF“SN“,INPIPEREADFD0,INPIPE,50PRINTF“SN“,INPIPE实验结果及分析【任务3】使用系统调用MSGGET,MSGSND,MSGREV,及MSGCTL编制一长度为K的消息发送(CLIENTC)和接收SERVERC的程序。实验要求(1)二个程序分别编辑、编译为CLIENT与SERVER。(2)执行/SERVERINTMSGQIDVOIDCLIENTINTIMSGQIDMSGGETMSGKEY,0777FORI10I1IMSGMTYPEIPRINTF“CLIENTSENTN”MSGSNDMSGQID,EXIT0MAINCLIENT2SERVERCINCLUDEINCLUDEINCLUDEDEFINEMSGKEY75STRUCTMSGFORMLONGMTYPECHARMTEXT1000MSGINTMSGQIDVOIDSERVERMSGQIDMSGGETMSGKEY,0777|IPC_CREATDOMSGRCVMSGQID,PRINTF“SERVERRECEIVEDN”WHILEMSGMTYPE1MSGCTLMSGQID,IPC_RMID,0EXIT0MAINSERVER实验结果及分析实验结果及分析注意事项实验小结教师评语实验成绩教师签名实验日期实验报告实验项目实验四页面置换算法模拟1进一步掌握虚拟存储器的工作原理2通过实验理解和掌握FIFO,LRU,OPT三种页面置换算法实验目的3比较各种页面置换算法的优缺点实验器材PC、虚拟机任务一编译OPTC和LRUC实现OPT和LRU置换算法任务二参照前两个算法自行编写代码,实现FIFO置换算法。实验内容任务三在一个程序中同时实现OPT,LRU和FIFO三种置换算法。实验原理(指导)(一)所涉及的系统调用函数名功能调用格式1SRAND随机数发生器的初始化函数VOIDSRANDUNSIGNEDSEED说明使用的头文件INCLUDE用法它需要提供一个种子,参数SEED是RAND的种子,用来初始化RAND的起始值。有以下几种常用的方法SRANDUNSIGNEDTIMENULL直接传入一个空指针SRANDINTGETPID使用进程的IDGETPID来作为初始化种子,在同一个程序中这个种子是固定的。函数名功能调用格式2RAND产生随机数的一个随机函数。INTRAND说明(1)SRANDSEED中指定的SEED开始,返回一个SEED,RAND_MAX(0X7FFF)间的随机整数(2)RAND可以生成0RAND_MAX之间的一个随机数,其中RAND_MAX是STDLIBH中定义的一个整数,它与系统有关。(3)RAND在每次程序运行时产生的值都不一样,必须给SRANDSEED中的SEED一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流逝的时间)。(4)如果给SEED指定的是一个定值,那么每次程序运行时RAND产生的值都会一样,虽然这个值会是SEED,RAND_MAX(0X7FFF)之间的一个随机取得的值。(5)如果在调用RAND之前没有调用过SRANDSEED,效果将和调用了SRAND1再调用RAND一样(1也是一个定值)。(6)一个通用的公式是要取得A,B之间的随机整数,使用(RANDBA)A(结果值将含A不含B)。实验过程【任务1】编译OPTC和LRUC实现OPT和LRU置换算法实验要求多次执行,查看置换算法的详细置换过程及结果参考程序OPTCLRUCINCLUDEINCLUDEINCLUDEDEFINEN12DEFINEB3DEFINEP5INTISINBUFINTBUF,INTX,INTPINTI,J1FORI0IINCLUDEINCLUDEDEFINEN12DEFINEB3DEFINEP5INTISINBUFINTBUF,INTX,INTPINTI,J1FORI0IMAXMAXFIJIIFHNFKNFORK0KBKIFMAXFKMAXFKJKRETURNJINTMAININTLISTNINTCHANGENINTBUFB,FB,I,J,KINTRESULTBNINTOLDINTABSENTSRANDINTTIMENULLPRINTF“NTHERANDOMLISTN“FORI0INILISTIRANDP1PRINTF“3D“,LISTIPRINTF“NN“PRINTF“NOPTN“ABSENT0FORI0IBIBUFIFI1FORI0INIJISINBUFBUF,LISTI,IFJ1/需置换页面OLDOLDOPTI,BUF,LIST,FCHANGEIBUFOLDBUFOLDLISTIELSECHANGEI1FORK0KBKRESULTKIBUFKPRINTF“THERESULTISN“FORI0IBIFORJ0JNJFIRETURNJINTMAININTLISTNINTCHANGENINTBUFB,FB,I,J,KINTRESULTBNINTOLDINTABSENTSRANDINTTIMENULLPRINTF“NTHERANDOMLISTN“FORI0INILISTIRANDP1PRINTF“3D“,LISTIPRINTF“NN“PRINTF“NLRUN“ABSENT0FORI0IBIBUFIFI1FORI0INIJISINBUFBUF,LISTI,OLDOLDLRUFIFJ1CHANGEIBUFOLDBUFOLDLISTIFOLD0ELSEFJ0CHANGEI1FORK0KBKRESULTKIBUFKPRINTF“THERESULTISN“FORI0IBIFORJ0JNJPRINTF“3D“,RESULTIJPRINTF“N“PRINTF“NTHEPAGEISCHANGEDN“PRINTF“3D“,RESULTIJPRINTF“N“PRINTF“NTHEPAGEISCHANGEDN“FORI0INIIFCHANGEI1PRINTF“ELSEPRINTF“3D“,CHANGEIPRINTF“NABSENTDN“,ABSENTPRINTF“THEABSENTVOTEISFN“,FLOATABSENT/NFORI0INIIFCHANGEI1PRINTF“ELSEPRINTF“3D“,CHANGEIPRINTF“NABSENTDN“,ABSENTPRINTF“THEABSENTVOTEISFN“,FLOATABSENT/N实验结果及分析【任务2】参照前两个算法自行编写代码,实现FIFO置换算法。程序实验结果及分析【任务3】在一个程序中同时实现OPT,LRU和FIFO三种置换算法。程序实验结果及分析注意事项实验小结教师评语实验成绩教师签名实验日期实验报告实验项目实验五简单多用户文件系统实验目的通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现实验器材PC、虚拟机实验内容为LINUX设计一个简单的二级文件系统。要求做到以下几点1、可以实现下列几条命令(至少4条)LOGIN用户登录DIR列文件目录CREATE创建文件DELETE删除文件OPEN打开文件CLOSE关闭文件READ读文件WRITE写文件2、列目录时要列出文件名、物理地址、保护码和文件长度3、源文件可以进行读写保护实验原理(指导)(一)程序设计的思想系统采用两级目录,其中第一级对应于用户帐号,第二级对应于用户帐号下的文件。另外,为了简单本文件系统未考虑文件共享、文件系统安全以及管道文件于设备文件等特殊内容(二)主要文件操作的处理过程1、打开文件OPEN检索目录。内核调用NAMEI从根目录或从当前目录,沿目录树查找指定的索引结点。若未找到或该文件不允许存取,则出错处理返回NULL,否则转入下一步;分配内存索引结点。如果该文件已被其它用户打开,只需对上一步中所找到的I结点引用计数1,否则应为被打开文件分配一内存I结点,并调用磁盘读过程将磁盘I结点的内容拷贝到内存I结点中,并设置ICOUNT1;分配文件表项。为已打开的文件分配一文件表项,使表项中的FINODE指向内存索引结点;分配用户文件描述表项。2、创建文件CREAT核心调用NAMEI,从根目录或当前目录开始,逐级向下查找指定的索引结点。此时有以下二种情况重写文件。NAMEI找到了指定I结点,调用FREE释放原有文件的磁盘块。此时内核忽略用户指定的许可权方式和所有者,而保持原有文件的存取权限方式和文件主。最后打开。新建。NAMEI未找到。调用IALLOC,为新创建的文件分配一磁盘索引结点,并将新文件名及所分配到的I结点编号,写入其父目录中,建立一新目录项。利用与OPEN相同的方式,把新文件打开。3、关闭文件CLOSE根据用户文件描述符FD,从相应的用户文件描述符表项中,获得指向文件表项的指针FP,再对该文件表项中的FCOUNT1。4、检索目录NAMEI用户在第一次访问某文件时,需要使用文件的路径名,系统按路径名去检索文件目录,得到该文件的磁盘索引结点,且返回给用户一个FD。以后用户便可利用该FD来访问文件,这时系统不需再去检索文件目录。NAMEI根据用户给出的路径名,从高层到低层顺序地查找各级目录,寻找指定文件的索引结点号。检索时,对以/开头的路径名,须从根目录开始检索,否则,从当前目录开始,并把与之对应的I结点作为工作索引结点,然后用文件路径名中的第一分量名与根或与当前目录文件中的各目录项的文件名,逐一进行比较。由于一个目录文件可能占用多个盘块,在检索完一个盘块中所有目录项而未找到匹配的文件分量名时,须调用BMAP和BREAD过程,将下一个盘块中的所有目录项读出后,再逐一检索。若检索完该目录文件的所有盘块而仍未找到,才认为无此文件分量名。检索方式采用HASH方法。(三)主要数据结构1、I节点STRUCTINODE2、磁盘I节点STRUCTDINODE3、目录项结构STRUCTDIRECT4、超级块STRUCTFILSYS5、用户密码STRUCTPWD6、目录STRUCTDIR7、查找内存I节点的HASH表STRUCTHINODE8、系统打开表STRUCTFILE9、用户打开表STRUCTUSER(四)主要函数1、I节点内容获取函数IGET2、I节点内容释放函数IPUT3、目录创建函数MKDIR4、目录搜索函数NAMEI5、磁盘块分配函数BALLOC6、磁盘块释放函数BFREE7、分配I节点区函数IALLOC8、释放I节点区函数IFREE9、搜索当前目录下文件的函数INAME10、访问控制函数ACCESS11、显示目录和文件用函数_DIR12、改变当前目录用函数CHDIR13、打开文件函数OPEN14、创建文件函数CREATE15、读文件用函数READ16、写文件用函数WRITE17、用户登录函数LOGIN18、用户退出函数LOGOUT19、文件系统格式化函数FORMAT20、进入文件系统函数INSTALL21、关闭文件系统函数CLOSE22、退出文件系统函数HALT23、文件删除函数DELETE(五)主程序说明BEGINSTEP1对磁盘进行格式化STEP2调用INSTALL,进入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 垂线定义的教学反思
- 难点详解冀教版七年级下册期末测试卷附答案详解(研优卷)
- 小儿斜颈课件
- 赠与子女钱还贷协议合同范本
- 关于股份分配的合同范本
- android网络编程协议书
- 公司个人买房协议书范本
- 外墙保温设备租赁合同范本
- 租赁划拨商业用地合同范本
- 入户早教合同模板退费协议
- 新生儿院感管理
- 保洁用品采购管理制度
- 中国石油独山子石化分公司32万吨-年苯乙烯装置扩能改造项目环评报告
- 英语教师遴选试题及答案
- 兵团两委考试试题及答案
- JG/T 2-2018钢制板型散热器
- 种植牙和解协议书
- 《大脑中动脉解剖结构》课件
- z08小升初数学试卷及答案
- 2025-2030焦炭行业市场深度调研及发展规划与投资前景研究报告
- 建筑工程安全文明标准化示范工地管理办法
评论
0/150
提交评论