《操作系统实验》PPT课件.ppt
《《操作系统实验》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《操作系统实验》PPT课件.ppt(30页珍藏版)》请在三一办公上搜索。
1、操作系统实验,实验一 Linux登录与vi编辑器,实验目的:让学生熟悉Linux的环境,掌握Linux系统登录的方法。给学生使用vi创建与编辑文件的机会。vi是UNIX中最常用的编辑器。对vi编辑器的全面而清晰的理解,对于后续内容的学习至关重要。,实验内容与要求:首先,登录Linux命令login的使用。其次,使用vimtutor e查看vi编辑器的相关帮助文档,让学生自行阅读使用方法。最后,通过第二步的阅读帮助,完成以下任务:(1)创建一个文件(2)保存退出一个文件及不保存退出一个文件(3)在文本中使用不同的键进行光标的移动(4)在一个文件中加入、删除与修改文本(5)设定选项以自定义编辑环境
2、(6)调用命令行编辑功能,实验二 Linux常用命令与Linux下C程序设计,实验目的:让学生熟悉Linux常用命令,对Linux命令有一个熟悉的了解。进一步熟悉vi编辑器的使用。掌握在linux下的编译命令gcc及C语言程序的运行。,实验内容与要求 Linux下常用命令的使用(1)Cp:拷贝文件命令 将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。格式为cp options source dest。选项的说明如下:-a 尽可能将档案状态、权限等资料都照原状予以复制。-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。,范例:(a)将档案 aaa 复制(已存在),并命名
3、为 bbb:cp aaa bbb(b)将所有的C语言程式拷贝至 Finished 子目录中:cp*.c Finished,Cd:切换目录 该命令的作用是切换当前目录至另一目录。格式为cd dirName。下面是一些小技巧:cd 进入用户主目录;cd-返回进入此目录之前所在的目录;cd.返回上级目录(若当前目录为“/“,则执行完后还在“/”;”.”为上级目录的意思);cd./.返回上两级目录;,Mkdir:创建新文件夹命令 所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。格式为:mkdir DirName 实例:在/home/cc/下面
4、创建以“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()创建进
5、程的方法;4.熟悉wait、exit等系统调用。,实验内容与要求1编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。2多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。记下这种情况,试简单分析其原因。3修改程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。,程序参考:(仅供参考)#include#incl
6、ude 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的实现,使这个系统调用在父进程
7、中返回刚刚创建的子进程的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 fa
8、ther,pid=%dn,getpid();,wait 和 exit 函数wait(等待子进程中断或结束)定义函数 pid_t wait(int*status);返回值 如果执行成功则返回子进程的ID,如果有错误发生则返回-1。进程一旦调用wait,就立即阻塞自己,直到有信号来到或子进程结束。如果有子进程退出,wait 就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。注意:如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数status 返回,而子进程的ID也会一快返回。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统实验 操作系统 实验 PPT 课件
链接地址:https://www.31ppt.com/p-5517289.html