linux操作系统内核实验报告

合集下载

Linux操作系统实验实验报告

Linux操作系统实验实验报告

L i n u x操作系统实验实验报告Document number:NOCG-YUNOO-BUYTT-UU986-1986UT实验1:安装Linux系统【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。

【实验内容】:1、首先在windows系统中安装虚拟机。

在网上找到VMwareWorksttionPro版本,确定安装目录。

一直下一步,不需要太多的说明。

2、图为安装完成后的界面。

3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚拟机,进行一些简单的虚拟机设置,设置了网络链接nat模式等等。

安装完成后的界面实验2:Linux下c语言开发【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。

【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。

在centos系统中可以使用比较简便的yum命令。

在之前已经配置好了yum源。

直接输入yuminstallgcc。

回车自动安装程序和需要的依赖包。

因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。

图为xshell中的截图。

安装完毕。

然后使用vi或者vim编写运行,在屏幕上打印出hello,world。

实验3:进程创建【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程3.掌握创建进程的方法。

【实验内容】1.子进程和父进程的创建;2.编写附件中的程序实例【实验步骤】一1、打开终端,输入命令,在文件中输入中的代码;2、输入命令,回车后显示无错误;3、输入命令:./1_fork运行程序。

二、1、打开终端,输入命令,在文件中输入中的代码;2、输入命令,回车后显示无错误:3、输入命令:./2_vfork运行程序。

从上面可以看到两次的运行结果不一样。

我们知道write函数是不带缓存的。

因为在fork之前调用write,所以其数据写到标准输出一次。

linux操作系统 实验报告

linux操作系统 实验报告

linux操作系统实验报告Linux操作系统实验报告一、引言Linux操作系统是一种开源的、免费的操作系统,其内核由Linus Torvalds于1991年首次发布。

Linux操作系统具有稳定性高、安全性强、灵活性大等优点,因此在互联网、服务器、嵌入式系统等领域得到广泛应用。

本实验报告将介绍Linux操作系统的基本特点、安装过程以及常用命令的使用。

二、Linux操作系统的基本特点1. 开源性Linux操作系统的内核及相关软件源代码对用户开放,任何人都可以查看、修改和分发。

这使得Linux操作系统具有高度的透明度和可定制性,用户可以根据自己的需求进行定制和优化。

2. 多用户、多任务Linux操作系统支持多用户同时登录,并且可以同时运行多个任务。

这使得多个用户可以在同一台计算机上独立地进行工作,提高了计算机的利用率。

3. 稳定性和安全性Linux操作系统具有良好的稳定性和安全性。

由于其内核的设计和实现方式,Linux操作系统可以长时间运行而不会出现系统崩溃或死机的情况。

同时,Linux操作系统提供了丰富的安全机制,如文件权限控制、用户身份验证等,可以有效保护系统和用户的数据安全。

三、Linux操作系统的安装过程1. 准备安装介质在安装Linux操作系统之前,需要准备一个可启动的安装介质,如光盘或USB闪存驱动器。

这些介质可以从Linux官方网站或其他可信渠道下载。

2. 进入安装界面将安装介质插入计算机,并按下开机键启动计算机。

在启动过程中,选择从安装介质启动。

随后,将进入Linux操作系统的安装界面。

3. 设置安装选项在安装界面中,可以设置安装选项,如语言、时区、键盘布局等。

根据实际需要进行选择和设置。

4. 分区和格式化磁盘在安装界面中,可以对硬盘进行分区和格式化操作。

根据实际需求,可以选择使用整个硬盘或者将硬盘分为多个分区。

5. 安装系统在分区和格式化完成后,可以开始安装Linux操作系统。

根据安装界面的提示,选择安装位置和安装选项,然后等待安装过程完成。

Linux操作系统实验总结分析报告

Linux操作系统实验总结分析报告

Linux操作系统实验总结分析报告从系统的⾓度分析影响程序执⾏性能的因素1.Linux系统概念模型从全局的⾓度来看,Linux系统分为内核空间和⽤户空间,但毫⽆疑问内核空间是Linux系统的核⼼,因为内核负责管理整个系统的进程、内存、设备驱动程序、⽂件,决定着系统的性能和稳定性。

于是从这个⾓度我构建的Linux系统的概念模型如下图所⽰:此模型将Linux系统主要划分为四个模块:内存管理、进程管理、设备驱动程序、⽂件系统。

这四个部分也是⼀个操作系统最基本也是最重要的功能。

2.概念模型解析2.1 内存管理Linux系统采⽤虚拟内存管理技术,使得每个进程都有各⾃互不⼲涉的进程地址空间。

该空间是块⼤⼩为4G的线性虚拟空间,⽤户所看到和接触到的都是该虚拟地址,⽆法看到实际的物理内存地址。

利⽤这种虚拟地址不但能起到保护操作系统的效果(⽤户不能直接访问物理内存),⽽且更重要的是,⽤户程序可使⽤⽐实际物理内存更⼤的地址空间。

内存管理主要有分为如下⼏个功能:地址映射、虚拟地址管理、物理内存管理、内核空间管理、页⾯换⼊换出策略和⽤户空间内存管理,这些模块的架构图如下所⽰:2.2 进程管理进程管理是Linux系统⾮常重要的⼀部分,进程管理虽然不像内存管理、⽂件系统等模块那样复杂,但是它与其他⼏个模块的联系是⾮常紧密的。

进程管理主要包括进程的创建、切换、撤销和进程调度。

2.2.1 进程的创建、切换、撤销进程的创建:在Linux编程中,⼀般采⽤fork()函数来创建新的进程,当然,那是在⽤户空间的函数,它会调⽤内核中的clone()系统调⽤,由clone()函数继续调⽤do_fork()完成进程的创建。

整个进程创建过程可能涉及到如下函数:fork()/vfork()/_clone----------->clone()--------->do_fork()---------->copy_process()进程的切换:进程切换⼜称为任务切换、上下⽂切换。

操作系统内核实验报告

操作系统内核实验报告

操作系统内核实验报告在操作系统课程中,学生通常会接触到操作系统内核的实验,通过这些实验来加深对操作系统原理和机制的理解。

本次实验报告将详细介绍操作系统内核实验的内容、设计思路、实验过程及结果分析。

一、实验内容本次操作系统内核实验的内容主要包括:实现内核初始化、进程管理、内存管理、中断处理和系统调用等功能。

学生需自行设计并完成一个简单的操作系统内核,包括编写相关的代码和进行调试测试。

二、设计思路在设计操作系统内核时,需要首先明确内核的功能和架构。

可以参考现有的操作系统内核设计,如Linux、Windows等。

在设计过程中需要考虑内核的模块化、可扩展性和性能优化等方面,保证内核的稳定性和可靠性。

三、实验过程1. 内核初始化:在内核初始化阶段,需要完成各种数据结构的初始化、硬件设备的初始化以及运行环境的搭建等工作。

2. 进程管理:实现进程的创建、调度和销毁等功能,保证多进程之间的正常运行。

3. 内存管理:设计内存分配和回收算法,确保内存的高效利用。

4. 中断处理:编写中断处理程序,处理硬件中断和系统调用等事件。

5. 系统调用:实现系统调用接口,提供用户程序与内核之间的交互方式。

四、实验结果分析通过实验,学生可以加深对操作系统内核原理的理解,掌握操作系统内核的设计与实现方法。

同时,还可以培养学生的编程能力和团队合作精神,提高问题分析和解决能力。

综上所述,操作系统内核实验对于学生来说是一次极具挑战性和收获丰富的实践活动。

通过实验,学生不仅可以提升自己的技术水平,还能够在团队合作中培养团队精神和创新能力。

希望学生们能够认真对待本次操作系统内核实验,取得令人满意的成绩。

linux操作系统内核实验报告

linux操作系统内核实验报告

linux操作系统内核实验报告篇一:linux操作系统实验报告LINUX操作系统实验报告姓名班级学号指导教师XX 年 05月 16 日实验一在LINUX下获取帮助、Shell实用功能实验目的:1、掌握字符界面下关机及重启的命令。

2、掌握LINUX下获取帮助信息的命令:man、help。

3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替换与别名,管道及输入输出重定向。

实验内容:1、使用shutdown命令设定在30分钟之后关闭计算机。

2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。

3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。

4、使用管道方式分页显示/var目录下的内容。

5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。

实验步骤及结果:1. 用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入命令Shutdown -h 302、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。

查看目录下的内容,只要在终端输入命令即可。

取消更改的名称用命令unalias命令:在命令后输入要取消的名称,再输入名称。

3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。

步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。

4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。

“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

5实验二文件和目录操作命令实验目的:1、掌握LINUX下文件和目录的操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、mv、rm等。

linux操作系统实验报告

linux操作系统实验报告

linux操作系统实验报告第一篇:linux操作系统实验报告Linux实验报告一一、实验步骤及内容1.虚拟机软件的安装(1)先准备虚拟机安装包。

(2)更改安装路径:“D: VMwareVMware Workstationvmware.exe”(3)输入序列号:ctrl+v,在安装过程中不能进行复制剪切操作。

(4)不能重新启动,才能继续安装汉化版D: vmwarevmware workstation2.新建一个虚拟机并进行配置(1)单击新建虚拟机虚拟机的类型选择:典型安装选择客户端操作系统:linux虚拟机的名字及位置根据需要网络类型选择:,桥接。

指定的磁盘容量删除软驱:双击floppy—remove虚拟内存设置:双击memory—1024MB设置linux的安装文件:选择安装镜像文件—指定第一个安装文件—就可以啦!之后会提示安装第二个安装文件就进行选择第二个中间鼠标切换用CTRL+ALT。

3.安装LINUX操作系统(1)要确定鼠标是否在虚拟机的激活状态下:敲回车不需要检测安装文件选择skip进入linux的安装前的配置选项:选择安装的语言—中文简体键盘:--默认鼠标:--默认安装类型:--workstation磁盘分区:--自动分区引导程序:默认网络配置:默认防火墙:无防火墙支持的语言:中文时区:亚洲-上海密码:root123456安装的软件包:全部。

二.在已有虚拟机软件的基础上安装LINUX的技巧。

(1)新建虚拟机—典型安装—linux ,red hat linux---给虚拟机命名,并且指定安装位置d:red hat linux---桥接---10G。

(2)在刚才建立的虚拟机上安装linux系统.(3)配置要安装的linux系统的安装文件iso镜像文件(4)选择配置好linux镜像文件刚才建立的虚拟机,启动虚拟机,开始安装。

三.实验总结充分了解linux系统的安装,学会新建虚拟机,在虚拟机上安装linux系统.和一些简单的技巧并对此门课程有了一定的兴趣。

内核程序配置实验报告

一、实验目的1. 了解Linux内核的基本结构及其配置方法。

2. 熟悉使用make menuconfig、make xconfig、make gconfig等工具配置内核。

3. 学习内核模块的编译与加载。

4. 通过实验,加深对Linux内核编译过程的理解。

二、实验环境1. 操作系统:Linux Ubuntu 20.042. 内核版本:Linux 5.4.0-42-generic3. 编译工具:gcc 9.3.04. 其他工具:make, make menuconfig, make xconfig, make gconfig等三、实验内容1. 内核简介Linux内核是Linux操作系统的核心,负责管理计算机硬件资源和提供操作系统服务。

内核版本不同,其功能和性能也有所差异。

在Linux内核中,所有的硬件资源和应用程序都通过内核来交互。

2. 内核配置(1)make menuconfig1)进入内核源码目录,执行命令:make menuconfig2)在菜单配置界面,选择需要配置的模块或功能,按回车键进入详细配置。

3)根据需要修改参数,按空格键选择启用或禁用功能。

4)完成配置后,按Ctrl+X退出,保存配置。

(2)make xconfig1)进入内核源码目录,执行命令:make xconfig2)在图形配置界面,选择需要配置的模块或功能,按回车键进入详细配置。

3)根据需要修改参数,按空格键选择启用或禁用功能。

4)完成配置后,按Ctrl+Q退出,保存配置。

(3)make gconfig1)进入内核源码目录,执行命令:make gconfig2)在文本配置界面,选择需要配置的模块或功能,按回车键进入详细配置。

3)根据需要修改参数,按空格键选择启用或禁用功能。

4)完成配置后,按Ctrl+Q退出,保存配置。

3. 内核编译1)在内核源码目录下,执行命令:make2)等待编译完成,生成内核映像。

4. 内核模块编译与加载(1)编写内核模块代码1)创建一个名为module.c的文件,编写内核模块代码。

linux实验报告1

linux实验报告1《Linux 实验报告 1》一、实验目的本次 Linux 实验的主要目的是让我们熟悉 Linux 操作系统的基本操作和常用命令,了解其文件系统结构,并能够在终端环境下进行一些简单的任务处理。

二、实验环境本次实验使用的是虚拟机软件 VirtualBox 中安装的 Ubuntu 2004LTS 操作系统。

三、实验内容及步骤(一)用户登录与系统信息查看1、打开虚拟机,进入 Ubuntu 系统登录界面,输入用户名和密码登录。

2、在终端中输入命令“uname a”查看系统内核信息,包括操作系统类型、内核版本等。

3、输入“lsb_release a”命令查看系统的发行版信息,如发行版名称、版本号等。

(二)文件和目录操作1、使用“cd”命令切换到不同的目录,如“cd /home”切换到用户主目录,“cd /etc”切换到系统配置目录等。

2、使用“ls”命令列出当前目录下的文件和子目录,结合“l”选项查看详细信息,包括文件权限、所有者、大小、修改时间等。

3、创建新目录,使用“mkdir testdir”命令在当前目录下创建一个名为“testdir”的目录。

4、在新创建的目录中创建一个文本文件,使用“touch testfiletxt”命令创建一个空的文本文件。

5、使用“cat”命令查看文本文件的内容,由于文件为空,此时没有输出。

6、使用“vi”或“nano”编辑器编辑文本文件,输入一些内容后保存退出。

7、使用“cp”命令复制文件,如“cp testfiletxt testfile_copytxt”复制文件并命名为“testfile_copytxt”。

8、使用“mv”命令移动文件,将“testfile_copytxt”移动到其他目录。

9、使用“rm”命令删除文件和目录,注意删除目录时需要使用“r”选项,如“rm r testdir”删除“testdir”目录及其包含的所有文件。

(三)文件权限管理1、使用“ls l”命令查看文件的权限信息,了解权限的表示方式,如“rwrr”等。

linux实验系统实验报告

linux实验系统实验报告Linux实验系统实验报告一、引言Linux实验系统是一个基于Linux操作系统的实验平台,旨在提供一个实践学习的环境,帮助学生深入了解Linux操作系统的原理和应用。

本实验报告旨在总结和分析我在使用Linux实验系统进行实验时的经验和收获。

二、实验环境1. 硬件环境:我使用的是一台配备Intel Core i5处理器和8GB内存的个人电脑。

2. 软件环境:我下载并安装了Linux实验系统的最新版本,该版本基于Ubuntu操作系统,并预装了一系列常用的开发工具和软件包。

三、实验内容1. 实验一:Linux基础命令的使用在这个实验中,我通过终端窗口使用了一些常用的Linux命令,如ls、cd、mkdir、rm等。

通过实际操作,我熟悉了Linux文件系统的结构和基本操作,掌握了如何在Linux中创建、删除和移动文件夹,以及如何查看文件和文件夹的属性。

2. 实验二:Shell脚本编程这个实验要求我们使用Shell脚本编写一个简单的程序,实现对指定文件夹中所有文件进行备份的功能。

通过这个实验,我学会了如何使用Shell编程语言,掌握了一些基本的语法和命令,比如if语句、for循环和cp命令。

我还学会了如何将Shell脚本保存为可执行文件,并在终端中运行。

3. 实验三:网络配置与管理这个实验主要涉及Linux系统的网络配置和管理。

我学会了如何配置网络接口,包括设置IP地址、子网掩码和网关。

我还学会了如何使用ping命令测试网络连接,以及如何使用ifconfig命令查看和管理网络接口的状态。

通过这个实验,我对Linux系统的网络配置有了更深入的了解。

四、实验收获通过使用Linux实验系统进行实验,我获得了以下收获:1. 对Linux操作系统有了更深入的了解:通过实际操作,我对Linux操作系统的基本原理和文件系统有了更深入的了解。

我学会了如何在Linux中进行文件和文件夹的管理,以及如何使用命令行界面进行各种操作。

2022年linux操作系统实验报告

LINUX操作系统实验报告姓名班级学号指引教师年05月16 日实验一在LINUX下获取协助、Shell实用功能实验目旳:1、掌握字符界面下关机及重启旳命令。

2、掌握LINUX下获取协助信息旳命令:man、help。

3、掌握LINUX中Shell旳实用功能,命令行自动补全,命令历史记录,命令旳排列、替代与别名,管道及输入输出重定向。

实验内容:1、使用shutdown命令设定在30分钟之后关闭计算机。

2、使用命令“cat /etc/cron.daliy”设立为别名named,然后再取消别名。

3、使用echo命令和输出重定向创立文本文献/root/nn,内容是hello,然后再使用追加重定向输入内容为word。

4、使用管道方式分页显示/var目录下旳内容。

5、使用cat显示文献/etc/passwd和/etc/shadow,只有对旳显示第一种文献时才显示第二个文献。

实验环节及成果:1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入命令Shutdown -h 302、使用命令alias将/etc/cron.daliy文献设立为别名named,左边是要设立旳名称右边是要更改旳文献。

查看目录下旳内容,只要在终端输入命令即可。

取消更改旳名称用命令unalias 命令:在命令后输入要取消旳名称,再输入名称。

3.输入命令将文献内容HELLO重定向创立文本文献/root/nn,然后用然后再使用追加重定向输入内容为word。

环节与输入内容HELLO同样,然后用命令显示文献旳所有内容。

4.使用命令ls /etc显示/etc目录下旳内容,命令是分页显示。

“|”是管道符号,它可以将多种命令输出信息当作某个命令旳输入。

5实验二文献和目录操作命令实验目旳:1、掌握LINUX下文献和目录旳操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、mv、rm等。

2、掌握LINUX下建立链接文献旳措施。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux操作系统内核实验报告
篇一:linux操作系统实验报告
LINUX操作系统实验报告
姓名班级学号指导教师
XX 年 05月 16 日
实验一在LINUX下获取帮助、Shell实用功能实验目的:
1、掌握字符界面下关机及重启的命令。

2、掌握LINUX下获取帮助信息的命令:man、help。

3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替
换与别名,管道及输入输出重定向。

实验内容:
1、使用shutdown命令设定在30分钟之后关闭计算机。

2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。

3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。

4、使用管道方式分页显示/var目录下的内容。

5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。

实验步骤及结果:
1. 用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入
命令
Shutdown -h 30
2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。

查看目录下的内容,只要在终端输入命令即可。

取消更改的名称用命令unalias命令:在命令后输入要取消的名称,再输入名称。

3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。

步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。

4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。

“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

5
实验二文件和目录操作命令
实验目的:
1、掌握LINUX下文件和目录的操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、
mv、rm等。

2、掌握LINUX下建立链接文件的方法。

实验内容:
1、使用命令切换到/etc目录,并显示当前工作目录路径。

2、使用命令显示/root目录下所有文件目录的详细信息,包括隐藏文件。

3、使用命令创建空文件/root/ab,并将该文件的时间记录更改为8月8日8点8分。

4、使用命令创建具有默认权限为744的目录/root/ak,然后将/etc/at.dany文件复制到该目录中,最后将该目录及其目录下的文件一起删除。

5、统计文件/etc/auto.misc的行数、字符数和单词数。

6、使用命令创建/root/install.log文件的硬链接文件/root/b和软链接文件/root/c。

实验步骤及结果:
1
2
3
4
5
6
实验三 vi编辑器使用、文件显示和处理命令
实验目的:
1、掌握vi编辑器的使用方法。

2、掌握LINUX下文件显示和处理命令,如cat、more、less、head、tail、sort、uniq、
cut等。

实验内容:
1、使用vi编辑器创建文本文件/root/v,文件内容为hell,最后保存退出。

2、使用命令一次3行显示文件/etc/a2ps.cfg文件内容。

3、查看文件/etc/aliases的前3行内容。

4、创建文件file1,文件内容有3行,分别为a、c、b,排序该文件数据,显示在屏幕上。

5、创建文件file2,文件内容有2行,分别为d、a,比较文件file1和file2文件内容。

实验步骤及结果:
1
2
篇二:操作系统linux版实验报告
操作系统实验报告(Linux版)
网络142 潘豹 142999
实验一观察Linux进程状态
一、实验目的
在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。

二、实验环境
硬件环境:计算机一台,局域网环境;
软件环境:Linux Ubuntu操作系统,gcc编译器。

(四)查看“不可中断阻塞”状态(D)
创建一个C程序,如uninter_status.c,让其睡眠30s 代码:
#include
#include
int main()
{
int i=0,j=0,k=0;
for(i=0;i {
for(j=0;j {
k++;
k--;
}
}
}
实验结果:
(二)查看“暂停”状态(T)
运行run_status进程,其进入R状态:
代码同上:
(三)查看“可中断阻塞”状态(S)
创建一个C程序,如interruptiblie_status.c,让其睡眠30s
编译链接,后台运行该程序(后接&符号),并使用ps 命令查看运行状态代码:
#include
#include
int main()
{
sleep(30);
return;
}
实验结果:
(四)查看“不可中断阻塞”状态(D)
创建一个C程序,如uninter_status.c,让其睡眠30s 编译链接,后台运行该程序(后接&),并使用ps命令查看运行状态
代码:
#include
#include
int main()
{
if(vfork()==0)
{
sleep(300);
return;
}
}
实验结果:
(五)查看“僵尸”进程(Z)
创建一个C程序,如zombie_status.c,在其中创建一个子进程,并让子进程迅速结束,而父进程陷入阻塞编译链接,后台运行该程序(后接&),并使用ps命令查看运行状态(30s内)
代码:
#include
#incldue
int main()
{
if(fork())
{
sleep(300);
}
}
实验结果:
实验二观察Linux进程/线程的异步并发执

一、实验目的
通过本实验学习如何创建Linux进程及线程,通过实验,观察Linux进程及线程的异步执行。

理解进程及线程的区别及特性,进一步理解进程是资源分配单位,线程是独立调度单位。

二、实验环境
硬件环境:计算机一台,局域网环境;
软件环境:Linux Ubuntu操作系统,gcc编译器。

三、实验内容和步骤
1、进程异步并发执行
编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用fork函数创建两个子进程,每个子进程对count加1后,显示“I am son, count=x”或“I am daughter, count=x”,父进程对count加1之后,显示“I am father, count=x”,其中x使用count值代替。

最后父进程使用waitpid等待两个子进程结束之后退出。

编译连接后,多次运行该程序,观察屏幕上显示结果的顺序性,直到出现不一样的情况为止,并观察每行打印结果中count的值。

代码:
#include
#include
int main()
{
pid_t son_pid,daughter_pid;
int count=1;
son_pid=fork();
if(son_pid==0)
{
count++;
printf("i am son,count=%d\n",count);
}
else
{
daughter_pid=fork();
if(daughter_pid==0)
{
count++;
printf("i am daughter,count=%d\n",count);
}
else
{
count++;
printf("i am father,count=%d\n",count);
waitpid(son_pid,NULL,0);
waitpid(daughter_pid,NULL,0);
}
}
}
2、线程异步并发执行
编写一个C语言程序,该程序首先初始化一个count变量为1,然后使用pthread_create函数创建两个线程,每个线程对count加1后,显示“I am son, count=x”或“I am daughter, count=x”,父进程对count加1之后,显示“I am father, count=x”,其中x使用count值代替。

最后父进程使用pthread_join等待两个线程结束之后退出。

篇三:linux操作系统实验报告
LINUX操作系统实训报告
LINUX操作系统实训报告
LINUX操作系统实训报告
LINUX操作系统实训报告LINUX操作系统实训报告。

相关文档
最新文档