欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《操作系统实验》PPT课件.ppt

    • 资源ID:5517289       资源大小:214.99KB        全文页数:30页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《操作系统实验》PPT课件.ppt

    操作系统实验,实验一 Linux登录与vi编辑器,实验目的:让学生熟悉Linux的环境,掌握Linux系统登录的方法。给学生使用vi创建与编辑文件的机会。vi是UNIX中最常用的编辑器。对vi编辑器的全面而清晰的理解,对于后续内容的学习至关重要。,实验内容与要求:首先,登录Linux命令login的使用。其次,使用vimtutor e查看vi编辑器的相关帮助文档,让学生自行阅读使用方法。最后,通过第二步的阅读帮助,完成以下任务:(1)创建一个文件(2)保存退出一个文件及不保存退出一个文件(3)在文本中使用不同的键进行光标的移动(4)在一个文件中加入、删除与修改文本(5)设定选项以自定义编辑环境(6)调用命令行编辑功能,实验二 Linux常用命令与Linux下C程序设计,实验目的:让学生熟悉Linux常用命令,对Linux命令有一个熟悉的了解。进一步熟悉vi编辑器的使用。掌握在linux下的编译命令gcc及C语言程序的运行。,实验内容与要求 Linux下常用命令的使用(1)Cp:拷贝文件命令 将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。格式为cp options source dest。选项的说明如下:-a 尽可能将档案状态、权限等资料都照原状予以复制。-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。,范例:(a)将档案 aaa 复制(已存在),并命名为 bbb:cp aaa bbb(b)将所有的C语言程式拷贝至 Finished 子目录中:cp*.c Finished,Cd:切换目录 该命令的作用是切换当前目录至另一目录。格式为cd dirName。下面是一些小技巧:cd 进入用户主目录;cd-返回进入此目录之前所在的目录;cd.返回上级目录(若当前目录为“/“,则执行完后还在“/”;”.”为上级目录的意思);cd./.返回上两级目录;,Mkdir:创建新文件夹命令 所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。格式为:mkdir DirName 实例:在/home/cc/下面创建以“itorg”命名的文件夹。格式:mkdir/home/cc/itorg,使用vi编辑器编写一个C语言程序Hello World#include int main(void)printf(Hello world,Linux programming!n);return 0;,gcc编译:将程序存为hello.c。编译:gcc-o hello hello.c,实验三 Linux进程的异步并发执行,实验目的1.了解进程与程序的区别,加深对进程概念的理解;2.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;3.了解fork()系统调用的返回值,掌握用fork()创建进程的方法;4.熟悉wait、exit等系统调用。,实验内容与要求1编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。2多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。记下这种情况,试简单分析其原因。3修改程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。,程序参考:(仅供参考)#include#include void main()int i;pid_t pid=fork();if(pid=0)/*子进程程序*/for(i=1;i 1000;i+)printf(I am son n);else/*父进程程序*/for(i=1;i 1000;i+)printf(I am father n);,fork()当程序执行到下面的语句:pid=fork();OS创建子进程。子进程和父进程的可执行程序是同一个程序;上下文和数据,绝大部分就父进程的拷贝,但它们是两个相互独立的进程!当前是父进程执行到fork调用即将返回(此时子进程不占有CPU)。父进程继续执行,OS对fork的实现,使这个系统调用在父进程中返回刚刚创建的子进程的pid(一个正整数),所以下面的if语句 pid=0的分支不会执行。所以输出i am father,子进程在之后的某个时候得到调度,它的PCB的内容被换入,占用 CPU。OS对fork的实现,使子进程中fork返回0。所以在这个子进程中pid=0。这个进程继续执行的过程中,if语句中 pid=0是true。所以输出i am son,获得进程ID的函数getpid()#include#include main()pid_t pid=fork();if(pid=0)printf(“i am son,pid=%dn”,getpid();else printf(“i am father,pid=%dn,getpid();,wait 和 exit 函数wait(等待子进程中断或结束)定义函数 pid_t wait(int*status);返回值 如果执行成功则返回子进程的ID,如果有错误发生则返回-1。进程一旦调用wait,就立即阻塞自己,直到有信号来到或子进程结束。如果有子进程退出,wait 就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。注意:如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数status 返回,而子进程的ID也会一快返回。如果不在意结束状态值,则参数status 可以设成NULL。,#include#include#include#includeint main()int status,i;pid_t pid=fork();if(pid=0)printf(“I am son.pid=%dn”,getpid();exit(5);else sleep(1);printf(“I am father,wait for son.n”;pid=wait(执行示例:I am son.pid=1501I am father,wait for son.sons pid=1501,exit status=5,实验三遇到的问题:问题一 pid_t pid1=fork();pid_t pid2=fork();if(pid1=0)printf(“i am son”);else if(pid2=0)printf(“i am daught”);else printf(“i am father);,pid_t pid1=fork();pid_t pid2=fork();pid1=儿子idPid2=女儿id,pid_t pid1=fork();pid_t pid2=fork();pid1=0pid2=孙子id,父进程,儿子进程,pid_t pid1=fork();pid_t pid2=fork();pid1=儿子进程pid2=0,女儿进程,pid_t pid1=fork();pid_t pid2=fork();pid1=0pid2=0,孙子进程,if(pid1=0)printf(“i am son”);else if(pid2=0)printf(“i am daught”);else printf(“i am father);,pid_t pid1;pid_t pid2;pid1=fork();if(pid1=0)printf(“i am son”);else pid2=fork();if(pid2=0)printf(“i am daught);else printf(“i am father);,pid_t pid1;pid_t pid2;int i;for(i=0;i2;i+)pid1=fork();if(pid1=0)printf(“i am son”);else pid2=fork();if(pid2=0)printf(“i am daught);else printf(“i am father);,输出:I am daught I am father I am son,pid_t pid1=fork();pid_t pid2=fork();,父进程,儿子进程,女儿进程,输出:father daught son,father daught son,father daught son,father daught son,第二遍循环,问题三pid_t pid=fork();if(pid=0)for(i=1;i 1000;i+)printf(I am son n);exit(5);else for(i=1;i 1000;i+)printf(“I am father,wait for son.n”;pid=wait(,输出:I am sonI am father,wait for son.sons pid=1015sons pid=-1sons pid=-1sons pid=-1sons pid=-1 sons pid=-1,原因:第一遍循环时子进程已经退出。,实验四 通道通信,实验目的进一步熟悉linux的编程环境和vi编辑器,熟悉linux环境下C语言程序的编译和运行。进一步掌握父子进程间的通信原理和fork()函数。熟悉并掌握管道通信的原理,以及linux环境下提供的pipe()、write()及read()函数。能够编写出管道通信的程序,并调试通过。,实验内容pipe()函数:创建管道的方法,函数原型为int pipe(int filedes2);write()函数:读取数据方法,函数原型为:int write(int pipe_fd,char*buffer,size_t len);read()函数:写入数据的方法,函数原型为:int read(int pipe_fd,char*buffer,size_t len);,pipe 建立管道 头文件:#include 定义函数:int pipe(int filedes2);函数说明:建立管道,并将文件描述符由数组filedes 返回。filedes0为管道里的读取端,用read从管道中读数据 filedes1则为管道的写入端,用write向管道中写数据。返回值:若成功则返回0,否则返回-1。,#include#include#define INPUT 0#define OUTPUT 1int main()int filedes 2;/*定义子进程号*/pid_t pid;char buf500;int returned_count;/*创建无名管道*/pipe(filedes);/*创建子进程*/if(pid=fork()=-1)printf(Error in forkn);exit(1);,/*执行子进程*/if(pid=0)printf(in the spawned(child)process.n);/*子进程向父进程写数据,关闭管道的读端*/close(filedesINPUT);write(filedesOUTPUT,test data,strlen(test data);exit(0);,else/*执行父进程*/printf(in the spawning(parent)process.n);/*父进程从管道读取子进程写的数据,关闭管道的写端*/close(filedesOUTPUT);returned_count=read(filedesINPUT,buf,sizeof(buf);printf(%d bytes of data received from spawned process:%sn,returned_count,buf);,rootlocalhost#gcc pipe.c o pipe.orootlocalhost#./pipe.o显示结果:in the spawning(parent)process.in the spawned(child)process.9 bytes of data received from spawned process:test data,

    注意事项

    本文(《操作系统实验》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开