东北大学操作系统实验一报告精编版
东北大学操作系统实验
一报告
文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
操作系统实验报告班级物联网1302班
学号
姓名
实验一:熟悉Linux系统
目的:
①熟悉和掌握Linux系统基本命令,熟悉Linux编程环境,为以后的实验打下基础。
启动退出、ls(显示目录内容)、cp(文件或目录的复制)、mv(文件、目录更名或移动)、rm(删除文件或目录)、mkdir(创建目录)、rmdir (删除空目录)、cd(改变工作目录)…
C语言编辑、编译
内容及要求:
熟练掌握Linux基本文件命令;
掌握Linux编辑程序、对源代码进行编译、连接、运行及调试的过程;
认真做好预习,书写预习报告;
实验完成后要认真总结、完成实验报告
login:用户登录系统
使用login命令可以允许用户登录系统。
如果没有指定参数,登录时提示输入用户名。
如果该用户不是root,且如果/etc/nologin文件存在,这个文件的内容被显示到屏幕上,登录被终止。
命令语法:Login [选项][用户名]
exit:退出系统
使用exit命令可以退出shell
命令语法:exit[选项]
ls:列出目录和文件信息
使用ls命令,对于目录而言将列出其中的所有的子目录与文件信息,对于文件而言将输出
命令语法:ls[选项][目录|文件]
ls命令部分选项含义
cp:复制文件和目录
使用cp命令可以复制文件vhe目录到其他目录中。
如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有的文件或目录复制到该目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
命令语法:cp [选项][源文件|目录][目标文件|目录]
cp命令部分选项含义
Mv:可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。
命令格式:mv[选项]源文件或目录目标文件或目录.
mv命令部分选项含义
rm:该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
对于链接文件,只是删除了链接,原有文件均保持不变。
命令格式:rm[选项]文件…
rm命令部分选项含义
mkdir:命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录
命令格式:mkdir[选项]目录..
mkdir命令部分选项含义
cd:该命令设置某一进程的当前工作目录。
用户必须具有指定目录中的执行(搜索)许可权。
如果未指定目录参数,cd 命令会将当前工作目录设置为登录
目录(在 ksh 和 bsh 环境中是 $HOME,而在 csh 环境中则是 $home)。
如果指定的目录名是完整的路径名,它就成为当前工作目录。
完整的路径名以 /(斜杠)开头,表示根目录,而 .(点)表示当前目录,或者 ..(点点)表示父目录。
如果目录名不是完整的路径名,则 cd 命令会搜索与由 $CDPATH shell 变量(或 $cdpath csh 变量)指定的路径之一有关的路径名。
此变量与 $PATH shell 变量(或 $path csh 变量)具有相同的语法和相似的语义。
命令格式:cd[目录名]。
操作系统实验报告模板
操作系统实验报告模板一、实验目的本次操作系统实验的主要目的是通过实际操作和观察,深入理解操作系统的核心概念和功能,包括进程管理、内存管理、文件系统、设备管理等方面。
同时,培养学生的动手能力、问题解决能力和团队合作精神,提高对操作系统原理的掌握程度和实际应用能力。
二、实验环境1、操作系统:_____(具体操作系统名称及版本)2、开发工具:_____(如编译器、调试器等)3、硬件环境:_____(处理器型号、内存大小等)三、实验内容(一)进程管理实验1、进程创建与终止使用系统调用创建多个进程,并观察进程的创建过程和资源分配情况。
实现进程的正常终止和异常终止,观察终止时的系统行为。
2、进程调度研究不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等。
通过编程模拟实现这些调度算法,并比较它们的性能。
3、进程同步与互斥利用信号量、互斥锁等机制实现进程之间的同步与互斥。
编写多进程程序,模拟生产者消费者问题、读者写者问题等经典同步场景。
(二)内存管理实验1、内存分配与回收实现不同的内存分配算法,如首次适应算法、最佳适应算法、最坏适应算法等。
观察内存分配和回收的过程,分析算法的优缺点。
2、虚拟内存了解虚拟内存的概念和实现原理。
通过设置页表、进行页面置换等操作,模拟虚拟内存的管理过程。
(三)文件系统实验1、文件操作实现文件的创建、打开、读写、关闭等基本操作。
研究文件的属性(如权限、大小、创建时间等)的设置和获取。
2、目录管理创建、删除目录,遍历目录结构。
实现文件和目录的重命名、移动等操作。
(四)设备管理实验1、设备驱动程序了解设备驱动程序的结构和工作原理。
编写简单的设备驱动程序,实现对特定设备的控制和数据传输。
2、设备分配与回收研究设备分配的策略,如独占式分配、共享式分配等。
实现设备的分配和回收过程,观察系统的资源利用情况。
四、实验步骤(一)进程管理实验步骤1、进程创建与终止编写程序,使用系统调用创建指定数量的进程。
操作系统实验报告模板
操作系统实验报告模板操作系统实验报告实验1分析实验结果参照实验指导书回答下面的问题:5:6:从实验中得到了两次不同的结果原因是程序采用了多线程的写法,两个线程同时抢占CPU资源,CPU并发处理该程序。
10:11:CPU并发处理程序第一次先运行func2()中的 x=x+2 再输出x=2 接着执行func2()中的y=3,然后执行func1() x=3 y=y+x, 输出y 所以结果为 x=2 y=7 第二次先运行 func1()中的 x=4 y=4 再运行 func2()中y=3 x=x+2得到 x=6 y=315:CPU 并发执行程序使得在完成整个循环之前输出 x的值19:通过控制turn变量使得程序先完成func2()的完整循环再完成func1()的完整循环最后得到结果10023:由于信号量s 的出现通过wai(s)和 signal(s)语句避免了在未完成循环前推出的情况实验2分析实验结果参照实验指导书回答下面的问题:5:11:发生死锁交换p()函数中wait(e)与wait(s)的顺序之后消费者进入缓冲池后没能够出去,一直占用缓冲池,使得生产者无法进入缓冲池生产. 使得进程陷入死锁不剥夺.17:发生死锁:c()函数中wait(n)与wait(s)的顺序后.会导致生产者处于一直生产的状态.当缓冲池满后,生产者在缓冲池中,出不去,消费者也进不了缓冲池.仅使进程处于请求保持状态,还有不剥夺,环路等待状态.实验3(该实验为期中考试项目,按照期中考试要求提交报告)实验4问题1:描述内存控制块结构;描述内存控制块与内存分区和内存块的关系只有当把内存控制块与分区关联起来之后,系统才能对其进行相应的管理和控制。
它才是一个真正的动态内存区。
问题2:应用程序的源代码(请对内存操作给出注释)#include "includes.h"#define TASK_STK_SIZE 512 //任务堆栈长度OS_STK StartTaskStk[TASK_STK_SIZE];OS_STK MyTaskStk[TASK_STK_SIZE];OS_STK YouTaskStk[TASK_STK_SIZE];OS_STK HerTaskStk[TASK_STK_SIZE];INT16S key; //用于退出uCOS_II的键char *s;char *s1="MyTask--ZYS";char *s2="YouTask-ZYS";char *s3="HerTask-ZYS";INT8U err;INT8U y=0; //字符显示位置INT8U Times=0;OS_MEM *IntBuffer;INT8U IntPart[8][6];INT8U *IntBlkPtr;OS_MEM_DATA MemInfo;void StartTask(void *pdata);void MyTask(void *pdata);void YouTask(void *pdata);void HerTask(void *pdata);/************************主函数******************************************/void main (void){OSInit(); //初始化uCOS_IIPC_DOSSaveReturn(); //保存Dos环境PC_VectSet(uCOS, OSCtxSw);IntBuffer=OSMemCreate(IntPart,8,6,&err);OSTaskCreate(StartTask,(void*)0,&StartTaskStk[TASK_STK_SI ZE - 1], 0);OSStart();}/****************************任务StartTask *************************************************/ void StartTask (void *pdata){#if OS_CRITICAL_METHOD == 3OS_CPU_SR cpu_sr;#endifpdata = pdata;OS_ENTER_CRITICAL();PC_VectSet(0x08, OSTickISR);PC_SetTickRate(OS_TICKS_PER_SEC);OS_EXIT_CRITICAL();OSStatInit();//安装uCOS_II中断 //定义内存控制块指针 //划分分区及内存块OSTaskCreate(MyTask,(void*)0,&MyTaskStk[TASK_STK_SIZE - 1], 3);OSTaskCreate(YouT ask,(void*)0,&YouT askStk[TASK_STK_SIZE - 1], 4);OSTaskCreate(HerT ask,(void*)0,&HerT askStk[TASK_STK_SIZE - 1], 5);// 按 ESC 退出 ucosfor (;;){if (PC_GetKey(&key) == TRUE) {if (key == 0x1B) {PC_DOSReturn();}}OSTimeDlyHMSM(0, 0, 3, 0);}}/****************************任务MyTask *************************************************/void MyTask(void *pdata){#if OS_CRITICAL_METHOD==3OS_CPU_SR cpu_sr;#endifpdata=pdata;for(;;){PC_DispStr(10,++y,s1,DISP_BGND_BLACK+DISP_FGND_WHI TE);IntBlkPtr=OSMemGet(IntBuffer,&err); //请求内存块,分区指针,错误信息OSMemQuery(IntBuffer,&MemInfo); //查询内存控制块信息,待查询内存控制块指针sprintf(s,"%0x",MemInfo.OSFreeList); // 头指针PC_DispStr(30,y,s,DISP_BGND_BLACK+DISP_FGND_WHITE);sprintf(s,"%d",MemInfo.OSNUsed); //>f :y 騗 (u pe 顅 / p > p c l a s s = " t " > P C _ D i s p S t r ( 4 0 , y , s , D I S P _ B G N D _ B L A C K + D I S P _ F G N D _ W H I T E ) ; / p > p c l a s s = " t " > i f ( T i m e s &g t ; 4 ) / p > p c l a s s = " t " > { / p > p c l a s s = " t " > O S M e m P u t ( I n t B u f f e r , I n t B l k P t r ) ; / / 蕬 >e 匭 X[ WW , / p > p c l a s s = " t " > } / p > p c l a s s = " t " > T i m e s + + ; / p > p c l a s s = " t " > O S T i m e D l y H M S M ( 0 , 0 , 1 , 0 ) ; / p > p c l a s s = " t " > } / p > p c l a s s = " t " > } / / I{ 卂 1 s / p >。
操作系统实验报告
操作系统实验报告操作系统实验报告实验名称:进程调度算法模拟实验目的:1. 了解进程调度算法的工作原理。
2. 掌握实现进程调度算法的方法。
3. 通过模拟实验,对比不同调度算法的效果。
实验环境:操作系统:Windows 10开发工具:C语言编译器(如gcc)实验过程及实验结果:1. 实验准备:在开始实验前,我们需要先了解几种常见的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、优先级调度(Priority)、轮转调度(Round Robin)等。
2. 实验步骤:(1)首先,我们需要定义进程控制块(PCB),包含进程的ID、到达时间、服务时间、完成时间、周转时间等信息。
(2)接下来,我们需要编写模拟程序,模拟不同的进程调度算法。
在模拟程序中,我们可以使用数组来保存多个进程的PCB信息,并根据不同调度算法对进程进行排序或者选择。
(3)然后,我们需要根据调度算法选择一个进程来执行,更新进程的状态和相关信息。
(4)最后,我们要根据不同调度算法计算每个进程的周转时间、平均周转时间、平均等待时间等指标,并输出结果。
3. 实验结果:我们可以分别对比不同调度算法在同样一组进程集合上的表现,比如FCFS、SJF、Priority和Round Robin等。
实验结论:通过对比不同的进程调度算法,我们可以发现每种算法在不同场景下的优劣势。
先来先服务算法适用于长作业时间,短作业优先算法适用于短作业时间,优先级调度适用于具有不同优先级的进程,轮转调度适用于时间片控制的场景。
总结:通过本次实验,我们对进程调度算法有了更深入的了解,并且掌握了实现进程调度算法的方法。
这对我们理解操作系统的工作原理和提高程序性能都有一定的帮助。
操作系统实验报告
操作系统实验报告1. 实验目的本实验旨在通过设计和实现一个基本的多道批处理操作系统来加深对操作系统基本概念和原理的理解,并加强对操作系统进行实践的能力。
2. 实验环境本实验采用如下环境进行实验:•操作系统:Windows 10•编程语言:C3. 实验内容本实验实现了一个基本的多道批处理操作系统,主要包括以下内容:3.1 进程调度操作系统通过进程调度算法,根据进程的优先级和进程的执行状态来决定下一次运行的进程,从而合理利用和分配CPU资源。
本实验中我们采用了基本的抢占式调度算法,即优先级越高的进程将会获得更多的CPU时间。
3.2 进程管理操作系统管理着多个并发运行的进程,在系统的执行过程中需要对这些进程进行管理,如创建新进程、销毁进程、挂起进程等等。
本实验中我们实现了进程的创建和销毁功能,并可以通过调用相应系统调用来挂起和恢复进程。
3.3 内存管理操作系统需要管理系统中的内存空间,为各个进程分配所需的内存。
本实验中我们实现了基本的内存管理功能,可以为进程分配内存空间,并在进程结束时回收内存资源。
3.4 文件管理操作系统能够管理文件系统,在文件系统中进行文件的创建、读取、写入和删除等操作。
本实验中我们实现了文件管理功能,可以创建和删除文件,并实现了文件的读写操作。
4. 实验结论通过本次实验,我们深入学习了操作系统的基本原理和概念,并实践了设计和实现一个基本的多道批处理操作系统。
通过实验,我们掌握了进程调度、进程管理、内存管理和文件管理等基本功能的实现方法。
在实现的过程中,我们发现操作系统的设计与实现是非常复杂且需要考虑多种因素的。
通过本次实验,我们对操作系统的工作原理有了更加深入的理解,并提升了解决问题和编程能力。
5. 实验总结通过本次实验,我们进一步了解了操作系统的工作原理和基本功能,并通过设计和实现一个基本的多道批处理操作系统来加深对操作系统的理解。
在实验过程中,我们遇到了一些问题,如进程调度算法的选择、内存资源的分配等等。
操作系统实验一实验报告
实验1 Linux系统的安装1、实验目的Linux操作系统的安装,掌握linux的安装步骤及方法,加深理解操作系统的作用与功能。
2,实验内容使用虚拟机软件,操作系统选择RedHat 9.0,根据操作系统引导提示,选择适合的安装类型、软件包,分区大小。
实验前的准备⑴Linux Redhat 9.0 镜像文件(3个)下图所示⑵一台装有VMware软件的PC机实验步骤:一、新建一个虚拟机打开VMware软件,新建一个虚拟机在新建虚拟机向导中选择标准类型为虚拟机创建一个空白硬盘选择操作系统的类型为虚拟机命名,选择虚拟机安装位置(不要安装在C盘)选择虚拟机硬盘大小单击完成按钮,完成虚拟机的创建一个创建好的虚拟机二、开始安装Red Hat 9.0操作系统开始安装前要给虚拟机的CD/DVD 装入系统的镜像文件,双击上图设备框中的CD/DVD,在下图选择系统镜像文件所在的位置:选中Use ISO image,点Browse找到镜像文件所在的位置首先选择shrike-i386-disc1.iso 文件选好后在下图左侧命令框中选择打开虚拟机电源开始安装系统打开电源,当出现如下画面时按Enter键启动(此时输入状态在虚拟机内时Enter键才有效)(注意:按Ctrl + G,将输入状态切换到虚拟机中,也可在虚拟机屏幕区域内单击一下鼠标左键;退出虚拟机输入状态时按Ctrl + Alt)随后出现如下检测安装盘画面,为节省安装时间,跳过此步骤(按右方向键选择Skip,然后按回车键。
此时输入状态应在虚拟机内,否则右方向键无效)跳过此步骤后出现如下画面选择Next随后选择语言、键盘、鼠标选择合适的安装类型选择安装类型后,要确定安装位置,就是设置磁盘分区。
前面准备好空闲空间了可让安装程序自动分区,也可自己手工分区,这样可自己确定每个分区的具体参数。
这里选择手工分区并对分区进行格式化下面开始分区我们将空闲磁盘分成三个区,这三个分区分别为/boot、/、swap(swap和/是必须的)/boot引导分区,存放引导文件,如Linux内核等swap交换分区,作为虚拟内存使用,大小一般为实际内存的2倍/ 根分区,硬盘不论分几个区所有的文件都在根目录下在上图中点击“新建”按钮来新建分区新建/boot分区大小为100M:新建swap分区:大小为1024M(最佳为实际内存的2倍)新建/根分区大小使用全部可用空间分区创建完成之后如下图所示下面分别进行引导装载程序配置、网络配置、防火墙配置、附加语言支持、时区选择,使用默认配置即可接下来设置根口令(超级用户root的登录密码,请牢记!)点击下一步进行个人桌面设置选择定制要安装的软件包集合在选择软件包组中找到开发选择开发工具(这里主要是要安装gcc这个软件,后续的实验都会用到这个编译工具)继续点击下一步,开始安装系统下面开始等待……安装过程将出现如下提示(共出现两次)解决方法:点VM -> Edit virtual machine settings 进入homeware ,点CD/DVD, 然后①勾选Use ISO image,点Browse....,选中shrike-i386-disc2.iso,点打开;②在设备状态Device Status中勾选connected选项,再点确定,再点击上图的确定以继续安装。
计算机操作系统实验课实验报告
计算机操作系统实验课实验报告一、实验目的本次计算机操作系统实验课的主要目的是通过实际操作和观察,深入理解计算机操作系统的基本原理和功能,提高对操作系统的实际运用能力和问题解决能力。
二、实验环境本次实验使用的计算机配置为:处理器_____,内存_____,操作系统为_____。
实验所使用的软件工具包括_____。
三、实验内容及步骤(一)进程管理实验1、编写程序创建多个进程,并观察进程的执行顺序和资源分配情况。
首先,使用编程语言(如 C 或 Java)编写代码,创建多个进程。
然后,通过操作系统提供的工具(如任务管理器)观察进程的创建、执行和结束过程。
记录不同进程的执行时间、CPU 使用率和内存占用情况。
2、实现进程间的通信机制,如管道、消息队列等。
分别编写使用管道和消息队列进行进程间通信的程序。
在程序中发送和接收数据,并观察通信的效果和数据的完整性。
(二)内存管理实验1、模拟内存分配算法,如首次适应算法、最佳适应算法和最坏适应算法。
编写程序实现上述三种内存分配算法。
输入不同的内存请求序列,观察每种算法下内存的分配情况和碎片产生情况。
2、研究虚拟内存的工作原理,并进行相关实验。
通过操作系统的设置,调整虚拟内存的大小。
运行大型程序,观察虚拟内存的使用情况和系统性能的变化。
(三)文件系统实验1、实现文件的创建、读写和删除操作。
使用编程语言创建文件,并向文件中写入数据。
读取文件中的内容,并进行验证。
删除文件,观察文件系统的变化。
2、研究文件系统的目录结构和文件权限管理。
观察文件系统的目录层次结构,了解目录的组织方式。
设置文件的权限,如只读、读写、执行等,观察不同权限对文件操作的影响。
四、实验结果与分析(一)进程管理实验结果与分析1、在创建多个进程的实验中,发现进程的执行顺序并非完全按照创建的顺序,而是由操作系统的调度算法决定。
某些进程可能会因为等待资源而暂时被挂起,而其他进程则会得到执行机会。
2、通过进程间通信实验,发现管道通信方式简单直接,但只能用于具有亲缘关系的进程之间;消息队列则更加灵活,可以在不同的进程之间传递消息,但需要更多的编程和管理工作。
操作系统实验报告
操作系统实验报告实验报告内容(包括实验目的、实验仪器设备及软件环境、实验内容、实验步骤、实验结果、错误信息及原因分析等。
实验性质为设计性实验时,应增加设计过程、实验方案;为综合性实验时,应详细叙述本实验项目所涵盖的相关知识点。
)一、实验目的1.掌握关系运算和逻辑运算的应用。
2.掌握if语句的三种形式。
3.掌握if嵌套的用法。
4.了解switch语句的结构和应用。
二、实验仪器设备及软件环境1.实验仪器设备:微型计算机1台2.软件环境:Win操作系统、VC++6.0软件三、实验内容输入三角形的三边,判断是否能构成三角形。
若能构成输出YES,否则输出NO。
计算分段函数,测试数据分别是-2、3、7。
实现如下分段函数的功能。
请根据输入的x,输出对应的结果。
4. 输入一个年份和月份,输出这个月的天数。
(用switch实现)四、实验步骤1、完成实验内容的程序代码如下:2、完成实验内容的程序代码如下:3、完成实验内容的程序代码如下:4、完成实验内容的程序代码如下:五、实验结果将运行的各个页面截图,图下方写明图的名称,1、判断三边是否能构成三角形2、分段函数的计算3、分段函数的再计算4、未知月份天数的确定六、错误信息及原因分析1、错误11)错误信息:2)异常界面:3)原因分析:If语句中使用“,”。
4)解决方案:将if语句中的“,”改为“&&”。
2、错误21)错误信息:2)异常界面:原因分析:事先没有调用函数4)解决方案:在第二行添加#include<math.h>3、错误31)错误信息:2)异常界面:3)原因分析:符号“=”与符号“==”意义没有弄清,造成混淆。
4)解决方案:将x=0改为x==04、错误41)错误信息:2)异常界面:3)原因分析:将a能被100整除的情况忽略。
4)解决方案:添加语句“if(a%100==0) m=28;”。
操作系统实验报告
操作系统实验报告一、实验目的本次操作系统实验的主要目的是深入了解操作系统的基本原理和功能,通过实际操作和观察,增强对进程管理、内存管理、文件系统等核心概念的理解和掌握。
同时,培养解决实际问题的能力,提高编程和调试技能,为今后学习和工作中更好地应用操作系统知识打下坚实的基础。
二、实验环境本次实验在_____操作系统环境下进行,使用的编程语言为_____,开发工具为_____。
三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新进程,并观察进程的创建过程和资源分配情况。
同时,实现进程的正常终止和异常终止,了解进程终止时的资源回收机制。
2、进程调度算法模拟模拟实现先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)等进程调度算法。
通过对不同调度算法的模拟,分析其性能特点,如平均周转时间、平均等待时间等。
(二)内存管理实验1、分区存储管理实现固定分区和动态分区存储管理方式,观察内存的分配和回收过程,分析不同分区策略下的内存利用率和碎片情况。
2、页面置换算法模拟模拟实现先进先出(FIFO)、最近最少使用(LRU)、最佳置换(OPT)等页面置换算法。
通过对不同页面置换算法的模拟,分析其对缺页率的影响。
(三)文件系统实验1、文件的创建、删除与读写通过编程实现文件的创建、删除操作,并对文件进行读写操作,观察文件系统的工作过程。
2、文件目录结构的实现实现简单的文件目录结构,如单级目录、两级目录和树形目录结构,了解文件目录的组织和管理方式。
四、实验步骤(一)进程管理实验1、进程创建与终止(1)使用系统提供的进程创建函数创建新进程,并在新进程中执行特定的任务。
(2)在父进程中等待子进程的结束,并获取子进程的返回状态。
(3)通过设置不同的条件,实现进程的正常终止和异常终止,并观察操作系统对终止进程的处理。
2、进程调度算法模拟(1)设计数据结构来表示进程的信息,如进程 ID、到达时间、服务时间等。
操作系统实验报告 完全版
《计算机操作系统》实验报告班级:姓名:学号:实验一进程控制与描述一、实验目的通过对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类型的应用程序的标准入口点。
# include <windows.h># pragma comment(lib, “user32.lib” )int APIENTRY WinMain(HINSTANCE /* hInstance */ ,HINSTANCE /* hPrevInstance */,LPSTR /* lpCmdLine */,int /* nCmdShow */ ){:: MessageBox(NULL,“hello, Windows 2000” ,“Greetings”,MB_OK) ;return(0) ; }在程序1-1的GUI应用程序中,首先需要Windows.h头文件,以便获得传送给WinMain() 和MessageBox() API函数的数据类型定义。
接着的pragma指令指示编译器/连接器找到User32.LIB库文件并将其与产生的EXE文件连接起来。
这样就可以运行简单的命令行命令CL MsgBox.CPP来创建这一应用程序,如果没有pragma指令,则MessageBox() API函数就成为未定义的了。
操作系统课程实验报告(完整版)
中南大学《操作系统》实验报告姓名:福星专业班级:软件 1006班学号:完成日期:2011.11.22进程调度与存管理一、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。
当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。
实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。
帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。
二、实验要求1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权-1/要求运行时间-1要求运行时间=0时,撤销该进程3、重新排序,进行下轮调度。
4、可随时增加进程;5、规定道数,设置后备队列和挂起状态。
若存中进程少于规定道数,可自动从后备队列调度一作业进入。
被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。
6、每次调度后,显示各进程状态。
7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目容:起址、长度、状态(未分/空表目)8、结合以上实验,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}9、采用最先适应算法分配主存空间;10、进程完成后,回收主存,并与相邻空闲分区合并。
11、采用图形界面;三、实验容选择一个调度算法,实现处理机调度。
1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。
3、主存储器空间的分配和回收。
在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。
四、实验原理该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。
每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。
