计算机操作系统实验报告表格资料

合集下载

(完整word版)操作系统实验报告.实验一 WINDOWS进程初识

(完整word版)操作系统实验报告.实验一 WINDOWS进程初识

操作系统教程实验指导书实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。

(2)掌握WINDOWS API的使用方法。

(3)编写测试程序,理解用户态运行和核心态运行。

2、实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC++ 6.0。

步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。

创建一个新的控制台应用程序工程。

步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。

步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。

编译成可执行文件。

步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :答:运行成功,结果:(2)计算进程在核心态运行和用户态运行的时间步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。

步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。

步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。

《操作系统》实验报告

《操作系统》实验报告

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

二、实验环境本次实验在以下环境中进行:操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、进程管理实验进程是操作系统中最基本的执行单元。

在这个实验中,我们使用C++编写程序来创建和管理进程。

通过观察进程的创建、执行和结束过程,理解进程的状态转换和资源分配。

首先,我们编写了一个简单的程序,创建了多个子进程,并通过进程标识符(PID)来跟踪它们的运行状态。

然后,使用等待函数来等待子进程的结束,并获取其返回值。

在实验过程中,我们发现进程的创建和销毁需要消耗一定的系统资源,而且进程之间的同步和通信需要谨慎处理,以避免出现死锁和竞争条件等问题。

2、内存管理实验内存管理是操作系统的核心功能之一,它直接影响系统的性能和稳定性。

在这个实验中,我们研究了动态内存分配和释放的机制。

使用 C++中的 new 和 delete 操作符来分配和释放内存。

通过观察内存使用情况和内存泄漏检测工具,了解了内存分配的效率和可能出现的内存泄漏问题。

同时,我们还探讨了内存分页和分段的概念,以及虚拟内存的工作原理。

通过模拟内存访问过程,理解了页表的作用和地址转换的过程。

3、文件系统实验文件系统是操作系统用于管理文件和目录的机制。

在这个实验中,我们对文件的创建、读写和删除进行了操作。

使用 C++的文件流操作来实现对文件的读写。

通过创建不同类型的文件(文本文件和二进制文件),并对其进行读写操作,熟悉了文件的打开模式和读写方式。

此外,还研究了文件的权限设置和目录的管理,了解了如何保护文件的安全性和组织文件的结构。

4、设备管理实验设备管理是操作系统与外部设备进行交互的桥梁。

计算机操作系统实验报告(文件基本操作)

计算机操作系统实验报告(文件基本操作)

数学与计算机科学系实验报告课程:计算机操作系统地点:软件实验室二时间:2013年月日3、显示你登录目录的绝对路径,给出这个会话过程。

4、在系统中,执行cd professional/course命令,回答下列问题:a、你的主目录的绝对路径是什么?给出获得该绝对路径的命令及命令输出。

b、执行cd os/lab命令。

然后执行一个命令显示当前目录的绝对路径,给出这个会话过程。

5、改变目录到/usr。

在这个目录下有多少个文件和目录,他们的文件内容类型是什么?6、在/usr/bin目录下有多少个普通文件、目录文件和链接文件?如何得到这个答案?7、你系统中的Linux内核映像文件在那个目录中?给出这个可执行内核映像文件的名称和文件内容类型。

8、Linux系统规定,隐含文件是首字符为”.”的文件,如.profile。

在你的系统中查找.profile 和. login文件,他们在什么地方,给出这两个文件部分内容。

9、显示你的主目录下的所有隐含文件的文件名。

给出你的会话过程。

10、vi编辑器的使用:a、在shell提示符下,输入vi firscrip并按<Enter>键。

vi的界面将出现在显示屏上;你的主目录temp professional personalcourse Generalc++ dartastructureosppt lab programb、输入a,输入ls –la,并按<Enter>键;c、输入who,并按<Enter>键;d、输入pwd,再按<Enter>键。

e、输入:wq,并按<Enter>键;f、在shell提示符下,输入bash firscrip并按<Enter>键;g、观察结果。

当前的工作目录中有多少个文件?他们的名称和大小?还有谁在使用你的计算机系统?当前的工作目录是什么?10、在系统中运行vi并创建一个bash shell脚本文件,它包含下面行:echo $SHELLchsh –l然后以sheller为名保存该文件并退出vi。

《操作系统》实验报告

《操作系统》实验报告

一、实验目的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)`函数销毁进程。

《操作系统》课内实验报告

《操作系统》课内实验报告

《操作系统》课内实验报告一、实验目的本次《操作系统》课内实验的主要目的是通过实际操作和观察,深入理解操作系统的基本原理和功能,掌握常见操作系统命令的使用,提高对操作系统的实际应用能力和问题解决能力。

二、实验环境本次实验在计算机实验室进行,使用的操作系统为 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)通过“结束任务”按钮可以结束指定的进程,但要注意不要随意结束系统关键进程,以免导致系统不稳定。

操作系统实验报告1

操作系统实验报告1

《操作系统》实验报告实验序号:01 实验项目名称:操作系统环境学号1107xxx 姓名xxx 专业、班级软件工程1103 实验地点计—502 指导教师徐冬时间2013.9.23 实验目的1) 了解和学习Windows系统管理工具及其使用;2) 熟悉Windows系统工具的内容和应用;由此,进一步熟悉Windows操作系统的应用环境。

工具/准备工作在开始本实验之前,请回顾教科书的相关内容。

需要准备一台运行Windows 操作系统的计算机。

实验内容与步骤1. 计算机管理2. 事件查看器3. 性能监视4. 服务5. 数据库 (ODBC)为了帮助用户管理和监视系统,Windows提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。

如图2所示。

图2 基于虚拟机的操作系统计算环境管理步骤1:登录进入Windows。

步骤2:在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。

在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1) Internet 信息服务;管理IIS,Internet 和Intranet站点的WEB服务器。

2) Server Extensions 管理器;Server Extensions管理器。

3)计算机管理;管理磁盘以及使用其他系统工具来管理本地或远程的计算机。

4)性能;显示系统性能图表以及配置数据日志和警报。

5)本地安全策略;查看和修改本地安全策略,如用户权限和审核策略。

6)事件查看器;显示来自于Windows和其他程序的监视与排错消息。

7)组件服务;配置和管理COM+应用程序。

1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。

步骤3:在“管理工具”窗口中,双击“计算机管理”图标。

“计算机管理”使用的窗口与“Windows资源管理器”相似。

计算机操作系统实验报告表格

计算机操作系统实验报告表格

计算机与信息学院 实验课程:操作系统阜阳师范学院 Fuyang Teachers College实验报告 ====================================================================专业:年级班级: ~ 学年 第 学期姓名 学号:实验报告实验报告实验报告}exit(0);}main( ){ client( );}2.server.c#include <sys/types.h>#include <sys/msg.h>#include <sys/ipc.h>#define MSGKEY 75struct msgform{ long mtype;char mtext[1000];}msg;int msgqid;void server( ){msgqid=msgget(MSGKEY,0777|IPC_CREAT); do{msgrcv(msgqid,&msg,1030,0,0);printf(“(server)received\n”);}while(msg.mtype!=1);msgctl(msgqid,IPC_RMID,0);exit(0);}main( ){server( );}实验报告#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 12#define B 3#define P 5int isInBuf(int buf[], int x, int *p){ int i, j = -1;for (i = 0; i < B; i++){ if(buf[i] == x){ j = i;break;}else if (buf[i] == -1){ (*p)++;buf[i] = x;j = i;break;}}if(j==-1) (*p)++;return j;}int oldopt(int i, int buf[ ], int list[ ], int f[ ]) { int k, h, j=0, max=-1;for (k = 0; k < B; k++){ for (h = i; h < N; h++)if (buf[k] == list[h]){ f[k] = h;break;}if(h==N)f[k] = N;}for (k = 0; k < B; k++){ if (max < f[k]){ max = f[k];j = k;}}return j;}int main(){ int list[N]; #include <stdio.h>#include <stdlib.h>#include <time.h>#define N 12#define B 3#define P 5int isInBuf(int buf[], int x, int *p) { int i, j = -1;for (i = 0; i < B; i++){ if(buf[i] == x){ j = i;break;}else if (buf[i] == -1){ (*p)++;buf[i] = x;j = i;break;}}if(j==-1) (*p)++;return j;}int oldlru(int f[ ]){ int i, j = 0, max = -1;for (i = 0; i < B; i++){ if(f[i] > max){ max = f[i];j = i;}f[i]++;}return j;}int main(){ int list[N];int change[N];int buf[B], f[B], i, j,k;int result[B][N];int old;int absent;srand((int)time(NULL));printf("\n The Random List:\n");for (i = 0; i < N; i++)int change[N];int buf[B],f[B],i,j,k;int result[B][N];int old;int absent;srand((int)time(NULL));printf("\n The Random List:\n");for (i = 0; i < N; i++){ list[i] = rand() % P+1;printf("%3d", list[i]);}printf("\n----------------------------------------------\n");printf("\nOPT:\n");absent=0;for(i = 0; i < B; i++)buf[i] = f[i] = -1;for(i = 0; i < N; i++){ j=isInBuf(buf, list[i],&absent);if(j== -1) //需置换页面{ old=oldopt(i, buf, list, f);change[i]=buf[old];buf[old] = list[i];}else change[i]=-1;for(k=0;k<B;k++)result[k][i]=buf[k];}printf("the result is:\n");for(i=0;i<B;i++){ for(j=0;j<N;j++)printf("%3d",result[i][j]);printf("\n");}printf("\nthe page is changed:\n");for(i=0;i<N;i++){ if(change[i]== -1)printf(" ");else printf("%3d",change[i]);}printf("\nabsent:%d\n",absent);printf("the absent vote is:%f\n",(float)absent/N);}{ list[i] = rand() % P+1;printf("%3d", list[i]);}printf("\n-------------------------------------------\n");printf("\nLRU:\n");absent = 0;for(i = 0; i < B; i++)buf[i] = f[i] = -1;for(i = 0; i < N; i++){ j = isInBuf(buf, list[i],&absent);old = oldlru(f);if(j== -1){ change[i]=buf[old];buf[old] = list[i];f[old] = 0;}else{ f[j]=0;change[i]=-1;}for(k=0;k<B; k++)result[k][i]=buf[k];}printf("the result is:\n");for(i=0;i<B;i++){ for(j=0;j<N;j++)printf("%3d",result[i][j]);printf("\n");}printf("\nthe page is changed:\n");for(i=0;i<N;i++){ if(change[i]== -1)printf(" ");elseprintf("%3d",change[i]);}printf("\nabsent:%d\n",absent);printf("the absent vote is:%f\n",(float)absent/N); }实验报告。

计算机操作系统实验报告

计算机操作系统实验报告

实验报告实验课程:计算机操作系统学生姓名:**学号:**********专业班级:管理科学与工程类111班2013年 6 月 7 日目录实验一Linux的文件系统和基本操作命令 (3)实验二熟悉Linux开发环境 (5)实验三Linux进程创建和控制 (8)实验四进程的软中断通信和管道通信 (10)实验五进程间通信 (13)实验六存储管理 (18)南昌大学实验报告学生姓名:舒娅学号:6100511015 专业班级:管理科学与工程类111班√实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验一Linux的文件系统和基本操作命令(一)实验目的1、熟练掌握Linux的登陆和退出过程2、熟练掌握基本的Linux文件与目录操作命令3、熟练掌握基本的LINUX系统管理命令(二)实验基本要求1、了解LINUX根文件系统目录内容;2、了解应用程序和配置文件关系3、熟悉LINUX系统配置(三)基本实验条件PC兼容机、交换机、Red Hat Linux 9.0(四)实验内容(五) 实验数据及处理结果1、登陆与关机(1)登陆在login:后输入user机号↙(这表示回车键)在password:后输入123456↙(注意在屏幕上不显示)出现$提示符,表示正常进入普通用户状态。

(2)关机在$后输入halt↙等屏幕上显示System halted时,再关电源。

2、文件与目录操作基本命令(1)、用户工作目录每个用户都有一个与用户名相同的用户自己能完全操作(读、写、删)的子目录,如:/home/user27,就是用户user27的工作目录。

(2)、man命令man命令用于查看Linux各种命令的使用说明,用法如下:man 命令名↙(3)、参考背景资料或利用man命令,熟悉掌握以下基本命令的使用方法:ls;显示目录内容cd;切换目录cp;文件复制mkdir;创建指定的名称的目录rmdir;删除空目录mv;移动档案与目录或更名rm;删除不需要的目录及文件cat;将文档中的内容显示出来more;以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格往下一页显示,按 b 键就会往回一页显示less;less 与 more 类似,但使用 less 可以随意浏览文件file;检测文件类型du;显示目录或文件的大小df;检查文件系统的磁盘空间占用情况mount;加载指定的文件系统umount;卸除文件系统chmod;改变一个或多个文件的存取模式chown;变更文件或目录的拥有者或所属群组。

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

计算机与信息
学院 实验课程:操作系统
阜阳师范学院 Fuyang Teachers College
实验报告 ====================================================================
姓名 学号:
实验报告
实验报告
实验报告
}
exit(0);
}
main( )
{ client( );
}
2.server.c
#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
#define MSGKEY 75
struct msgform
{ long mtype;
char mtext[1000];
}msg;
int msgqid;
void server( )
{
msgqid=msgget(MSGKEY,0777|IPC_CREAT); do
{
msgrcv(msgqid,&msg,1030,0,0);
printf(“(server)received\n”);
}while(msg.mtype!=1);
msgctl(msgqid,IPC_RMID,0);
exit(0);
}
main( )
{
server( );
}
实验报告
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 12
#define B 3
#define P 5
int isInBuf(int buf[], int x, int *p)
{ int i, j = -1;
for (i = 0; i < B; i++)
{ if(buf[i] == x)
{ j = i;
break;
}
else if (buf[i] == -1)
{ (*p)++;
buf[i] = x;
j = i;
break;
}
}
if(j==-1) (*p)++;
return j;
}
int oldopt(int i, int buf[ ], int list[ ], int f[ ]) { int k, h, j=0, max=-1;
for (k = 0; k < B; k++)
{ for (h = i; h < N; h++)
if (buf[k] == list[h])
{ f[k] = h;
break;
}
if(h==N)
f[k] = N;
}
for (k = 0; k < B; k++)
{ if (max < f[k])
{ max = f[k];
j = k;
}
}
return j;
}
int main()
{ int list[N]; #include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 12
#define B 3
#define P 5
int isInBuf(int buf[], int x, int *p) { int i, j = -1;
for (i = 0; i < B; i++)
{ if(buf[i] == x)
{ j = i;
break;
}
else if (buf[i] == -1)
{ (*p)++;
buf[i] = x;
j = i;
break;
}
}
if(j==-1) (*p)++;
return j;
}
int oldlru(int f[ ])
{ int i, j = 0, max = -1;
for (i = 0; i < B; i++)
{ if(f[i] > max)
{ max = f[i];
j = i;
}
f[i]++;
}
return j;
}
int main()
{ int list[N];
int change[N];
int buf[B], f[B], i, j,k;
int result[B][N];
int old;
int absent;
srand((int)time(NULL));
printf("\n The Random List:\n");
for (i = 0; i < N; i++)
int change[N];
int buf[B],f[B],i,j,k;
int result[B][N];
int old;
int absent;
srand((int)time(NULL));
printf("\n The Random List:\n");
for (i = 0; i < N; i++)
{ list[i] = rand() % P+1;
printf("%3d", list[i]);
}
printf("\n----------------------------------------------\n");
printf("\nOPT:\n");
absent=0;
for(i = 0; i < B; i++)
buf[i] = f[i] = -1;
for(i = 0; i < N; i++)
{ j=isInBuf(buf, list[i],&absent);
if(j== -1) //需置换页面
{ old=oldopt(i, buf, list, f);
change[i]=buf[old];
buf[old] = list[i];
}
else change[i]=-1;
for(k=0;k<B;k++)
result[k][i]=buf[k];
}
printf("the result is:\n");
for(i=0;i<B;i++)
{ for(j=0;j<N;j++)
printf("%3d",result[i][j]);
printf("\n");
}
printf("\nthe page is changed:\n");
for(i=0;i<N;i++)
{ if(change[i]== -1)
printf(" ");
else printf("%3d",change[i]);
}
printf("\nabsent:%d\n",absent);
printf("the absent vote is:%f\n",(float)absent/N);}
{ list[i] = rand() % P+1;
printf("%3d", list[i]);
}
printf("\n-------------------------------------------\n");
printf("\nLRU:\n");
absent = 0;
for(i = 0; i < B; i++)
buf[i] = f[i] = -1;
for(i = 0; i < N; i++)
{ j = isInBuf(buf, list[i],&absent);
old = oldlru(f);
if(j== -1)
{ change[i]=buf[old];
buf[old] = list[i];
f[old] = 0;
}
else
{ f[j]=0;
change[i]=-1;
}
for(k=0;k<B; k++)
result[k][i]=buf[k];
}
printf("the result is:\n");
for(i=0;i<B;i++)
{ for(j=0;j<N;j++)
printf("%3d",result[i][j]);
printf("\n");
}
printf("\nthe page is changed:\n");
for(i=0;i<N;i++)
{ if(change[i]== -1)
printf(" ");
else
printf("%3d",change[i]);
}
printf("\nabsent:%d\n",absent);
printf("the absent vote is:%f\n",(float)absent/N); }
实验报告。

相关文档
最新文档