• 优质范文
  • 工作总结
  • 工作计划
  • 作文大全
  • 心得体会
  • 述职报告
  • 实习报告
  • 写作方案
  • 教案反思
  • 演讲稿
  • 发言稿
  • 读书笔记
  • 精美散文
  • 读观后感
  • 当前位置: 博通范文网 > 读书笔记 > 正文

    操作系统第一次实验报告

    时间:2021-09-10 来源:博通范文网 本文已影响 博通范文网手机站

    操作 系统 实验报告

    实验名称:

    线程 控制实验

    计算机科学与技术学院

    目录

    一、实验目的和要求 2 二、实验内容 2 三、实验步骤 2 四、实验结果与分析 3 1.单线程 3 2.单线程(睡眠 4s) 3 3.多线程 4 4.多线程(每个子线程睡眠 1s) 4 5.单线程与多线程对比 5 五、程序源代码 5 1.单线程实验代码 5 2.单线程实验代码 6 六、实验体会 7

    一、实验目的和要求

    通过本实验掌握在 Linux 操作系统中遵循 Posix线程标准接口进行多线程程序编程,熟练掌握线程的创建 pthread_create(),线程的终止 pthread_exit(),等待线程合并 pthread_join()等线程控制操作,利用信号量或者互斥锁实现线程建的同步。

    二、实验内容

    问题:求 1000000 个浮点数(精确到小数点后 4 位)的平均值(和,最大值,最小值),具体的问题描述流程图如下图图 1 所示:

    三 、实验 步骤

    1、随机生成 1000000个浮点数; 2、创建 4个子线程,分别求 250000个浮点数之和; 3、完成 1000000 个浮点数之和并打印结果; 4、统计多线程并发执行完成计算的时间; 5、写一个单线程程序,同样完成 1000000 个随机数求和的计算,统计计算时间,并和前面结果进行对比; 6、让单线程程序睡眠四秒钟、多线程程序各子程序睡一秒的条件下(两个程序总的睡眠时间相同),对比执行结果; 7、分析两次对比结果的差异,写出自己的见解。

    四、实验结果与分析 1、单线程完成 1000000 个浮点数的求和运算所用的时间情况如下图图 2 所示:

    图 图 2 单线程计算 时间

    分析:实验中每次随机产生一个 0 到 1 之间的浮点数,1000000 个这样的数相加的话的平总和大概就在 500000 左右(按照随机数的平均值原理),实验中 sum=,显然结果正确,整个计算运行时间为。

    2、单线程完成 1000000 个浮点数的求和运算,单线程中睡眠 4 秒钟,所用的时间情况如下图图3 所示:

    图 图 3 单线程计算 时间( 睡眠 4 秒) 分析:根据上一次单线程的执行情况来看,这一次让单线程睡眠 4 秒钟,最后执行时间刚好就是4 秒加上计算时间。也就是说计算 1000000 个浮点数的总和平均时间约为。

    3、四个子线程共同完成 1000000 个浮点数的求和计算所用时间情况如下图图 4所示:

    图 图 4 多线程计算时间

    分析:因为这次是 4 个子线程并发运行,每个子线程只需计算 250000个浮点数的总和,理想情况下这时候的运行时间应该是这单线程中计算时间的四分之一。从图中可以看到执行时间是,很显然这个时间约为单线程求 1000000 个浮点数之和的时间()的四分之一,符合预期的结果。

    4、四个子线程共同完成 1000000 个浮点数的求和计算,其中每个子线程睡眠 1 秒钟,最终所用时间情况如下图图 5所示:

    图 图 5 多线程计算时间( 每个 子线程眠 睡眠 1 秒)

    分析:这里四个子线程每个子线程睡眠一秒,但由于四个子线程并发同步的在执行,当一个子线程在睡眠时,另外一个子线程却仍然在继续求和计算,因此他们一起合作同步完成1000000个浮点数的计算所需的时间就是 1 秒加上上图中不睡眠的时候的计算时间。从图中可以

    看到≈1s+,所以最终的结果符合预期值。

    5、单线程计算时间(睡眠 4s)与多线程计算时间(每个子线程睡眠 1s)对比效果如下图图 6 所示:

    图 图 6 单线程 ( 睡眠 4s)与 与 多线程 ( 每个眠 子线程睡眠 1s) 计算时间 对比图 五、程序源代码 /************************* *FileName:

    *Author:

    *Date:2013/11/22 ***************************/ #include <> #include <> #include <> #include <> #include #define LOOP 1000000 float SUM=0; void *ADD() {

    int i;

    srand(time(NULL));

    for(i=0;i

    {

    SUM += (float)(rand()/(float)RAND_MAX);

    }

    sleep(4); } int main() {

    pthread_t p;

    int result;

    float time;

    struct timeval start;

    struct timeval end;

    gettimeofday(&start,NULL);

    result=pthread_create(&p,NULL,ADD,NULL);

    if(result!=0)

    {

    printf("Create Thread of ADD Failure\n");

    exit(-1);

    }

    pthread_join(p,NULL);

    gettimeofday(&end,NULL);

    time = ((float) - *1000000+(float)

    - )/1000000;

    printf("Signal_Thread_Sum:%.4f\n",SUM);

    printf("Signal_Thread_Execution_Time:%.4fs(sleep 4 sec)\n",time);

    return 0; }

    /************************* *FileName:

    *Author:wangtao *Date:2013/11/22 ***************************/ #include <> #include <> #include <> #include <> #include #define LOOP 25000 pthread_mutex_t mutex; float SUM=0; void ADD(int * k) {

    int i;

    srand(time(NULL));

    for(i=0;i

    {

    pthread_mutex_lock(&mutex);

    SUM += (float)((float)rand()/RAND_MAX);

    pthread_mutex_unlock(&mutex);

    }

    printf("pthread%d:%.4f\n",*k,SUM);

    sleep(1); } int main(void) {

    pthread_t p1,p2,p3,p4;

    int result1,result2,result3,result4;

    int k1=1,k2=2,k3=3,k4=4;

    struct timeval start;

    struct timeval end;

    float time;

    gettimeofday(&start,NULL);

    pthread_mutex_init(&mutex,NULL);

    result1=pthread_create(&p1,NULL,(void*)ADD,&k1);

    result2=pthread_create(&p2,NULL,(void*)ADD,&k2);

    result3=pthread_create(&p3,NULL,(void*)ADD,&k3);

    result4=pthread_create(&p4,NULL,(void*)ADD,&k4);

    if(result1!=0||result2!=0||result3!=0||result4!=0)

    {

    printf("Create Child

    Thread

    Failure!\n");

    exit(1);

    }

    pthread_join(p1,NULL);

    pthread_join(p2,NULL);

    pthread_join(p3,NULL);

    pthread_join(p4,NULL);

    gettimeofday(&end,NULL);

    time = ((float) - *1000000 + (float) - )/1000000;

    printf("SUM = %.4f\n",SUM);

    printf("Multi_thread_time = %.4fs(Each child thread sleep 1 sec)\n",time);

    return 0; } 六、实验体会

    这是第一次使用多线程编程编写代码,第一次直观感受到这种多线程编程对程序的执行速率的影响。虽然说操作系统课程已经上了好几个星期了,课堂上一直在学习多线程编程的算法思想,但是那只是书面上的讲授,真正直观的感受和体会还是得依靠实验来了解。

    因为之前就接触过 linux 系统,所以对于程序的编译执行方面还是问题不大,最主要的就是代码的编写问题。一开始到实验室完全不知道要做什么,因为根本连实验内容都不知道,直到助教在大屏幕上显示这个实验题目,我才开始了解实验的题目和要求。这里我就是想建议一下老师您可以应该给我们实验题目,让我们在实验前就了解一下实验内容,不然到了实验室都不知道到底要干嘛。读懂了解题意之后,我就开始参考所给的一些线程创建函数说明来编写多线程同步完成1000000个浮点数的求和运算。因为对这些线程函数不是很了解,在使用 pthread_create()函数创建线程时,老是传入函数参数不对,后来百度之后了解到传入的子线程函数的类型应该为 void * (*start_thread)(void)形式。最后运行试验与单线程的进行比较,强烈感受到多线程的并发同步运行的特点。

    总之,这次试验使我对课堂知识有了更深的体会和巩固,为以后的课程学习打下了基础。

    好范文就是会发人深省。

    许昌学院

    《操作系统》实验报告书

    学号:姓名:闫金科班级:成绩:

    5006140057

    14物联网工程 2016年02月实验一 Linux的安装与配置

    一、实验目的

    1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。

    二、实验内容

    1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。

    3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络信息、用户信息、文件系统和硬盘分区等配置。

    4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或者GRUB解决两个操作系统选择启动的问题。

    5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出Linux常用目录的作用。

    三、实验过程及结果

    1、启动VMware,点击新建Linux虚拟机,如图所示:

    2、点击下一步,选择经典型,点击下一步在选择客户机页面选择Linux,版本选择Red Hat Enterprise Linux 5,如图所示:

    3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示:

    4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小10GB,如图所示:

    5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点击“浏览”,找到Linux的镜像文件,如图所示:

    6点击确定按钮后,点击启动虚拟机按钮,来到Linux的安装界面,如图所示:

    7、到此页面之后,等待自动检测安装,如图所示:

    8、等到出现如图所示页面后点击“skip”按钮,跳过检测,直接进入安装设置界面,如图所示:

    9、安装设计界面如图所示:

    10、点击Next按钮进入设置语言界面,设置语言为“简体中文”,如图所示:

    11、点击Nest按钮进入系统键盘设置按钮,设置系统键盘为“美国英语式”,如图所示:

    12、点击下一步按钮,弹出“安装号码”对话框,选择跳过输入安装号码,如图所示:

    13、按照提示,一直点击下一步按钮,如图所示:

    14、到设置最后一步,点击下一步按钮进入开始安装Red Hat Enterprise Linux Sever界面,如图所示:

    15、安装完成后,进入欢迎界面,按照提示点击前进按钮知道进入Linux桌面,如图所示:

    16、安装成功的Linux系统桌面如图所示,桌面包含五个图标,分别为:计算机、jk’s Home、回收站、RHEL/5.3 i386DVD。

    四、实验总结

    通过安装虚拟机等操作让我认识到Linux这系统一些基本特点,本次试验学会了安装虚拟机并且使用虚拟机安装操作系统,掌握了红帽Linux系统的安装和配置过程,以及对镜像ISO文件的使用,有别于我们机器上使用的系统,通过虚拟机这个软件还可以在已有系统的基础上使用其他操作系统。安装过程中一定要注意选择版本的时候要选择Red Hat Enterprise Linux 5版本,否则安装不能成功。自己动手成功的安装了Linux系统,自己对Linux的学习产生更大的兴趣。

    实验二 Linux操作系统的运行模式

    一、实验目的

    1.熟悉Linux系统终端工作环境的使用,了解Linux命令的格式,使用学会利用常用的Linux命令来完成系统的管理和维护。

    2.了解X-Windows的特点,熟悉Linux图形用户接口的使用,掌握GNOME桌面环境的基本操作。

    3.了解和掌握在Linux环境下安装软件包的方法,如QQ for Linux等用软件的安装方法。

    二、实验内容

    1.启动Linux系统打开虚拟终端界面,使用Linux的在线帮助指令man或help获得ls、uname、date、cal、mkdir、cp等Linux命令的帮助手册,了解这些命令的具体使用方法。同时,也可以通过执行“命令名 –help”来显示该命令的帮助信息,如“ls –help”,试用这些命令。

    2.通过uname命令的执行,查看并给出相关系统信息:操作系统的名称、系统域名、系统CPU名称等。

    3.在主目录下创建一个名为myetc的子目录,将/etc目录下与网络相关的文件和子目录拷贝到该目录,并将这些文件的执行权限设置为可执行。

    4.在主目录/home下创建目录program、music 和temp,然后在program下建立目录java和C,列出完成该过程的所有命令。

    5.在图形界面环境中,查看GNOME桌面的面板和桌面,设置GNOME,包括屏幕保护程序、更改背景和指定关联程序等。 6.实现对光盘的加载和访问,然后卸载。

    三、实验过程及结果

    1、打开终端,输入 【ls –help】来查看【ls】指令的使用方法,同理查看uname、date 、cal、mkdir、cp的使用方法。

    2、在终端中输入【uname –a】显示操作系统名系统cpu名和系统域名

    3、重启系统,用【root】用户名进入系统,以获得权限。在终端中输入【mkdir myetc】,在主目录下创建【myrtc】的目录,【ls】查看是否创建。输入【cd..】返回至【/】文件,输入【cp –r etc root/myetc】讲etc中内容复制到myetc中,进入myetc文件【ls】查看。输入

    【chmod u+x etc】赋予文件可执行的权限,输入【ll】查看。

    4、在home下,输入【mkdir {program,music,temp}】,可在home下创立这三个目录,输入【ls】查看。在program下输入【mkdir{java,C}】,可创立java和C两个目录,【ls】查看。

    5、在桌面上方选择【系统】-【首选项】,即可设置屏幕保护程序和更改背景和指定关联程序

    5、在桌面上可见看到有CD光盘,双击浏览,右键【弹出】即卸载。

    四、实验总结和体会

    Linux的指令系统是学习Linux操作系统很重要的一部分,指令系统相当于在Windows操作系统下的doc,可以省去图形化界面。通过这次的实验让我了解了Linux的强大功能,了解到Linux有许多方便快捷的设置基本配置的方法,这使我更喜欢上Linux的使用。在使用指令的过程中,有时候对文件的操作需要一定的权限,这时需要在登陆时用户名使用【root】,而不是我们在安装时使用的用户名,这样就获得了管理员权限,可以对一些系统文件进行操作。

    实验三 Linux应用软件与系统管理

    一、实验目的

    1.了解OpenOffice.Org集成办公软件,掌握利用OpenOffice.Org的套件来完成文档和图片的处理。

    2.了解Linux网络管理的知识,熟悉Linux网络配置的方法,掌握在Linux环境下配置Web服务器和ftp服务的方法。

    二、实验内容

    1.配置Linux系统的网络环境,安装FTP和Web服务器,并配置相关的属性,利用FTP实现WINDOWS和Linux之间的数据交换。

    2.利用FTP程序上传自己的照片到FTP服务器,利用OpenOffice的文字处理工具OpenOffice Writer制作一份表格形式的个人简历。个人简历中至少包含学号、姓名、性别、专业、照片和学习经历等内容,并保存为网页格式(html格式)。 3.将个人简历网页设置为WEB服务器的首页,然后在客户端利用浏览器访问WEB服务器,查看效果。

    4.通过读取proc文件系统,获取系统各种信息(如主机名、系统启动时间、运行时间、版本号、所有进程信息、CPU使用率等),并以比较容易的方式显示。

    三、实验过程及结果

    1.配置网络环境:在 (服务.cmd).里面进行以下操作:在服务里选择3按回车

    完成后,可在本地连接看到VMware已连接上网络

    在虚拟机设置中设置以太网网络连接方式为

    网关地址填虚拟机的网管,IP地址设为虚拟机的一个子网:

    四、总结:

    在linux系统下,make是我们经常用到的编译命令,所以关于make代码和他的操作指令一定要记清楚。所以,熟练掌握了make和makefile工具之后,源码安装软件就变的像windows下安装软件一样简单。

    实验四 进程控制与管理

    一、实验目的

    1.掌握GCC编译器的用法,学会利用GCC编辑器来编辑C语言程序,学会利用GDB调试器来调试C语言程序。

    2.理解进程和程序的区别和联系,

    3.掌握在Linux环境下观察进程运行情况和CPU工作情况的命令。 4.了解fork()系统调用,掌握利用fork()创建进程的方法。

    5.了解Linux系统其他与进程相关的系统调用,如exec、wait和exit等。 6.了解Linux常用的进程通信机制。

    二、实验内容

    1.利用Linux的进程管理命令ps、top来监视和跟踪进程,体会进程和程序的关系。 2.利用Linux的文字编辑器编写文件复制的C语言程序,并用gcc编译该程序,然后运行该程序。

    3.编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示\\"a\\",子进程分别显示字符\\"b\\"和字符\\"c\\"。试观察记录屏幕上的显示结果,并分析原因。

    4.修改上述程序,每一个进程循环显示一句话。子进程显示\\"daughter „\\"及\\"son „„\\",父进程显示 \\"parent „„\\",观察结果,分析原因。 5.用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容。

    三、实验过程及结果

    1、利用Linux的进程管理命令ps、top来监视和跟踪进程,体会进程和程序的关系。 从用户身份切换到ROOT身份

    输入命令 ps 查看进程

    输入命令 top 跟踪进程

    2、利用Linux的文字编辑器编写一个计算机100个自然数和的C语言程序,并用gcc编译该程序,然后运行该程序。

    创建一个.C文件 并进入进行编辑

    用GCC 进行编译,再查看文件,发现产生执行文件 a.out

    执行这个可执行文件得到结果5050

    1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示\\"a\\",子进程分别显示字符\\"b\\"和字符\\"c\\"。试观察记录屏幕上的显示结果,并分析原因。

    穿件一个.C文件 并进行编写程序代码

    反复执行2次该程序

    可以看出两次执行的结果 a b c 出现的顺序不同,原因是,3个进程的输出次序是随机的,并不会按规定的顺序出现,所以会出现上述结果。

    4、修改上述程序,每一个进程循环显示一句话。子进程显示\\"daughter „\\"及\\"son „„\\",父进程显示 \\"parent „„\\",观察结果,分析原因。 重新修改代码

    执行这段程序

    原分析:

    因和之前一样,可以看出执行的结果 3个单词出现的顺序不同,原因是, 3个进程的输出次序是随机的,并不会按规定的顺序出现,所以会出现上述结果。

    5、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容。

    编写代码

    执行的结果

    结果表明 execl 替代了son的内容

    四、实验总结和体会

    这个实验考察的是进程之间存在很多可能性以及对编辑器的使用。本次实验学习了在linux环境下用gcc编译器运行c语言程序,在linux环境下编写程序用到了vi编辑器,知道了该编辑器也需要各种命令来操作。编写C语言程序时用到了fork()函数,再调用execl()用新的程序替换该子进程的内容。

    实验五 进程调度模拟程序的设计与实现

    一、实验目的

    1.了解进程调度的概念,掌握常用进程调度算法的原理。 2.掌握Linux程序设计编辑、编译和调试的技巧。

    二、实验内容

    1.编写程序实现进程调度调度算法先来先服务、优先级高优先和时间片轮转调度算法。(编程语言不限)

    2.输入数据,输出运行结果。

    三、实验过程及结果

    1先来先服务

    #i nclude float t,d;

    struct { int id;

    float ArriveTime; float RequestTime; float StartTime; float EndTime; float RunTime; float DQRunTime; int Status; }arrayTask[4]; GetTask() { int i; float a;

    for(i=0;i

    printf("input the the ArriveTime of arrayTask[%d]:",i); scanf("%f",&a);

    arrayTask[i].ArriveTime=a;

    printf("input the RequestTime of arrayTask[%d]:",i); scanf("%f",&a);

    arrayTask[i].RequestTime=a; arrayTask[i].StartTime=0; arrayTask[i].EndTime=0; arrayTask[i].RunTime=0; arrayTask[i].Status=0;

    } }

    int fcfs()

    {

    int i,j,w=0;

    for(i=0;i

    {

    if(arrayTask[i].Status==0)

    {

    t=arrayTask[i].ArriveTime;

    w=1;

    }

    if(w==1)

    break;

    }

    for(i=0;i

    {

    if(arrayTask[i].ArriveTime

    t=arrayTask[i].ArriveTime;

    }

    for(i=0;i

    {

    if (arrayTask[i].ArriveTime==t)

    return i;

    }

    }

    int sjf() {

    int i,x=0,a=0,b=0; float g;

    for(i=0;i

    if(arrayTask[i].Status==1) {g=arrayTask[i].EndTime; x=1; } }

    if(x==0){

    t=arrayTask[0].ArriveTime;

    for(i=0;i

    if(arrayTask[i].ArriveTime

    t=arrayTask[i].ArriveTime; a=i; } }

    return a; } else {

    for(i=0;ig) g=arrayTask[i].EndTime; }

    for(i=0;i

    if(b!=0) /*有进程到达则按SJF*/ { for(i=0;i

    if(arrayTask[i].Status==0&&arrayTask[i].ArriveTime

    return a; } else{ /*否则按FCFS*/ for(i=0;i

    {if(arrayTask[i].Status==0) t=arrayTask[i].ArriveTime; }

    for(i=0;i

    if(arrayTask[i].Status==0&&arrayTask[i].ArriveTime

    return a; } } }

    new(int s) /*定义执行进程后相关数据的修改*/ { int i,g=0; for(i=0;i

    if(arrayTask[i].Status==0) continue; else { g=1; break; } }

    if(g==0) /*当处理的是第一个未执行的进程时执行*/ {

    arrayTask[s].StartTime=arrayTask[s].ArriveTime;

    arrayTask[s].EndTime=arrayTask[s].RequestTime+arrayTask[s].ArriveTime; arrayTask[s].RunTime=arrayTask[s].RequestTime; arrayTask[s].Status=1; g=2; }

    if(g==1) /*当处理的不是第一个未执行的进程时执行*/ {

    arrayTask[s].Status=1; for(i=0;i

    if(arrayTask[i].Status==1) d=arrayTask[i].EndTime; }

    for(i=0;i

    if(arrayTask[i].EndTime>d&&arrayTask[i].Status==1) d=arrayTask[i].EndTime; }

    if(arrayTask[s].ArriveTime

    arrayTask[s].StartTime=arrayTask[s].ArriveTime;

    arrayTask[s].EndTime=arrayTask[s].StartTime+arrayTask[s].RequestTime; arrayTask[s].RunTime=arrayTask[s].EndTime-arrayTask[s].ArriveTime; }

    arrayTask[s].DQRunTime=arrayTask[s].RunTime/arrayTask[s].RequestTime; }

    Printresult(int j) /*定义打印函数*/ {

    printf("%d\\\\t",arrayTask[j].id);

    printf("%5.2f\\\\t",arrayTask[j].ArriveTime); printf("%5.2f\\\\t",arrayTask[j].RequestTime); printf("%5.2f\\\\t",arrayTask[j].StartTime); printf("%5.2f\\\\t",arrayTask[j].EndTime); printf("%5.2f\\\\t",arrayTask[j].RunTime); printf("%5.2f\\\\n",arrayTask[j].DQRunTime); } main() {

    int i,b,k,a,c=0; int d[4]; clrscr();

    printf("\\\\t F.FCFS \\\\n"); printf("\\\\t S.SFJ \\\\n"); printf("\\\\t Q.EXIT \\\\n"); for(i=0;;i++) { if(c) break;

    printf("please input the number a:\\\\n"); scanf("%d",&a); switch(a) {

    case Q: c=1; break;

    case F:printf("please input the different-ArriveTime of arrayTasks\\\\n"); GetTask();

    printf("*****************************the result of fcfs\\\\n"); printf("Number\\\\tArrive\\\\tServer\\\\tStart\\\\tFinish\\\\tTurnove\\\\tTake power turnover time\\\\n");

    for(b=0;b

    k=fcfs(); d[b]=k; new(k); }

    for(b=0;b

    Printresult(d[b]);/*调用打印函数打出结果*/ continue;

    case S: printf("please input the different-RequestTime of array

    Tasks\\\\n"); GetTask();

    printf("******************************the result of sjf\\\\n"); printf("Number\\\\tArrive\\\\tRequest\\\\tStart\\\\tEnd\\\\tRun\\\\tDQRun time\\\\n"); for(b=0;b

    for(b=0;b

    default:printf("the number Error.please input another number!\\\\n"); } } }

    四、实验总结和体会

    通过做本实验,让我对进程或作业先来先服务、高优先权、按时间片轮转调度算法以及进程调度的概念和算法,有了更深入的认识!理解进程的状态及变化,动态显示每个进程的当前状态及进程的调度情况。进程调度是处理机管理的核心内容。优先级高优先是根据作业的优先级,总是选择优先级最高者进入队列。轮转调度算法是调度程序每次把CPU分配给就绪队列首进程/线程使用规定的时间间隔,就绪队列中都路保留巡行一个时间片。

    分析问题全面。

    推荐访问:操作系统 实验 报告

    • 读/观后感
    • 精美散文
    • 读书笔记
    • 演讲
    • 反思
    • 方案
    • 心得体会