操作系统实验报告----进程管理 本实验报告的主要目的是掌握 Linux 中进程的创建方法及执行情况,深入理解进程、进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。 一、进程管理实验目的 1. 掌握 Linux 中进程的创建方法及执行情况 2. 加深对进程、进程树等概念的理解 3. 掌握 Linux 中如何加载子进程自己的程序 4. 掌握父进程通过创建子进程完成某项任务的方法 5. 掌握系统调用 exit() 和 _exit() 的使用 6. 分析进程竞争资源的现象,学习解决进程互斥的方法 二、实验内容 (一)进程的创建 1. 编写一段程序,使用系统调用 fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符。 (二)进程树的创建 1. 运行以下程序,分析程序执行过程中产生的进程情况。 #include main(){ int p,x; p=fork(); if (p>0) fork(); else{ fork(); fork(); } sleep(15); } 实验步骤: 1. 编译连接:gcc –o forktree forktree.c 2. 后台运行:./forktree & 3. 使用 pstree –h 查看进程树 运行结果: ├─gnome-terminal─┬─bash─┬─forktree─┬─forktree─┬─forktree───forktree │ │ │ │ └─forktree │ │ │ └─forktree │ │ └─pstree 分析:程序运行,系统首先创建一个进程 forktree,执行到 p=fork() 创建一个子进程 forktree,子进程获得处理机优先执行,父进程等待;执行 else,当执行到第一个 fork() 函数时,子进程创建了一个进程 forktree,称之为孙进程,孙进程获得处理机往下执行,子进程等待;执行到第二个 fork() 函数时,孙进程又创建一个进程 forktree,称之为重孙进程,重孙进程很快执行完,将处理机还给孙进程,孙进程很快执行完,将处理机还给子进程;子进程继续往下执行,执行到第二个 fork() 函数,又创建一个进程 forktree,称之为第二孙进程,并获得处理机执行,此进程很快执行完,将处理机还给子进程,子进程也很快执行完,将处理机还给父进程,父进程 P>0 执行 if 语句,运行 fork() 函数,又创建一个进程 forktree,称之为第二子进程,此进程获得处理机执行很快运行完,将处理机还给父进程,父进程运行 sleep(15) 语句,休眠 15 秒,用 pstree 命令查询进程树。 (三)进程之间的关系 1. 运行程序,分析运行结果。 #include main(){ int p,x,ppid,pid; x=0; p=fork(); if(p>0) { printf("parent output x=%d\n",++x); ppid=getpid(); printf("This id number of parent is:ppid=%d\n",ppid); } else { printf("child output x=%d\n",++x); pid=getpid(); printf("This id number of child is:pid=%d\n",pid); } } 运行结果: Parent output x=1 This id number of parent is:ppid=3110 Child output x =1 This is number of child is:pid=3111 分析:fork 创建进程的时候子进程与父进程共享代码区,子进程复制父进程的数据区,所以,两个进程中的数据互不影响都是 1。 (四)进程的竞争资源 1. 编写一个死循环程序,观察进程的行为。 #include main(){ while(1){ } } 实验步骤: 1. 编译:gcc loop.c –o loop 2. 运行:./loop & 本实验报告旨在让学生掌握 Linux 中进程的创建方法及执行情况,深入理解进程、进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。
2025-10-14 17:10:57 51KB 文档资料
1
【实验报告概述】 本次实验主要关注的是Linux操作系统中的文件基本操作,包括目录管理、路径理解、文件类型识别、文件属性查看、编辑器使用等。实验旨在加深学生对Linux操作系统的理解和掌握,提升其在终端中进行文件操作的能力。 【实验内容详解】 1. **目录结构创建**:学生需在自己的主目录下建立一个符合特定结构的目录树。这涉及到`mkdir`命令的使用,通过递归创建多个子目录。 2. **路径操作**:理解绝对路径和相对路径的概念,通过`pwd`命令获取当前工作目录的绝对路径,`cd`命令则用于切换目录。 3. **主目录、登录目录和工作目录**:了解主目录通常为`/home/用户名`,登录目录即首次登录时所在的目录,而工作目录则是当前所在的目录,可以通过`pwd`命令查看。 4. **文件类型和隐含文件**:文件类型包括普通文件、目录文件、链接文件等,通过`ls -l`可以查看。隐含文件(隐藏文件)是首字符为`.`的文件,如`.profile`。 5. **文件属性**:文件的权限、所有者、组信息等可通过`ls -l`查看。 6. **编辑器使用**:实验中涉及了`vi`和`emacs`两个文本编辑器的使用,包括文件的创建、编辑、保存和退出操作。 7. **Linux内核映像文件**:找到内核映像文件,通常位于`/boot`目录下,名为`vmlinuz`或`vmlinuz-版本号`,通过`file`命令查看文件类型。 8. **查找文件**:利用`find`命令查找`.profile`和`.login`文件,并查看其内容。 9. **显示隐含文件**:使用`ls -a`命令列出主目录下的所有文件,包括隐含文件。 10. **编写和运行bash脚本**:使用`vi`创建一个包含特定命令的bash脚本,如`echo $SHELL`和`chsh -l`,然后运行此脚本来查看当前shell及可用的shell列表。 11. **emacs编辑器操作**:使用emacs编辑器创建新文件,并输入指定文本,`-nw`选项表示在终端中运行而非图形界面。 12. **创建lab1文件**:在lab目录下创建lab1文件,内容为实验问题的文本。使用`cat`或`more`等命令查看文件内容和类型。 【实验要求】 学生需要在实验报告中详细记录每一步的操作过程,包括输入的命令和命令的输出结果,同时,对于涉及编辑器的部分,还需要展示编辑后的文件内容。通过这样的方式,不仅能够检验学生对Linux基本操作的掌握程度,也能培养他们解决问题和记录实验过程的能力。 【总结】 本实验是计算机操作系统教学的重要组成部分,通过实际操作,学生能更深入地理解Linux文件系统和命令行工具的使用,为后续的学习和工作中处理文件和系统管理打下坚实基础。
2025-06-17 12:40:32 685KB 文档资料
1
从提供的文件内容中,我们可以提炼出关于操作系统实验报告的知识点。本文将以操作系统为核心,结合实验报告的结构,详细地阐述操作系统的基本概念、实验的目的和内容、以及实验的总结方法。 操作系统是计算机系统中最重要的系统软件,它是应用程序和计算机硬件之间的接口。其主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口。操作系统实验的目的在于加深对操作系统理论知识的理解,并通过实验手段掌握操作系统的实际应用。 实验报告通常由几个部分组成:实验目的、实验内容和实验总结。实验目的是整个实验的指导思想,需要明确指出实验要达成的目标,比如理解某种特定操作系统的功能或者掌握某个特定操作系统的操作。实验内容是实现实验目的的具体步骤和方法,一般包括设计思想及算法流程、源程序清单以及运行结果。设计思想和算法流程描述了实验所采用的方法和解决问题的步骤;源程序清单则是实验中所用到的代码;运行结果是实验的最终输出,通常需要截图或者详细的数据记录。实验总结是对整个实验过程的回顾和评价,要总结实验中遇到的问题以及解决问题的过程,同时还要对实验结果进行分析,评价实验是否达到了预期的目标。 根据文件内容,可以看出报告涉及的三个具体实验: 1. 观察Linux的行为。该实验的目的是让学生了解和掌握Linux操作系统的基本工作原理和行为。实验内容中包括对Linux系统中进程、内存、文件系统等方面的行为进行观察,并记录相应的运行结果。 2. 软中断通信实验。这个实验的目的在于理解操作系统中断机制的工作原理,特别是在软中断方面。通过实验,学生将学习如何设计和实现软中断通信,以及如何记录和分析软中断在实际操作中的表现。 3. 线程同步实验。该实验旨在通过实验的方式使学生掌握操作系统中线程同步的原理和方法。实验内容会包括设计线程同步机制、编写相关线程同步的程序代码以及记录和分析线程同步实验的运行结果。 实验报告的撰写要遵循客观、真实、准确、完整的原则。报告应当详细记录实验过程中的所有操作步骤和实验结果,无论成功或失败,都要真实地反映。对于实验过程中出现的问题和异常情况,应当进行详细分析,并提出可能的原因和解决方案。
2025-05-20 16:18:36 1.5MB 操作系统
1
来自广东工业大学 UNIX 网络操作系统 实验 报告 一、 实验目的 1. 掌握UNIX系统的目录和文件管理命令。 2. 掌握shell的输入输出重定向操作符。 3. 编写shell脚本文件,并调试、执行它。 二、 实验要求 1. 要求每人能独立完成实验。能独立搭建UNIX操作系统,掌握OpenSolaris的安装、运行和使用。 2. 使用自己的账号登录UNIX 系统, 用户名为:学号和姓名汉语拼音全拼。在用户主目录下,新建子目录,子目录名为:专业和班级(可以是拼音)。 3. 在新建的子目录下完成全部练习,所有的操作练习均要截图显示。 4. 所有的实验内容必须在命令行方式下进行操作。 5. 纸制版的封面单面打印,其他页面必须双面打印。全班刻一张光盘。 ### 实验知识点总结 #### 一、实验目的与要求 **实验目的:** 1. **目录和文件管理命令:** 掌握基本的文件管理命令,如`cd`(切换目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。 2. **输入输出重定向操作符:** 学会使用`>`(覆盖写入文件)、`>>`(追加写入文件)以及管道`|`(将一个命令的输出作为另一个命令的输入)等操作符。 3. **Shell脚本编写:** 编写简单的Shell脚本文件,包括如何定义变量、条件判断、循环结构等。 **实验要求:** 1. **独立完成实验:** 要求每位学生能够独立搭建并使用UNIX操作系统,特别是OpenSolaris的操作与使用。 2. **账号设置:** 使用个人学号和姓名汉语拼音全拼作为用户名登录系统,在主目录下创建子目录,子目录名应为个人的专业和班级(拼音)。 3. **操作记录:** 所有的操作练习都需要通过截图来记录。 4. **命令行操作:** 所有的实验内容都必须在命令行界面下完成。 5. **文档格式:** 纸质版的封面单面打印,其他页面双面打印;实验报告以光盘形式提交,全班共用一张光盘。 #### 二、实验内容分析 **1. 显示操作系统版本:** - 使用`uname -a`命令来显示当前UNIX系统的版本信息。 **2. 显示用户主目录:** - 使用`pwd`命令显示当前工作目录的完整路径。 **3. 查看当前日期和时间:** - 使用`date`命令来获取系统当前的日期和时间,了解不同的日期格式输出(如%H与%r,%y与%D的区别)。 **4. 查看当前登录用户列表:** - 使用`who`命令查看当前登录在系统中的用户列表,并结合选项查看系统启动时间和当前用户总数。 - 比较`whoami`和`who`命令的不同之处。 **5. 使用vi编辑器:** - 创建一个名为`notes`的文本文件,用于编写会议通知,并完成文件的编辑操作,如统计文件大小、修改文件内容等。 **6. 使用find命令:** - 学习使用`find`命令来搜索特定的文件或目录,如查找名为`passwd`的文件、查找一天前创建的文件等。 - 需要先创建一些测试用的文件和文件夹。 **7. Shell脚本编写与运行:** - 编写一个名为`flower`的脚本文件,实现以下功能: - 显示当前用户名。 - 显示当前主机名。 - 计算水仙花数。 - 使用重定向符将脚本的输出保存到文件中。 **8. C语言程序编写与运行:** - 编写一个C程序,实现从十六进制转换为十进制的功能。 - 安装GCC编译器来编译并运行程序。 **9. Java程序编写与运行:** - 编写一个Java程序,实现将一个字符串按字符从大到小排序的功能。 - 安装JDK并使用`javac`命令编译程序。 #### 三、结论与体会 1. **命令操作题:** 前面涉及的基本命令操作较为简单,可通过参考书籍《UNIX初级教程》逐步学习。 2. **Shell脚本编制:** 相对复杂的语法需要通过查阅教程和网络资源来学习。 3. **编程题:** C与Java编程题虽然功能简单,但配置开发环境是主要挑战之一,需要安装相应的编译器和工具。 通过本次实验的学习,加深了对UNIX系统及其衍生系统的理解和应用能力,掌握了基本的文件管理和Shell脚本编写技巧,同时也提升了编程能力。
2024-10-24 20:43:57 939KB UNIX 网络操作系统
1
合工大计算机与信息学院操作系统实验报告, 实验 二、五、六、七、八、九
2023-11-23 17:33:55 7.07MB 操作系统
1
本文介绍了操作系统实验报告中的作业调度实验,旨在进一步理解作业调度的相关内容和主要任务,并通过编程掌握作业调度的主要算法。实验内容包括给定一组作业的到达时间和运行时间,分别用先来先服务算法、短作业优先和响应比高者优先三种算法给出作业的调度顺序,并计算每一种算法的平均周转时间及平均带权周转时间并比较不同算法的优劣。文中还介绍了主要算法流程。
2023-10-05 18:53:15 2.46MB 文档资料
1
计算机操作系统实验报告及代码:实验一 银行家算法 实验二 进程调度 实验三 页面置换 实验四 进程互斥
2023-06-13 13:53:38 2.68MB 操作系统
1
(完整word版)广工操作系统实验报告.doc
2023-05-10 19:20:54 570KB (完整word版)广工操作系统实
1
操作系统实验报告-死锁的检测与解除.wps
1
动态优先权进程调度算法的模拟实现动态优先权进程调度算法的模拟实现
1