OS上机实验报告
- 格式:doc
- 大小:104.00 KB
- 文档页数:16
操作系统上机实验报告实验一进程的建立1.实验目的学会通过基本的Windows进程控制函数,由父进程创建子进程,并实现父子进程协同工作。
2.实验软硬件环境Dev-C++3.实验内容创建两个进程,让子进程读取一个文件,父进程等待子进程读取完文件后继续执行,实现进程协同工作。
进程协同工作就是协调好两个进程,使之安排好先后次序并以此执行,可以用等待函数来实现这一点。
当需要等待子进程运行结束时,可在父进程中调用等待函数。
4.实验程序及分析实验程序源代码如下:父进程:#include<stdio.h>#include<windows.h>int main(){STARTUPINFO si;PROCESS_INFORMA TION pi; //当Windows创建新进程时,将使用这两个结构体的有关成员。
所以在创建子进程之前应该对结构体进行声明和初始化。
ZeroMemory(&pi,sizeof(pi));ZeroMemory(&si,sizeof(si));si.cb=sizeof(STARTUPINFO);if(CreateProcess("lab1.2.exe",NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL ,NULL,&si,&pi))//创建一个新进程,若是成功,就返回1,进而实现if选择{printf("子进程已创建~\n");int i,sum=0;for(i=1;i<=100;++i){sum+=i;printf("sum=%d\n",sum);} //进行1+2+3+….+100计算WaitForSingleObject(pi.hProcess,INFINITE); FILE *fp;fp=fopen("date.txt","r");char ch=fgetc(fp); //创建文件并打开while(ch!=EOF){putchar(ch);ch=fgetc(fp);}fclose(fp); //关闭文件}elseprintf("子进程创建失败~\n");return 0;}子进程:#include<stdio.h>#include<stdlib.h>int main(){printf("子进程运行~\n");FILE *fp;if(fp=fopen("date.txt","w")){printf("已经创建文件!\n");int i;for(i=48;i<58;i++) fputc(i,fp);fputc('\n',fp);fclose(fp);printf("已经写入数据:"); //向文本中写入数据fp=fopen("date.txt","r");char ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp); //输出数据}fclose(fp);}else printf("创建文件失败!\n");system("pause");return 0;}5. 实验截图说明及分析6. 实验心得体会掌握了父进程创建子进程的方法,对操作系统多线程认识更深了。
操作系统上机实验报告篇一:操作系统上机实验报告(13版)编者说明《操作系统》是计算机科学与技术专业的一门核心专业基础课。
学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
这些原理与技巧可以说是计算机界的前辈们一代接一代不停歇的努力所留下的知识与智慧的结晶,学习和掌握它们对于激发自己的创造力和想象力是很有帮助的。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法就是在实践中练习,通过自己模拟设计操作系统的原理实验,可以培养程序设计的方法和技巧,提高编制和理解清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。
使自身更好的掌握操作系统的基本概念、基本原理及基本功能,从而具有分析实际操作系统的基本能力,深入直观的理解操作系统使用的各类算法。
《操作系统实验指导书》是针对这门课的实验编写的,书中设计了三个操作系统原理实验。
三个实验难易层次分明,重点突出,其中实验一(Windows操作系统)和实验二(进程管理)为验证性实验,重在验证教材中的理论原理,而实验三(虚拟存储管理)为设计性实验,重在培养理论原理应用于实践的设计能力。
所有实验共8学时,采用C语言作为编程语言模拟设计完成相关程序。
限于编者的水平,难免有疏(本文来自: 千叶帆文摘:操作系统上机实验报告)漏与错误,敬请读者批评指正。
编者:李可实验一Windows操作系统一、实验题目计算机管理、任务管理、察看了解注册表二、实验目的Windows是目前使用人数最多的操作系统,学习操作系统,对操作系统有更加深入的了解。
三、实验内容1. Windows提供了那些人机交互的界面?2. 观察Windows对应用程序运行的支持。
Windows提供了几种方式启动应用程序?Windows提供了几种方式让用户改变应用程序外观?Windows提供了几种方式结束程序的运行?3. 了解windows对应用程序的运行时对I/O支持。
操作系统课程设计实验报告册班级: 130812学号: ********姓名:**目录实验1 Linux系统调用 (2)实验2 实现spinlock以及共享内存调用 (5)实验3 内核模块 (14)实验4 设备驱动 (18)实验5 文件系统 (22)实验编号 1 题目Linux系统调用实验目的加深对系统函数库、操作系统提供的系统调用的共同点和差异的认识,通过认识、了解Linux系统调用的实现方式,强化操作系统为用户提供接口方式的理性认识。
实验内容为Linux内核增加一个系统调用,并编写用户进程的程序来测试。
要求该系统调用能够完成以下功能:1. 该系统调用有1个整型参数。
2. 若参数大于0,则返回自己学号的最后一位。
如学号为248,则返回8。
3. 若参数小于或等于0,则返回自己的学号。
如学号为248,则返回248。
报告内容要求(1) 程序实现方法和思路(2) 测试及结果报告正文一、实验准备联网下载版本为2.6.25.14的linux内核压缩包,使用U盘放入WMware 中安装的Fedora9操作系统中。
解压后文件夹:/usr/src/linux-2..6.25.14。
二、实验步骤(一)、修改内核文件(1)修改内核文件:/usr/src/linux-2..6.25.14/kernel/sys.c 在sys.C文件中添加新的系统调用实现,如下所示:asmlinkage int sys_mycall(int a){if(a>0)return 5;elsereturn 13081175;}截图:(2)在system call table中增加新的系统调用表项,寻找文件/usr/src/linux-2..6.25.14/arch/x86/kernel/syscall_table_32.h,在最后一行添加:.long sys_mycall /*327*/截图:(3)增加新的系统调用编号:修改文件/usr/src/linux-2..6.25.14/include/asm-x86/unistd_32.h 的最后一行,增加:#define __NR_mycall 327 /*my new syscall*/数字紧跟上一行最后一个系统调用的编号。
操作系统上机报告实验一、匿名管道通信一、实验目的学会创建匿名管道,并且能够利用管道进行进程间的通信。
二、实验内容分别建立名为Parent的单文档应用程序和Child的单文档应用程序作为父子进程,由父进程创建一个匿名管道,实现父子进程向匿名管道写入和读取数据。
三、设计与实现过程本实验在VC6.0上实现▪ A.父进程▪先建一个Parent的单文档应用程序,增加“创建管道”“读取数据”“写入数据”三个菜单,并添加消息响应函数OnPipeCreate(),OnPipeRead(),OnPipeWrite()。
在CParentView类中增加成员变量HANDLE类型的hRead,hWrite,初始化变量,并在析构函数中释放句柄:▪void CParentView::OnPipeWrite()▪{▪if(!CreatePipe(…)) /*创建匿名管道*/▪{▪ /*显示消息“创建管道失败!”*/▪ /*退出*/▪}▪if(!CreateProcess(…)) /*创建子进程*/▪{▪ /*关闭句柄hRead、hWrite*/▪ /*显示消息“创建子进程失败!”*/▪ /*退出*/▪}▪}▪void CParentView::OnPipeRead()▪{▪ /*定义一个字符数组,用于存放读取的数据*/▪if(!ReadFile(…)) /*读取数据*/▪{▪ /*显示消息“读取数据失败!”*/▪ /*退出*/▪}▪/*打印读取的数据*/▪/*退出*/▪void CParentView::OnPipeWrite()▪{▪/*定义一个字符数组,用于存放写入的数据*/▪if(!WriteFile(…)) /*写入数据*/▪ /*显示消息“写入数据失败!”*/▪ /*退出*/▪}▪}▪ B.子进程▪建一个Child的单文档,在CChildView中增加两个成员HANDLE 型的成员变量hRead,hWrite,并添加消息响应函数OnPipeRead(),OnPipeWrite(),再添加虚函数OnInitialUpdate(),并在析构函数中释放句柄。
OS实验报告格式实验目的:本次实验旨在了解操作系统的基本概念和原理,以及对操作系统的功能和特性进行深入了解。
实验原理:操作系统是计算机系统中的重要组成部分,它承担着管理硬件资源、提供用户接口、调度任务等关键任务。
操作系统的核心功能包括进程管理、内存管理、文件系统管理和设备管理等。
在本次实验中,我们将通过实践操作系统的基本命令和功能,来加深对操作系统的理解和掌握。
实验步骤:1.打开计算机,启动操作系统。
在实验开始之前,首先需要启动计算机并进入操作系统的界面。
2.运行命令行工具。
在操作系统中,通过命令行工具可以执行各种操作系统命令,如查看系统信息、管理文件、运行程序等。
3. 创建文件和目录。
在命令行工具中,可以使用相应的命令来创建文件和目录,如mkdir命令用于创建目录,touch命令用于创建文件。
4.编写简单程序并运行。
在操作系统中,可以使用编程语言编写程序,然后通过编译运行的方式来执行程序。
5.查看系统信息。
通过系统命令可以查看操作系统的信息,如操作系统版本、内核版本、CPU信息等。
6.进程管理。
在操作系统中,可以通过相应的命令来管理进程,如查看当前运行的进程、杀死指定进程等。
7.内存管理。
操作系统通过内存管理来管理系统的内存资源,如分配和释放内存空间等操作。
8.文件系统管理。
在操作系统中,可以通过文件系统管理命令对文件进行管理,如查看文件列表、复制文件、删除文件等。
9.设备管理。
操作系统通过设备管理来管理计算机的硬件设备,如打印机、网络设备等。
实验结果:通过本次实验,我对操作系统的基本概念和功能有了更深入的了解。
我学会了如何使用命令行工具来管理文件和目录,如何编写程序并运行,如何查看系统信息,如何管理进程和内存,如何管理文件系统和设备等。
这些都是操作系统中非常重要的功能,对于理解和掌握操作系统至关重要。
实验总结:通过本次实验,我认识到了操作系统是计算机系统中的核心组件,它负责管理系统的各种资源并提供用户接口。
实验名称:计算机操作系统上机操作实验实验日期:2023年X月X日实验地点:计算机实验室实验教师:XXX一、实验目的1. 熟悉计算机操作系统的基本概念和功能。
2. 掌握Windows操作系统的基本操作,包括文件管理、系统设置等。
3. 学会使用Windows操作系统的常用工具,如计算器、记事本等。
4. 提高实际操作能力,为以后的学习和工作打下基础。
二、实验内容1. Windows操作系统基本操作(1)启动和关闭计算机(2)桌面操作:添加、删除桌面图标,调整桌面布局(3)文件管理:创建、复制、移动、删除文件和文件夹(4)系统设置:调整屏幕分辨率、设置网络连接、管理用户账户等2. 常用工具使用(1)计算器:进行基本的数学运算(2)记事本:编写简单的文本文件(3)画图:绘制图形和编辑图片(4)写字板:编辑和排版文本3. 系统安全与维护(1)安装和卸载软件(2)磁盘清理和碎片整理(3)病毒查杀(4)备份和还原系统三、实验步骤1. 启动计算机,进入Windows操作系统。
2. 调整桌面布局,添加和删除桌面图标。
3. 创建一个文件夹,命名为“实验文件夹”,并将实验过程中生成的文件和文档保存到该文件夹中。
4. 使用文件管理功能,对实验文件夹中的文件进行复制、移动、删除等操作。
5. 调整屏幕分辨率,设置网络连接,管理用户账户等系统设置。
6. 使用计算器进行数学运算,如加、减、乘、除等。
7. 使用记事本编写一个简单的文本文件,并保存到实验文件夹中。
8. 使用画图工具绘制一个简单的图形,并保存为图片文件。
9. 使用写字板编辑一个文档,并保存为Word文档。
10. 安装一个软件,如QQ,并学习如何卸载软件。
11. 对磁盘进行清理和碎片整理,确保系统运行流畅。
12. 使用杀毒软件查杀病毒,确保系统安全。
13. 学习备份和还原系统的方法,以备不时之需。
四、实验结果与分析1. 通过本次实验,我掌握了Windows操作系统的基本操作,包括文件管理、系统设置等。
编者说明《操作系统》是计算机科学与技术专业的一门核心专业基础课。
学习计算机软件技术,特别是计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
这些原理与技巧可以说是计算机界的前辈们一代接一代不停歇的努力所留下的知识与智慧的结晶,学习和掌握它们对于激发自己的创造力和想象力是很有帮助的。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法就是在实践中练习,通过自己模拟设计操作系统的原理实验,可以培养程序设计的方法和技巧,提高编制和理解清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。
使自身更好的掌握操作系统的基本概念、基本原理及基本功能,从而具有分析实际操作系统的基本能力,深入直观的理解操作系统使用的各类算法。
《操作系统实验指导书》是针对这门课的实验编写的,书中设计了三个操作系统原理实验。
三个实验难易层次分明,重点突出,其中实验一(Windows操作系统)和实验二(进程管理)为验证性实验,重在验证教材中的理论原理,而实验三(虚拟存储管理)为设计性实验,重在培养理论原理应用于实践的设计能力。
所有实验共8学时,采用C语言作为编程语言模拟设计完成相关程序。
限于编者的水平,难免有疏漏与错误,敬请读者批评指正。
编者:李可实验一Windows操作系统一、实验题目计算机管理、任务管理、察看了解注册表二、实验目的Windows是目前使用人数最多的操作系统,学习操作系统,对操作系统有更加深入的了解。
三、实验内容1.Windows提供了那些人机交互的界面?2.观察Windows对应用程序运行的支持。
●Windows提供了几种方式启动应用程序?●Windows提供了几种方式让用户改变应用程序外观?●Windows提供了几种方式结束程序的运行?3.了解windows对应用程序的运行时对I/O支持。
系统中有多少个I/O设备?多少种I/O控制方式?能否确信应用程序I/O需要操作系统支持?能体会到“设备独立性”吗?4.观察资源管理器,记录你使用的机器的资源情况:CPU、内存、磁盘分区及容量、文件目录树及文件属性。
操作系统上机报告操作系统上机报告章节一:引言本报告是关于操作系统上机实验的报告,旨在总结和分析实验过程中所遇到的问题和解决方案。
章节二:实验目的本次实验的目的是通过实践,加深对操作系统相关概念和原理的理解,同时熟悉操作系统的基本操作和管理。
章节三:实验环境3.1 硬件环境:电脑一台,配置如下:- CPU:Intel Core i5- 内存.8GB- 硬盘.256GB SSD3.2 软件环境:- 操作系统:Windows 10- 虚拟机软件:VMware Workstation- 实验用操作系统镜像:Ubuntu 20.04 LTS章节四:实验内容4.1 安装虚拟机软件- 步骤1:并安装VMware Workstation- 步骤2:创建虚拟机- 步骤3:配置虚拟机网络4.2 安装Ubuntu操作系统- 步骤1:Ubuntu 20.04 LTS镜像- 步骤2:创建虚拟机,并加载镜像- 步骤3:安装Ubuntu操作系统4.3 操作系统基本设置- 步骤1:更新系统软件包- 步骤2:添加用户- 步骤3:配置网络设置4.4 命令行操作- 步骤1:掌握常用命令(如ls、cd、mkdir等)- 步骤2:文件和目录操作(如复制、移动、删除等)- 步骤3:权限管理(如chmod命令)4.5 进程管理- 步骤1:查看系统进程- 步骤2:启动和停止进程- 步骤3:进程监控和调度4.6 文件系统管理- 步骤1:了解文件系统结构- 步骤2:文件和目录的创建和删除- 步骤3:文件系统的挂载和卸载章节五:实验总结通过本次实验,我们对操作系统的基本原理和操作有了更深入的理解,熟悉了常用的命令和管理技巧,提高了对操作系统的操作和管理能力。
附件:- 操作系统上机实验源代码- 实验报告中使用的截图法律名词及注释:1.版权:对作品(如文学、艺术、音乐、软件等)的作者享有的法律权益,保护作者对作品的知识产权。
2.隐私权:个人对其个人信息的保护权利,包括个人身份、健康状况、财务状况等敏感信息的保护。
操作系统上机题目一、题目实验1:LINUX/UNIX Shell部分(一)系统基本命令1.登陆系统,输入whoami 和pwd ,确定自己的登录名和当前目录;登录名yuanye ,当前目录/home/yuanye2.显示自己的注册目录?命令在哪里?a.键入echo $HOME,确认自己的主目录;主目录为/home/yuanyeb.键入echo $PA TH,记下自己看到的目录表;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesc.键入which abcd,看看得到的错误信息;再键入which ls 和which vi,对比刚刚得到的结果的目录是否在a.、b.两题看到的目录表中;/bin/ls /usr/bin/vi3.ls 和cd 的使用:a.键入ls,ls -l ,ls -a ,ls -al 四条命令,观察输出,说明四种不同使用方式的区别。
1. examples.desktop 公共的模板视频图片文档音乐桌面; 总计322.-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktopdrwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面3. . .fontconfig .local .Xauthority.. .gconf .mozilla .xsession-errors.bash_logout .gconfd .nautilus 公共的.bashrc .gksu.lock .profile 模板.cache .gnome2 .pulse 视频.chewing .gnome2_private .pulse-cookie 图片.config .gnupg .recently-used.xbel 文档.dbus .gstreamer-0.10 .scim 音乐.dmrc .gtk-bookmarks .sudo_as_admin_successful 桌面.esd_auth .gvfs .update-manager-coreexamples.desktop .ICEauthority .update-notifier4. 总计156drwxr-xr-x 28 yuanye yuanye 4096 2011-03-24 16:55 .drwxr-xr-x 3 root root 4096 2011-03-22 22:15 ..-rw-r--r-- 1 yuanye yuanye 220 2011-03-22 22:15 .bash_logout-rw-r--r-- 1 yuanye yuanye 3115 2011-03-22 22:15 .bashrcdrwxr-xr-x 3 yuanye yuanye 4096 2011-03-22 23:30 .cachedrwx------ 2 yuanye yuanye 4096 2011-03-22 23:24 .chewingdrwxr-xr-x 4 yuanye yuanye 4096 2011-03-22 23:30 .configdrwx------ 3 yuanye yuanye 4096 2011-03-22 22:31 .dbus-rw------- 1 yuanye yuanye 49 2011-03-24 16:54 .dmrc-rw------- 1 yuanye yuanye 16 2011-03-22 22:31 .esd_auth-rw-r--r-- 1 yuanye yuanye 357 2011-03-22 22:15 examples.desktopdrwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:15 .fontconfigdrwx------ 4 yuanye yuanye 4096 2011-03-24 16:54 .gconfdrwx------ 2 yuanye yuanye 4096 2011-03-24 16:56 .gconfd-rw-r----- 1 yuanye yuanye 0 2011-03-22 23:19 .gksu.lockdrwx------ 6 yuanye yuanye 4096 2011-03-22 23:20 .gnome2drwx------ 2 yuanye yuanye 4096 2011-03-22 22:32 .gnome2_privatedrwx------ 2 yuanye yuanye 4096 2011-03-22 22:31 .gnupgdrwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 22:32 .gstreamer-0.10-rw-r--r-- 1 yuanye yuanye 156 2011-03-24 16:55 .gtk-bookmarksdr-x------ 2 yuanye yuanye 0 2011-03-24 16:54 .gvfs-rw------- 1 yuanye yuanye 479 2011-03-24 16:54 .ICEauthoritydrwx------ 3 yuanye yuanye 4096 2011-03-22 23:30 .localdrwx------ 4 yuanye yuanye 4096 2011-03-22 23:29 .mozilladrwxr-xr-x 3 yuanye yuanye 4096 2011-03-22 22:32 .nautilus-rw-r--r-- 1 yuanye yuanye 675 2011-03-22 22:15 .profiledrwx------ 2 yuanye yuanye 4096 2011-03-24 16:54 .pulse-rw------- 1 yuanye yuanye 256 2011-03-22 22:31 .pulse-cookie-rw------- 1 yuanye yuanye 861 2011-03-22 23:30 .recently-used.xbeldrwx------ 3 yuanye yuanye 4096 2011-03-22 23:24 .scim-rw-r--r-- 1 yuanye yuanye 0 2011-03-22 22:35 .sudo_as_admin_successful drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 22:33 .update-manager-core drwx------ 2 yuanye yuanye 4096 2011-03-22 22:32 .update-notifier-rw------- 1 yuanye yuanye 117 2011-03-24 16:54 .Xauthority-rw-r--r-- 1 yuanye yuanye 3385 2011-03-24 16:56 .xsession-errorsdrwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 公共的drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 模板drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 视频drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 图片drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 文档drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 音乐drwxr-xr-x 2 yuanye yuanye 4096 2011-03-22 23:25 桌面b.利用cd 转到/bin,/sbin ,/etc ,/dev,再利用ls 列出各个目录的内容,如果"迷路",可以利用pwd 确定位置,或键入cd ,cd ~ 观察效果.cd ,cd ~的区别: 1. bash dnsdomainname mountpoint sleepbunzip2 dumpkeys mt sttybzcat echo mt-gnu subzcmp ed mv syncbzdiff egrep nano tailfbzegrep false nc tarbzexe fgconsole nc.traditional tempfilebzfgrep fgrep netcat touchbzgrep fuser netstat truebzip2 fusermount ntfs-3g ulockmgr_serverbzip2recover grep ntfs-3g.probe umountbzless gunzip open unamebzmore gzexe openvt uncompresscat gzip pidof unicode_startchgrp hostname ping vdirchmod ip ping6 whichchown kbd_mode ps zcatchvt kill pwd zcmpcp ld_static rbash zdiffcpio ln readlink zegrepdash loadkeys rm zfgrepdate login rmdir zforcedbus-cleanup-sockets ls rnano zgrepdbus-daemon lsmod run-parts zlessdbus-uuidgen mkdir sed zmoredd mknod setfont znewdf mktemp setupcondir more shdmesg mount sh.distrib2. acpi_available getty mii-tool resize_reiserfsalsa grub-install mkdosfs rmmodalsactl halt mke2fs routeapm_available hdparm mkfs rtacctapparmor_parser hwclock mkfs.bfs rtmonbadblocks ifconfig mkfs.cramfs runlevelblkid ifdown mkfs.ext2 sfdisk blockdev ifup mkfs.ext3 shadowconfig brltty init mkfs.ext4 shutdownbrltty-setup initctl mkfs.ext4dev slattachcfdisk insmod mkfs.minix sscrda installkernel mkfs.msdos startctrlaltdel ip mkfs.reiserfs start-stop-daemon debugfs ip6tables mkfs.vfat status debugreiserfs ip6tables-restore mkreiserfs stopdepmod ip6tables-save mkswap sulogin dhclient ipmaddr modinfo swapoff dhclient3 iptables modprobe swapon dhclient-script iptables-restore mount.fuse sysctldmsetup iptables-save mount.ntfs syslogddosfsck iptunnel mount.ntfs-3g tcdosfslabel isosize mount.vmhgfs telinitdumpe2fs iwconfig nameif tune2fse2fsck iwevent on_ac_power udevadme2image iwgetid pam_tally udevde2label iwlist parted umount.hale2undo iwpriv partprobe unix_chkpwd fdisk iwspy pccardctl unix_update findfs kbdrate pivot_root update-grubfsck killall5 plipconfig usplashfsck.cramfs klogd poweroff usplash_down fsck.ext2 ldconfig rarp usplash_write fsck.ext3 ldconfig.real raw vol_idfsck.ext4 logd readahead-list vstpfsck.ext4dev logsave readahead-watch wpa_action fsck.minix losetup reboot wpa_clifsck.msdos lrm-manager regdbdump wpa_supplicant fsck.nfs lsmod reiserfsckfsck.reiserfs lspcmcia reiserfstunefsck.vfat MAKEDEV resize2fs3. acpi login.defsadduser.conf logrotate.confadjtime logrotate.dalsa lsb-basealternatives lsb-base-logging.shanacrontab lsb-releaseapm ltrace.conf apparmor magicapparmor.d magic.mimeapport mailcapapt mailcap.orderat.deny manpath.configavahi mime.typesbash.bashrc mke2fs.confbash_completion modprobe.dbash_completion.d modules bindresvport.blacklist monoblkid.tab motdblkid.tab.old motd.tailbluetooth mtabbogofilter.cf mtools.confbonobo-activation nanorcbrlapi.key netscsid.confbrltty networkbrltty.conf NetworkManagerca-certificates networksca-certificates.conf nsswitch.confcalendar obex-data-server chatscripts openoffice checkbox.d optcompizconfig pam.conf ConsoleKit pam.dconsole-setup pangoconsole-tools papersizecron.d passwdcron.daily passwd-cron.hourly pcmciacron.monthly perlcrontab pmcron.weekly pnm2ppa.confcups PolicyKitdbus-1 popularity-contest.conf debconf.conf powerdebian_version pppdefault profiledefoma profile.ddeluser.conf protocolsdepmod.d pulse dhcp3 purple dictionaries-common pythondm python2.6 doc-base rc0.ddpkg rc1.de2fsck.conf rc2.d emacs rc3.d environment rc4.d esound rc5.d event.d rc6.d firefox-3.0 rc.localfonts rcS.d foomatic readahead fstab resolvconf fuse.conf resolv.conf gai.conf rmtgamin rpcgconf samba gdm sane.d gimp scim gnome screenrc gnome-app-install scsi_id.config gnome-system-tools securetty gnome-vfs-2.0 security gnome-vfs-mime-magic sensors.conf gre.d services groff sgmlgroup shadow group- shadow- grub.d shells gshadow skel gshadow- soundgtk-2.0 sshhal ssl hdparm.conf sudoers hesiod.conf sysctl.conf host.conf sysctl.d hostname syslog.conf hosts terminfo hosts.allow timezonehosts.deny tpvmlp.confhp ts.confifplugd ucf.confinit.d udevinitramfs-tools ufwinputrc updatedb.confiproute2 updatedb.conf.BeforeVMwareToolsInstallissue update-manager update-motd.dkbd update-notifierkernel usplash.confkernel-img.conf vimlaptop-mode vmware-toolsldap w3mld.so.cache wgetrcld.so.conf wodim.confld.so.conf.d wpa_supplicantlftp.conf X11libpaper.d xdglocale.alias xmllocaltime xulrunner-1.9logcheck zsh_command_not_foun4. adsp loop7 ram7 tty15 tty43 usbdev1.1_ep00agpgart lp0 ram8 tty16 tty44 usbdev1.1_ep81audio mapper ram9 tty17 tty45 usbdev2.1_ep00block mem random tty18 tty46 usbdev2.1_ep81bus midi rtc tty19 tty47 usbmon0cdrom1 mixer rtc0 tty2 tty48 usbmon1char net scd0 tty20 tty49 usbmon2console network_latency sda tty21 tty5 vcscore network_throughput sda1 tty22 tty50 vcs1cpu_dma_latency null sda2 tty23 tty51 vcs2disk oldmem sda5 tty24 tty52 vcs3dmmidi parport0 sequencer tty25 tty53 vcs4dsp pktcdvd sequencer2 tty26 tty54 vcs5ecryptfs port sg0 tty27 tty55 vcs6fd ppp sg1 tty28 tty56 vcs7fd0 psaux shm tty29 tty57 vcs8full ptmx snapshot tty3 tty58 vcsafuse pts snd tty30 tty59 vcsa1hpet ram0 sndstat tty31 tty6 vcsa2initctl ram1 sr0 tty32 tty60 vcsa3input ram10 stderr tty33 tty61 vcsa4kmem ram11 stdin tty34 tty62 vcsa5kmsg ram12 stdout tty35 tty63 vcsa6log ram13 tty tty36 tty7 vcsa7loop0 ram14 tty0 tty37 tty8 vcsa8loop1 ram15 tty1 tty38 tty9 vmciloop2 ram2 tty10 tty39 ttyS0 vsockloop3 ram3 tty11 tty4 ttyS1 xconsoleloop4 ram4 tty12 tty40 ttyS2 zeroloop5 ram5 tty13 tty41 ttyS3loop6 ram6 tty14 tty42 urandom区别:(二)基本操作1.用cp 将/usr/share 目录下的exercise 子目录连同目录下的文件拷贝到自己的主目录下,然后进入自己的exercise 目录:cp -r /usr/share ./.2.输入/输出重定向和cat,more 等显示命令的配合使用:a.输入cat 命令列出目录下longtext 文件中的内容;b.输入cat 命令列出目录下longtext 文件中的内容,是否发现一屏显示不完?c.使用more 命令列出longtext 的内容;d.输入cat hello.txt> hello2.txt,再输入cat hello.txt>>hello2.txt,再检查hello2.txt的内容有何变化;说明>与>>的区别。
操作系统安装与配置实验报告实验目的:
1. 了解操作系统的安装过程。
2. 熟悉操作系统的基本配置。
实验内容:
1. 安装操作系统。
2. 进行基本配置。
3. 测试系统运行情况。
实验步骤:
1. 准备安装光盘或USB启动盘。
2. 将光盘或USB启动盘插入计算机,并启动计算机。
3. 按照提示选择安装语言和时区等信息。
4. 选择安装类型(新安装或升级)。
5. 选择安装目标磁盘。
6. 进行分区和格式化。
7. 完成安装并进行基本配置(设置用户名、密码、网络等)。
实验结果:
1. 成功安装操作系统。
2. 完成基本配置。
3. 系统能够正常运行。
实验总结:
通过本次实验,我了解了操作系统的安装过程和基本配置方法。
在实际操作中,我遇到了一些问题,比如分区和格式化时出现了错误提示,但通过查阅资料和询问同学,最终成功解决了这些问题。
通过这次实验,我对操作系统的安装和配置有了更深入的了解,也提高了自己的解决问题的能力。
希望在以后的实验中能够继续学习和提高。
北航os实验报告北航OS实验报告一、引言操作系统(Operating System,简称OS)是计算机系统中最基础的软件之一,它负责管理和控制计算机硬件资源,为用户和应用程序提供一个可靠、高效的工作环境。
本文将对北航OS实验进行详细的报告和分析。
二、实验目的本次北航OS实验的目的是让学生深入理解和掌握操作系统的基本原理和实现方式。
通过实践,学生将学会设计和实现一个简单的操作系统,了解操作系统的核心功能和运行机制。
三、实验内容1. 系统引导实验开始时,我们需要编写引导程序,将操作系统加载到计算机的内存中,并跳转到操作系统的入口地址开始执行。
这一步骤是整个实验的起点,也是操作系统正常运行的基础。
2. 中断处理操作系统需要能够处理各种中断事件,如时钟中断、键盘中断等。
学生需要实现中断处理程序,使操作系统能够响应和处理这些中断事件,并根据具体情况进行相应的操作。
3. 进程管理操作系统需要能够管理多个进程的创建、调度和终止。
学生需要设计并实现进程管理模块,包括进程控制块(PCB)的数据结构和进程调度算法。
通过合理的调度策略,提高系统的并发性和响应速度。
4. 内存管理操作系统需要管理计算机的内存资源,包括内存的分配和释放。
学生需要设计并实现内存管理模块,使用合适的算法来管理内存的分配和回收,避免内存泄漏和碎片化问题。
5. 文件系统操作系统需要提供文件系统来管理计算机中的文件和数据。
学生需要设计并实现一个简单的文件系统,包括文件的创建、读写和删除等操作。
通过文件系统,用户可以方便地存储和管理自己的数据。
四、实验过程在实验过程中,我们遇到了许多挑战和问题,但通过不断的尝试和调试,我们最终成功实现了一个简单的操作系统。
以下是我们在实验过程中遇到的一些关键问题和解决方案:1. 内存管理在实验过程中,我们发现内存管理是一个非常关键的问题。
如果内存管理不当,容易导致内存泄漏或者内存碎片化,从而影响系统的性能和稳定性。
我们通过设计一个位图来管理内存的分配和释放,使用首次适应算法来分配内存,并通过合理地回收内存来避免内存泄漏问题。
计算机上机实验报告总结写计算机系统上机实验报告 实验室简介实验室简介: :安徽大学电子信息系统与自动化创新实验室创立于xx 年3月,位于安徽大学新校区北实验楼a518.a518.实验室建立旨在探索并建立以问题实验室建立旨在探索并建立以问题和课题为核心的教学模式和课题为核心的教学模式,,倡导以本科生为主的创新性实验改革倡导以本科生为主的创新性实验改革,,调动学生的主动性、积极性和创造性积极性和创造性,,激发学生的创新性思维激发学生的创新性思维..培养学生的创新意识的创新意识,,使学生学会主动的解决问题使学生学会主动的解决问题. .安徽大学电子科学与技术学院充分发挥电子信息系统与自动化创新实验室的优势新实验室的优势,,分别建立以创新实验室为中心的电子设计大赛训练基地和机器人大赛训练基地基地和机器人大赛训练基地. .实验室的创新不仅仅是实验方面的创新实验室的创新不仅仅是实验方面的创新,,而是多方面的创新而是多方面的创新,,概括来说有三点创新来说有三点创新: :一、观念创新一、观念创新打破以往教学模式打破以往教学模式,,创新地提出以学生为主体创新地提出以学生为主体,,教师辅导为辅的教学模式学模式..学校为部分学有余力的学生提供进行创新性实验的机会学校为部分学有余力的学生提供进行创新性实验的机会,,旨在通过少数带动多数在通过少数带动多数,,从而带动整个学院乃至整个工科学院的创新氛围.二、制度创新二、制度创新以学生助理为主体的管理模式是实验室管理的一大特点以学生助理为主体的管理模式是实验室管理的一大特点..学生助理分为日常管理助理、材料管理助理和仪器管理助理理分为日常管理助理、材料管理助理和仪器管理助理..学生助理自主管理管理,,相互协作相互协作,,成为一支具有团结创新特色的管理队伍成为一支具有团结创新特色的管理队伍. .三、过程创新三、过程创新经过被批准立项的小组就可以进入实验室进行项目的探索研究经过被批准立项的小组就可以进入实验室进行项目的探索研究..在这个过程中在这个过程中,,学生助理通过调查了解各组所遇到的技术问题、材料问题和仪器工具问题问题和仪器工具问题..然后助理们在一起讨论然后助理们在一起讨论,,提出解决问题的方案提出解决问题的方案..如:技术问题我们邀请相关老师过来讲课;材料问题我们网上订购或者亲自采购;仪器工具问题我们根据实际需求向设备处提出申请领取.实验室建设过程和开展的项目实验室建设过程和开展的项目: :1. xx 年8月开始筹建月开始筹建. .2. xx 年3月建成月建成. .3. xx 年3月份第一批47个创新项目正式开展个创新项目正式开展,,其中31个项目成功结题功结题. .4. xx 年暑假30个机器人制作小组的项目成功参加安徽大学机器人剧场赛人剧场赛. .5. xx 年暑假100多人参加电子设计大赛培训多人参加电子设计大赛培训,30,30人参加电子设计大赛大赛,,并有2组获得省级二等奖组获得省级二等奖,2,2组获得省级三等奖组获得省级三等奖. .6. xx 年9月第二批45个创新项目正式开展个创新项目正式开展. .7. xx 年5月第三批创新项目选拔工作开始月第三批创新项目选拔工作开始. .实验室组织结构和日常运作实验室组织结构和日常运作: :1. 电子系统与自动化创新实验室是一个对本科生研究小组完全开放的场所是在电子科学与技术学院领导下是在电子科学与技术学院领导下,,由相关指导教师指导本科学生自主选题、设计、制造本科学生自主选题、设计、制造. .2. 实验室制定了符合自身特点的管理和程序实验室制定了符合自身特点的管理和程序,,以保证项目平稳、顺利、有效持续的进行顺利、有效持续的进行. .3. 实验室的日常管理由选出来的学生助理负责实验室的日常管理由选出来的学生助理负责. .4. 每个研究小组都有学校和学院提供的经费支持每个研究小组都有学校和学院提供的经费支持. .5. 创新实验室按照学生助理值日表按时开放创新实验室按照学生助理值日表按时开放. .实验室条件实验室条件: :1. 实验室面积实验室面积:4:4个主实验室(个主实验室(12001200平方米)平方米)2. 现有设备和仪器现有设备和仪器::新购置仪器191台套;价值64.711万元万元3. 转移旧仪器213台套台套4. 实验室设有自动视频监控管理和24路宽带装置路宽带装置. .5. 覆盖全面的创新活动技术和手段覆盖全面的创新活动技术和手段::数十套计算机辅助设计系统、20套通用电子测试系统、10套单片机开发系统、数套dsp 开发系统、虚拟仪器和高精度测量仪器、虚拟仪器和高精度测量仪器、pcb pcb 制板及smt 工艺手段工艺手段. .6. 一批有实际经验和专业的教师(教授、副教授、博士等)直接参与指导研究小组的研究参与指导研究小组的研究,,构成多学科专业支撑的师资力量构成多学科专业支撑的师资力量. .实验室项目的实施方向实验室项目的实施方向: :实验室建立旨在探索并建立以问题和课题为核心的教学模式实验室建立旨在探索并建立以问题和课题为核心的教学模式,,倡导以本科生为主的创新性实验改革导以本科生为主的创新性实验改革,,调动学生的主动性、积极性和创造性造性,,激发学生的创新性思维激发学生的创新性思维..培养学生的创新意识培养学生的创新意识,,使学生学会主动的解决问题的解决问题..考虑到我们学校和学院的实际情况考虑到我们学校和学院的实际情况,,实验室的项目实施方向分为基础项目研究和创新性项目研究方向分为基础项目研究和创新性项目研究. .基础项目研究基础项目研究::主要面向低年级的学生主要面向低年级的学生..这部分学生由于专业知识涉及比较少涉及比较少,,动手能力比较差动手能力比较差..实验室根据实际情况引导这部分学生从基础项目开始研究从基础项目开始研究,,在这个过程中重在培养低年级的动手能力在这个过程中重在培养低年级的动手能力,,逐步激发创新性思维步激发创新性思维. .创新性项目研究创新性项目研究::主要面向动手能力较强的学生主要面向动手能力较强的学生..上一批成功结题的同学和经过电子设计和机器人大赛的同学可以申请创新性项目研究在这个过程中重在培养学生的创新性思维在这个过程中重在培养学生的创新性思维. .实验室发展计划实验室发展计划: :伴随着两批创新项目的开展伴随着两批创新项目的开展,,实验室的发展正日益走向正轨实验室的发展正日益走向正轨..目前实验室日常管理井井有条实验室日常管理井井有条,,采购迅速、材料信息齐全采购迅速、材料信息齐全,,仪器设备齐全仪器设备齐全..机遇总是垂青与有准备的人机遇总是垂青与有准备的人,,趁着实验室良好的发展势头趁着实验室良好的发展势头,,实验室特制定以下发展制定以下发展: :l 实验室的旨在探索并建立以问题和课题为核心的教学模式实验室的旨在探索并建立以问题和课题为核心的教学模式,,倡导以本科生为主的创新性实验改革导以本科生为主的创新性实验改革,,调动学生的主动性、积极性和创造性造性,,激发学生的创新性思维激发学生的创新性思维..培养学生的创新意识培养学生的创新意识,,使学生学会主动的解决问题的解决问题. .l 对申请的组实验室应该加以引导对申请的组实验室应该加以引导,,并开展相关培训这个过程主要由实验室主任监督要由实验室主任监督,,学生助理负责学生助理负责..在这个过程的同时在这个过程的同时,,我们对每组提出要求提出要求,,根据每组在培训期间的表现决定是否予以批准其项目根据每组在培训期间的表现决定是否予以批准其项目. .l 实验室应严格要求各组按实验室制定的项目结题标准结题实验室应严格要求各组按实验室制定的项目结题标准结题..实验室应组织相关人员对要结题的组进行答辩验室应组织相关人员对要结题的组进行答辩..对答辩通过的小组颁发相关荣誉证书相关荣誉证书. .l 实验室的学生助理选拔应抓好电子信息系统与自动化创新实验室的学生助理首先应该具有较强的动手能力验室的学生助理首先应该具有较强的动手能力,,这是硬件条件这是硬件条件..也是以后从事实验室工作的必要条件以后从事实验室工作的必要条件,,其次要有敢于奉献、勇于吃苦的精神,有责任感有责任感. .l 实验室的创新应先立足于实验室内的创新实验室的创新应先立足于实验室内的创新,,只有立足于实验室内,才能正确的把握我们学校和我们学院的实际情况才能正确的把握我们学校和我们学院的实际情况,,只有立足于实验室内的创新才能不断的夯实基础验室内的创新才能不断的夯实基础,,提高创新原动力提高创新原动力,,实验室才能朝着美好的未来又好又快的发展着美好的未来又好又快的发展. .内容仅供参考内容仅供参考。
课程设计(上机实验)报告课程名称:计算机操作系统学生姓名:学号:所在学院:电子与信息工程学院专业:计算机科学与技术指导教师:2011年 1 月 11 日课程设计(上机实验)报告填写说明1.本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。
此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;2.本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4号宋体,1.5倍行距),禁止打印在其它纸上后剪贴;3.本报告中的“设计说明书”应按论文的格式成文,并直接书写(或打印)在本报告“设计说明书”栏目内。
其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。
说明书的篇幅应不少于2000字。
4.对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。
5.软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。
课程设计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。
课程设计(上机实验)题目:目的与任务:内容和要求:在此次实验过程中,我选择了以下几项作为实验内容:4.1 修改md命令4.2.1 修改help命令的显示方式和显示内容4.7 修改close、type等命令,允许不带文件名参数1. 改正某些缺陷2. 允许覆盖同名文件(选做内容)4.9 增加输出重定向功能(选做内容)1. type命令的输出重定向形式4.15 修改read命令,允许不带文件名参数(选做内容)课程设计(上机实习)报告4.1修改md命令命令格式:md <目录名>[ <属性>]设计思想:如果k等于2时,表示有属性参数,将参数转换为小写字母,再逐个与rh s比较,如果是则将属性与相对应的值进行或运算,如果不是则返回负值。
操作系统上机报告实验一:实验题目:进程的建立实验目的:创建进程及子进程,在父子进程实现通信实验内容:创建进程并显示标识等进程控制块的属性信息;显示父子进程的通信信息和相应的应答信息。
实验步骤:1.创建进程;2显示进程状态信息;3.实现父子进程通信;pipe(建立管道):1) 头文件: #include<unistd.h>2) 定义函数:int pipe(int filedes[2]);3) 函数说明:pipe()会建立管道,并将文件描述词由参数filedes数组返回。
filedes[0]为管道里的读取端filedes[1]则为管道的写入端。
4) 返回值:若成功则返回零,否则返回-1,错误原因存于errno中。
fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
实验代码:#include <unistd.h>#include <stdio.h>int main( void ){int filedes[2];char buf[80];pid_t pid;pipe( filedes );if ( (pid=fork()) > 0 ){printf( "This is in the father process,here write a string to the pipe.\n" );char s[] = "Hello world , this is write by pipe.\n";write( filedes[1], s, sizeof(s) );close( filedes[0] );close( filedes[1] );}else{printf( "This is in the child process,here read a string from thepipe.\n" );read( filedes[0], buf, sizeof(buf) );printf( "%s\n", buf );close( filedes[0] );close( filedes[1] );}waitpid( pid, NULL, 0 );return 0;}运行结果:实验二:实验题目:进程间的同步实验目的:理解进程同步和互斥模型及其应用实验软硬件环境:Linux实验内容:利用通信API实现进程之间的同步:建立司机和售票员进程;并实现他们间的同步运行。
操作系统上机实验报告计算机科学与技术学院操作系统上机实验报告实验名称:进程和线程实验⽬的:理解unix/Linux下进程和线程的创建、并发执⾏过程。
实验内容:1.进程的创建2.多线程应⽤实验步骤:⼀、进程的创建下⾯这个C程序展⽰了UNIX系统中⽗进程创建⼦进程及各⾃分开活动的情况。
1、实验指导fork( )创建⼀个新进程。
系统调⽤格式:pid=fork( )参数定义:int fork( )fork( )返回值意义如下:0:在⼦进程中,pid变量保存的fork( )返回值为0,表⽰当前进程是⼦进程。
>0:在⽗进程中,pid变量保存的fork( )返回值为⼦进程的id值(进程唯⼀标识符)。
-1:创建失败。
如果fork( )调⽤成功,它向⽗进程返回⼦进程的PID,并向⼦进程返回0,即fork( )被调⽤了⼀次,但返回了两次。
此时OS在内存中建⽴⼀个新进程,所建的新进程是调⽤fork( )⽗进程(parent process)的副本,称为⼦进程(child process)。
⼦进程继承了⽗进程的许多特性,并具有与⽗进程完全相同的⽤户级上下⽂。
⽗进程与⼦进程并发执⾏。
2、参考程序代码/*process.c*/#include#includemain(int argc,char *argv[]){int pid;/* fork another process */pid = fork();if (pid < 0) { /* error occurred */fprintf(stderr, "Fork Failed");exit(-1);}else if (pid == 0) { /* child process */ execlp( "/bin/ls", "ls",NULL);}else {/* parent process *//* parent will wait for the child to complete */ wait(NULL);printf( "Child Complete" );exit(0);}}3、编译和运⾏$gcc process.c –o processs4、运⾏$./process5、思考(1)系统是怎样创建进程的?⽤fork()系统调⽤创建。
计算机操作系统上机实验报告Pcb结构体typedef struct{int ID; //进程标记号int Priority; //进程优先级int Intime; //进程进入CPU时间int Alltime; //进程运行总时间int usetime; //进程使用时间}PCB;//定义队列typedef struct QNode{PCB data;struct QNode *next;}QNode;typedef struct{QNode *front,*rear;int Length;}LinkQueue;创建队列void CreateQueue(LinkQueue &Q){…}进入队列到表尾void INQueue(LinkQueue &Q,PCB one){…}进入队列到表头void TOUQueue(LinkQueue &Q,PCB one){…}出队列PCB OUTQueue(LinkQueue &Q){…}主要实现步骤:1、小组成员共同就实验要求进行讨论,弄清进程管理的基本思想和流程,制定出具体的进度计划并分配了相关的任务。
2、小组成员各自根据要求完成任务,在此过程中任务会根据新的要求有所变化,各结构及函数等都会有相应的变化,此步骤也是完善的过程。
3、代码完成进行程序测试。
发现程序的BUG后改进程序。
4、完成实验报告的填写制作PPT。
本实验涉及的主要算法细节说明(包括数据结构)//PCB结构体typedef struct{int ID; //进程标记号int Priority; //进程优先级int Intime; //进程进入CPU时间int Alltime; //进程运行总时间int usetime; //进程使用时间}PCB;//定义队列typedef struct QNode{PCB data;struct QNode *next;}QNode;typedef struct{QNode *front,*rear;int Length;}LinkQueue;//创建队列void CreateQueue(LinkQueue &Q){Q.front=Q.rear=(QNode *)malloc(sizeof(QNode));Q.Length=0;if(!Q.front)MessageBox("分配内失败");}本实验涉及的主要算法细节说明(包括数据结构)//进入队列到表尾void INQueue(LinkQueue &Q,PCB one){QNode *p=(QNode *)malloc(sizeof(QNode)); if(!p)MessageBox("分配内失败");Q.rear->data=one;Q.rear->next=p;Q.rear=p;p->next=NULL;Q.Length++;}//进入队列到表头void TOUQueue(LinkQueue &Q,PCB one){ QNode *p=(QNode *)malloc(sizeof(QNode));if(!p)MessageBox("分配内失败");p->data=one;p->next=Q.front;Q.front=p;Q.Length++;}添加进程:时间片算法:5: 1进程进入就绪队列,进入执行队列。
课程设计(上机实验)报告20XX 年月日课程设计(上机实验)报告填写说明1.本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。
此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师审阅;2.本报告内容必须用黑墨水笔工整书写或者按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4 号宋体, 1.5 倍行距),禁止打印在其它纸上后剪贴;3.本报告中的“设计说明书”应按论文的格式成文,并直接书写(或者打印)在本报告“设计说明书”栏目内。
其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法 (硬件的设计及其电原理图分析介绍,和/或者软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体味、设计中的不足及改进设计的设想或者建议等。
说明书的篇幅应不少于2000 字。
4.对硬件类课程设计,应绘制或者打印硬件设计图纸或者实验原理图,作为设计报告的附件。
5.软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果) 可以单独打印成册或者上传到指导教师指定计算机,作为课程设计报告的附件。
课程设计 (上机实验) 报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。
文件系统的摹拟设计理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。
通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。
培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。
内容和要求:设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以摹仿DOS 的有关命令)。
具体要求如下列 2.2 和 2.3。
程序初始化时构造如图 1 所示的目录结构。
课程设计(上机实验)报告课程名称:操作系统上机实习学生姓名:学号:所在学院:专业:指导教师:20XX年月日课程设计(上机实验)报告填写说明1.本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。
此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;2.本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4号宋体,1.5倍行距),禁止打印在其它纸上后剪贴;3.本报告中的“设计说明书”应按论文的格式成文,并直接书写(或打印)在本报告“设计说明书”栏目内。
其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。
说明书的篇幅应不少于2000字。
4.对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。
5.软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。
课程设计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。
课程设计(上机实习)报告课程设计(上机实验)题目:文件系统的模拟设计4.1 修改md命令(去掉属性前面的|)4.2 修改Help命令或命令行预处理程序(1. 修改help命令的显示方式和显示内容) 4.3 新增fc命令,实现两个文件的比较4.4 新增replace命令,实现文件取代4.6 新增batch命令,实现批处理4.7 修改close、type等命令,允许不带文件名参数4.8 完善copy命令(1. 改正某些缺陷)4.10 修改del、copy等命令,使其可以使用统配符*目的与任务:理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。
通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。
培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。
内容和要求:设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS 的有关命令)。
具体要求如下列2.2和2.3。
2.2 初始目录结构程序初始化时构造如图1所示的目录结构。
图中auto 是(普通)文件(初始化时假设是空文件),其余都是子目录(目录文件)。
2.3 系统操作命令简介在本文件系统中,要求可以实现如下操作:⏹ 改变当前目录:cd [<目录名>]。
当前目录(工作目录)转移到指定目录下。
指定目录不存在时,给出错误信息。
若命令中无目录名,则显示当前目录路径。
⏹ 创建文件:create <文件名> [<属性>]。
创建一个指定名字的新文件,即在目录中增加一目录项,不考虑文件的内容。
对于重名文件给出错误信息。
⏹ 删除文件:del <文件名>。
删除指定的文件,即清除其目录项和回收其所占用磁盘空间。
对于只读文件,删除前应询问用户,得到同意后方能删除。
当指定文件正在使用时,显示“文件正在使用,不能删除”的信息,当指定文件不存在时给出错误信息。
⏹ 显示目录:dir[ <目录名>[ <属性>]]。
显示“目录名”指定的目录中文件名和第一级子目录名。
若指定目录不存在,则给出错误信息。
⏹ 创建目录:md <目录名>。
在指定路径下创建指定目录,若没有指定路径,则在当前目录下创建指定目录。
对于重名目录给出错误信息。
⏹ 删除目录:rd 目录名。
若指定目录为空,则删除之,否则,给出“非空目录不能删除”的提示。
不能删除当前目录。
⏹ 打开文件:open <文件名>。
若指定文件存在且尚未打开,则打开之,并在用户打开文件表(UOF )中登记该文件的有关信息。
若指定文件已经打开,则显示“文件已打开”的信息;若指定文件不存在,则给出错误信息。
只读文件打开后只能读不能写。
bin usrdevuser lib binlisunmaauto图1 初始目录树目录文件 普通文件【图例说明】根目录⏹关闭文件:close <文件名>。
若指定文件已打开,则关闭之,即从UOF中删除该文件对应的表项。
若文件未打开或文件不存在,分别给出有关信息。
⏹显示文件内容:type <文件名>。
显示指定文件的内容。
若指定文件不存在,则给出错误信息。
⏹复制文件:copy <源文件名> <目标文件名>。
命令功能:为目标文件建立目录项,分配新的盘块,并将源文件的内容复制到目标文件中。
⏹文件改名:ren <原文件名> <新文件名>。
将指定文件的名字改为“新文件名”。
若原文件不存在,给出错误信息。
若原文件存在,但正在使用,也不能改名,同样显示出错信息。
应检查新文件名是否符合命名规则以及是否存在重名问题。
⏹显示、修改文件或目录属性:attrib <文件名>[ <文件属性>]。
若命令中无“文件属性”参数,则显示指定文件的属性;若命令中有“文件属性”参数,则修改指定文件的属性。
此命令对目录名同样适用。
2.4 几点说明⏹命令中的目录名和文件名可以统称为路径名,支持绝对路径(又称全路径)和相对路径;⏹路径名是由目录结构中各级目录文件名和普通文件名(必定是最后一个名)用分隔符“/”连接而成的字符串组成。
其中以字符“/”开始的路径名是绝对路径,表示从根目录开始;不是以字符“/”开始的路径名是相对路径,表示从当前目录开始。
当前目录又称工作目录。
⏹本系统规定,名字(文件名或目录名)的命名规则如下:(1) 名字长度不能超过FILENAME_LEN-1个字节,即10个字符(符号常数FILENAME_LEN为11)。
允许输入的名字超过10个字符,但只有前10个字符有效;(2) 名字一般由字母(区分大小写)、数字、下划线等组成,名字允许是汉字;(3) 名字不能包含以下16个字符之一:" * + , / : ; < = > ? [ \ ] | space(空格)(4) 名字中允许包含字符“.”,但它不能是名字的第一个字符,故“.”、“.abc”、“..”和“..abc”等等都是不合法的名字。
“..”代表父目录是例外,但它并非由用户通过键盘输入的名字,故不需要符合名字的命名规则。
⏹本系统中,命令名(如dir)和命令参数中的有关关键字(如append或app、insert或ins等)不区分大小写。
文件名和目录名中的字母是区分大小写的。
⏹命令格式中,“<...>”代表某个字符串,“[ ]”中内容为可选项。
设计说明书(说明书的撰写要求请参看封里的“报告填写说明3”。
篇幅不够可附页)//函数原型说明(添加的函数名)int FcComd(int); //文件比较int ReplaceComd(int ); //文件替代int BatchComd(int); //文本文件的批处理int deletefile(char *,FCB *,short); //删除文件int FindFileFCB(int &,int,char,FCB * &); //查找文件的FCBint showattrib(FCB *); //属性int Copy(int ); //复制//执行命令中添加的内容void ExecComd(int k){int cid; //命令标识//操作命令表char CmdTab[][COMMAND_LEN]={"create","open","write","read","close", "del","dir","cd","md","rd","ren","copy","type","help","attrib","uof","closeall","block","rewind","fseek","fat","check","exit","undel","Prompt","udtab","fc","replace","batch"};…………………………………………………..case 26:FcComd(k); break; //fc命令,实现两个文件的比较case 27:ReplaceComd(k); break; //replace命令,实现文件的取代case 28:BatchComd(k); break; //batch命令,实现从文件读取并执行…………………………………………………..}流程图:4.1 修改md命令设计思想:程序的指令格式为 md user |rh ,需改为 md user rh ,因此可在md user |rh 程序中实现修改功能要实现此功能,只需要获取目录的属性时,删除判断“|”操作符的过程即可。
具体方法:在int MdComd(int k)函数中删除*if (k==2) {i=GetAttrib(comd[2],attrib); if (i<0)return i;} 即可实现所需功能。
修改后的操作方法:输入 md user rh 即可正确执行。
4.2修改help 命令的显示方式和显示内容设计思想:利用switch(n) case … 语句实现选择只查看需了解的操作命令。
具体方法:首先利用cout 语句输出改操作系统所拥有的命令,并用数字标明,供用户选择,再利用switch(n) case …语句实现具体内容的介绍。
程序的大体表达如下: int n;cout<<” ”<<endl; //输入所拥有的操作命令开始命令格式正确吗?在指定目录中查找空目录项(若已无空目录项,则为其分配新的盘块),找到后为新目录登记目录项。