兰州大学操作系统实验九实验报告
- 格式:doc
- 大小:573.50 KB
- 文档页数:10
操作系统实验实验报告一、实验目的操作系统是计算机系统中最为关键的核心软件,它管理着计算机的硬件资源和软件资源,为用户提供了一个方便、高效、稳定的工作环境。
本次操作系统实验的目的在于通过实际操作和实践,深入理解操作系统的基本原理和核心概念,掌握操作系统的基本功能和操作方法,提高对操作系统的认识和应用能力。
二、实验环境本次实验使用的操作系统为 Windows 10 专业版,开发工具为Visual Studio 2019,编程语言为 C 和 C++。
实验硬件环境为一台配备Intel Core i7 处理器、16GB 内存、512GB SSD 硬盘的个人计算机。
三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新的进程,并在完成任务后终止进程。
在实验中,我们使用了 Windows API 函数 CreateProcess 和 TerminateProcess 来完成进程的创建和终止操作。
通过观察进程的创建和终止过程,深入理解了进程的生命周期和状态转换。
2、进程同步与互斥为了实现进程之间的同步与互斥,我们使用了信号量、互斥量等同步对象。
通过编写多线程程序,模拟了多个进程对共享资源的访问,实现了对共享资源的互斥访问和同步操作。
在实验中,我们深刻体会到了进程同步与互斥的重要性,以及不正确的同步操作可能导致的死锁等问题。
(二)内存管理实验1、内存分配与释放使用 Windows API 函数 VirtualAlloc 和 VirtualFree 进行内存的分配和释放操作。
通过实验,了解了内存分配的不同方式(如堆分配、栈分配等)以及内存释放的时机和方法,掌握了内存管理的基本原理和操作技巧。
2、内存分页与分段通过编程模拟内存的分页和分段管理机制,了解了内存分页和分段的基本原理和实现方法。
在实验中,我们实现了简单的内存分页和分段算法,对内存的地址转换和页面置换等过程有了更深入的理解。
(三)文件系统实验1、文件操作使用 Windows API 函数 CreateFile、ReadFile、WriteFile 等进行文件的创建、读取和写入操作。
《操作系统》实验报告一、实验目的操作系统是计算机系统中最为关键的组成部分之一,本次实验的主要目的是深入理解操作系统的基本原理和功能,通过实际操作和观察,熟悉操作系统的核心概念,包括进程管理、内存管理、文件系统和设备管理等,提高对操作系统的实际应用能力和问题解决能力。
二、实验环境本次实验在以下环境中进行:操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、进程管理实验进程是操作系统中最基本的执行单元。
在这个实验中,我们使用C++编写程序来创建和管理进程。
通过观察进程的创建、执行和结束过程,理解进程的状态转换和资源分配。
首先,我们编写了一个简单的程序,创建了多个子进程,并通过进程标识符(PID)来跟踪它们的运行状态。
然后,使用等待函数来等待子进程的结束,并获取其返回值。
在实验过程中,我们发现进程的创建和销毁需要消耗一定的系统资源,而且进程之间的同步和通信需要谨慎处理,以避免出现死锁和竞争条件等问题。
2、内存管理实验内存管理是操作系统的核心功能之一,它直接影响系统的性能和稳定性。
在这个实验中,我们研究了动态内存分配和释放的机制。
使用 C++中的 new 和 delete 操作符来分配和释放内存。
通过观察内存使用情况和内存泄漏检测工具,了解了内存分配的效率和可能出现的内存泄漏问题。
同时,我们还探讨了内存分页和分段的概念,以及虚拟内存的工作原理。
通过模拟内存访问过程,理解了页表的作用和地址转换的过程。
3、文件系统实验文件系统是操作系统用于管理文件和目录的机制。
在这个实验中,我们对文件的创建、读写和删除进行了操作。
使用 C++的文件流操作来实现对文件的读写。
通过创建不同类型的文件(文本文件和二进制文件),并对其进行读写操作,熟悉了文件的打开模式和读写方式。
此外,还研究了文件的权限设置和目录的管理,了解了如何保护文件的安全性和组织文件的结构。
4、设备管理实验设备管理是操作系统与外部设备进行交互的桥梁。
一、实验目的1. 理解进程的概念及其在操作系统中的作用。
2. 掌握进程的创建、调度、同步和通信机制。
3. 学习使用进程管理工具进行进程操作。
4. 提高对操作系统进程管理的理解和应用能力。
二、实验环境1. 操作系统:Windows 102. 软件环境:Visual Studio 20193. 实验工具:C++语言、进程管理工具(如Task Manager)三、实验内容1. 进程的创建与销毁2. 进程的调度策略3. 进程的同步与互斥4. 进程的通信机制四、实验步骤1. 进程的创建与销毁(1)创建进程使用C++语言编写一个简单的程序,创建一个新的进程。
程序如下:```cpp#include <iostream>#include <windows.h>int main() {// 创建进程STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi, sizeof(pi));// 创建进程if (!CreateProcess(NULL, "notepad.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {std::cout << "创建进程失败" << std::endl;return 1;}std::cout << "进程创建成功" << std::endl;// 等待进程结束WaitForSingleObject(pi.hProcess, INFINITE);// 销毁进程CloseHandle(pi.hProcess);CloseHandle(pi.hThread);return 0;}```(2)销毁进程在上面的程序中,通过调用`WaitForSingleObject(pi.hProcess, INFINITE)`函数等待进程结束,然后使用`CloseHandle(pi.hProcess)`和`CloseHandle(pi.hThread)`函数销毁进程。
操作系统实验报告模板一、实验目的本次操作系统实验的主要目的是通过实际操作和观察,深入理解操作系统的核心概念和功能,包括进程管理、内存管理、文件系统、设备管理等方面。
同时,培养学生的动手能力、问题解决能力和团队合作精神,提高对操作系统原理的掌握程度和实际应用能力。
二、实验环境1、操作系统:_____(具体操作系统名称及版本)2、开发工具:_____(如编译器、调试器等)3、硬件环境:_____(处理器型号、内存大小等)三、实验内容(一)进程管理实验1、进程创建与终止使用系统调用创建多个进程,并观察进程的创建过程和资源分配情况。
实现进程的正常终止和异常终止,观察终止时的系统行为。
2、进程调度研究不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等。
通过编程模拟实现这些调度算法,并比较它们的性能。
3、进程同步与互斥利用信号量、互斥锁等机制实现进程之间的同步与互斥。
编写多进程程序,模拟生产者消费者问题、读者写者问题等经典同步场景。
(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法、最坏适应算法等。
观察内存分配和回收的过程,分析算法的优缺点。
2、虚拟内存了解虚拟内存的概念和实现原理。
通过设置页表、进行页面置换等操作,模拟虚拟内存的管理过程。
(三)文件系统实验1、文件操作实现文件的创建、打开、读写、关闭等基本操作。
研究文件的属性(如权限、大小、创建时间等)的设置和获取。
2、目录管理创建、删除目录,遍历目录结构。
实现文件和目录的重命名、移动等操作。
(四)设备管理实验1、设备驱动程序了解设备驱动程序的结构和工作原理。
编写简单的设备驱动程序,实现对特定设备的控制和数据传输。
2、设备分配与回收研究设备分配的策略,如独占式分配、共享式分配等。
实现设备的分配和回收过程,观察系统的资源利用情况。
四、实验步骤(一)进程管理实验步骤1、进程创建与终止编写程序,使用系统调用创建指定数量的进程。
《操作系统》课内实验报告一、实验目的本次《操作系统》课内实验的主要目的是通过实际操作和观察,深入理解操作系统的基本原理和功能,掌握常见操作系统命令的使用,提高对操作系统的实际应用能力和问题解决能力。
二、实验环境本次实验在计算机实验室进行,使用的操作系统为 Windows 10 和Linux(Ubuntu 发行版)。
实验所使用的计算机配置为:Intel Core i5 处理器,8GB 内存,500GB 硬盘。
三、实验内容1、进程管理在 Windows 系统中,通过任务管理器观察进程的状态、优先级、CPU 使用率等信息,并进行进程的结束和优先级调整操作。
在 Linux 系统中,使用命令行工具(如 ps、kill 等)实现相同的功能。
2、内存管理使用 Windows 系统的性能监视器和资源监视器,查看内存的使用情况,包括物理内存、虚拟内存的占用和分配情况。
在 Linux 系统中,通过命令(如 free、vmstat 等)获取类似的内存信息,并分析内存的使用效率。
3、文件系统管理在 Windows 系统中,对文件和文件夹进行创建、复制、移动、删除等操作,了解文件的属性设置和权限管理。
在 Linux 系统中,使用命令(如 mkdir、cp、mv、rm 等)完成相同的任务,并熟悉文件的所有者、所属组和权限设置。
4、设备管理在 Windows 系统中,查看设备管理器中的硬件设备信息,安装和卸载设备驱动程序。
在 Linux 系统中,使用命令(如 lspci、lsusb 等)查看硬件设备,并通过安装内核模块来支持特定设备。
四、实验步骤1、进程管理实验(1)打开 Windows 系统的任务管理器,切换到“进程”选项卡,可以看到当前系统中正在运行的进程列表。
(2)选择一个进程,右键点击可以查看其属性,包括进程 ID、CPU 使用率、内存使用情况等。
(3)通过“结束任务”按钮可以结束指定的进程,但要注意不要随意结束系统关键进程,以免导致系统不稳定。
操作系统课程实验报告一、实验目的操作系统是计算机系统中最核心的软件之一,它负责管理计算机的硬件资源和软件资源,为用户提供一个方便、高效、安全的工作环境。
本实验的目的是通过实际操作和观察,深入理解操作系统的基本原理和功能,掌握操作系统的常用命令和操作方法,提高解决实际问题的能力。
二、实验环境操作系统:Windows 10开发工具:Visual Studio Code三、实验内容1、进程管理观察进程的创建、终止和状态转换。
使用任务管理器查看系统中的进程信息,包括进程 ID、CPU 使用率、内存占用等。
通过编程实现创建和终止进程的功能。
2、内存管理了解内存的分配和回收机制。
使用 Windows 系统提供的性能监视器查看内存的使用情况。
编程实现简单的内存分配和释放算法。
3、文件系统管理熟悉文件和目录的操作,如创建、删除、复制、移动等。
研究文件的属性,如文件名、文件大小、创建时间等。
通过编程实现文件的读写操作。
4、设备管理认识设备的驱动程序和设备管理策略。
查看系统中的设备信息,如磁盘驱动器、打印机等。
模拟设备的中断处理过程。
四、实验步骤1、进程管理实验打开任务管理器,观察当前系统中正在运行的进程。
可以看到进程的名称、进程 ID、CPU 使用率、内存占用等信息。
使用 C++语言编写一个简单的程序,创建一个新的进程。
在程序中,使用`CreateProcess`函数来创建新进程,并设置进程的属性和参数。
编写另一个程序,用于终止指定的进程。
通过获取进程 ID,然后使用`TerminateProcess`函数来终止进程。
2、内存管理实验打开 Windows 性能监视器,选择“内存”选项卡,可以查看内存的使用情况,包括物理内存、虚拟内存、页面文件等的使用量和使用率。
编写一个 C 程序,使用动态内存分配函数(如`malloc`和`free`)来分配和释放内存。
在程序中,不断分配和释放一定大小的内存块,观察内存的使用情况和性能变化。
《操作系统》课程实验报告一、实验目的本次《操作系统》课程实验的主要目的是通过实际操作和观察,深入理解操作系统的工作原理、进程管理、内存管理、文件系统等核心概念,并掌握相关的操作技能和分析方法。
二、实验环境1、操作系统:Windows 10 专业版2、开发工具:Visual Studio Code3、编程语言:C/C++三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新进程,并观察进程的创建过程和资源分配情况。
同时,实现进程的正常终止和异常终止,并分析其对系统的影响。
2、进程同步与互斥使用信号量、互斥锁等机制实现进程之间的同步与互斥。
通过模拟多个进程对共享资源的访问,观察并解决可能出现的竞争条件和死锁问题。
(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。
观察在不同的内存请求序列下,内存的分配和回收情况,并分析算法的性能和优缺点。
2、虚拟内存管理研究虚拟内存的工作原理,通过设置页面大小、页表结构等参数,观察页面的换入换出过程,以及对系统性能的影响。
(三)文件系统实验1、文件操作实现文件的创建、打开、读取、写入、关闭等基本操作。
观察文件在磁盘上的存储方式和文件系统的目录结构。
2、文件系统性能优化研究文件系统的缓存机制、磁盘调度算法等,通过对大量文件的读写操作,评估不同优化策略对文件系统性能的提升效果。
四、实验步骤(一)进程管理实验步骤1、进程创建与终止(1)使用 C/C++语言编写程序,调用系统函数创建新进程。
(2)在子进程中执行特定的任务,父进程等待子进程结束,并获取子进程的返回值。
(3)通过设置异常情况,模拟子进程的异常终止,观察父进程的处理方式。
2、进程同步与互斥(1)定义共享资源和相关的信号量或互斥锁。
(2)创建多个进程,模拟对共享资源的并发访问。
(3)在访问共享资源的关键代码段使用同步机制,确保进程之间的正确协作。
(4)观察并分析在不同的并发情况下,系统的运行结果和资源竞争情况。
实验九实验名称:设备管理观察实验目的:1.掌握设备管理的基本命令2.可以获取和设置系统当前设备相关的主要信息实验时间3学时预备知识:1.基本命令命令名功能说明mknod 建立块/字符特殊文件kudzu 侦测和配置新硬件dislocate 使进程和终端断开连接或重新连接getty 设置终端工作方式stty 改变/查询终端行设置hztty 建立理解不同编码的终端会话setterm 设置终端属性tset 终端初始化tput 初始化终端或查询terminfo数据库resizecons 改变控制台尺寸的核心数据unicode_start 使控制台在Unicode方式下工作unicode_stop 使控制台不在Unicode方式下工作kbd_mode 报告或设置键盘工作方式kbdrate 重置键盘重复率和延迟时间loadkeys 装入键盘转换表dumpkeys 转储键盘转换表setmetamode 定义键盘元键处理showkey 检查键盘送来的扫描码和键码chvt 改变前台虚拟终端fgconsole 显示虚拟活动终端数deallocvt 释放空闲的虚拟终端数openvt,open 在一个新的虚拟终端上启动一个程序switchto 切换至新的虚拟终端vlock 锁住虚拟终端screen VT100/ANSI终端仿真的屏幕管理器mev 报告鼠标事件ls -l 略2./proc文件系统文件(目录)名内容说明/proc/devices 主要的字符和块设备编号及分配给这些编号的驱动程序名字/proc/ioports 各种设备驱动程序注册的I/O端口范围/proc/dma 被驱动程序留作专用的DMA通道以及驱动程序赋予的名字/proc/scsi scsi设备及其相关信息/proc/pci PCI设备信息/proc/rtc 硬件实时时钟的相关信息/proc/misc 被内核函数misc_register注册的驱动程序3.几类典型设备设备文件名设备(说明)/dev/null 用于不需存储的输出(虚拟字符设备)/dev/zero 用于二进制“0”的无限提供(虚拟字符设备)/dev/random 随机数池(虚拟字符设备)/dev/urandom 伪随机数池(虚拟字符设备)/dev/ttyS0 COM1/dev/ttyS1 COM2/dev/lp0 LPT1/dev/lp1 LPT2/dev/psaux PS/2端口/dev/fd0~/dev/fd7 软驱/dev/hda~/dev/hdh IDE设备/dev/sda~/dev/sddx SCSI设备实验要求:1.利用手册页,学习设备相关主要命令(以上所列全部)的用法,并列出你的系统当前的信息。
《操作系统》实验报告书班级计算机科学与技术一班姓名朱乾超郭奔邬维袁平欣学号20107986 20107988 20107989 20107990 成绩中南林业科技大学涉外学院理工系2012年12月一、实验的目的和要求操作系统是一门实践性很强的课程,只有把理论和实践紧密地结合在一起,才能取得较好的学习效果。
学生们通过课堂学习或自学,并在完成书本每一章后面的一些习题后,理解了操作系统的基本概念。
但仅有这一方面的训练还是很不够的。
一个普遍的规律是学生们似乎已掌握了书本内容,也能完成一些基本的习题甚至很轻松地通过了一些测验,但一旦需要编制一个稍为复杂的实用系统软件,哪怕只有近百行的不大的程序,就会碰到很多难以克服的困难,甚至不知从何处下手。
即使绞尽了脑汁,花了很多时间才编写出来的程序,在计算机上却怎么也调试不出来。
程序中不仅有不少平时不注意的语法错误,更含有一些严重的逻辑错误,改正了一个又暴露出了另一个。
好多小时过去了,不少学生还坐在终端前面束手无策。
即使勉强调试出了程序,但程序结构性差,效率低,也经不起较为严格的测试。
上机实验是一种更全面更严格的训练,是学习环节中的一个不可缺少的组成部分。
实验对于提高学生用学到的书本知识解决实际问题,培养实际工作所需要的动手能力,对于提高以科学理论和工程上的技术规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性的作用。
机器是最为严厉的老师,通过上机实验,学生可以在程序设计方法、上机操作等基本技能和科学的作风方面受到比较系统和严格的训练。
很多学生认为上机实验就是编写一个程序,上机通一通。
有少数学生甚至不作准备,直接在终端前“打草稿”,边运行边修改。
这些学生以为按实验步骤规范地做是添了麻烦,做“文章”比编程更吃力。
对以往的教学实验中的问题分析表明,规范化的实验步骤不但可以培养科学、正规化的工作方法和作风,为今后设计编制复杂、庞大的应用程序和系统程序打下扎实的基础,即使在现阶段的实验中也能有效地少犯和避免犯大错误,节约上机准备和上机调试时间。
实验九
实验名称:
设备管理观察
实验目的:
1.掌握设备管理的基本命令
2.可以获取和设置系统当前设备相关的主要信息
实验时间
3学时
预备知识:
1.基本命令
命令名功能说明mknod 建立块/字符特殊文件
kudzu 侦测和配置新硬件
dislocate 使进程和终端断开连接或重新连接
getty 设置终端工作方式
stty 改变/查询终端行设置
hztty 建立理解不同编码的终端会话
setterm 设置终端属性
tset 终端初始化
tput 初始化终端或查询terminfo数据库resizecons 改变控制台尺寸的核心数据
unicode_start 使控制台在Unicode方式下工作unicode_stop 使控制台不在Unicode方式下工作
kbd_mode 报告或设置键盘工作方式
kbdrate 重置键盘重复率和延迟时间
loadkeys 装入键盘转换表
dumpkeys 转储键盘转换表
setmetamode 定义键盘元键处理
showkey 检查键盘送来的扫描码和键码
chvt 改变前台虚拟终端
fgconsole 显示虚拟活动终端数
deallocvt 释放空闲的虚拟终端数
openvt,open 在一个新的虚拟终端上启动一个程序switchto 切换至新的虚拟终端
vlock 锁住虚拟终端
screen VT100/ANSI终端仿真的屏幕管理器
mev 报告鼠标事件
ls -l 略
2./proc文件系统
文件(目录)名容说明
/proc/devices 主要的字符和块设备编号及分配给这些编号的驱动程序名字
/proc/ioports 各种设备驱动程序注册的I/O端口围
/proc/dma 被驱动程序留作专用的DMA通道以及驱动程序赋予的名字
/proc/scsi scsi设备及其相关信息
/proc/pci PCI设备信息
/proc/rtc 硬件实时时钟的相关信息
/proc/misc 被核函数misc_register注册的驱动程序
3.几类典型设备
设备文件名设备(说明)
/dev/null 用于不需存储的输出(虚拟字符设备)
/dev/zero 用于二进制“0”的无限提供(虚拟字符设备)
/dev/random 随机数池(虚拟字符设备)
/dev/urandom 伪随机数池(虚拟字符设备)
/dev/ttyS0 COM1
/dev/ttyS1 COM2
/dev/lp0 LPT1
/dev/lp1 LPT2
/dev/psaux PS/2端口
/dev/fd0~/dev/fd7 软驱
/dev/hda~/dev/hdh IDE设备
/dev/sda~/dev/sddx SCSI设备
实验要求:
1.利用手册页,学习设备相关主要命令(以上所列全部)的用法,并列出你的系统当前的
信息。
2.利用/proc文件系统,列出你的系统当前的信息,并解释相关容。
3.观察/dev目录中的文件,使用ls –l命令,解释各项信息的含义。
实验报告:
实验名称:
实验日期:
实验设备号:
实验目的:
实验步骤:(完成实验要求的工作,需列出执行命令和执行结果,并有相关分析和解释。
)认识和体会:
1
2.
3.
/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/loop[0-7]:本地回环设备
/dev/ram[0-15]:存
/dev/null:无限数据接收设备,相当于黑洞/dev/zero:无限零资源
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制台
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9] /dev/random:随机数设备/dev/urandom:随机数设备。