操作系统实验指导书

青岛理工大学计算机工程学院

二零一一年九月

一、课程编号:071235

二、适用专业:计算机科学与技术专业、网络工程专业、软件工程专业

三、实验个数与学时:4个实验,8学时

四、《操作系统实验》的目的

《操作系统》是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。在计算机软硬件课程的设置上,它起着承上启下的作用。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。

操作系统实验的主要任务是让学生掌握常用操作系统的安装方法,了解操作系统进程管理的基本内容,通过实验演示了解操作系统是如何进行进程管理的,为后期操作系统的课程设计奠定基础。

五、实验平台

在虚拟机Vmware或者Virtual Box上的Ubuntu 9.1

实验1 安装Linux操作系统

一、实验目的

在虚拟机Vmware或者Virtual Box上安装Unbuntu 9.1操作系统,后续实验都将在此环境上进行。

通过实验,要求:

1、掌握在虚拟机上安装操作系统的方法;

2、学会安装Linux系统;

3、学会启动Linux系统;

4、学会在宿主机Windows XP操作系统下,与虚拟机上安排的Ubuntu共享文件的方法。

二、实验内容

1、把ubuntu安装至虚拟机上。

加载安装ubuntu操作系统的ISO IMG文件

启动ubuntu虚拟机

按提示分阶段装入系统

2、在Windows下通过网络磁盘来访问ubuntu共享文件夹在虚拟系统Ubuntu下新建一个文件夹,右击该文件夹,选择属性,共享,启用“共享此目录”,并允许他人在此共享里写数据。?注:共享时需要Samba的支持,系统会提示安装安装完成Samba后,需要重启ubuntu才能生效。此时回到XP时可在网上邻居里看到一个*** - desktop server(Samba,Ubuntu)的共享目录。

?

返回Windows XP系统,右击“网上邻居”,选择“映射网络驱动器”,

在“浏览”里找到刚才在Ubuntu下共享的文件夹,选择后完成映射,

这时打开“我的电脑”会发现多了一个“网络驱动器”,如同我们的硬盘一样。

?

?这时你可以在XP系统里复制几个文件到相应的网络驱动器,然后进入Ubuntu系统,就能看到我们刚才复制的文件了;当然,我们也可以往ubuntu共享文件夹里放文件,在XP系统使用。

在创建文件共享的时候,注意主机的网卡一定要打开,否则创建共享是不能成功的实验2 Linux系统中程序编辑、编译与调试工具

一、实验目的

1、熟悉使用Linux字符界面、窗口系统的常用命令。

2、熟悉运用Linux常用的编程工具。

3、掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。

二、实验内容

1、熟悉开机后登录Linux系统和退出系统的过程;

2、掌握一种Linux的编辑器,特别是字符界面的vi工具的使用(详见VI简易使用手栅);

3、掌握GCC编译器的基本用法(详见GCC使用手册及常用命令行);

4、掌握GDB调试程序的方法(详见GDB调试程序手册)。要求在实验报告上完整地进行一个数据结构中c程序的调试,源代码不能少于50行。

实验3 进程并发与同步

一、实验目的

1、加深对进程概念的理解,区分进程并发执行与串行执行;

2、掌握进程并发执行的原理,理解进程并发执行的特点;

3、了解fork( )系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用;

4、能利用相应的系统调用实现进程树与进程间的同步。

二、实验内容

1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。

要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析

2、连续4个fork()的进程家族树,family1-1.c程序清单如下:

#include

main()

{

fork();

fork();

fork();

fork();

printf(“A\n”);

}

请根据程序运行结果,画出进程家族树,并分析原因。

3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。

4、创建一个子进程,并给它加载程序,其功能是调用

编写c语言程序实现如下功能 创建父子进程,青岛理工大学操作系统实验指导及实验报告.doc...相关推荐

  1. VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序)

    VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序) Visual C++ 6.0简称VC或者VC6.0,是微软1998年推出的一款C/C++ IDE,界面友好,调试功能强大.VC6. ...

  2. ubuntu下编写C语言程序

    目录 一.gcc编译C语言程序 二.makefile编译C语言程序 三.编译过程中遇到的问题 题目:编写一个主程序文件main1.c和一个子程序文件sub1.c,有如下要求:子程序sub1.c包含一个 ...

  3. Ubuntu下使用gcc和makefile编写c语言程序

    文章目录 前言 一.gcc编写c语言程序 1.hello world的输出 2.简单程序的编译与运行 3.windows环境下的编译运行结果对比 二.makefile编写c语言程序 总结 前言 本文通 ...

  4. VS2019使用教程(使用VS2019编写C语言程序)

    VS2019使用教程(使用VS2019编写C语言程序) 继<VS2019下载地址和安装教程>之后,本节给大家讲解如何用 VS2019 编写并运行 C 语言程序. 例如,在 VS2019 中 ...

  5. VS2017使用教程(使用VS2017编写C语言程序)二

    VS2017使用教程(使用VS2017编写C语言程序) < VS2017下载地址和安装 VS2010下载地址和安装教程 > C语言中文网推出辅导班啦,包括「C语言辅导班.C++辅导班.算法 ...

  6. 使用VS编写C语言程序遇到的scanf错误

    我相信有很多初学者都和我一样会遇到这个报错,在vs编译器中,编写c语言程序的时候,使用scanf实现键盘输入,但是当你运行程序的时候,会像下面一样..... 这里的错误提示,scanf不安全,建议使用 ...

  7. Ubuntu系统中编写c语言程序教程

    目录 1.准备工作 1.1 安装GCC及必要软件包 2.使用GCC编写C语言程序 2.1 编写一个整型运算反回浮点型的程序 2.2 在windows系统下使用编译工具编译该程序 3.使用Makefil ...

  8. Ubuntu中编写C语言程序

    Ubuntu中编写C语言程序 1.准备工作 1.1 安装GCC 2.使用GCC编写C语言程序 2.1 编写一个Hello World程序 2.2 编写一个主程序文件main1.c和子程序文件sub1. ...

  9. visual studio 如何编写c语言程序,用Visual Studio 编写纯C语言程序

    本篇文章讲述如何用微软的 Visual Studio 编写纯C语言程序,这里的纯C语言,指的是 ANSI C 语言. 要在 Visual Studio 里创建一个ANSI C语言程序,请按以下步骤执行 ...

  10. c语言单片机自动浇花系统,LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化)...

    LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化) [复制链接] 第三集: C语言程序升级与功能改进 我叫张柏峦,今年9岁,我喜欢电子科学 第三集视频中,我们再深入的介绍一下 ...

最新文章

  1. java时间操作方法Calendar
  2. 特征重要性、特征集成+FeatureUnion、特征选择变换器+ColumnTransformer、标签特征变换+TransformedTargetRegressor、特征质量、自动学习数据中的特征
  3. 政府和银行运维的差异
  4. cesium 加载bim模型_构建统一CIM数字底盘,实现基于BIM的全流程管控
  5. iOS 11和xcode9
  6. 浅谈Linux中的信号处理机制(三)
  7. 篝火怎么做_上世纪的“Dyatlov事件”到底是怎么一回事儿,真是未知力量吗?...
  8. linux terminal教程,Linux入门教程 - 如何记录和重放Linux终端会话
  9. Matlab英文操作系统下中文乱码的解决方案
  10. 解决:Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy)
  11. 在asp.net 2.0中使用SqlBulkCopy类迁移数据
  12. python环境变量的配置_python基础教程-第一讲-带你进入python的世界
  13. MFC开发- string、const char*、 char* 、char[]相互转换(全)
  14. 05SpringMvc_映射器SimpleUrlHanderMapping
  15. gpt linux双系统安装win7系统分区格式化,如何在GPT分区格式上安装win7 64位系统
  16. Python 操作 protobuf 常见用法
  17. 头文件不应该含有非inline函数或对象的定义
  18. WEBRTC TURNSERVER配置
  19. 哔哩下载姬(B站下载工具)
  20. 在js中的瀑布流布局理解

热门文章

  1. WPS文字的字数统计在哪?如何查看当前文档有多少个字?
  2. 经典案例悬臂梁受力有限元理论与程序设计_《数值计算与程序设计》系列课程之三
  3. ENVI遥感图像监督分类与出图制作
  4. 14-基于51单片机的声音分贝测量与显示仿真
  5. C++定义一个对象和new一个对象的区别与联系
  6. 关于ERP生产制造系统实施的几点看法
  7. java接口文档怎么写_如何写好API接口文档
  8. rca接口_新手小白必读 1分钟看懂同轴和光纤音频接口
  9. 华为云服务器测试并用docker快速搭建2048网站
  10. vcm驱动芯片原理_手机摄像头VCM音圈马达,原理、结构