《操作系统》实验题目 2

合集下载

操作系统实验报告(全)

操作系统实验报告(全)

操作系统实验报告书院系名称:电子工程学院电子指导教师:班级:学号:学生姓名:实验题目一:进程一、实验目的通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。

二、实验内容(1)补充POSIX 下进程控制的残缺版实验程序(2)回答下列问题:1. 你最初认为运行结果会怎么样?2. 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。

3. proc_number 这个全局变量在各个子进程里的值相同吗?为什么?4. kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?5. 使用kill 命令可以在进程的外部杀死进程。

进程怎样能主动退出?这两种退出方式哪种更好一些?三、实验步骤1.根据题意进入DOC环境中编写程序。

2.编译,链接,运行程序,进行调试。

3.分析实验结果及回答问题。

四、调试情况,回答问题及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

2、在设计过程中的感受。

调试情况:回答上述实验内容中的问题1.预期结果:会持续输出0-9号进程,直到输入数字键+回车,则会杀死该进程,接下来的输出将不会有该进程号,当输入q+回车,则退出程序。

2.实际结果:与预期差不多,因输入进程总数20大于设定的最大进程数,因此按进程数10来处理。

随机输出0-9号进程,sleep(SLEEP_INTERV AL),循环输出,直到输入数字键,则会杀死该数字对应的进程,直到输入q退出循环,然后杀死本组所有进程。

分析:每创建一个子进程时,将其pid存储在pid[i]中,i存储在proc_number,然后调用死循环函数do_something(),输出该进程的代号proc_number;当输入数字键时,主进程会执行kill(pid[ch-'0'],SIGTERM),从而杀死(ch-‘0’)号进程。

实验报告二主存空间的分配和回收

实验报告二主存空间的分配和回收
temp=freeTab; /*寻找空闲表中对应登记项*/
if(strcmp(PName,"OS")==0)
{ printf("ERROR!");
return;
}
while((strcmp(temp->proID,PName)!=0||temp->flag==1)&&temp)
temp=temp->next;
四、程序中使用的数据结构及符号说明
结构1:
typedef struct freeTable
{
char proID[6];
int startAddr; /*空闲区起始地址*/
int length; /*空闲区长度,单位为字节*/
int flag; /*空闲区表登记栏标志,用"0"表示空表项,用"1"表示未分配*/
freeNode=freeNode->next;
}
getchar();
break;
default:printf("没有该选项\n");
}/*case*/
}/*while*/
}/*main()*/
六、运行调试结果
初始界面:
分配主存,五个作业名:P1、P2、P3、P4、P5
显示主存使用情况:
回收主存P2:
if(front->flag==1&&rear->flag==1)
/* 上邻空闲区,下邻空闲区,三项合并*/
{
front->length=front->length+rear->length+temp->length;

操作系统实验二实验报告

操作系统实验二实验报告

操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。

通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。

三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。

2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。

3、为新进程指定可执行文件的路径、命令行参数、进程属性等。

4、编写代码来等待新进程的结束,并获取其退出代码。

(二)进程同步实验1、设计一个生产者消费者问题的模型。

2、使用信号量来实现生产者和消费者进程之间的同步。

3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。

4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。

(三)进程通信实验1、选择使用管道来实现进程之间的通信。

2、创建一个匿名管道,父进程和子进程分别读写管道的两端。

3、父进程向管道写入数据,子进程从管道读取数据并进行处理。

四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。

通过观察进程的创建和执行过程,加深了对进程概念的理解。

(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。

分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。

(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。

数据能够准确地在进程之间传递,验证了管道通信的有效性。

五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。

通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。

(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。

操作系统实验题

操作系统实验题

1、在操作系统中,进程与线程的主要区别是什么?A. 进程是资源分配的基本单位,线程是处理器调度的基本单位B. 进程和线程都是资源分配和处理器调度的基本单位C. 线程是资源分配的基本单位,进程是处理器调度的基本单位D. 进程和线程都不涉及资源分配问题(答案:A)2、以下哪种调度算法可能会导致饥饿问题?A. 先来先服务(FCFS)B. 短作业优先(SJF)C. 时间片轮转(Round Robin)D. 优先级调度(非抢占式)(答案:B)3、在操作系统的存储管理中,分段存储管理方式的主要目的是?A. 提高内存利用率B. 实现内存保护C. 方便用户编程D. 提高程序运行速度(答案:C)4、关于死锁,以下哪个说法是正确的?A. 死锁是指多个进程因竞争资源而无限期等待的现象B. 死锁只可能发生在多道批处理系统中C. 死锁发生时,系统中一定存在多个进程同时处于就绪状态D. 预防死锁的方法之一是破坏“请求和保持”条件,即要求进程一次性申请所有所需资源(答案:A,注:同时D也是预防死锁的一种方法,但题目要求选择正确说法,A更直接描述了死锁的定义)5、在操作系统的文件系统中,目录结构的主要作用是?A. 实现文件的按名存取B. 提高文件存储的效率C. 增强文件系统的安全性D. 便于用户对文件进行备份(答案:A)6、下列哪一项不是虚拟内存技术的优点?A. 扩大内存容量B. 提高内存利用率C. 简化内存管理D. 加快程序运行速度(在某些情况下可能因换页开销而减慢)(答案:D)7、在操作系统的设备管理中,缓冲区的设置主要是为了?A. 提高设备利用率B. 缓和CPU与I/O设备之间速度不匹配的矛盾C. 实现设备的即插即用D. 减少I/O操作的次数(答案:B)8、关于操作系统的中断机制,以下哪个说法是错误的?A. 中断是由硬件或软件发出的,用于请求CPU处理的事件B. 中断处理过程中,CPU会暂停当前程序的执行,转而执行中断处理程序C. 中断向量表是存储中断处理程序入口地址的表D. 在所有情况下,中断处理程序的执行优先级都高于当前正在运行的程序(答案:D,注:中断处理程序的优先级通常较高,但并非在所有情况下都绝对高于所有正在运行的程序,特别是在某些实时系统中可能有更复杂的优先级策略)。

计算机操作系统实验二

计算机操作系统实验二

计算机操作系统实验二一、实验目的本实验旨在通过实际操作,深入理解和掌握计算机操作系统中的进程与线程管理。

通过实验,我们将了解进程的创建、执行、阻塞、唤醒等状态以及线程的创建、同步、通信等操作。

同时,通过实验,我们将学习如何利用进程和线程提高程序的并发性和效率。

二、实验内容1、进程管理a.进程的创建与执行:通过编程语言(如C/C++)编写一个程序,创建一个新的进程并执行。

观察和记录进程的创建、执行过程。

b.进程的阻塞与唤醒:编写一个程序,使一个进程在执行过程中发生阻塞,并观察和记录阻塞状态。

然后,通过其他进程唤醒该进程,并观察和记录唤醒过程。

c.进程的状态转换:根据实际操作,理解和分析进程的状态转换(就绪状态、阻塞状态、执行状态)以及转换的条件和过程。

2、线程管理a.线程的创建与同步:编写一个多线程程序,创建多个线程并观察和记录线程的创建过程。

同时,使用同步机制(如互斥锁或信号量)实现线程间的同步操作。

b.线程的通信:通过消息队列或其他通信机制,实现多个线程间的通信。

观察和记录线程间的通信过程以及通信对程序执行的影响。

c.线程的状态转换:根据实际操作,理解和分析线程的状态转换(新建状态、就绪状态、阻塞状态、终止状态)以及转换的条件和过程。

三、实验步骤1、按照实验内容的要求,编写相应的程序代码。

2、编译并运行程序,观察程序的执行过程。

3、根据程序的输出和实际操作情况,分析和理解进程与线程的状态转换以及进程与线程管理的相关原理。

4、修改程序代码,尝试不同的操作方式,观察程序执行结果的变化,进一步深入理解和掌握进程与线程管理。

5、完成实验报告,总结实验过程和结果,提出问题和建议。

四、实验总结通过本次实验,我们深入了解了计算机操作系统中的进程与线程管理原理和实践操作。

在实验过程中,我们不仅学习了如何利用编程语言实现进程和线程的操作,还通过实际操作观察和分析了进程与线程的状态转换以及进程与线程管理的基本原理。

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日一、综合实验的目的与要求1. 理解和掌握操作系统的基本概念、基本组成与工作原理;2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法;3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。

二、实验正文实验1:实验环境的使用1.1实验目的:1.熟悉操作系统集成实验环境OS Lab 的基本使用方法。

2.练习编译、调试EOS 操作系统内核以及EOS 应用程序。

1.2实验内容:1.启动OS Lab2.学习OS Lab 的基本用法● 新建 Windows 控制台应用程序项目(1)在“文件”菜单中选择“新建”,然后单击“项目”。

(2)在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。

(3)在“名称”中输入新项目使用的文件夹名称“oslab ”。

(4)在“位置”中输入新项目保存在磁盘上的位置“C:\test ”。

(5)点击“确定”按钮。

● 生成、执行项目●3.EOS 内核项目的生成和调试● 新建 EOS 内核项目并按F7生成项目● 调试项目● 查看软盘镜像文件中的内容、EOS SDK (Software Development Kit )文件夹4.EOS 应用程序项目的生成和调试● 新建 EOS 应用程序项目● 修改 EOS 应用程序项目名称使用断点中断执行查看变量的值5.退出OS Lab6.保存EOS内核项目1.3思考与练习●在实验1中,生成EOS SDK文件夹的目的和作用是什么?答:SDK文件夹中提供了开发EOS应用程序需要的所有文件。

debug文件夹是在使用debug配置生成项目时生成的,其中存放了调试版本的EOS二进制文件。

操作系统实践试题及答案

操作系统实践试题及答案

操作系统实验笔试1.设周期性任务P1, P2, P3的周期T1, T2, T3分别为100, 150, 350; 执行时间分别为20,40,100. 试计算后回答是否可以用频率单调调度算法进行调度?答:频率单调调度算法是一种被广泛用于多周期性实时处理的调度算法。

频率单调调度算法的基本原理是频率越低(周期越长)的任务的优先级越低。

这时,设任务周期为T,任务的执行时间为C,则使用频率单调调度算法的必要条件是C<=T。

已经证明,对于n(n≥1)个周期的不同任务来说,设每个周期为Ti,其相应任务的执行时间为Ci,则使用频率单调调度算法的充分条件是:.对于由3个周期组成的实时任务序列来说,其执行时间与周期之比应是:.由于:所以, 可以用频率单调调度算法进行调度.2.假定某多道程序设计系统供用户使用的主存空间100K, 磁带机2台, 打印机1台, 采用可变分区方式管理主存, 采用静态分配方式分配磁带机与打印机. 忽略用户作业I/O时间. 现有如下作业序列:作业号进入输入井时间要求计算时间主存需求量磁带机需求打印机需求1 8:00 25分钟15K 1台1台2 8:20 10分钟30K 0台1台3 8:20 20分钟60K 1台0台4 8:30 20分钟20K 1台0台5 8:35 15分钟10K 1台1台作业调度策略先来先服务, 优先分配主存的低地址区域且不准移动已在主存的作业, 在主存中的各作业平分CPU时间, 问题如下:(1) 作业调度选中各作业的次序是什么? (2) 全部作业运行结束的时刻是什么? (3) 如果把一个作业从进入输入井到运行结束的时间定义为周转时间, 在忽略系统开销时间条件下, 最大的作业周转时间是多少? (4) 平均周转时间是多少?答:作业号装入主存时间开始执行时间执行结束时间周转时间1 8:00 8:00 8:25 25分钟2 8:45 9:05 9:15 55分钟3 8:20 8:25 8:45 25分钟4 8:30 8:45 9:05 35分钟5 9:15 9:15 9:30 55分钟(1) 1, 3, 4, 2, 5(2) 9:30(3) 55分钟(4) (25+55+25+35+55)/5=39(分钟)3. 设有n个缓冲区构成的循环缓冲区池, 每个缓冲区能容纳一个整数. 写进程Writer把整数逐个存入缓冲区池, 读进程Reader则逐个从缓冲区池中读出并打印输出, 要求打印的与输入的完全一样, 即个数,次序,数值一样. 试问:(1) 写进程与读进程间具体的制约关系如何? (2) 用PV操作写出这两个进程的同步算法程序.答:(1)写进程要领先于读进程, 但当缓冲区全填满时, 要等读进程取数; 读进程要后于写进程, 当缓冲去中无待读的整数时, 要等待写进程写数.(2)程序:beginB: array[0…n-1] of integerW, R: integer;SW, SR: Semaphore;W := 0; R := 0;SW := n; SR := 0;cobeginPROCESS WriterbeginL1: produce a integer into X; (或写生成一整数X;)P( SW );B[W] := X;W := (W+1) mod nV( SR );goto L1;end;PROCESS ReaderbeginL2: P( SR )Y := B[R];R := (R+1) mod nV( SW );Print y;goto L2;end;coend;end;4.某系统对主存采用页式管理, 供用户使用的主存区域共640K字节, 被分成160块, 块号为0,1,2......159. 现有一作业的地址空间共占4页, 其页号为0,1,2,3, 被分配到主存的第2,4,1,5块中, 回答:(1) 作业每一页的长度为多少字节? (2) 写出该作业被装入主存时, 其对应的页表. (3) 把该作业的每一页在主存中的起始地址(用16进制表示)填在下表中页号起始地址0 0020001 0040002 0010003 005000答:(1)每一页的长度为640K/160 = 4K 字节(2)页表1235.作业的调度算法有几种? 简述各自的优缺点.答:1、先来先服务算法.先来先服务算法是最简单的调度算法,它是按照作业进入“输入井”的先后次序来挑选作业,先进入的作业优先被挑选。

第2章 Windows XP操作系统实验指导附答案

第2章 Windows XP操作系统实验指导附答案

第2章Windows XP操作系统2.1 学习指导2.1.1 操作系统概述一、教材导读操作系统的发展与计算机硬件的发展息息相关,早期的计算机没有操作系统,人们通过各种操作按钮来控制计算机,后来出现了汇编语言等一些程序,随着这些程序功能的不断完善和扩充,逐步形成了较为实用的系统软件——操作系统。

在微机上,早期运行的主要操作系统是MS-DOS。

1995年8月,微软公司推出了采用图形化用户界面的操作系统——Windows 95,之后,微软公司又相继推出了Windows 98、Windows NT、Windows 2000、Windows XP等操作系统。

在本节中,主要让学生掌握以下内容:操作系统的概念、发展、主要特性、基本功能和分类。

二、重点分析与补充知识本节的重点和难点:操作系统的主要特性、基本功能和分类。

现在的计算机离不开操作系统,其它软件都是在操作系统的支持下来运行的,掌握操作系统的有关知识,将为今后的学习打下坚实的基础。

三、教材知识巩固1.单项选择题1)下列关于操作系统的主要特性的说法错误的是。

A.并发性是指两个或两个以上的运行程序在同一时间间隔段内同时执行B.共享是指操作系统中的资源可被多个并发执行的进程所使用C.异步性(Asynchronism),也称随机性D.采用了并发技术的系统称为单任务系统2)计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统是。

A.分时操作系统B.实时操作系统C.批处理操作系统D.分布式操作系统3)大量的计算机通过网络联结在一起,可以获得极高的运算能力及广泛的数据共享,这种系统被称为。

A.分时操作系统B.实时操作系统C.网络操作系统D.分布式操作系统4)下面有关操作系统的说法,错误的是______。

A.按运行环境将操作系统分为实时操作系统、分时操作系统和批处理操作系统B.分时操作系统具有多个终端C.实时操作系统是对外来信号及时做出反应的操作系统D.批处理操作系统指利用CPU的空余时间处理成批的作业5)分时操作系统又称为操作系统。

操作系统实验二(进程管理)

操作系统实验二(进程管理)

操作系统进程管理实验实验题目:(1)进程的创建编写一段程序,使用系统调用fork( )创建两个子进程。

当此程序运行时,在系统中有一个父进程和两个子进程活动。

让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。

试观察记录屏幕上的显示结果,并分析原因。

(2)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因。

(3)编制一段程序,使其实现进程的软中断通信。

要求:使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程调用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 在上面的程序中增加语句signal(SIGINT, SIG_IGN)和signal(SIGQUIT, SIG_IGN),观察执行结果,并分析原因。

(4)进程的管道通信编制一段程序,实现进程的管道通信。

使用系统调用pipe( )建立一条管道线;两个进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。

要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。

实验源程序及报告:(1)、进程的创建#include <stdio.h>int main(int argc, char *argv[]){int pid1,pid2; /*fork first child process*/if ( ( pid1=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid1=fork() ) == 0 ){printf( "b\n" );}/*fork second child process*/if ( ( pid2=fork() ) < 0 ){printf( "ProcessCreate Failed!"); exit(-1);}if ( ( pid2=fork() ) == 0 ){printf( "c\n" );}/*parent process*/else{wait(NULL);printf( "a\n" );exit(0);}return 0;}(2)、进程的控制#include <stdio.h>int main(int argc, char *argv[]){ int pid1,pid2;/*fork first child process*/if ( ( pid1=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid1=fork() ) == 0 ){printf( "This is my Unix OS program!\n" ); }/*fork second child process*/if ( ( pid2=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid2=fork() ) == 0 ){printf( "This is the second Child process!\n" ); }/*parent process*/else{wait(NULL);printf( "This is the Parent process\n" );exit(0);}return 0;}(3)编制一段程序,使其实现进程的软中断通信。

操作系统实验2参考答案

操作系统实验2参考答案

操作系统实验2参考答案进程和进程通信实验参考答案(一) 实验题目父进程输入一个字符,传递给子进程,由子进程得到该字符向后的偏移字符,如果最终字符大于z,那么最终字符显示成a,另外,如果转化成数字字符(0DD9),那么进行进程图像转换,执行ls命令!程序框图如下:(二) 数据结构说明除了main()函数以外,还有其他3个函数,一个是signalfun(),是信号*****对应的处理函数;一个是writetofile函数,是对一个文件写如一定的内容的函数;还有一个是readfromfile,是从一个文件里面读取内容的函数。

子进程的创建都是在main()函数里面!<i>答案</i>(三) 测试方法:黑箱测试法执行程序结果,输入不同的字符与数字,看输出的结果(在屏幕上有输出)。

(四) 测试结果:各种输入输出都符合预定的结果!(五) 实验的步骤:先运行emacs test_2.C命令,编辑程序代码然后编译:gcc Co test_2 test_2.C再反复运行:./test_2下面是部分测试截图:<i>答案</i>(六) 总结与体会:进程间的通信的方法有很多种,可以通过管道(早期用的比较多)、消息、信号、共享内存等等,通过这些方法,可以实现进程的协作,可以实现计算机间的协作,进而完成复杂的任务。

对于这些方法,只有通过实践编程来实现一些具体的功能,才能够有更深刻的理解,才能掌握这些方法!源代码:#include "test_2.h"//信号*****的处理函数void signalfun(int temp){}//向文件写一定长度的字符串,void writetofile(char *filename,char *buf,int len){int fd; //用读写的方式打开文件,如果文件没有,创建文件if ((fd = open(filename,O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1) { //打开文件失败} else { //文件打开后,写入内容!} write(fd,buf,len); printf("error open file"); printf("It is signal processing function.\n");//关闭文件close(fd);}//从文件里读取一定长度的内容,返回值是具体读出的长度int readfromfile(char *filename,char *buf,int len){} int fd; //用只读的方式打开文件,如果失败,返回0;if ((fd = open(filename,O_RDONLY))==-1) return 0; //读取长度为len 的字符串int readlen = read(fd,buf,len); //关闭文件close(fd); return readlen;<i>答案</i>int main() {int status; pid_t pid; //设置信号*****的处理函数为signalfunsignal(*****,signalfun); //创建子进程,同时通过判断返回值来确定当前是否是父进程,pid0,为父进程if (pid = fork()) { } else { //以下是子进程的处理//休眠10毫秒sleep(10); char ch; //读取tempfile.c文件,里面有父进程的输入,等待处理readfromfile("tempfile.c",ch,1); printf("child will do :\nchange %c to",ch); //取得改字符的后续字符ch += 1; //对于比z大的,从a再开始if (ch'z') ch='a'; //将处理结果写回到tempfile.c文件writetofile("tempfile.c",ch,1); //通知子进程下面结束//父进程printf("Parent:will send signal.\n"); char ch; printf("Please input a char:"); //等待输入ch = getchar(); printf("\n"); //将输入写入文件tempfile.c writetofile("tempfile.c", ch,1); //向子进程发送信号,并阻塞本身,kill(pid,*****); //等待子进程结束wait(status); char ch2; //子进程结束后,读取tempfile.c文件,里面有子进程处理的内容readfromfile("tempfile.c",ch2,1); //输出printf("Now parent:%c be changed ,it is %c\n",ch,ch2); printf("status = %d: Parent finished.\n",status);<i>答案</i>} } printf(" %c\nchild finished!\n",ch); //如果处理结果是数字字符,那么进行进程图像转换if (ch='0' ch='9') { } //退出exit(0); printf("!!!yes,now execl begin:\n"); execl("/bin/ls","ls","-l",(char *)0);。

操作系统试验题

操作系统试验题

操作系统试验题操作系统实验题1.启动计算机,观察屏幕画面变化和提示,思考启动过程中计算机所做的工作。

2.查看系统属性:本机的名字、处理器信息、操作系统信息、内存大小等。

3.在Windows7的计算机管理中:(1)查看本机安装了几块硬盘,每块硬盘有几个分区?(2)创建一个虚拟磁盘(VHD),将这个虚拟磁盘初始化(选择MBR分区形式),并分成两个主分区,对每个分区格式化(选择最大分配单元)。

在其中一个分区中新建一个文本文件,在文本文件中写入一个字符,保存关闭文件,查看文件属性中文件大小和占用空间分别是多少。

4.分析C盘是否需要碎片整理?5.下载一个应用程序,将其安装到本机上,观察开始菜单是否添加了相应项;最后再将该程序卸载(如果本机已经安装了该程序,可先卸载再安装)。

6.打开任一应用程序,利用“任务管理器”,将其关闭。

7.改变屏幕分辨率,观察屏幕显示的变化。

8.删除一种输入法,然后再将其添加上。

9.查找文件calc.exe,并在桌面为其创建快捷方式。

10.观察资源管理器窗口中的“编辑”菜单,验证并记住常用的快捷键。

11.①在磁盘的任一分区目录下创建一个文件夹“Text”,并在该文件夹中创建一个文本文件“TextFile”。

②将“Text”文件夹的属性设为隐藏,并刷新“Text”所在的文件夹,观察是否还能看到“Text”文件夹。

如果不能看到,请将其显示出来,如果还能看到,请将其隐藏再显示出来。

③将文件“T extFile”的扩展名显示出来,如果已经显示了扩展名,请将其隐藏。

12.新建一个库,将D:盘中的一个文件夹包含进去,然后在库中删除文件夹中的文件,观察该文件是否真的删除了。

再删除这个库,观察D:盘中的文件夹是否真的删除了,从而体会库与一般文件夹的区别和作用。

《操作系统》模拟试地的题目2参考详解

《操作系统》模拟试地的题目2参考详解

模拟试题2一、填空题1.多道运行的特征之一是微观上串行,它的含义是多道程序分时、轮流地占用CPU 。

2.操作系统是又一组资源管理程序组成的其中文件系统是对于软件资源的管理。

3.UNIX系统是一个多用户、分时操作系统类型的操作系统。

4.某系统采用基址、限长寄存器方法实现存储保护,在这种方法中,判断是否越界的判断式是逻辑地址<限长寄存器内容(即地址空间长度)。

5.UNIX系统缓冲管理中,使用的队列结构有空闲缓冲区队列和设备缓冲区队列两类。

6.在整个向量中断处理过程中,硬件负责中断响应过程。

7.进程从结构上讲,包括程序、数据和进程控制块PCB 几个部分。

8.为了实现进程从有到无的变化,操作系统应提供进程撤消原语。

二、判断改错题1.系统调用功能是又硬件实现的。

×改正:“硬件”改为“软件”2.动态地址映射是指在程序装入主存时,将逻辑地址转换成物理地址。

×改正:“程序装入主存”改为“程序运行过程”3.虚拟技术是将独占设备改造为共享设备的技术。

√4.当采用有序资源分配方法预防死锁时,它破坏了产生死锁的四个必要条件中的部分分配条件。

×改正:“部分分配”改为“环路”5.一组进程间发生了死锁,这时这些进程都占有资源。

√6.驱动程序与I/O设备的特性紧密相关,因此应为每一个I/O设备配备一个驱动程序。

×改正:“每一个I/O设备”改为“每一类I/O设备”7.文件中的逻辑记录是用来进行I/O操作的基本单位。

×改正:“进行I/O操作”改为“用户存取信息”8.操作系统提供文件服务后,用户可按名存取文件,故用户使用的文件必须有不同的名字。

×改正:“必须有不同的名字”改为“可以相同,也可以不同”三、选择填空题1.在用户程序中将一批数据送到显示器上显示,要使用操作系统提供的 C 接口。

A.函数B.键盘命令C.系统调用D.图形2.在操作系统中,临界区是 B 。

A.进程的共享正文段B.进程中访问临界资源的程序段C.进程访问系统资源的程序段D.进程访问外部设备的程序段3.在请求调页的存储管理中,页表增加修改位是为了确定相应的页 D 。

《操作系统》实验二

《操作系统》实验二

《操作系统》实验二一、实验目的本实验旨在加深对操作系统基本概念和原理的理解,通过实际操作,提高对操作系统设计和实现的认知。

通过实验二,我们将重点掌握进程管理、线程调度、内存管理和文件系统的基本原理和实现方法。

二、实验内容1、进程管理a.实现进程创建、撤销、阻塞、唤醒等基本操作。

b.设计一个简单的进程调度算法,如轮转法或优先级调度法。

c.实现进程间的通信机制,如共享内存或消息队列。

2、线程调度a.实现线程的创建、撤销和调度。

b.实现一个简单的线程调度算法,如协同多任务(cooperative multitasking)。

3、内存管理a.设计一个简单的分页内存管理系统。

b.实现内存的分配和回收。

c.实现一个简单的内存保护机制。

4、文件系统a.设计一个简单的文件系统,包括文件的创建、读取、写入和删除。

b.实现文件的存储和检索。

c.实现文件的备份和恢复。

三、实验步骤1、进程管理a.首先,设计一个进程类,包含进程的基本属性(如进程ID、状态、优先级等)和操作方法(如创建、撤销、阻塞、唤醒等)。

b.然后,实现一个进程调度器,根据不同的调度算法对进程进行调度。

可以使用模拟的方法,不需要真实的硬件环境。

c.最后,实现进程间的通信机制,可以通过模拟共享内存或消息队列来实现。

2、线程调度a.首先,设计一个线程类,包含线程的基本属性(如线程ID、状态等)和操作方法(如创建、撤销等)。

b.然后,实现一个线程调度器,根据不同的调度算法对线程进行调度。

同样可以使用模拟的方法。

3、内存管理a.首先,设计一个内存页框类,包含页框的基本属性(如页框号、状态等)和操作方法(如分配、回收等)。

b.然后,实现一个内存管理器,根据不同的内存保护机制对内存进行保护。

可以使用模拟的方法。

4、文件系统a.首先,设计一个文件类,包含文件的基本属性(如文件名、大小等)和操作方法(如创建、读取、写入、删除等)。

b.然后,实现一个文件系统管理器,包括文件的存储和检索功能。

操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

实验二Linux的基本命令操作及vi的使用实验目的:1、熟悉Linux操作系统环境2、熟悉Linux操作系统的文件结构3、熟悉Linux操作系统的基本命令4、熟悉Linux操作系统的文件组织方式5、学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。

实验内容及要求:1、登陆实验室的Linux服务器。

启动电脑,进入Windows操作系统,在“开始”-〉“运行"中输入“Telnet 10。

200.41。

178”,即可登陆实验室的Linux服务器.在“Login:”提示后输入“stu”+学号(如02号同学输入stu02),按下回车键。

在“Password:”提示后输入“123”(注意输入密码时屏幕上不会有“*”等符号出现,这和Windows 不同),按下回车键,若出现“[os@ root os]$”或“—bash—2.05b$”,表示已成功登陆系统,可以开始输入指令操作。

思考:(用pwd指令)查看自己登陆后位于Linux的哪个目录,写出该目录的路径,与自己周围的同学比较,看是否相同.(可查阅Linux资料了解“/home”目录的功能介绍)2、在Linux中进行以下基本操作:1)在当前目录下新建一个名为(自己姓名首字母缩写+学号后3位数)的子目录.写出你所用的指令.(例如:mkdir zq000 )2)进入刚创建的子目录环境下。

(提示:指令cd)3)在刚创建的子目录下新建一个名为abc.txt的文件。

写出你所用的指令。

(提示:新建文件的指令是touch)4)将/目录下(即根目录下)的welcome.txt文件复制到自己的子目录下,写出你所用的指令。

cp –i /root/stu62/abc.txt /home/welcome。

txt5)写出welcome.txt文件的内容。

(提示:用cat指令查看)Hello, Boys and girls , welcome to the wonderful Linux world!3、在Linux中进行以下基本操作:1)进入自己的主目录。

操作系统上机实验报告

操作系统上机实验报告

操作系统实验上机专业:班级:姓名:指导老师:设计时间:1 生产者—消费者实验2 进程死锁模拟实验3 页式存储管理部分功能模拟实验二、实验目的1 生产者—消费者实验的目的(1)加深进程概念的理解,明确进程和程序的区别;(2)加深认识程序并发执行过程的实质;(3)加深理解进程争用资源的现象;(4)进一步认识在一个操作系统内部,进程与进程之间的两种相互制约的关系的本质;(5)进一步理解解决以上两个问题所使用的基本方法-----互斥和同步的基本概念及其实质;(6)掌握基本的互斥与同步的算法,进一步理解“生产者—消费者”模型;(7)通过对“生产者—消费者”问题编程实现,了解线程创建、同步信号量、互斥信号量、临界区的创建于使用,初步了解并发程序设计方法;(8)进一步理解P、V原语和信号量在线程互斥和同步机制中的运用;(9)学习使用Windowns 2000/XP 中基本的同步对象、掌握相关API的使用;(10 进一步了解Windowns 2000/XP中多线程的并发机制,实现线程的同步与互斥的基本方法。

2 进程死锁模拟实验的目的(1)进一步理解线程的概念;(2)进一步熟悉进程、线程同步的概念;(3)深刻理解死锁的概念;(4)深入理解操作系统对多线程调度的管理;(5)深刻理解临界区和互斥的概念。

3 页式存储管理部分功能模拟实验目的(1)了解存储器的管理任务和功能;(2)了解Windowns存储器管理模式和特点;(3)深入了解页式存储管理如何实现地址转换;(4)进一步认识页式存储管理中如何处理缺页中断;(5)掌握几种页面置换算法的实现方法。

1 生产者—消费者实验的内容在本次实验中开始,以“生产者—消费者”模型为依据,提供了一个多线程“生产者—消费者”实例,有部分代码已给出,要求读者分析已编制的一个“生产者—消费者”实例,并将其缺失的程序代码补充完整,然后调试这段程序,得出最终结果。

并分析此结果,得出相应结论。

2 进程死锁模拟实验的内容本次实验模拟两个线程完成销售车票的过程。

操作系统实验2_2(选做)

操作系统实验2_2(选做)

实验2_2 操作系统环境——Windows XP 系统管理(实验估计时间:45分钟)一、背景知识Windows XP 的“管理工具”中集成了许多系统管理工具,利用这些工具,管理员可以方便地实现各种系统维护和管理功能。

这些工具都集中在“控制面板”的“管理工具”选项下,用户和管理员可以很容易地对它们操作和使用。

在默认情况下,只有一些常用工具——如服务、计算机管理、事件查看器、数据源(ODBC) 、性能和组件服务等——随Windows XP 系统的安装而安装。

1) 服务启动和停止由Windows系统提供的各项服务。

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

3) 事件查看器显示来自于Window和其他程序的监视与排错信息。

4) 数据源(ODBC) 添加、删除以及配置ODBC数据源和驱动程序。

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

6) 组件服务配置并管理COM+ 应用程序。

另一些工具则随系统服务的安装而添加到系统中,例如:1) Telnet服务器管理查看以及修改Telnet服务器设置和连接。

2) Internet服务管理器管理IIS、Internet和Intranet Web站点的Web服务器。

3) 本地安全策略查看和修改本地安全策略,诸如用户权限和审计策略。

二、实验目的1) 了解和学习Windows系统管理工具及其使用;2) 熟悉Windows系统工具的内容和应用;由此,进一步熟悉Windows操作系统的应用环境。

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

步骤1:登录进入Windows XP 。

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

在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1) __________________________________________________________________2) __________________________________________________________________3) __________________________________________________________________4) __________________________________________________________________5) __________________________________________________________________6) __________________________________________________________________7) __________________________________________________________________8) __________________________________________________________________9) __________________________________________________________________10) _________________________________________________________________1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows XP管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。

《操作系统》实验报告(2)

《操作系统》实验报告(2)
b.将f02.txt的读权限去掉(修改权限的命令是chmod),___chmod -r f02.txt____;看看还能否用cat打开该文件;不能查看,权限不够
c.将subdir目录的读权限去掉,看看是否能用ls命令看到其中内容?
权限不够
(三)Shell程序设计
1.上机编辑、执行实验内容中的例1~例6过程,写出每个脚本(例1~例5)的功能和执行结果;
然后把t01.txt复制一个新文件t03.txt,catt01.txt>t02.txt;
用cat命令将f01.txt的内容追加到t01.txt的末尾,catf01.txt>> t01.txt;
再用diff命令比较t01.txt,t02.txt和t03.txt,比较t01.txt,t02.txt:diff t01.txt t02.txt,结果是否相同:__相同___;比较t01.txt,t03.txt:diff t01.txt t03.txt,结果是否相同:不相同;比较t02.txt,t03.txt:diff t02.txt t03.txt,结果是否相同:不相同。出现上述结果的原因是:______________________________________________________________________________。
2.修改例5,使脚本中不出现break循环控制语句;
3.编写一个Shell过程完成如下功能:
a.合并两个$1、$2文件为$3,并显示内容。
b.如果缺少$3,那么先报告缺少$3,将合并后的内容输出到totaltext.txt,并显示内容。
c.如果缺少$2、$3那么先报告缺少$2、$3,只显示$1的内容。
b.用ln命令给t03.txt建立一个符号链接t04.txt,ln–st03.txt t04.txt;用cat命令看看t04.txt,___cat t04.txt_____;然后删去t03.txt,___rm t03.txt____;再用cat命令看看t04.txt,___cat t04.txt___;结果是:___t04.txt为空____

《计算机操作系统》实验指导书共16页文档

《计算机操作系统》实验指导书共16页文档
实验二 玩转“我的电脑”
1、“我的电脑”新面孔 开始—>我的电脑 2、方便的显示设置 1)Web视图中系统任务:用鼠标点“查看系统信息” 2)在空白处单击鼠标右键—>排列图标—>按组排列 3)用鼠标点工具栏上“设置显示方式按钮” 4)变成资源管理器:用鼠标点工具栏上“文件夹”按钮 5)用鼠标点工具栏上“搜索”按钮—>改变首选项 6)单击工具—>文件夹选项—> “常规”页:使用Windows传统风格的文件夹—>应用;
3.管理我的硬件
1)键盘和鼠标 控制面板--->”打印机和其它硬件“ 单击”键盘“, 单击”鼠标“,查看各页 鼠标按键的“设置”页--->“切换主要和次要的按钮”、 “启动单击锁定”、“设置” “指针”页--->“指针”、“自定义”、“启动指针阴 影” “指针选项”页 “轮”页 2)电源选项 点“电源选项” “电源使用方案”页 “高级”页--->点小箭头
3)音频设备 控制面板--->”声音、语音和音频设备“ 鼠标点击“声音和音频设备”,查看各页 “音频”页 “音量”页 --->想控制某种声音,点“高级” 在任务栏设置音量图标--->鼠标选中“将音量图标放入任务 栏”,--->”应用“ “声音”页--->鼠标小箭头,可以任选,不满意,点“浏览” 4.语言和区域设置 1)区域设置 “日期、时间、语言和区域设置”组---> 选择“更改日期和时间”任务,可以改时间等 “时区”页--->可以改所在的时区 “internet”页--->是新增的 “更改数字、日期和时间的各式”任务--->可以选择自己目 前所在的国家和地区,不满意,点“自定义”
--->点“创建密码” --->输入密码--->单击“创建密码” 按纽

操作系统习题2

操作系统习题2

操作系统习题2一、填空1、在可变分区存储管理中,分区的保护通常采用(界限寄存器)和(存储保护键)两种法。

2、采用交换技术获得的好处是以牺牲(CPU时间)为代价的。

3、把作业装入内存中随即进行地址变换的方式称为(静态重定位),而在作业执行期间,当访问到指令或数据时才进行地址变换的方式称为(动态重定位)4、在分区分配算法中,首次适应算法人倾向于优先利用内存中的(低地址)部分的空闲区,从而保留了(高地址)部分的大空闲分区。

5、进行设备分配时所需的数据表格主要有(设备控制表)(控制器控制表)(通道控制表)和(系统设备表)等。

6、从资源管理(分配)的角度出发,I/O设备可分为(独享)(共享)和(虚拟)三种类型。

7、为实现CPU与外部设备的并行工作,系统引入了(通道和中断)硬件机制。

8、引起中断发生的事件称为(中断源)。

9、常用的I/O控制方式有程序直接控制方式、中断控制方式(DMA控制方式)和(通道控制方式)。

10、逻辑设备表(LUT)的主要功能是(实现设备独立)和(实现设备分配的灵活性)。

11、缓冲区由(缓冲首部)和(缓冲体)组成。

12、I/O设备处理进程平时处于(阻塞)状态,当(I/O中断)和(I/O请求)出现时被唤醒。

13、设备分配程序分配外部设备时先分配(设备),再分配(控制器),最后分配(通道)。

14、索引文件大体上由(索引)区和(数据)区构成,其中(索引)区一般按关键词的顺序存放。

15、磁盘文件目录表的内容至少应包含(文件名)和(文件在磁盘上的存放地址)。

16、目前认为逻辑文件有两种类型,即(记录)式文件与(流)式文件。

17、文件目录的作用是(实现文件名到物理地址的转换)。

18、文件的结构就是文件的组织形式,从用户观点出发所看到的文件组织形式称为文件的(逻辑结构);从实现观点出发,文件在外存上的存放组织形式称为文件的(物理结构)。

二、选择1、在存储管理中,采用覆盖技术的目的是()。

A.节省内存空间B.物理上扩充内存容量C.提高CPU效率D.实现内存共享2、采用()不会产生内碎片。

操作系统实验及答案

操作系统实验及答案
RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL) Red Flag Linux release 4.0 (HOT) (2.4)
登录到系统
RedHat Linux
启 动
Red Flag
Li nux启 动
Grub
Grub
实验 3 进程间通信
1、实验目的 Linux系统的进程通信机构 (IPC) 允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉
Linux支持的消息通讯机制及信息量机制。 2、实验预备内容
阅读Linux系统的msg.c、sem.c和shm.c等源码文件,熟悉Linux的三种机制。 3、实验内容
1
mkdir 目录名 ; mkdir /home/s2001/newdir 7.删除目录:rmdir; 8.复制文件 cp: 如 cp 文件名 1 文件名 2 9.移动文件或目录: mv 10.删除文件 rm 11. 显示文件内容:more (分页显示); 12. 显示文件:cat 文件名 建立文件:cat >文件名,ctrl+d 结束输入 使用编辑器 vi 编辑文件 1. 进入 linux 的文本模式之后,在命令行键入 vi filename.c 然后回车。下面作一些简单的解释:首
(1)消息的创建,发送和接收。 ①使用系统调用msgget (), msgsnd (), msgrev (), 及msgctl () 编制一长度为 1k的消息的发送和 接收程序。 ②观察上面的程序,说明控制消息队列系统调用msgctl () 在此起什么作用? (2)共享存储区的创建、附接和段接。 使用系统调用shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。 (3) 比较上述(1),(2)两种消息通信机制中数据传输的时间。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引言操作系统是计算机专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。

操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。

本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。

选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。

实验题目一:模拟进程创建、终止、阻塞、唤醒原语一、题目类型:必做题目。

二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计方法和工作原理。

三、实验环境:1、硬件:pc 机及其兼容机。

2、软件:Windows OS ,MS —DOS OS ,Turbo C 或C++、VC++等。

四、实验内容:1、设计创建、终止、阻塞、唤醒原语功能函数。

2、设计主函数,采用菜单结构(参见后面给出的流程图)。

3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队列中进程的变化情况。

五、实验要求:1、进程PCB 中应包含以下内容:2、系统总体结构:其中:进程名用P1,P2标识。

优先级及运行时间:为实验题目二做准备。

状态为:就绪、运行、阻塞,三种基本状态。

指针:指向下一个PCB 。

六、各功能简要说明:1、创建:在本实验中,该功能仅实现建立PCB,初始化PCB,并将该PCB放入就绪队列中。

2、阻塞:在本实验中,实现的功能为,根据用户输入的进程名称在就绪队列中查找该进程,若该进程存在且在就绪队列中,则修改该进程PCB的状态,并将该进程从就绪队列转入阻塞队列;若该进程存在且已在阻塞队列中,则给出相应的提示信息;若该进程不存在,也需要给出相应的提示信息。

注意:若就绪队列为空,则不能执行阻塞功能。

3、唤醒:功能类似阻塞功能,注意:若阻塞队列为空,则不能执行唤醒功能。

4、终止:根据用户输入要结束的进程名称,从就绪队列或阻塞队列中找到相应的进程PCB,并将该PCB从相应队列中删除。

若该进程不存在,需要给出提示。

若就绪队列与阻塞队列均为空,则不能执行该功能。

5、显示:将就绪队列与阻塞队列中的进程列表显示出来。

七、其它注意事项:1、就绪队列与阻塞队列中不能存在同名进程,且总数最多为10个进程。

2、系统应有出错处理,如:功能选择不在0----5之间,应给出相应的提示,并重新选择功能。

3、界面应友好、美观,在任何情况下,都应有相应的提示信息。

例:创建进程时,屏幕上应提示用户输入什么信息:进程名:优先级:运行时间:4、完成时间:三周(6学时)。

5、实验报告要求:第一页要求用专用的实验报告纸,其它可用8开的白纸。

报告内容包括:(1)实验题目:(2)实验目的:(3)实验环境:(4)实验内容:(5)算法流程图:(6)程序清单:(7)程序中使用的数据结构及符号说明:(8)调试程序时出现问题说明及解决的方法:实验题目二:模拟进程调度功能一、题目类型:必做题目。

二、实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。

三、实验环境:同实验一。

四、实验内容:1、设计进程调度功能,至少模拟两种以上调度算法。

如:优先级调度算法、时间片调度算法等。

2、进程调度功能作为一个函数scheduler,加入到实验题目一中。

3、进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。

4、若选上一个进程,以显示:进程名、状态、时间片、优先级等信息表示一个进程被执行。

若运行完,应删除相应PCB。

五、实验要求:1、在实验题目一中的主菜单中加入一个菜单项:6 调度,选择该菜单项后,系统进入进程调度。

2六、各功能简要说明:1、返回主菜单:当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。

2、优先级调度:选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行状态(将进程PCB的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的PCB)。

3、时间片调度:每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程的执行时间减去一个时间片,若某进程的剩余时间小于等于0,则表明该进程运行结束,撤销该进程的PCB。

七、其它注意事项:1、设计界面要美观、友好。

2、若显示信息较多时,应考虑分屏显示。

3、完成时间:二周内。

4、时间充裕的同学,可参照下面的思想,对实验题目一、二进行修改:(1)为系统选定某种进程调度算法,选定后,系统将按照该调度算法进行进程的调度。

(2)创建进程:①当创建第一个进程时,该进程立即由就绪转入执行状态,作为运行的进程。

②若采用优先级调度算法,则考虑在创建新进程或唤醒某进程后,是否会引起重新调度。

(3)阻塞进程:只能阻塞当前正在执行的进程,阻塞后,需要按照调度算法,选择新的执行进程。

(4)唤醒进程:将阻塞队列中的某个进程唤醒转入就绪队列,注意,唤醒进程插入就绪队列后,是否会引起重新调度。

(5)终止进程:因为本实验中无法实现运行进程的自行终止,必须通过该功能实现进程的结束,因此,在设计系统时,要考虑,若终止的是执行进程,则会引起进程的重新调度。

若终止的不是执行进程,则不会引起重新调度。

(6)以上内容仅供同学们参考,有兴趣的同学可参照上面的基本思想及书上介绍的进程调度部分、进程基本状态之间的转换部分内容来完善该题目的设计。

八、实验报告要求:同实验一。

实验题目三:模拟动态分区首次适应分配和回收算法一、题目类型:必做题目。

二、实验目的:通过本实验,可加深理解动态分区分配、回收程序的功能和具体实现,特别是对回收分区的合并的理解。

三、实验环境:同实验一。

四、实验内容:1、设计动态分区首次适应分配、回收算法。

2、设计“未分配区说明表”,格式为:3、设计“已分配区说明表”,格式为:4、设计显示程序,将“未分配区说明表”和“已分配区说明表”的内容,显示在屏幕上。

5、初始分配从一个空闲区分配起,回收时要合并空区。

五、实验要求:1、系统要求分配一个分区时,应输入:作业名、作业长度。

2、回收一个分区时,应输入:回收的作业名。

回收的分区请注意是否需要进行合并。

3、五、各功能简要说明:1、分配功能:选择该功能后,首先输入需要分配空间的作业名及所需空间的大小。

然后,按照首次适用算法从空闲分区表中找到一个合适的分区,若找到,则划分相应的空闲分区给该作业(修改“未分配区说明表”和“已分配区说明表”中的内容);若没有找到,需要给出相应的提示信息。

2、回收算法:选择该功能后,首先输入需要回收的作业的名称,然后,系统按照该名称从“已分配区说明表”中找到该作业对应的表项,若找到,则回收该分区(修改“未分配区说明表”和“已分配区说明表”中的内容),要注意空闲分区的合并与空闲分区表需要按地址有序调整;若没有找到,则给出相应的提示信息。

3、显示分区表:将两个分区表的内容显示在屏幕上,以便随时查看程序的运行情况。

六、其它注意事项:1、“未分配区说明表”的初始化是指:将初始空闲分区的信息作为该表的第一个表项,且状态为1,其余空闲表项的状态为0。

2、分配时若剩余的碎片太小,则该小碎片不要作为空闲分区存在。

3、若无空闲分区满足一个作业的需求,但分散空闲分区的合并后能够满足该作业,考虑将适当的空闲分区合并。

4、“已分配区说明表”的初始化是指:将该表中每个表项的状态置为0。

5、显示分区表:只是将状态为1的表项显示出来。

6、完成时间:两周内。

七、实验报告要求:同实验一。

实验题目四:模拟请求分页管理中地址转换和缺页中断处理一、题目类型:必做题目。

二、实验目的:了解内存请求分页管理中地址转换过程与先进先出置换算法和缺页中断处理过程。

三、实验环境:同实验一。

四、实验内容:1、 在页式管理中,地址转换是由硬件完成的,实验中设计程序模拟地址转换过程。

2、 设计页表格式为:3、 设内存1块=1024B ,现有一个共8页的作业,其副本已存在磁盘上,设第0页至第2页已装入主存,其余5页都不在内存。

将页表进行初始化处理。

4、 假设每个作业只分配3块内存,按先进先出置换算法淘汰。

用“页面队列”表示淘汰的顺序。

页面队列5、设计缺页中断处理程序。

当对读入的逻辑地址,划分为页号、页内地址后,通过页表发现访问的页不在内存,转入“缺页中断处理”程序去处理。

1.指向最先调入的页2.采用“先进先出”页面置换算法进行缺页中断处理。

六、其它注意事项:1、输入的逻辑地址用十进制表示,但不超过7*1024 –1(因页表设了0---7个表目)。

2、可以尝试使用其它页面置换算法完成该题目。

3、完成时间:二周内。

七、实验报告要求:同实验一。

实验题目五:模拟使用银行家算法判断系统的状态一、题目类型:选作题目二、实验目的:银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强学生对该算法的理解与应用。

三、实验环境:同实验一。

四、实验内容:1、建立T0时刻的资源分配表,初始化。

2、设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查。

3、设计安全性算法,检查某时系统是否安全。

4、设计显示函数,显示资源分配表,安全分配序列。

五、实验要求:1、T0时刻的资源分配表由进程数组,Max,Allocation,Need,Available 5个数组构成。

2、系统总体结构。

六、各功能简要说明:1、资源申请:读入一个进程申请,按银行家算法,安全算法进行试分配。

2、显示资源分配表:分屏显示资源分配表某时刻状态。

3、退出:退出系统七、其它注意事项:1、设计界面要美观,友好2、显示资源分配表,可分屏显示3、完成时间:二周内(4学时)八、实验报告要求:同实验一。

实验题目六:模拟外存的分配与回收算法一、题目类型:选做题目。

二、实验目的:了解空闲盘块的组织方法,对空闲盘块的分配与回收,已分配盘块的组织方法。

三、实验环境:同实验题目一。

四、实验内容:1、首先初始化系统,初始化的内容包括:(1)空闲盘块的组织方式(重点考虑:位示图法、成组链接法)(2)文件的物理结构(重点考虑:显示链接法、混合索引法)(3)一个盘块的大小。

(4)根据系统的当前情况,对位示图或空闲盘块栈进行初始化。

(假定系统共64个盘块,空闲盘块号栈的长度为10)2、根据初始化后的信息,为某文件分配相应的盘块,并将分配给该文件的盘块按选定的组织方式组织起来,并将相应的信息记录到FCB中。

相关文档
最新文档