操作系统课程设计.pptx
《操作系统课程设计.pptx》由会员分享,可在线阅读,更多相关《操作系统课程设计.pptx(27页珍藏版)》请在咨信网上搜索。
实验一 Linux初步一、Linux用户界面帐户、口令二、Linux常用命令文件系统相关ls cd cp mv more rm rmdir mkdir find mount 进程管理相关ps kill网络通信相关telnet ping talk send文本编辑相关vi ed 系统命令reboot shutdown chmod chgrp chownuseradd groupadd三、Linux环境编程1、基本流程和命令编辑-编译-调试-连接-运行编辑:常用vi或其他IDE集成开发环境编译:gcc o abc abc.c gcc g o abc abc.c /abc中加调试信息调试:gdb abc /只有在编译时加了-g选项才可能用gdb调试break NUM 在指定的行上设置断点。clear 删除设置在特定源文件、特定行上的断点。Clear FILENAME:NUM。print EXPR 显示表达式 EXPR 的值 list 显示源代码段 next 在不单步执行进入其他函数的情况下,向前执行一行源代码 help 帮助q 退出运行 ./abc四、常用系统调用(1)设备管理:如ioctrl()(2)文件管理:open()close()read()write()(3)进程控制:fork()wait()getpid()exec()(4)进程通信:signal()kill()(5)存储管理:memset()五、实习用文件系统相关系统调用,打开/proc/sys/fs/file-max文件,获得本操作系统最大可打开文件句柄数。实验二 Linux系统调用分析通过对Linux的fork exec等代码的分析了解一个操作系统进程的创建执行等过程锻炼学生分析大型软件代码的能力.一、/include/linux/shed.h包含了进程相关的数据结构task_struct二、kernel/fork.c包含了get_pid和do_fork 三、fs/exec.c包含了do_execve 四、要求分析源代码,分组讨论分工合作。要求至少有以下内容:进程idstruct task_struct分析struct task_struct volatile long state;/*-1 unrunnable,0 runnable,0 stopped*/unsigned long flags;int has_cpu;int processor;int last_processor;int lock_depth;struct task_struct*next_task,*prev_task;struct task_struct*next_run,*prev_run;pid_t pid;struct task_struct*p_opptr,*p_pptr,*p_cptr,*p_ysptr,*p_osptr;struct task_struct*pidhash_next;struct task_struct*pidhash_pprev;Pidhash分析linux进程的6种状态:#define TASK_RUNNING0#define TASK_INTERRUPTIBLE1#define TASK_UNINTERRUPTIBLE2#define TASK_ZOMBIE4#define TASK_STOPPED8#define TASK_SWAPPING16do_fork流程框图do_execve流程框图Fork()实例#includeMain()Int getpid(),getppid(),pid;puts(“Before fork.”);Printf(“The parent pid of process%d is%dn”,getpid(),getppid();If(pid=fork()=-1)exit(1);ElseIf(pid=0)/子进程 puts(“child process after fork”);Printf(“The parent pid of process%d is%dn”,getpid(),getppid();exit(1);Else/父进程wait();puts(“parent process after fork”);Printf(“The parent pid of process%d is%dn”,getpid(),getppid();Printf(“The child pid of process%d is%dn”,getpid(),pid);Exit(0);实验三 进程间通信一、进程间通信基础知识高级通信:socket通信低级通信:管道、消息通信消息队列=消息队列头+消息头+消息文本消息队列头:struct msqid_ds 消息头:struct msg*msg_next;msg_type;Msg_ts;msg_spot;消息文本:struct msgbufmtype;char*mtext;Msgget():建立消息队列;返回消息队列idInt msgget(key_t key,int flags)Msgctl():取得、修改消息队列属性int msgctl(int msgid,int cmd,struct msqid_ds*mbuf)Msgsnd()与msgrcv()int msgsnd(msgid,void*msgp,msgtype,msgflag);Int msgrcv(msgid,msgp,size_t,msgtype,msgflag)二、管道通信用pipe()系统调用编写程序实现:父进程通过管道向子进程发送一个字符串,子进程将其显示出来。三、模拟生产者-消费者进程通信过程1、PV操作与生产者消费者问题回顾(1)信号灯,是一个确定的二元组(s,q),s是信号量,是一个非负初值的整型变量,q为初始状态为空的队列(即等待队列)。S0,代表可供并发进程使用的资源个数(临界资源则只有1个)S=0,代表所有进程都分配到了资源,且空闲资源数为。S0,代表有|s|个进程等待临界资源以进入临界区。(2)P、V操作改变信号量的值,是通过PV原语来完成的;记作:P(s)和V(s)。P(s):使信号量s的值减;V(s):使信号量s的值加;(3)用信号灯和PV操作实现进程的同步私有信号量:一个进程的私有信号量是从制约进程发送来的该进程执行所必须的消息;该信号量只与制约、被制约进程有关。利用私有信号量,可以通过使用PV操作实现进程同步。(4)生产者消费者问题生产者消费者问题主要是同步问题,但是其中涉及到互斥问题。生产者把系统中释放某一类资源的进程统称为生产者。消费者把系统中使用某一类资源的进程统称为消费者。生产者之间必须是互斥的。消费者之间必须是互斥的。必须设一个公有信号量.(也可保证P-C之间互斥)而生产者P和消费者C之间必须是同步的。必须为P和C各设一个私有信号量用PV操作的解为:P()/生产者生产者P(empty;P(mutex);V(mutex);V(full);C()/消费者消费者P(empty);P(mutex);V(mutex);V(empty);两进程相互间通过两进程相互间通过mutex empty full 3个信号量通信,达到同步。个信号量通信,达到同步。(5)在Linux环境下模拟生产者-消费者进程间的同步通信设计思路:通过fork()产生两个进程;其中一个是生产者进程,另一个是消费者进程。生产者进程主要功能:寻找一个随机数范围内所有的素数个数。消费者进程主要功能:求该随机数的平方。利用Linux提供系统调用:sigset sigholdsigrelsesigpause kill配合使用,实现PV操作的类似功能并能相互通信和唤醒。关键部分代码#includemain()int i,j,pid,cpid,find_prime(int),square(int);short s_flag=1;void catch_signal(),catch_usr();setbuf(stdout,(char*)NULL);puts(ctrl+to terminamte program);sigset(SIGUSR1,catch_usr);sigset(SIGUSR2,catch_usr);sigset(SIGQUIT,catch_signal);sigset(SIGINT,catch_signal);srand(getpid();if(cpid=fork()=0)pid=getppid();while(1)puts(producer processing.);sighold(SIGUSR1);find_prime(rand()%20901);puts(Job done!send message);kill(pid,SIGUSR2);for(j=0;j65535;j+);sigrelse(SIGUSR1);puts(producer went to sleep);sigpause(SIGUSR1);puts(producer is wakeing up);while(1)puts(ttconsumer processing.);sighold(SIGUSR2);printf(ttsquare=%dn,square(rand()%251);puts(ttjob done!send message!);kill(cpid,SIGUSR1);for(j=0;j=65535;j+);sigrelse(SIGUSR2);puts(ttconsumer went to sleep);sigpause(SIGUSR2);puts(ttconsumer is waking up);void catch_signal(int signo)puts(process is interrupted!);exit(1);void catch_usr(int signo)printf(#%d signal sendn,signo);sigset(signo,catch_usr);return;Int find_prime(int randnum)Int j,k=2;unsigned cnt=0;Puts(“counting now”);For(;k=randnum;+k)J=2;while(k%j!=0)+j;If(j=k)+cnt;Int square(int x)sleep(2);return(x*x);注意要求通过man帮助信息,搞清楚sig类系统调用的功能用法;并分析、设计程序流程,指出程序中实现P操作部分和实现V操作部分,尤其是kill()的唤醒同步功能如何实现。实验四 作业调度算法模拟作业调度的模拟实现实验内容实验内容作业调度的原理;作业以及作业调度算法的实现1作业控制块;作业的状态;作业就绪队列;2数据结构和算法:作业控制块JCB;作业就绪队列;先来先服务法fifo();短作业优先法fsfo()重点重点作业的创建;先来先服务法;短作业优先法回顾操作系统原理中有关作业以及作业调度的原理;模拟实现作业以及作业调度的算法,加深对操作系统中作业管理部分的理解。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文