广工操作系统实验2014 2015
- 格式:doc
- 大小:1004.02 KB
- 文档页数:31
深圳大学实验报告课程名称:计算机导论实验名称:操作系统与工具软件学院:建筑与城市规划学院专业:建筑学报告人:XXX学号:2015XXXX班级:XXXXXX 同组人:指导教师:李炎然实验时间:2015年10月14日实验报告提交时间:2015年10月20日教务处制一.实验目的①掌握Windows 的基本操作。
②掌握文件管理和磁盘操作。
③掌握Windows 系统的基本设置。
④了解Windows 注册表的使用。
⑤了解常用软件的使用。
二.实验步骤与结果2.3.2Windows 基本操作1.Windows 桌面的组成(如图2-1)2.窗口的组成(如图2-2)2.3.3文件与文件夹图2-1Windows 桌面的组成图2-2窗口的组成1.“资源管理器”和“我的电脑”(1)我的电脑(如图2-3所示)图2-3“这台电脑”窗口(2)资源管理器图2-4“开始”菜单执行“开始”→“所有程序”→“Windows资源管理器”命令,启动资源管理器。
(如图2-4)所示)打开“资源管理器”并浏览。
(如图2-5“资源管理器”窗口2.3.4磁盘管理1.磁盘清理①在“这台电脑”窗口中,右击需要进行磁盘清理的驱动器,在弹出的快捷菜单中选择“属性”命令。
(如图2-6所示)②在“常规”选项卡中单击“磁盘清理”按钮,出现“磁盘清理”对话框。
③选中“磁盘清理”选项卡,在“要删除的文件”列表框中,选中相应的复选框来确认需要删除的文件类型。
单击“确定”按钮,然后在要求确认的对话框中单击“删除文件”按钮。
系统开始自动清理。
(如图2-7所示)2.磁盘碎片整理程序①在“这台电脑”窗口中,右击需要进行碎片整理的驱动器,在弹出的快捷菜单中选择“属性”。
②选择“工具”选项卡,在“碎片整理”框架中单击“优化”按钮,出现“优化驱动器”窗口。
③单击“优化”按钮,系统自动进行碎片整理。
(如图2-8所示)图2-7“磁盘清理”窗口图2-8“属性”和“优化驱动器”窗口3.格式化磁盘①在“这台电脑”窗口中,在地址栏选择“这台电脑”,在显示区右击需要格式化的磁盘。
win7系统操作实验报告【篇一:操作系统实验报告1】实验一进程同步与互斥实验报告【篇二:计算机基础1实验报告win7基本操作】《大学计算机基础Ⅰ》课程实验报告学院年级专业姓名学号任课教师上机地点实验教师(以上由学生填写)西南大学计算机与信息科学学院计算机基础教育系2015年10 月18 日实验成绩记载课程实验报告一一、实验题目:win7的基本操作、文件管理与控制面板的使用二、实验目的:1.掌握桌面主题的设置2. 掌握任务栏的使用和设置3. 掌握任务切换的方法4. 掌握?开始?菜单的组织5.掌握快捷方式的创建6. 掌握文件夹的显示方式7.掌握文件夹和文件的创建/属性查看和设置 8.熟悉文件和文件夹的搜索9.体验文件和文件夹的压缩存储与解压缩三、实验主要内容及过程(实验主要内容的介绍、主要的操作步骤)1.在本地机上建立文件夹,对文件夹进行复制,设为只读并创建快捷方式a.点击硬盘d,右击鼠标新建文件夹b.选择?复制?对文件夹进行操作c.选中新建文件夹,选择?属性?→?常规?→勾选?隐藏?使文件夹隐藏,选?只读?使文件夹显示。
如下图,d.选中新建文件夹,右击鼠标选择?创建快捷方式?即可为文件创建快捷方式。
如下图篇三:win7系统实践报告实验报告一实验名称:操作系统基础知识及操作实验日期:2012年9月3日实验人员:李媛媛经济2011 2011011780一、windows 7 的基本选项1、选择一个图形或图片作为桌面背景,观察效果2、使用幻灯片作为桌面背景,观察效果单击“开始”按钮;单击“控制面板”;单击“更改桌面背景”;选择“桌面背景”;单击“更改图片时间间隔”,选择幻灯片变换图片的时间间隔;单击“保存修改”。
3、将屏幕保护设置为三维文字,等待时间3分钟,不设密码4、通过更改主题来更改颜色单击“开始”;单击“控制面板”;单击“显示”;单击“调整分辨率”6、使屏幕上的文本或其他项目(如图表)变得更大,更易于查看。
中央广播电视大学计算机科学与技术专业操作系统(本科)实验报告院系:______ _________班级:___ _____学生姓名:____ _________学号: _ _____指导教师:___ __ ___完成日期 2015 年月日一、实验题目:Linux 应用及shell编程二、实验目的和要求:目的1.掌握Linux一般命令格式和常用命令。
2.学会使用vi编辑器建立、编辑文本文件。
3.了解shell的作用和主要分类。
4.学会bash脚本的建立和执行方式。
5.理解bash的基本语法。
6.学会编写简单的shell脚本。
要求1.登录进入系统,修改个人密码。
2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。
3.进入vi。
建立一个文件,如file.c。
进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。
最后,将该文件存盘。
回到shell状态下。
4.运行gcc file.c -o myfile,编译该文件,会发现错误提示。
理解其含义。
5.利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。
然后以不同方式执行该脚本。
6.对主教材第2章中的适当例题进行编辑,然后执行。
从而体会通配符、引号、输入输出重定向符、成组命令的作用;能正确使用自定义变量、位置参数、环境变量、输入/输出命令;能利用if语句、while语句、for语句和函数编写简单的脚本。
三、实验内容:1.正确地登录和退出系统。
2.熟悉使用ls,cp,cat,等常用命令。
3.进入和退出vi。
利用文本插入方式建立一个文件。
5.建立简单shell脚本并执行它。
四、实验技术和方法:Linux中各种脚本语言五、实验环境:虚拟机,ubuntu server版,shell六、实验步骤和结果:1.正确地登录和退出系统。
使用exit命令退出系统2.熟悉使用cat,cd,cp,ls,mor,rm,vi,who等常用命令。
操作系统实验年级2014 级专业学号姓名指导教师年月日实验一 Windows任务管理器的使用一、实验目的通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能.二、实验内容启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口.1.分别查看每个选项卡的内容,了解相关参数的含义及其当前内容.2.在“进程”选项卡上单击“查看”菜单,然后单击“选择列”命令.单击要增加显示为列标题的项目,然后单击“确定”.分别了解“进程”选项卡各列的含义及其当前内容.3.为更改正在运行的程序的优先级,可在“进程”选项卡上右键单击您要更改的程序,指向“设置优先级”,然后单击所需的选项.更改进程的优先级可以使其运行更快或更慢(取决于是提升还是降低了优先级) ,但也可能对其他进程的性能有相反的影响.(查看进程管理器,说明按照名字序号前5个进程的主要用途和功能.)4、修改windows服务选项,将windows的远程用户修改注册表的服务设置成禁止. :打开控制面板→管理工具→服务→找到"Remote Registry",双击,启动类型设置为禁用.5、修改windows的磁盘管理并设定配额选项。
设定配额的磁盘格式必须是NTFS,如果你的硬盘是FAT32格式;可通过以下命令:convert 盘符:/fs:ntfs 将某一磁盘分区转为NTFS。
6、修改windows启动选项,将其中的前三个自动启动的选项去掉. :开始→运行→输入msconfig,到启动页.7、修改windows的虚拟内存交换空间.8、修改windows使得windows启动时,显示操作系统列表时间为5秒,并写出启动文件的具体内容. :右键我的电脑→属性→高级→启动和故障恢复的设置→显示列表时间设为5,→点击编辑→列出具体内容,一般是:[boot loader]timeout=0default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect9、查看windows本地安全策略,并修改为定期强制修改密码.写出本地安全策略的审核的内容. :开始→运行→输入gpedit.msc →计算机设置→Windows设置→安全设置→账户策略→密码策略→密码最长存留期设置为需要的天数即可.10、获得此计算机网卡的网络配置及mac地址.开始→运行→输入cmd回车→输入ipconfig /all回车即是.11、在D盘新建一个文件夹,以自己的拼音缩写命名,并利用命令将其映射为I盘,例如为aaa,命令:subst I: d:\aaa.即将c:\aaa映射为I盘. (注:I盘是虚拟盘,不是实际的硬盘)语法subst [drive1:[drive2:}Path}subst drive1:/d参数drive1:指定要为其指派路径的虚拟驱动器.drive2:指定包含指定路径的物理驱动器(如果不是当前的驱动器).Path指定要指派给虚拟驱动器的路径./d删除虚拟驱动器./?在命令提示符显示帮助.注释以下命令在subst 命令中使用的驱动器上无法工作(或不应使用):chkdskDiskcompDiskcopyformatlabelrecoverdrive1 参数必须在lastdrive 命令指定的范围之内.如果没有,subst 将显示下列错误消息:Invalid parameter - drive1:范例若要为路径B:\User\Betty\Forms 创建虚拟驱动器Z,请键入:subst z:b:\user\betty\forms现在,不用键入完整路径,而是通过键入虚拟驱动器号,后跟冒号,即可到达该目录,如下所示:z:winxp中的映射盘符命令:subst另附上软件extrasubst.zip(创建虚拟驱动器)12、通过设备管理器查看系统所有组件配置.包括驱动程序,装载的所有程序,windows组件,硬件组件的IRQ等.13、查看windows的版本及注册信息. :开始→运行→输入winver回车14、利用windows自带的聊天工具,进行局域网内的聊天,并写出详细步骤. 首先启动服务中的Messager服务,Sp2以后版本默认为禁止的,将其设为自动,然后要发消息就开始→运行→输入net send 对方IP地址信息内容.回车即可15、利用命令查看windows进程中每个进程所提供的服务.命令:tasklist /SVC (注:查看svchost进程情况)实验二 Windows进程观测一、背景知识Windows提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。
《计算机操作系统》课程实验报告题目实验一进程调度学院: 计算机学院专业: 计算机科学与技术姓名班级学号2015年10月21日实验一进程调度1.实验目的:通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。
2.实验内容:用C语言实现对N个进程采用某种进程调度算法先来先服务调度、短作业优先调度的调度。
3.设计实现:要求给出设计源码,设计源码要有详细注释,#include <stdio.h>#include<iostream>using namespace std;struct program{char name; /*进程名*/int atime; /*到达时间*/int stime; /*服务时间*/int ftime; /*完成时间*/int rtime; /*周转时间*/float qrtime; /*带权周转时间*/};void xianshi(struct program a[],int n){int i,j;struct program t;/*将进程按时间排序*/printf("根据到达时间重新排序:\n");printf("*****进程*************到达时间***************服务时间*****\n");for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(a[i].atime>a[i+1].atime){t.atime=a[i].atime;a[i].atime=a[i+1].atime;a[i+1].atime=t.atime;=a[i].name;a[i].name=a[i+1].name;a[i+1].name=;t.stime=a[i].stime;a[i].stime=a[i+1].stime;a[i+1].stime=t.stime;}for(i=0;i<n;i++)printf(" %c %d %d |\n",a[i].name,a[i].atime,a[i].stime);printf("----------------------------------------------------\n"); }void fcfs(struct program a[],int n){int i;int time=0;for(i=0;i<n;i++){time=time+a[i].stime;a[i].ftime=a[0].atime+time;a[i].rtime=a[i].ftime-a[i].atime;a[i].qrtime=(float)a[i].rtime/a[i].stime;}printf("\nFCFS算法:\n");printf("*****进程****到达时间****完成时间******周转时间*******带权周转时间*****\n");for(i=0;i<n;i++){printf(" %c %d %.2d %.2d %.2f |\n",a[i].name,a[i].atime,a[i].ftime,a[i].rtime,a[i].qrtime);}printf("-----------------------------------------------------------------------\n");}void main(){int i,m;struct program pro[4];/*创建进程 */printf(" ******先来先服务算法****** \n");printf("请输入进程的数目:\n");scanf("%d",&m);i=m;for(i=0;i<m;i++){printf("请输入进程%d的进程名,到达时间,服务时间\n",i+1);cin>>pro[i].name>>pro[i].atime>>pro[i].stime;}xianshi(pro,m);fcfs(pro,m);getchar();}#include <stdio.h>#include<iostream>using namespace std;struct program{char name; /*进程名*/float atime; /*到达时间*/float stime; /*服务时间*/float ftime; /*完成时间*/float rtime; /*周转时间*/float qrtime; /*带权周转时间*/};void xianshi(struct program a[],int n){int i,j;struct program t;/*将进程按时间排序*/printf("重新排序:\n");printf("*****进程*************到达时间***************服务时间*****\n");for(j=0;j<n-1;j++)for(i=1;i<n-1-j;i++)if(a[i].stime>a[i+1].stime){t.atime=a[i].atime;a[i].atime=a[i+1].atime;a[i+1].atime=t.atime;=a[i].name;a[i].name=a[i+1].name;a[i+1].name=;t.stime=a[i].stime;a[i].stime=a[i+1].stime;a[i+1].stime=t.stime;}for(i=0;i<n;i++)printf(" %c %f %f |\n",a[i].name,a[i].atime,a[i].stime);printf("----------------------------------------------------\n"); }void SJF(struct program a[],int n){int i;a[0].ftime=a[0].atime+a[0].stime;a[0].rtime=a[0].ftime-a[0].atime;a[0].qrtime=a[0].rtime/a[0].stime;for(i=1;i<n;i++){a[i].ftime=a[i-1].ftime+a[i].stime;a[i].rtime=a[i].ftime-a[i].atime;a[i].qrtime=a[i].rtime/a[i].stime;}printf("\nSJF算法:\n");printf("*****进程****到达时间****完成时间******周转时间*******带权周转时间*****\n");for(i=0;i<n;i++){printf(" %c %.2f %.2f %.2f %.2f |\n",a[i].name,a[i].atime,a[i].ftime,a[i].rtime,a[i].qrtime);}printf("-----------------------------------------------------------------------\n");}void main(){int i,m;struct program pro[4];/*创建进程 */printf(" ******短作业优先算法****** \n");printf("请输入进程的数目:\n");scanf("%d",&m);i=m;for(i=0;i<m;i++){printf("请输入进程%d的进程名,到达时间,服务时间\n",i+1);cin>>pro[i].name>>pro[i].atime>>pro[i].stime;}xianshi(pro,m);SJF(pro,m); getchar(); }4.实验结果5.实验过程中出现的问题及解决办法先来先服务调度算法就是根据进程达到的时间为依据,哪一个进程先来那么该进程就会先执行;最短进程优先调度算法则是以每个进程执行所需时间长短为依据,某一个进程执行所需花的时间要短些那么该进程就先执行。
课程编号:B080103040Linux操作系统实验报告姓名姚柯杰学号******** 班级软工1212 指导教师石凯实验名称Linux操作系统实验开设学期2014-2015第一学期开设时间第11周——第18周报告日期评定成绩评定人石凯评定日期东北大学软件学院实验一熟悉Linux环境一、举例列出常用的shell命令使用方法1.目录操作(1)mkdir abc 创建一个目录abc(2)cd /abc 将工作目录改变到abc(3)cd 改变当前目录到主目录(4)ls 列出当前目录的内容(5)ls -l 输出当前目录内容的长列表,每个目录或文件占一行(6)pwd 显示当前目录的全路径(1)cat mx.c 显示mx.c文件内容(2)more mx.c 分屏显示mx.c内容(3)cat file1 file2 连接file1 和file2(1) cp file1 file2 将文件1复制到文件2(2)mv file1 file2 将文件重命名为file2(3)rm filename 删除文件filename二、通过实例写出Linux下C程序编辑运行过程。
在终端命令下输入vi filename 命令,这里我输入vi helloworld.c 创建并打开helloworld.c 文件按i进入编辑模式,输入下列code:# include <stdio.h>void main(void){Printf(“hello world!\n”);}输入:wq保存退出输入cc helloworld.c编译,在输入./a.out运行三、实验总结在实验一中,我初步对linux有了初步的了解,能熟练目录和文件进行操作,并且能用linux进行基本简单的基于c的编程。
师傅领进门,修行在个人,算是通过这个实验进入了linux的门。
实验二文件操作一、实现CP命令实现思路:提取出源路径和目标路径到函数中,放于定义的两个int变量,定义缓冲区buf,对两个变量进行判断,如果符合要求打开读取源文件信息存于缓冲区,然后写到目标文件中,关闭两个文件以实现等同cp效果。
计算机操作系统(cāo zuò xì tǒnɡ)上机实验报告
云南师范大学信息(xìnxī)学院
实验报告
学号:134100010姓名:姜兴玲班级:计科13A 课程名称:操作系统实验名称:存储管理
实验性质:①综合性实验②设计性实验③验证性实验试验时间:2015年5月5日试验地点:睿智4栋212
本试验所用的设备:计算机一台
实验目的
了解计算机的存储并学会管理。
实验内容及过程:
1.右键单击工具栏,打开任务管理器查看性能来了解CPU
使用和页面文件使用。
2、单击开始设置控制面板系统
单击高级然后选择性能的设置来设置系统、管理系统
3、性能和维护打开控制面板切换到分类视图,选择性能和维护来进行操作。
小结:
通过对控制面板的熟悉我们能更好的了解计算机并且能对存储管理更好的了解和学习!
任课教师评语
教师签字: 年月日
注:每学期至少一次设计性实验。
每学期结束请任课教师按时按量统一(tǒngyī)交到教学秘书处
内容总结
(1)计算机操作系统上机实验报告。
广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室 2015年11月11日实验课操作系统成绩程名称实验项进程管理与进程通信指导老师陈康民目名称(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)进程管理(一)进程的创建实验一、实验目的1、掌握进程的概念,明确进程的含义2、认识并了解并发执行的实质二、实验内容1、编写一段程序,使用系统调用fork( )创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。
试观察记录屏幕上的显示结果,并分析原因。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
三、实验步骤1、编写一段程序,使用系统调用fork( )创建两个子进程。
代码:#include <stdio.h>main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0) putchar('b');else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0) putchar('c');else putchar('a');}}运行结果:bca,bac, abc ,……都有可能。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
代码:#include <stdio.h>main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0)for(i=0;i<10;i++)printf("daughter %d\n",i);else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0)for(i=0;i<10;i++)printf("son %d\n",i);elsefor(i=0;i<10;i++)printf("parent %d\n",i);}}结果:parent…son…daughter..daughter..或parent…son…parent…daughter…等四、分析原因除strace 外,也可用ltrace -f -i -S ./executable-file-name查看以上程序执行过程。
2014-2015学年第一学期课程名称:计算机文化基础学院:机械学院班级:机械B1431班授课教师:张彤芳实训项目:Windows 7操作系统应用实训实训时间:第一周至第三周实训地点:实208-1实训课时:6时同组成员:无实训目的:1、学习Windows 7操作系统的相关知识。
2、学会安装Windows 7操作系统。
实训设备:计算机、Windows 7操作系统光盘实训原理:1、Windows 7系统的启动与退出。
2、窗口、菜单和常用工具栏的操作。
3、控制面板操作。
4、安装Windows 7操作系统。
实训内容:任务一、鼠标与键盘操作1、鼠标包括左键、右键与滚轮。
2、鼠标操作分为单击、双击、右击、拖曳。
3、键盘分为功能键区、编辑键区、数字键区、主键区。
任务二、Windows 7操作系统的桌面基本操作1、图标。
2、快捷方式图标。
3、任务栏。
4、开始按钮。
任务三、新建文件夹1、新建文件夹。
2、打开文件夹。
3、复制文件夹。
4、删除文件夹。
5、选定文件夹。
6、重命名文件夹。
任务四、附件的使用1、画图工具。
2、计算器工具。
3、记事本工具。
任务五、Windows 7窗口操作1、窗口依次包括:边框、标题栏、地址栏、工具栏、菜单栏、工作区、滚动条、常见任务等。
2、改变窗口的排列方式。
3、改变窗口大小。
任务六、控制面板操作1、添加、删除程序。
2、设置时间和日期。
3、设置声音。
4、设置显示。
5、设置桌面小工具。
任务七、屏幕保护设置1、设置屏幕保护。
2、设置主题和外观。
3、设置分辨率。
实训小结:通过本次实验,我学会了什么?。
2015广东高考志愿填报系统操作手册请大家好好参考这个流程进行志愿填写。
参照填志愿登录界面那个操作说明。
注意事项:1.考生须根据自己的报考类别在规定时段的时间内上网(网址为:/kszy/)填报志愿。
逾期不报,责任由考生自负。
在指定时段内,考生本、专科各科类所有院校志愿须一次性填报完毕。
漏报志愿(含志愿无效)的考生只能在录取阶段相应批次征集志愿时补报有缺额计划的院校志愿。
2.考生志愿未在网上确认前,可多次上网修改自己填报的志愿。
当考生确定不再进行志愿的修改时,必须点击“志愿确认”按钮,未点击“志愿确认”的志愿不予承认,网上确认的志愿不得更改,录取时以考生网上确认的志愿数据为准。
3.考生要尽早到中学(报名点)完成《志愿表》的打印,并办理签名手续。
若个别考生发现《志愿表》填报有错误,可向中学(报名点)申请修改,7月1日-2日打印考生志愿表,并组织考生办理签名手续。
请大家注意,如果在这段时间内没有填报志愿的,你就跟大学说BYE-BYE了。
按照去年,大概7月15号第一批开始进行降分录取,到3B降分的时候,大概会是8月末了。
请各位地球人么随时注意关注以下网站相关信息。
一、登录系统登录系统有多种方法可以先登录广东教育考试院官网:/在首页点"普通高考"下拉菜单找到"普通高考志愿填报系统"/kszy/登录首页如下图:图 1考生使用本人考生号、报名时预留的密码和系统显示的验证码登录系统。
二、核对个人信息和查询专业目录(1)、考生个人信息主页考生登录系统后,首先在主页上浏览和核对自己的基本信息,如:考生号、姓名、考试科目、相片等等。
注意:为安全起见,请使用初始密码登录的考生首次登录系统后可修改自己的个人密码。
(如果你记不住密码的,还是不要改了,改了密码吴汉伟也帮不了你)页面如下图所示:图 2可以看到,页面的上方有四个链接:1、查询招生专业目录:根据考生选择的条件,筛选出符合条件的高校和专业;2、查询所报志愿:考生可以浏览其所有批次的详细志愿信息。
操作系统课程设计题目:哲学家就餐问题学院计算机学院专业软件工程班级12级3班学号3112006229 姓名陈志勇指导教师申建芳(2015年6月)操作系统课程设计任务书设计思想说明操作系统平台:Windows 2007开发平台:eclipse程序语言:Java设计思想:定义五个类,分别为哲学家A、哲学家B、哲学家C、哲学家D、哲学家E。
五个类均有thinking(思考)和Eating(吃饭)两个方法.当选定哪几位哲学家就餐后,使用单线程处理选定的哲学家就餐顺序,如果A要就餐,询问C是否要就餐,否则询问D 是否要就餐,否则A自己就餐;然后B进行就餐,如果B就餐,询问D是否要就餐,否则询问E是否要就餐,否则B就餐;然后C进行就餐,如果C就餐,询问E是否就餐,否则C 就餐;最后D就餐,再E就餐.数据结构的说明采用链式timer(计时器),每当一个timer结束时,链接到下一个timer中去,实现多步哲学家就餐顺序,当最后一个哲学家就餐完成后弹出信息面板提示就餐完成。
调用关系:ShowPannel为主类,StateControl为哲学家类,showPannel在timer中调用哲学家类实现就餐、思考的转换和选择。
各模块的算法流程图StateControl类:定义哲学家类Thinking:setText(空闲);Eating:setText(正在使用);showPannel类:点击确定后选定哲学家就餐A组:AC就餐AD就餐A就餐B组:BD就餐BE就餐B就餐C组:CE就餐C就餐D组:D就餐E组:E就餐Messagebox类:仅显示提示信息程序清单StateControl类:package philosopher;class philosopherA{void Thinking(){//正在思考时不占用筷子资源ShowPannel。
chops1。
setText("筷子1当前状态:空闲");ShowPannel.chops2。
宁德师范学院计算机系
实验报告
(2014—2015学年第二学期)
课程名称操作系统
实验名称实验四存储管理
专业计算机科学与技术(非师)年级2012级
学号B2012102147 姓名王秋指导教师王远帆
实验日期2015-05-20
图1 word运行情况
“内存使用”列显示了该应用程序的一个实例正在使用的内存数量。
启动应用程序的另一个实例并观察它的内存需求。
请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况:第二个实例占用内存22772K,比第一个实例占用的内存大很多
2、教师批改学生实验报告应在学生提交实验报告10日内。
中南大学操作系统实验报告姓名:杨国文班级:学号:指导老师:完成时间:2015-11-2问答题:1../mls文件定义的是SELinux的分层安全结构,请解释其中的内容?答:./mls文件的内容是多级安全策略,它是linux系统安全中对约束的一种实现(约束是在TE规则许可范围之外对TE策略提供了更多的限制)。
2.请谈谈你对SElinux架构以及Flask体系架构的认识。
答:LSM(Linux安全模型)反应了它的起源-安全微内核的探索,使用Linxu安全模型(LSM)框架将其自身集成到内核当中。
它是一种轻量级的访问控制框架,适用于多种访问控制模型在它上面以内核可加载模块的形式实现。
用户可以选择合适的安全模块加载到Linux内核上,也就是说允许安全模块已插件的形式进入内核,简单来理解我们可以认为SELinux是LSM的一个插件。
这种设计思想的好处就是模块化,在最少改变内核代码情况下,提供一个能够实现强制访问的模块。
因此LSM框架允许安全模块以插件形式载入内核,而SELinux就是作为一个安全模块载入Linux内核的。
SELinux权限检查的流程中,策略强制服务器会检查AVC (Access Vector Cache;访问向量缓存,客体和主体的权限常常被缓存在AVC当中),如果AVC中有策略决策则会立刻返回给策略强制服务器,如果没有会转向安全服务器,安全服务器会根据系统初始化装载到内核的二进制策略做出决策,再将决策放到AVC中缓存起来,同事将决策返回给策略强制服务器。
如果决策表示允许操作,则主体可以完成对客体的操作,反之被拒绝,被拒绝访问的信息会被记录到log文件。
Flask体系结构来源于DTOS系统原型,主要由两类子系统——客户端-对象管理器和安全服务器组成。
它支持吊销机制,提供线程状态的及时、完全的输出,确保所有内核的操作或是原子的、或是清楚地被划分为用户可视的原子阶段,并且安全服务器原型实现了绑定4个子策略的安全策略。
实验报告课程名称计算机操作系统实验名称进程及其管理班级学号姓名成绩指导教师赵安科实验日期2015年5月21日一.实验题目:进程及其管理二.实验内容:设计一个简单的进程调度算法,模拟OS 中的进程调度过程 三.实验要求:① 进程数不少于5个;② 进程调度算法任选;最好选用动态优先数法,每运行一个时间片优先数减3 ③ 用C++(或C )语言编程; ④ 程序运行时显示进程调度过程。
四.实验步骤:① 设计PCB 及其数据结构: 进程标识数:ID进程优先数:PRIORITY (优先数越大,优先级越高) 进程已占用时间片:CPUTIME进程尚需时间片:ALLTIME (一旦运行完毕,ALLTIME 为0) 进程队列指针:NEXT ,用来将PCB 排成队列 进程状态:STATE (一般为就绪,不用) ② 设计进程就绪队列及数据结构;③ 设计进程调度算法,并画出程序流程图; ④ 设计输入数据和输出格式; 结构格式:当前正运行的进程:0 当前就绪队列:2,1,3,4 ⑤ 编程上机,验证结果。
五.实验说明:假设调度前,系统中有5个进程,其初始状态如下: ID 0 1 2 3 4 可否考虑用二维数组去实现PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 ALLTIME 3 3 6 3 4 STATE readyreadyreadyreadyready① 以时间片为单位调度运行;② 每次总是从ALLTIME 中不为0,且PRIORITY 最大的进程调度运行一个时间片;③上述进程运行后其优先数减3,再修改其CPUTIME和ALLTIME,重复②,③④直到所有进程的ALLTIME均变为0。
六.程序中所用数据结构及说明:程序中定义了一个二维数组pc用于存储5个进程对应的属性,在程序动态执行的过程中随时修改各个进程对应的属性,直到所有进程消耗完时间片为止,同时为了更方便的了解进程执行的过程,添加了一个priority函数,用于动态的显示就绪队列进程的优先数(由大到小排列),以及对应的进程ID号,这样在程序执行的过程中,能清楚下一步该运行的就绪队列中的进程,更方便检查程序执行的过程中进程的调度是否有错误。
Windows 操作系统C/C++ 程序实验:____ 王晨璐___学号:__ 1131000046 ___班级:_ 1 班_____院系:___信息工程学院___2015__年_10_月_26_日实验二Win dows 2000/xp进程控制、背景知识、实验目的三、工具/准备工作四、实验容与步骤请回答:Windows 所创建的每个进程都是以调用CreateProcess()API函数开始和以调用TerminateProcess()或ExitProcess() API 函数终止。
1. 创建进程步骤5:编译完成后,单击“ Build ”菜单中的“ Build 2-1 .exe”命令,建立2-1 .exe可执行文件。
操作能否正常进行?如果不行,则可能的原因是什么?可以正常运行。
清单2-1展示的是一个简单的使用CreateProcess() API函数的例子。
首先形成简单的命令行,提供当前的EXE 文件的指定文件名和代表生成克隆进程的。
大多数参数都可取缺省值, 但是创建标志参数使用了:CREATE NEW CONSOLE标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标 记。
然后该克隆进程的创建方法关闭传递过来的句柄并返回 一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。
CreateProcess()函数有10个核心参数?本实验程序中设置的各个参数的值是: a. LPCSTR IpApplivetio nN amemain()函数。
在关闭程序之前,每 szFlle name b. LPCSTR lpComma ndLineszCmdL inec. LPSECURITY_A TTRIBUTES IpProcessAttributesNULL d. LPSECURITY_ATTRIBUTES lpThreadAttributes NULLe.BOOL bI nheritha ndle Falsef. DWORD dwCreatio nFlage CREATE NEW CONSOLEg. LPVOID ipE nvironment NULLh. LPCTSTR lpCurre ntDirectory NULL I. STARTUPINFO lp startup info &siJ. LPPROCESS INFORMA TIONlpProcess In formati on &pi程序运行时屏幕显示的信息是:提示:部分程序在Visual C++环境完成编译、之后,还可以在Windows 2000/xp的“命令提示符”状态下尝试执行该程序,看看与在可视化界面下运行的结果有没有不同?为什么?界面是一样的2. 正在运行的进程步骤10:编译完成后,单击“ Build ”菜单中的“ Build 2-2.exe”命令,建立2-2.exe可执行文件。
实验报告计算机操作系统-Windows101. 引言Windows10是微软公司推出的最新一代操作系统,广泛应用于个人计算机和企业环境中。
本报告旨在介绍Windows10操作系统的基本概念、架构和功能特性,并分析其在实际应用中的优势和不足之处。
2. Windows10操作系统概述Windows10操作系统是基于Windows内核的全新操作系统,于2015年7月29日正式发布。
与前几个版本相比,Windows10在用户界面、安全性、性能和稳定性等方面有了显著的改进和优化。
2.1 用户界面Windows10采用了新的开始菜单设计,同时提供了传统的桌面模式和全屏Metro应用模式两种用户界面选择。
新的开始菜单在继承了Windows7的传统菜单功能的基础上,加入了在Windows8中引入的动态磁贴功能,使得用户可以更加自由地定制和管理应用程序。
2.2 安全性Windows10引入了许多新的安全功能,包括Windows Hello生物识别、Windows Defender防病毒软件和BitLocker 磁盘加密等。
这些功能提高了系统的安全性,保护了用户的个人信息和数据安全。
2.3 性能和稳定性Windows10通过优化内核和硬件驱动程序,提升了系统的性能和响应速度。
此外,Windows10还引入了新的内存管理技术和进程调度算法,改善了系统的稳定性和资源利用率。
3. Windows10操作系统架构Windows10操作系统采用了微内核架构,将操作系统的核心功能和驱动程序与其他功能模块分开。
它由以下几个主要组件组成:3.1 内核Windows10内核是操作系统的核心部分,负责管理系统资源和提供各种系统服务。
它包含了处理器管理、内存管理、文件系统、网络协议栈等核心功能。
3.2 设备驱动程序Windows10支持各种硬件设备,每个设备都需要相应的驱动程序来进行控制和管理。
Windows10通过设备驱动程序接口(DDI)来统一管理和调度各种硬件设备。
操作系统实验报告学生学院计算机学院专业班级X级网络工程2班学号 311X学生姓名 X指导教师 X 2013年12月26 日计算机学院网络工程专业 2 班学号:X 姓名:X 协作者:________ 教师评定:实验__一__题目_实验一进程调度实验__二__题目_实验二作业调度实验__三__题目_实验三储存管理空间的分配与回收模拟计算机学院网络工程专业 2 班学号:31X6姓名:X 协作者:________ 教师评定:实验题目___实验一进程调度一、实验目的用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、实验原理设计一个有N个进程并发的进程调度程序。
要求采用最高级优先数优先算法。
每个进程有一个进程控制块PCB表示。
进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
进程的优先数以及需要的运行时间可以事先人为地指定。
进程的到达时间为进程输入的时间。
进程的运行时间以及时间片为单位进行计算。
每个进程的状态可以是未准备N(no ready)、就绪W(wait)、运行R(run)、完成F(finish)四种状态之一。
就绪进程获得CPU后就只能进行一个时间片。
用已占用CPU时间加1来表示。
如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1,然后把它插入就绪队列等待CPU。
每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进程检查。
重复以上过程,知道所有进程完成为止。
三、实验方法、步骤、方案1、动态优先数时间片轮转法:采用时间片轮转法和动态优先数算法的混合思想:一开始给予任务赋予优先数,如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1(即满足动态优先数),然后比较队列的优先数,并把该任务插入比该任务现在的优先数还大的进程的最前面。
然后继续进行下一个时间片,直到所有进程完成为止。
2、开放式多级反馈队列调度算法:采用多级反馈队列调度算法。
其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。
当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
开放式实现:允许完成一个时间片后插入进程,对该进程的插入方式是:插入第一队队列的末端。
四、重要函数、数据结构说明动态优先数时间片轮转法:struct pcb{//进程控制块char name[10];//进程名char state;//进程状态int super;//优先数int ntime;//需要运行时间int rtime;//已占用CPU时间int pieces;//时间片struct pcb* link;}sort()//对进程进行优先级排列函数{PCB *first,*second;int insert=0;if((ready==NULL)||((p->super)>(ready->super))){p->link=ready;ready=p;}//优先数最大进入队列头else{first=ready;second=first->link;while(second!=NULL){if((p->super)>(second->super))//插入进程优先数大于当前进程优先数{//插入到当前进程前面p->link=second;first->link=p;second=NULL;insert=1;}else{//否则进入对尾first=first->link;second=second->link;}}if(insert==0){//不插入则继续first->link=p;}}running()//建立进程就绪函数{if(p->pieces==1){p->rtime+=3;//时间片运行}else{(p->rtime)++;}if(p->rtime==p->ntime||p->rtime>p->ntime){destroy();}else{(p->super)--;p->state='W';sort();}}开放式多级反馈队列调度算法:typedef struct pcb{//进程控制块char name[10];//进程名char state;//进程状态int queue;//进程所在队列int ntime;//需要运行时间int rtime;//已占用CPU时间int qtime;//进程在当前队列可运行的时间块struct pcb* link;}findpos()//找到队列函数{PCB *ps=pfend;if(!ps||!ps->link||(ps->link->queue-ps->queue)>1){ pinsert=ps;}else{while(ps->link&&ps->link->queue!=(pfend->queue+2)){ ps=ps->link;}pinsert=ps;}}insert()插入函数{if(!ready){ready=p;pfend=p;pinsert=p;}else if(ready->queue==1){p->link=pfend->link;pfend->link=p;pfend=p;findpos();}else{p->link=ready;ready=p;findpos();}}sort()//插入队列过程函数{if(!ready->link||ready->queue<ready->link->queue){ return;}p=ready->link;ready->link=pinsert->link;pinsert->link=ready;pinsert=ready;ready=p;if(ready&&ready->queue==pinsert->queue){findpos();}}五、实验效果动态优先数时间片轮转法:输入:第一个时间片:第二个时间片:第三个时间片:第八个时间片:开放式多级反馈队列调度算法:输入:第一个时间片:第三个时间片:插入进程third:第六个时间片:第十个时间片:六、失败案例一、优先数溢出:出现原因:needtime>优先数,而动态优先数规则是逐步-1.参考解决方案:添加个判断语句规定优先数最少为0,即当所有进程优先数为0该算法转变为FCFS算法。
二、老进程饿死:12出现原因:即在开放性的条件下出现不停插入新进程,导致永远无法执行老进程。
解决方案:1)添加一个强制执行机构,给予他一个值t,用户可以自行输入t的大小,当队列的进程大于t时,则插入下一个队列里。
2)引用HRN高响应比算法。
13计算机学院网络工程专业 2 班学号:X姓名:X 协作者:________ 教师评定:实验题目___实验二作业调度一、实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。
二、实验原理模拟批处理多道操作系统的作业调度(1)、编写并调试一个作业调度模拟程序。
(2)、作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。
(3)、在批处理系统中,要假定系统中具有各种资源及数量、调度作业时必须考虑到每个作业的资源要求,所需要的资源是否得到满足。
作业调度程序负责从输入井选择若干个作业进入主存,为他们分配必要的资源,当他们能够被进程调度选中时,就可占用处理器运行。
作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。
但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其他一些作业的要求,那么,作业调度必须按一定的算法在这些作业中做出选择。
当作业正常运行完毕或发生错误非正常终止时,作业进入完成状态,此时,系统将收回该作业所占用的全部资源,并清除有关的JCB。
并输出显示作业运行情况及作业输出结果。
(4)、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。
每个作业的最初状态总是等待W。
(5)、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻,并比较各种算法的优缺点。
三、实验方法、步骤、方案编写并调度一个多道程序系统的作业调度模拟程序。
作业调度算法:采用基于先来先服务(FCFS)的调度算法或短作业优先(SJF)调度算法。
可参考课本中的方法自行设计。
对于多道程序系统,要假设系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。
要求打印每选择一个作业后的作业表变化情况以及作业被选中执行的次序。
[提示]:假定某系统可供用户使用的主存空间共100KB,并有5台磁带机。
由于本实验是模拟作业调度,假定程序已经把一批作业的信息存放在输入井,并为他们建立如下的作业表:14后备状态——作业已在输入井,但尚未被选中执行;执行状态——作业被选中,正在执行;完成状态——作业执行结束。
1)先来先服务算法:是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。
2)短作业优先算法:总是按作业要求运行的时间来挑选作业,每次挑选要求运算时间短且资源要求能满足的作业先进入主存执行。
3)当作业执行结束进入完成状态时,做好释放资源等善后工作。
4)本实验主要模拟作业调度,所对处理器调度,作业控制过程简化。
用输入随机数模拟处理器调度,用输入“用户名,作业名”模拟一个作业已经执行结束。
5)为作业分配资源可用修改资源分配表来代替。
四、重要函数、数据结构说明先来先服务(FCFS):typedef struct JCB{//作业控制块char uname[10];//用户名char jname[10];//作业名char state;//作业状态int atime;//到达时间)int rtime;//运行时间RESOURCE resource;//资源量struct JCB *link;}JCB;sendsource()//送入内存(运行){JCB *p;p=pjcb->link;while(p){if(p->state=='W'&&source.memory-p->resource.memory>=0&&source.tape-p->resource.tape>=0 ){p->state='R';source.memory-=p->resource.memory;source.tape-=p->resource.tape;printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);}15p=p->link;}}running(){if(check()){printf("All assignments were done\n");getchar();exit(0);}JCB *p=pjcb->link;int time;while(p){time=nowtime-(p->atime);if(p->state=='R'&&time>=p->rtime){p->state='F';source.memory+=p->resource.memory;source.tape+=p->resource.tape;printf("\nThe %s %s was done\n",p->uname,p->jname);break;}p=p->link;}p=pjcb->link;while(p){if(nowtime==p->atime&&p->state=='N'){p->state='W';printf("\nNow,the %s %s assignment was arrived\n",p->uname,p->jname);}p=p->link;}sendsource();disp();}短作业优先(SJF):typedef struct JCB{//作业控制块char uname[10];//用户名char jname[10];//作业名char state;//作业状态int atime;//到达时间)int rtime;//运行时间16RESOURCE resource;//资源量struct JCB *link;int stime;}JCB;JCB *pjcb;sendsource()//排队函数{JCB *p;p=pjcb->link;int min=99;while(p){//做一个min运算求出最短运行时间if(p->state=='W'){min=min<(p->rtime)?min:(p->rtime);}p=p->link;}p=pjcb->link;while(p){if(p->state=='W'&&p->rtime<=min&&source.memory-p->resource.memory>=0&&source.tape-p ->resource.tape>=0){p->stime=nowtime;p->state='R';source.memory-=p->resource.memory;source.tape-=p->resource.tape;printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);}p=p->link;}p=pjcb->link;while(p){if(p->state=='W'&&source.memory-p->resource.memory>=0&&source.tape-p->resource.tape>=0 ){p->stime=nowtime;p->state='R';source.memory-=p->resource.memory;source.tape-=p->resource.tape;printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);}p=p->link;}}17高响应比优先算法(HRN):struct jcb //作业控制块{char name[10]; //作业名int reachtime; //作业到达时间int starttime; //作业开始时间int needtime; //作业需要运行的时间float super; //作业的响应比int finishtime; //作业完成时间int cycletime; //作业周转时间float cltime; //作业带权周转时间char state; //作业状态struct jcb *next; //结构体指针}*ready=NULL,*p,*q;typedef struct jcb JCB;void running(JCB *p,int m) //运行作业{if(p==ready) //先将要运行的作业从队列中分离出来{ready=p->next;p->next=NULL;}else{q=ready;while(q->next!=p) q=q->next;q->next=p->next;}p->starttime=times; //计算作业运行后的完成时间,周转时间等等p->state='R';p->finishtime=p->starttime+p->needtime;p->cycletime=(int)(p->finishtime-p->reachtime);p->cltime=(int)(p->cycletime/p->needtime);T1+=p->cycletime;T2+=p->cltime;disp(p,m); //调用disp()函数,显示作业运行情况times+=p->needtime;p->state='F';printf("\n\n%s was finished!\n",p->name);free(p); //释放运行后的作业getch();}void super() //计算队列中作业的高响应比18{JCB *padv;padv=ready;do{ if(padv->state=='W'&&(padv->reachtime)<=times){padv->super=(float)(times-padv->reachtime+padv->needtime)/padv->needtime;}padv=padv->next;}while(padv!=NULL);}五、实验效果先来先服务(FCFS):时间片Nowtime=0时,运行A(先来先服务原则)。