期末操作系统实验报告

合集下载

操作系统实验报告三

操作系统实验报告三

操作系统实验报告三一、实验目的本次实验的目的是通过设计和实现一个简单的操作系统,加深对操作系统内核设计的理解,并学习操作系统内核的基本构建和运行原理。

二、实验背景操作系统是计算机系统中最核心的软件之一,它负责管理计算机的各种资源以及协调和控制应用程序的执行。

操作系统的设计和实现使计算机能够高效地运行并提供友好的用户接口。

操作系统也为应用程序提供了统一的软硬件访问接口,方便开发人员进行软件开发。

操作系统的设计和实现是计算机科学与技术领域中重要的研究方向之一。

通过操作系统的实验,可以深入了解操作系统的内部原理和机制,加深对操作系统的理解和认识。

三、实验内容本次实验需要设计和实现一个简单的操作系统,完成以下功能:1. 实现一个简单的内存管理模块,包括内存分配和释放的功能。

2. 实现一个简单的进程管理模块,包括进程的创建、撤销和切换的功能。

3. 实现一个简单的文件系统模块,包括文件的读写和目录的管理功能。

4. 实现用户与操作系统之间的交互界面,方便用户进行操作系统的使用。

四、实验步骤1. 设计和实现内存管理模块:a. 设计内存分配算法,根据系统的需要分配和释放内存空间。

b. 实现内存分配和释放的功能函数,确保能够正确地分配和释放内存空间。

2. 设计和实现进程管理模块:a. 设计进程控制块(PCB),记录进程的相关信息。

b. 实现进程的创建、撤销和切换的功能函数,确保进程能够正确地被创建、撤销和切换。

3. 设计和实现文件系统模块:a. 设计文件控制块(FCB),记录文件的相关信息。

b. 实现文件的读写和目录的管理功能函数,确保文件能够正确地被读写和目录能够正确地被管理。

4. 实现用户与操作系统之间的交互界面:a. 设计用户界面,包括命令解释器等。

b. 实现用户输入命令的解释和执行函数,确保用户能够正确地与操作系统进行交互。

五、实验结果与分析经过实验,我们成功地设计和实现了一个简单的操作系统,并完成了内存管理、进程管理和文件系统的功能实现。

操作系统实验实验报告

操作系统实验实验报告

操作系统实验实验报告一、实验目的操作系统是计算机系统中最为关键的核心软件,它管理着计算机的硬件资源和软件资源,为用户提供了一个方便、高效、稳定的工作环境。

本次操作系统实验的目的在于通过实际操作和实践,深入理解操作系统的基本原理和核心概念,掌握操作系统的基本功能和操作方法,提高对操作系统的认识和应用能力。

二、实验环境本次实验使用的操作系统为 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 2000编程,进一步熟悉操作系统的基本概念,较好地理解windows 2000的结构。

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows 2000中进程的“一生”。

二、实验环境硬件环境:计算机一台,局域网环境;软件环境:windows 2000 professional、visual c++6.0企业版。

三、实验内容和步骤第一部分:程序1-1windows 2000 的gui 应用程序windows 2000 professional下的gui应用程序,使用visual c++编译器创建一个gui应用程序,代码中包括了winmain()方法,该方法gui类型的应用程序的标准入口点。

:: messagebox( null, “hello, windows 2000” , “greetings”,mb_ok) ;/* hinstance */ , /* hprevinstance */, /* lpcmdline */, /* ncmdshow */ )return(0) ; }在程序1-1的gui应用程序中,首先需要windows.h头文件,以便获得传送给winmain() 和messagebox() api函数的数据类型定义。

接着的pragma指令指示编译器/连接器找到user32.lib库文件并将其与产生的exe文件连接起来。

这样就可以运行简单的命令行命令cl msgbox.cpp来创建这一应用程序,如果没有pragma指令,则messagebox() api函数就成为未定义的了。

这一指令是visual studio c++ 编译器特有的。

接下来是winmain() 方法。

其中有四个由实际的低级入口点传递来的参数。

操作系统实验报告6

操作系统实验报告6

操作系统实验报告6一、实验目的本次操作系统实验的主要目的是深入了解和掌握操作系统中进程管理、内存管理、文件系统等核心概念和相关技术,通过实际操作和观察,增强对操作系统工作原理的理解,并提高解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,实验工具包括 Visual Studio 2019 等。

三、实验内容(一)进程管理实验1、创建多个进程,并观察它们的运行状态和资源占用情况。

通过编写简单的C++程序,使用Windows API 函数创建多个进程。

在程序中,设置不同的进程优先级和执行时间,观察操作系统如何调度这些进程,以及它们对 CPU 使用率和内存的影响。

2、进程间通信实现了进程间的管道通信和消息传递。

通过创建管道,让两个进程能够相互交换数据。

同时,还使用了 Windows 的消息机制,使进程之间能够发送和接收特定的消息。

(二)内存管理实验1、内存分配与释放使用 C++的动态内存分配函数(如`malloc` 和`free`),在程序运行时动态申请和释放内存。

观察内存使用情况,了解内存碎片的产生和处理。

2、虚拟内存管理研究了 Windows 操作系统的虚拟内存机制,通过查看系统的性能监视器,观察虚拟内存的使用情况,包括页面文件的大小和读写次数。

(三)文件系统实验1、文件操作进行了文件的创建、读取、写入、删除等基本操作。

通过编写程序,对不同类型的文件(如文本文件、二进制文件)进行处理,了解文件系统的工作原理。

2、目录操作实现了目录的创建、删除、遍历等功能。

了解了目录结构在文件系统中的组织方式和管理方法。

四、实验步骤(一)进程管理实验步骤1、打开 Visual Studio 2019,创建一个新的 C++控制台项目。

2、在项目中编写代码,使用`CreateProcess` 函数创建多个进程,并设置它们的优先级和执行时间。

3、编译并运行程序,通过任务管理器观察进程的运行状态和资源占用情况。

《操作系统》实验报告

《操作系统》实验报告

《操作系统》实验报告一、实验目的操作系统是计算机系统中最为关键的组成部分之一,本次实验的主要目的是深入理解操作系统的基本原理和功能,通过实际操作和观察,熟悉操作系统的核心概念,包括进程管理、内存管理、文件系统和设备管理等,提高对操作系统的实际应用能力和问题解决能力。

二、实验环境本次实验在以下环境中进行:操作系统: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. 操作系统基本操作的应用;3. 实验项目:文件读写、多进程、多线程。

二、实验环境操作系统:Windows 10编译器:Visual Studio语言:C/C++实验平台:Windows 10系统下的虚拟机三、实验过程1. 操作系统基本概念及原理的学习操作系统是计算机系统中最基本的系统软件,负责管理计算机硬件资源、提供用户接口以及执行各种应用程序。

在实验过程中,我们学习了以下基本概念及原理:(1)进程管理:进程是操作系统能够进行运算处理的独立单位,具有动态性、并发性、异步性和独立性等特点。

进程管理主要包括进程的创建、调度、同步、通信和终止等。

(2)内存管理:内存管理是操作系统核心功能之一,主要负责分配、回收、保护和管理内存资源。

内存管理方式有分页、分段、段页式等。

(3)文件系统:文件系统是操作系统用于存储、检索和管理文件的机制。

文件系统主要包括目录结构、文件属性、文件操作等。

(4)设备管理:设备管理负责管理计算机系统中的各种外部设备,包括输入、输出和存储设备。

设备管理主要包括设备分配、设备驱动程序、缓冲区管理等。

2. 操作系统基本操作的应用在实验过程中,我们应用以下基本操作:(1)进程管理:创建、调度、同步、通信和终止进程。

(2)内存管理:分配、回收、保护和管理内存资源。

(3)文件系统:创建、删除、读写文件,实现目录结构的管理。

(4)设备管理:分配、回收、控制和管理设备。

3. 实验项目:文件读写、多进程、多线程(1)文件读写实验实验目的:掌握文件的基本操作,实现文件的创建、打开、读取、写入和关闭。

实验步骤:① 创建一个文件,命名为“test.txt”。

② 打开文件,以读写模式。

操作系统实验报告3篇

操作系统实验报告3篇

课程设计说明书设计题目:操作系统课程设计班级:信息管理与信息系统2011级学号:姓名:山东科技大学2013年12 月25 日课程设计任务书学院信息科学与工程专业信息学管理与信息系统班级2011-1姓名一、课程设计题目:操作系统课程设计二、课程设计主要参考资料(1)Abraham Silberschatz & Peter Baer Galvin & Greg Gagne. Operating System Concepts(第七版影印版). 高等教育出版社. 2007.3.(2)计算机操作系统(第三版)西安电子科技大学出版社(3)三、课程设计应解决的主要问题:(1)CPU调度算法的模拟实现(2)死锁相关算法的实现(3)磁盘调度算法的实现四、课程设计相关附件(如:图纸、软件等):(1)程序源代码(2)五、任务发出日期:2013-10-1 课程设计完成日期:2014-1-1指导教师签字:指导教师对课程设计的评语成绩:指导教师签字:年月日设计1 CPU调度算法的模拟实现一、设计目的1、根据系统的资源分配策略所规定的资源分配算法2、利用编程语言,模拟实现先来先服务(FCFS)、最短作业优先(非抢占SJF)、非抢占优先调度算法、时间片轮转调度算法(RR)3、针对模拟进程,利用CPU调度算法进行调度4、进行算法评价,计算平均周转时间和平均等待时间二、设计要求1、调度所需的进程参数由输入产生(手工输入或者随机数产生)2、输出调度结果3、输出算法评价指标三、设计说明1、定义public类:class program{public:char name;//进程名int atime;//进程到达的时间int stime;//进程服务的时间int btime;//进程开始执行的时间int ftime;//进程完成的时间int rtime;//进程的周转时间float qrtime;//进程的带权周转时间};2、冒泡排序:class program t;for( i=1;i<m;i++)for(int j=0;j<m-i;j++)if(p[j].atime>p[j+1].atime){t=p[j];p[j]=p[j+1];p[j+1]=t;}3、流程图:(1)①先来先服务调度流程图:②主要程序p[0].btime=p[0].atime;p[0].ftime=p[0].atime+p[0].stime;p[0].rtime=p[0].ftime-p[0].atime;p[0].qrtime=(float)p[0].rtime/p[0].stime;for(i=1;i<m;i++){if(p[i].atime>p[i-1].ftime){p[i].btime=p[i].atime;}else{p[i].btime=p[i-1].ftime;}p[i].ftime=p[i].btime+p[i].stime;p[i].rtime=p[i].ftime-p[i].atime;p[i].qrtime=(float)p[i].rtime/p[i].stime;}①短作业优先进程(非抢占优先权)调度流程图:②(SJF)主要代码int k=0,x=0;for(i=k+1;i<m;i++){for(j=k+1;j<m;j++){if(p[j].atime<p[k].ftime){x++;}elsebreak;}int min=k+1;if(x>1){for(j=k+2;j<=x+k;j++){if(p[j].stime<p[min].stime){min=j;}}t=p[min];p[min]=p[k+1];p[k+1]=t;p[k+1].ftime=p[k].stime+p[k+1].stime;}k++;x=0;}③优先权调度算法(非抢占):int k=0,x=0;for(i=k+1;i<m;i++){for(j=k+1;j<m;j++){if(p[j].atime<p[k].ftime){x++;}elsebreak;}int min=k+1;if(x>1){for(j=k+2;j<=x+k;j++){if(p[j].youxianquan<p[min].youxianquan){min=j;}}t=p[min];p[min]=p[k+1];p[k+1]=t;p[k+1].ftime=p[k].stime+p[k+1].stime;}k++;x=0;}①时间片轮转调度算法:②主要算法int time=p[0].atime;int Max=p[0].stime1;for(i=0; i<m; i++){p[i].stime2=p[i].stime1;if(p[i].stime1>Max)Max=p[i].stime1; }for(int j=0; j<Max; j++){for(i=0; i<m; i++){if(p[i].stime2==0)continue;if(p[i].atime<=time){p[i].stime2-=1;time+=1;}elsei=-1;if(p[i].stime2==0)p[i].ftime=time;}}4、输出p[0].btime=p[0].atime;p[0].ftime=p[0].atime+p[0].stime;p[0].rtime=p[0].ftime-p[0].atime;p[0].qrtime=(double)p[0].rtime/p[0].stime;for(i=1;i<m;i++){if(p[i].atime>p[i-1].ftime){p[i].btime=p[i].atime;}else{p[i].btime=p[i-1].ftime;}p[i].ftime=p[i].btime+p[i].stime;p[i].rtime=p[i].ftime-p[i].atime;p[i].qrtime=(float)p[i].rtime/p[i].stime;}cout<<"进程******到达时间**服务时间**开始执行时间*完成时间**周转时间**带权周转时间"<<endl;for(i=0;i<m;i++){cout<<setiosflags(ios::left)<<setw(10)<<p[i].name<<setw(10)<< p[i].atime<<setw(10)<<p[i].stime<<setw(13)<<p[i].btime<<setw(10) <<p[i].ftime<<setw(10)<<p[i].rtime<<setw(13)<<p[i].qrtime<<endl;}}四、运行结果及分析1、先来先服务(FCFS)测试数据2、短作业优先(SJF)测试数据3、优先权(非抢占)测试数据4、时间片轮转(RR)测试数据五、总结通过这次试验,我进一步的理解了冒泡排序的算法,而且,对进程作业先来先服务、短进程优先、非抢占优先、按时间片轮转调度算法以及进程调度的概念和算法,有了更深入的认识!初步理解了操作系统对于作业处理的基本思想!了解到算法很重要,又更加明白算法本身可以节约时间。

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

深圳大学实验报告实验项目名称:操作系统实验报告学院:师范学院专业:教育技术学指导教师:涂向华报告人:赵静静学号:2010122004 实验时间:2012.12.20实验报告提交时间:2012 12.24教务处制实验一进程调度模拟程序设计【实验内容】设计一个有几个进程并发执行的进程调度程序,每个进程由一个进程控制块(PCB)表示,进程控制块通常应包括下述信息:进程名,进程优先数,进程需要运行的时间,占用CPU的时间以及进程的状态等,且可按照调度算法的不同而增删。

调度程序应包含2种不同的调度算法,运行时可以任选一种,以利于各种方法的分析和比较。

系统应能显示或打印各进程状态和参数的变化情况,便于观察。

【实验目的】进程是操作系统最重要的概念之一,也是操作系统的主要内容,本实验要求学生独立地用高级语言编写一个进程调度程序,调度算法可任意选择或自行设计,本实验可使学生加深对进程调度和各种调度算法的理解。

【实验过程】1.做出进程调用流程图:2.先来先服务算法(FCFS)算法思想该算法思想是按照进入就绪队列的先后次序来分配处理机。

FCFS 采用非剥夺调度方式,即一旦某个进程占有处理机,就一直运行下去,直到该进程完成其工作或因等待某一事件而不能继续执行时才释放处理机。

3.时间片轮转法(Round Robin)算法思想该算法思想是使每个进程在就绪队列中的等待时间与享受服务的时间成比例。

即将CPU的处理时间分成固定大小的时间片,如果在执行的一个进程把它分给它的时间片用完了,但任务还没有完成,则它也只能停止下来,释放它所占的CPU资源,然后排在相应的就绪队列的后面去。

本次实验运用到的时间片轮转法:1.设系统有3个进程,每个进程用一个进程控制块PCB来代表。

2.为每个进程任意确定一个要求运行时间。

3.按照进程输入的先后顺序排成一个队列。

再设一个队首指针指向第一个到达进程的首址。

4.执行处理机调度时,开始选择队首的第一个进程运行。

另外,再设一个当前运行进程的指针,指向当前正在运行的进程。

5.考虑到代码的可重用性, 轮转法调度程序是调用同一个模快进行输出。

注:由于轮转法调度程序和最高优先级优先调度和最高优先级优先调度是调用同一个模快进行输出,所以在时间轮转法调度算法的进程中,依然显示了随即产生的优先级数.6.进程运行一次后,以后的调度则将当前指针依此下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。

同时还应判断该进程的要求运行时间是否等于已运行时间。

若不等,则等待下一轮的运行,否则将该进程的状态置为完成态,并退出循环队列。

7.若就绪队列不空,则重复上述的(5)和(6)步骤直到所有的进程都运行完为止。

8.在所设计的调度程序中,包含显示或打印语句。

显示或打印每次选中的进程的名称及运行一次后队列的变化情况。

实验代码:FCFS算法#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 5 //进程个数,可改变int rt[N]; //到达时间int st[N]; //服务时间int ct[N]; //完成时间int cyt[N]; //周转时间float rct[N]; //带权周转时间float av[2];int n,m;void line() //美化程序,使程序运行时更加明朗美观{printf("------------------------------------------------------------------\n");}void start() //表示FCFS算法开始{line();printf(" FCFS算法开始\n");printf(" ——Designed by Zhang Hong\n");line();}void end() //表示FCFS算法结束{line();printf(" FCFS算法结束,谢谢使用\n");line();}void input(){printf("请输入%d个进程的到达时间:",N);for (n=0;n<N;n++)scanf("%d",&rt[n]);printf("请输入%d个进程对应的服务时间:",N);for (n=0;n<N;n++)scanf("%d",&st[n]);}【实验结论】经过做实验,通过这个实验我也体会到思路的重要性,一个程序如果一开始计划的好,结构设计完善,才可能顺利进行。

另外,在编写程序之前,由于先画来流程图,对应流程图的顺序来实现程序,能对程序有个全局的把握,提高了编写速度,减少了错误。

同时在专业方面:FCFS算法有利于CPU繁忙的作业,而不利于I/O 繁忙型的作业(进程)。

实验二页面置换模拟程序设计【实验结论】通过在课堂上自己动手做页面置换的实验,实验加深了我对请求页式存储管理实现原理的理解,并掌握较简单的页面置换的算法。

自己按代码提示输入几个数,最后也成功阐释了算法的思想。

例如:先进先出淘汰算法(FIFO)、最近最少使用淘汰算法(LRU)、最佳淘汰算法(OPT)等。

例如:FIFO算法总是淘汰最先进入内存的页面。

把进程已调入内存的页面。

按先后次序连接成一个队列,并设置一个所谓的替换指针,使它总是指向内存中的最老页面。

LRU算法每次都淘汰最近最少使用的页面,即淘汰最后一次访问时间距当前时间间隔最长的页面。

堆栈法。

当一个页面被访问时,其对应的页面号被置入栈顶;淘汰时,取栈底的页面号所对应的页面。

OPT算法每次都淘汰以后永不使用,或者过最长时间后才会被访问的页面。

实验三文件系统实验【实验结论】通过在课上与同学共同合作,通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。

为linux系统设计一个简单的二级文件系统。

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。

也指用于存储文件的磁盘或分区,或文件系统种类。

通过在虚拟机上实现,最后根据虚拟机的提示,输入相应的语句,以此明白其文件系统具体实现的过程。

实验四LINUX文本编辑【实验结论】通过实验,我知道了什么是vi编辑器:首先它是linux下最有名的编辑器,也是我们学习linux必须掌握的工具,在linux下也可使用vi进行程序的开发,如java程序,c程序两种操作模式:命令模式和编辑模式。

通过调用vi编辑器我们可以调用电脑系统的各个部件,也简单会用一些vi编辑器的语言:从命令模式下按“i”,”a“,“o”三个键就可进入编辑模式; i 插入,从目前光标所在之处插入;a 增加,目前光标所在下一个字开始输入文字。

wq or q![wq表示退出保存,q!表示退出不保存]。

通过了解vi编辑器,帮助我在后面的实验中剪辑代码时更方便。

这是入门的基本。

实验五系统行为观察级【实验结论】1.关于观察Linux内存分配结果:我了解到关于函数malloc 的相关知识:功能:内存分配函数。

当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

用法:void *malloc(unsigned size);malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。

2.关于Linux虚拟内存管理的原理:通常情况下,Linux用交换分区(swap分区)来处理这个问题。

在硬盘上开设一个独立的分区专门用于映射虚拟内存,这种分区称为交换分区。

在Linux中共享文件:例如基于路径名的共享方式:(1)系统允许用户按路径名直接访问别人的文件,系统主要进行访问者的存取权限的检查。

(2)基于索引节点的共享方式(3)基于文件目录项和索引节点的共享方式。

(4)基于符号链接的共享方式,符号链接是一种特殊类型的文件,其内容是被共享文件或目录的路径名。

实验六系统管理级【实验结论】通过实验,我简单了解了什么是注册表:它是是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用。

认识到注册表在屏蔽WINDOW2000桌面上的回收站的方法中起着重要作用,而且注册表不能肆意更改,否则后果很严重。

而注册表根键:包括启动应用程序所需的全部信息,包括扩展名,应用程序与文档之间的关系,驱动程序名,DDE和OLE信息,类ID编号和应用程序与文档的图标等。

实验不仅提高了自己的动手能力,更加深了对课本理论知识的深度理解。

实验七源代码阅读级【实验结论】1.进程调度程序中,我了解到Linux内核源代码:arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。

如对于X86平台就是i386。

include 这个目录包括了核心的大多数include文件。

另外对于每种支持的体系结构分别有一个子目录。

init 此目录包含核心启动代码。

同时了解到Goodness只是一个简单的函数,但是它是Linux调度程序必不可少的部分。

运行对立中的每个进程每次执行schedule时都可能调用它,因此其执行速度必须很快。

但是如果一旦它调度失误,那么整个系统都要遭殃了。

2.跟踪系统查找文件过程:linux内核源代码分析工具,在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。

而在Windows 平台下有一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件。

3.关于虚拟文件系统,我了进一步的认识,例如它的虚拟性,是因为它所有的数据结构都是在运行以后才建立,并在卸载时删除,而在磁盘上并没有存储这些数据结构,显然如果只有VFS,系统是无法工作的,因为它的这些数据结构不能凭空而来,只有与实际的文件系统,如Ext2、Minix、MSDOS、VFAT等相结合,才能开始工作,所以VFS并不是一个真正的文件系统。

与VFS相对,我们称Ext2、Minix、MSDOS等为具体文件系统。

关于这学期的操作系统实验,首先感谢涂老师的耐心细致的教导,在和同学们的共同学习中,我们也有了更深一步的交流。

通过动手实践实验,对课本的理论知识有了更深入的了解。

同时也打开了我的眼界,让我看到操作系统这个领域不仅仅局限于书本教材上的知识,于是乎这就更鞭策我在操作系统这个领域里积极的探索,希望通过自己的努力挖出属于自己的宝藏!指导教师批阅意见:成绩评定:指导教师签字:年月日备注:。

相关文档
最新文档