下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验指导书青岛理工大学计算机项目学院二零一一年九月一、课程编号:071235二、适用专业: 计算机科学与技术专业、网络项目专业、软件项目专业三、实验个数与学时:4个实验,8学时四、操作系统实验的目的操作系统 是一门重要的专业基础课, 是涉及较多硬件知识的计算机系 统软件课程。在计算机软硬件课程的设置上,它起着承上启下的作用。操作系 统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所 有用户在使用计算机时都要得到操作系统提供的服务。操作系统实验的主要任务是让学生掌握常用操作系统的安装方法,了解操作系统进程管理的基本内容,通过实验演示了解操作系统是如何进行进程管理的,为后
2、期操作系统的课程设计奠定基础。五、实验平台在虚拟机Vmware或者Virtual Box上的Ubuntu 11.10实验 1 安装 Linux 操作系统一、实验目的在虚拟机Vmware或者Virtual Box上安装Unbuntu 11.10操作系统,后续实验都将在此环境上进行。通过实验,要求:1、掌握在虚拟机上安装操作系统的方法;2、 学会安装Linux系统;3、 学会启动Linux系统;4、 学会在宿主机Windows XP操作系统下,与虚拟机上安排的Ubuntu共享文件的方 法。二、实验内容1、把ubuntu安装至虚拟机上。加载安装ubuntu操作系统的ISO IMG文件 启动ubunt
3、u虚拟机I按提示分阶段装入系统2、在Windows下通过网络磁盘来访问ubuntu共享文件夹在虚拟系统Ubuntu下新建一个文件夹,右击该文件夹,选择属性,共享,启 用“共享此目录”,并允许他人在此共享里写数据。注:共享时需要Samba的支持,系统会提示安装。安装完成Samba后,需要重启ubuntu才能生效。此时回到XP时可在网上邻居里看到一个* - desktop server(Samba,Ubuntu的共享目录。门forteroup打开资源管理器Search Everything. .t搜索计算机W.创建快捷方式重命名W属性墮)在“浏览”里找到刚才在Ubuntu下共享的文件夹,选择后完成
4、映射,文件即編輸査看如收荷工風心帮勵凹搜素 文伴典固返回Windows XP系统,右击“网上邻居”,选择“映射网络驱动器”,Q 后退转到添加一网上却居査看阀第理接沿胃帯范戒小军办蛍为查看工作廻计負机負寡韻的吩邊网第任务/ orkgrther (G:)有可膨动存储的设备觑3 5软盘 a:)DVD驱动器CH-)1rM这时你可以在XP系统里复制几个文件到相应的网络驱动器,然后进入Ubuntu系统,就能看到我们刚才复制的文件了;当然,我们也可以往ubuntu共享文件夹里放文件,在XP系统使用。注:在创建文件共享的时候,注意主机的网卡一定要打开,否则创建共享是不能 成功的实验 2Linux 系统中程序编
5、辑、编译与调试工具一、实验目的1、熟悉使用Linux字符界面、窗口系统的常用命令。2、熟悉运用Linux常用的编程工具。3、 掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。二、实验内容1、熟悉开机后登录Linux系统和退出系统的过程;2、 掌握一种Linux的编辑器,特别是字符界面的vi工具的使用详见VI简易使用手 栅);3、掌握GCC编译器的基本用法详见GCC使用手册及常用命令行);4、掌握GDB调试程序的方法详见GDB调试程序手册)。要求在实验报告上完整地进行一个数据结构中c程序的调试,源代码不能少于50行。实验 3 进程并发与同步一、实验目的1、加深对进程概
6、念的理解,区分进程并发执行与串行执行;2、掌握进程并发执行的原理,理解进程并发执行的特点;3、了解fork( 系统调用的返回值,掌握用fork(创建进程的方法;熟悉wait、exit等系统调用;lxf-detop serverCSamba;Ubuntu)4、能利用相应的系统调用实现进程树与进程间的同步。二、实验内容1、 编写一C语言程序,实现在程序运行时通过系统调用fork( 创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son,女儿进程执行时屏幕显示“I am daughter”。要求多次连续反复运行这个程序,观察
7、屏幕显示结果的顺序,直至出现不一样的情况 为止。要求有运行结果截图与结果分析2、 连续4个fork(的进程家族树,family1-1.c程序清单如下:#in elude stdio.hmain (fork(。fork(。fork(。fork(。printf( An 。请根据程序运行结果,画出进程家族树,并分析原因。3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推 进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制, 并分析运行结果。4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -I”,已知该键盘命令的路径与文件名为:
8、/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。三、系统调用创建子进程系统调用:fork(格式jint fork( 。返回值=0创建成功,从子进程返回0创建成功,从父进程返回,其值为子进程的PID号=-1创建失败子进程创建时操作系统的工作:检查同时运行的进程数目,若超过系统设定值,则创建失败,返回-1;为子进程分配进程控制块task_struct结构,并赋予唯一进程标识符pid;子进程继承父进程打开的所有文件及资源,对父进程的当前目录和所有已打开系统文件 表项中的引用记数加1;为子进程创建进程映像:创建子进程映像静态部分:复制父进程映像静态部
9、分创建子进程映像动态部分:初始化task_struct结构结束创建,置子进程为内存就绪状态,插入就绪队列,作为一个独立的进程被系统 调度。若调用进程父进程)返回,则返回创建的子进程标识符pid值此时返回值0)若子进程被调度执行,则将其U区计时字段初始化然后返回进程睡眠系统调用:sleep( sleep( n。n表示延时的秒数进程终止系统调用:exit(status此时返回值=0)。格式参数功能 |进程睡眠n秒voidexit(int status。参数status是子进程向父进程发送的终止信息,父进程使用wait( 系统调用来接收这个信息头文 件#i nclude 功能将进程置僵死状态释放其所
10、占有的资源向父进程发本进程死信号,并发送信息status给父进程,将自己及自己的子进程运行CPU的时间总和留待父进程使用wait( 收集子进程终止时操作系统做以下工作:关闭软中断:因为进程即将终止而不再处理任何软中断信号;回收资源:关闭所有已打开文件,释放进程所有的区及相应内存,释放当前目录及修改 根目录的索引节点;写记帐信息:将进程在运行过程中所产生的记帐数据其中包括进程运行时的各种统计信息)记录到一个全局记帐文件中;置该进程为僵死状态:向父进程发送子进程死的软中断信号,将终止信息status送到指定的存储单元中;转进程调度:因为此时CPU已经被释放,需要由进程调度进行CPU再分配。父进程等
11、待子进程终止系统调用:wait(与waitpid(格式1pid_t wait(int *stat_addr, 0。参数*stat addr中存放exit(所发来终止信号stat的值。返回值=0表示有子进程终止,其值为终止子进程的pid号=-1表示无子进程终止头文 件#in clude #in clude 功能父进程使用它等待任意一个子进程终止,如果在执行wait(之前已经有一个子进程结束了,则对其做善后处理,并返回子进程的pid号,如果没有则返回1,该进程阻塞,插入等待子进程终止的队列,当有子进程终止时被唤醒。在&stat addr中保留了子进程僵死时的终止信息不是返回值)。注意:一个
12、wait(只能用来等待一个子进程终止,如果等待多个子进程终止则 需要使用多个wait(。格式2pid_t waitpid (pid_t pid, int * stat_addr, int options 。参数pid=0等待与父进程同组的子进程pid=-1,optio ns=0等同于wait(,等待任意子进程pid0等待给定pid号的子进程功能:等待指定pid的子进程终止说明:1)若父进程仅仅只是等待任意一个子进程结束,而不需要取子进程发来的信号,则 可以简单地使用wait(O。2)如果该进程没有创建自己的子进程就不能使用wait(或waitpid(,否则系统会返回一个 出错信息。3)如果要取
13、子进程执行exit(后所发来的终止信号stat,可以使用*stat来取该变量中的值,而不能使用wait(的返回值,因为wait(的返回值是该终止子进程的pid号。将指定的可执行文件加载到指定进程映像中,覆盖该进程中原有的程序系统调用:execl(、execle(、execlp(、execv(、execve( execvp(功能将一个指定的程序装入调用它的进程的映像中,用这个可执行文件的副本去覆 盖该进程的程序空间,从而改变调用进程的执行代码,使调用进程执行新引入 的可执行程序二进制代码文件)内核在响应这组系统调用后做以下工作:1)根据给出的路径名找到指定的可执行文件,检查该文件是否可执行,用户
14、是否具有执行 权限该文件必须是编译连接后的二进制代码)。2)将该文件载入到调用它的进程映像中覆盖其原来的程序。3)为该程序的执行设置参数数组和环境变量。4)启动该进程进入新的程序入口点去执行。此组函数执行时,如果加载成功则直接执行,没有返回;若加载不成功则返回-1。格式1execv(file, argv参数char *file指向文件全名路径名/文件名)的指针char *argv n指向命令及参数的指针功能1)执仃参数指疋的命令或文件。2)用该命令或可执行文件的副本覆盖调用它的子进程的映像返回 值=-1表示错误返回头文 件#in clude 格式2execl(路径名/文件名”,0说明功能、返回
15、值、头文件均同格式1使用方法:1)事先准备好子进程要执行的程序,并将它编译连接成可执行文件,记下该文件的路径名和文件名。如果不带参数则可以直接使用execl(,带参数则使用execv(。2)在父进程创建子进程之前,在程序中事先定义子进程要执行的程序文件的文件标识符path和参数数组argv,其中的环境值可以用NULL取代。如果不带参数使用execl(,则这一步可以不做。3) 创建子进程后,在子进程的分支中,如果不带参数使用execl (filepath,O, 如果带参数则 使用execv(filepath,argv来实现用指疋的程序filepath覆盖子进程映像中原有的程序。实验 4 进程通信一、实验目的1、 加深理解进程通信的方法与原理;2、 掌握如何利用管道机制、消息缓冲队列、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园微型消防站管理制度
- 工厂车间安全培训考试题带答案(完整版)
- 病理学高级职称题试题及答案
- 2025年山东省(专升本)化学真题试卷及答案
- 2026年甘肃省嘉峪关社区工作者考试试卷及答案
- 黑龙江大庆市高职单招英语试题含答案
- 2026年度执业药师西医真题和答案
- 马术场地障碍调试技师(中级)考试试卷及答案
- 老年智能血糖仪研发工程师岗位招聘考试试卷及答案
- 译林版英语三年级下册Unit 8 第3课时 Wrap-up time分层作业(有答案)
- 2026广东潮州市饶平县信访局招聘后勤服务人员1人笔试备考题库及答案解析
- 2026年中国铁路公司招聘考试铁路专业知识真题库及答案
- 发热待查诊治专家共识(2026 版)
- 家具制造工艺流程与标准操作规程
- 2026北京西城初二上学期期末数学试卷和答案
- 马年猜猜乐(马的成语)打印版
- 2026年及未来5年市场数据中国磷化铟行业市场调研分析及投资战略咨询报告
- 北京市东城区2024-2025学年高一上学期期末统一检测地理试卷
- 2025年郑州铁路职业技术学院单招职业技能考试题库含答案
- 物业人员管理及培训方案
- 2.1地形导学案-八年级地理上学期人教版
评论
0/150
提交评论