《操作系统》实验题目
操作系统 上机操作实验题目
实验一批处理系统的作业调度一、实验目的1.加深对作业概念的理解。
2.深入了解批处理系统如何组织作业、管理作业和调度作业。
二、实验预备知识1.作业的概念。
2.作业的创建。
3.作业的调度。
三、实验内容编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。
实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所做工作进行测试。
四、提示与讲解操作系统根据允许并行工作的道数和一定的算法从系统中选取若干作业把它们装入主存储器,使它们有机会获得处理器运行,这项工作被称为“作业调度”。
实现这部分功能的程序就是“作业调度程序”。
作业调度的实现主要有两个问题,一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。
为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息存储器中的位置、指向下一个作业控制块的指针等信息。
这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。
一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。
当进行作业调度时,从后备队列中查找选择作业。
由于实验中没有实际作业,作业控制块中的信息内容只使用了实验中需要的数据。
作业控制块中首先应该包括作业名;其次是作业所需资源,根据需要,实验中只包括需要主存的大小(采用可移动的动态分区方式管理主存,作业大小就是需要主存的大小)、需要打印机的数量和需要磁带机的数量;采用响应比作业调度算法,为了计算响应比,还需要有作业的估计执行时间、作业在系统中的等待时间;另外,指向下一个作业控制块的指针必不可少。
实验中,作业控制块及队列的数据结构定义如下:typedef struct jcb {char name[4]; //作业名int length; //作业长度,所需主存大小int printer; //作业执行所需打印机的数量int tape; //作业所需磁带机的数量int runtime; //作业估计执行时间int waittime; 作业在系统中的等待时间int next; //指向下一个作业控制块的指针}JCB //作业控制块类型定义存放作业控制块的区域:define n 10 //假定系统中可容纳的作业数量为nJCB jobtable[10]; //作业表int jobcount ; //系统内现有作业数量将作业控制块组织成一个队列,实验中采用静态链表的方式模拟作业的后备队列,如下图所示。
操作系统实验题
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 进程调度算法的模拟(6学时)1.用语言来实现对n个进程采用不同调度算法的进程调度。
2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:(1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。
(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。
(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。
(4)进程总共需要运行时间Alltime,利用随机函数产生。
(5)进程状态,0:就绪态;1:运行态;2:阻塞态。
(6)队列指针next,用来将多个进程控制块PCB链接为队列。
3.优先数改变的原则(1)进程在就绪队列中每呆一个时间片,优先数增加1。
(2)进程每运行一个时间片,优先数减3。
4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程控制块PCB链接成就绪队列。
实验2 系统动态分配资源的模拟(6学时)编程序模拟银行家算法,要求能体现算法的全过程实验3 内存分配算法模拟(6学时)设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程,并计算访问命中率:1、先进先出的算法(FIFO)2、最近最少使用算法(LRU)3、最佳淘汰算法(OPT)4、最不经常使用算法(LFU)实验4 磁盘调度算法模拟(4学时)编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:1、先来先服务算法(FCFS)2、最短寻道时间优先算法(SSTF)3、扫描算法(SCAN)4、循环扫描算法(CSCAN)附:实验报告文档格式1.设计目的2.算法及数据结构2.1算法的总体思想(流程)2.2 XXX模块2.2.1 功能2.2.2 数据结构2.2.3 算法2.3 YYY模块3.3.1功能3.3.2 数据结构3.3.3算法3.调试问题及解决过程4.实验结果及分析4.1 实验结果4.2 结果分析。
操作系统实验二报告-时间片轮转进程调度算法1
操作系统实验报告实验二时间片轮转进程调度算法学号:班级:姓名:【实验题目】: 时间片轮转进程调度算法【实验目的】通过这次实验, 加深对进程概念的理解, 进一步掌握进程状态的转变、进程调度的策略与对系统性能的评价方法。
【实验内容】问题描述:设计程序模拟进程的时间片轮转RR 调度过程。
假设有n 个进程分别在T1, … ,Tn 时刻到达系统, 它们需要的服务时间分别为S1, … ,Sn 。
分别利用不同的时间片大小q, 采用时间片轮转RR 进程调度算法进行调度, 计算每个进程的完成时间, 周转时间和带权周转时间, 并且统计n 个进程的平均周转时间和平均带权周转时间。
程序要求如下:1)进程个数n ;每个进程的到达时间T 1, … ,T n 和服务时间S 1, … ,S n ;输入时间片大小q 。
2)要求时间片轮转法RR 调度进程运行, 计算每个进程的周转时间, 带权周转时间, 并且计算所有进程的平均周转时间, 带权平均周转时间;3)输出: 要求模拟整个调度过程, 输出每个时刻的进程运行状态, 如“时刻3: 进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间, 带权周转时间, 所有进程的平均周转时间, 带权平均周转时间。
实现提示:用C++语言实现提示:1)程序中进程调度时间变量描述如下:int ArrivalTime[100];int ServiceTime[100];int PServiceTime[100];int FinishTime[100];int WholeTime[100];double WeightWholeTime[100];double AverageWT,AverageWWT;bool Finished[100];➢2)进程调度的实现过程如下:➢变量初始化;➢接收用户输入n, T1, … ,Tn, S1, … ,Sn;时间片大小q;➢按照时间片轮转RR算法进行进程调度, 计算进程的完成时间、周转时间和带权周转时间;➢计算所有进程的平均周转时间和平均带权周转时间;➢按格式输出调度结果。
操作系统原理与实践试题及解析
操作系统原理与实践试题及解析第一部分:选择题1. 操作系统的作用是:A. 管理计算机硬件和软件资源B. 提供用户接口C. 控制程序运行D. 执行输入输出操作答案:A2. 操作系统中负责调度进程的是:A. 进程管理器B. 文件管理器C. 内存管理器D. 网络管理器答案:A3. 以下哪个不是操作系统的核心功能:A. 处理器管理B. 文件管理C. 网络管理D. 内存管理答案:C4. 操作系统调度算法中,最短作业优先算法适用于:A. 短作业B. 长作业C. 实时作业D. 批处理作业答案:A5. 在分页系统中,页面置换算法中最优算法的缺点是: A:实现复杂B:无法实时进行C:产生大量的页面失效D:存在局部性原理答案:C第二部分:简答题1. 解释进程和线程的区别。
答:进程是资源分配的最小单位,拥有独立的内存空间和上下文,而线程是CPU调度的最小单位,存在于进程内部,共享相同的内存空间和上下文。
2. 什么是死锁?如何避免死锁的发生?答:死锁是指多个进程或线程因相互请求对方占用的资源而陷入无限等待的状态。
避免死锁的方法包括破坏死锁产生的四个必要条件:互斥条件、请求与保持条件、不剥夺条件和环路等待条件。
3. 请简要解释分页系统和分段系统的原理。
答:分页系统将物理内存和逻辑内存划分为固定大小的页和页面框,通过页表实现页的映射和置换;分段系统根据程序的逻辑结构将程序的地址空间划分为若干段,通过段表实现段的映射和保护。
4. 请简要解释页面置换算法中的FIFO算法和LRU算法。
答:FIFO算法是最简单的页面置换算法,选择最早进入内存的页面进行置换;LRU算法则选择最近最久未使用的页面进行置换。
第三部分:计算题1. 假设一个操作系统具有3个可执行程序,分别需要占用400KB、600KB和800KB的内存空间。
系统的物理内存有1.5MB。
若系统采用固定分区分配方式,分区大小为500KB、800KB和1MB。
请计算内存碎片大小。
操作系统课程设计题目
实验一进程调度一、实验目的观察、体会Linux 系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解。
二、实验内容采用动态优先数的方法,编写一进程调度程序模拟程序。
模拟程序只进行相应的调度模拟操作,不需要实际程序。
[提示]:(1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:进程名指针要求运行时间优先数状态其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。
指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。
要求运行时间——假设进程需要运行的单位时间数。
优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态——可假设有两种状态,“就绪”状态和“结束”状态。
五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。
(2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。
用一单元指出队首进程,用指针指出队列的连接情况。
(4) 处理器调度总是选队首进程运行。
采用动态改变优先数的办法,进程每运行一次优先数就减“1”。
由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数-1要求运行时间-1来模拟进程的一次运行。
提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。
在这里省去了这些工作。
(5) 进程运行一次后,若要求运行时间?0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。
(6) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
操作系统实验题目
操作系统实验上机准备:➢熟悉Cygwin环境➢编译源程序使用gcc 源程序名–o 目标文件名(缺省为a.out)。
➢学习Linux(Unix)的常用命令。
➢学习vi 编辑器的使用。
➢C语言语法1 进程管理1.1 实验目的加深对于进程并发执行概念的理解。
实践并发进程的创建和控制方法。
观察和体验进程的动态特性。
进一步理解进程生命期期间创建、变换、撤销状态变换的过程。
掌握进程控制的方法,了解父子进程间的控制和协作关系。
练习Linux系统中进程创建与控制有关的系统调用的编程和调试技术。
1.2 实验说明1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。
父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。
fork()系统调用语法:#include <unistd.h>pid_t fork(void);fork成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6个函数,其中示例实验中引用了execve 系统调用语法:#include <unistd.h>int execve(const char *path, const char *argv[], const char * envp[]); path 要装入的新的执行文件的绝对路径名字符串.argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。
如果exec 调用失败,它会返回-1。
getpid()---获取进程的pid● 每个进程都执行自己独立的程序,打印自己的pid ,每个父进程打印其子进程的pid;● 每个进程都执行自己独立的程序,打印自己的pid ,父进程打印其子进程的pid;● 编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)这几个命令。
操作系统实践试题及答案
操作系统实验笔试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、先来先服务算法.先来先服务算法是最简单的调度算法,它是按照作业进入“输入井”的先后次序来挑选作业,先进入的作业优先被挑选。
操作系统综合实验题目及格式
综合实验题目
1. 处理机调度模拟(先来先服务(FCFS)、短进程优
先(SPF)、高优先权调度(FPF )、时间片轮转(RR)
2. 模拟动态分区主存空间的分配和回收
3. 模拟页式主存空间的分配和回收
4. 模拟磁盘空间的分配和回收
5. 模拟实现资源分配。
同时要求编写和调试一个系统
动态分配资源的简单模拟程序,观察死锁产生的条
件,并使用适当的算法,有效的防止和避免死锁的
发生。
具体用银行家算法实现资源分配。
6. 模拟spooling系统
7. 模拟电梯调度算法,实现对磁盘的驱动调度
8. 模拟文件系统
• 每人任选一题
操作系统综合实验报告格式
1 操作系统综合实验报告内容
(1) 基本信息:完成人姓名、学号、报告日期
(2) 实验内容
(3) 实验目的
(4) 实验题目
(5) 设计思路和流程图、算法
(6) 主要数据结构及其说明
(7) 源程序并附上注释
(8) 程序运行时的初值和运行结果
(9) 综合实验体会:实验中遇到的问题及解决过程、实验中产生的错
误及原因分析、实验的体会及收获。
综合实验报告以电子文档形式提交到ftp://192.168.40.14
截止日期:2010.1.15
2操作系统综合实验报告样本
封面
目录
标题
一、实习内容
二、实习目的
三、实习题目
四、源程序及注释
五、程序运行时初值和运行结果
六、实验体会。
操作系统实验题目1
题目1:Windows进程的创建与销毁内容及要求:①掌握Windows进程的创建和销毁API的调用方法;编程代码,在程序中创建和销毁一个Word进程;②能够挂起和激活被创建进程的主线程;③通过Windows进程管理器查看系统进程列表的变化。
实验指导:①创建进程的APIBOOL CreateProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,LPSECURITY_A TTRIBUTES lpProcessAttributes,LPSECURITY_A TTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCTSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMA TION lpProcessInformation);例程:void main( VOID ){STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &pi, sizeof(pi) );// Start the child process.if( !CreateProcess( NULL, // No module name (use command line)."MyChildProcess", // Command line.NULL, // Process handle not inheritable.NULL, // Thread handle not inheritable.FALSE, // Set handle inheritance to FALSE.0, // No creation flags.NULL, // Use parent's environment block.NULL, // Use parent's starting directory.&si, // Pointer to STARTUPINFO structure.&pi ) // Pointer to PROCESS_INFORMATION structure.) {ErrorExit( "CreateProcess failed." );}// Wait until child process exits.WaitForSingleObject( pi.hProcess, INFINITE );// Close process and thread handles.CloseHandle( pi.hProcess );CloseHandle( pi.hThread );}②销毁进程APIBOOL TerminateProcess(HANDLE hProcess,UINT uExitCode);③挂起进程的主线程APIDWORD SuspendThread(HANDLE hThread);④激活进程的主线程APIDWORD ResumeThread(HANDLE hThread);⑤进程查看器题目2:Windows进程间的通信内容及要求:①理解Windows进程间通信的原理,掌握Windows进程间通信的编程方法;②掌握Windows管道的编程API调用方法;③编写两个不同的程序,使用管道方式实现这两个程序运行时进程间的通信。
操作系统实验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:盘中的文件夹是否真的删除了,从而体会库与一般文件夹的区别和作用。
linux操作系统实验题目
[解答]mv large memos
10.显示一个文件的后五行
[解答]tail –n 5 large
11.显示一个文件的前五行
[解答]head –n 5 large
12.把一个文件的最后30个字符存到另一个文件中
[解答]tail –c 30 large>>myfile
b、这只是gcc最最基本的用法。
2.调试下面c语言程序,并在实验报告中说明该程序的功能。
#i nclude <stdio.h>
main() {
int n,a[200],carry,temp,i,j,digit = 1;
printf("Please input n:");
scanf("%d",&n);
1用linux启动光盘启动计算机2选择安装语言鼠标键盘等3选择安装类型服务器工作站自定升级4为磁盘划分linux分区与swap分区5选择引导装载程序与记录引导程序的位置6依次配置网络防火墙语言及时区7配置帐号与密码8选择合适的软件包9进行图形界面配置10安装软件包11创建引导盘12进行x窗口设置13安装完成
⑴用静态数组或二维数组形式定义命令保留字表和shell命令字表。静态数组形式如下:static char * cst [ ]="dir"…"end";static char * scwt [ ]="ls —l"…"exit";
⑵输入命令字gets(string);
⑶分离命令字strcspn();strncpy()
} }
printf("Result is:\n%d ! = ",n);
《操作系统》实验题目
引言操作系统是计算机专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。
选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。
实验题目一:模拟进程创建、终止、阻塞、唤醒原语一、题目类型:必做题目。
二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计方法和工作原理。
三、实验环境: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的状态,并将该进程从就绪队列转入阻塞队列;若该进程存在且已在阻塞队列中,则给出相应的提示信息;若该进程不存在,也需要给出相应的提示信息。
操作系统实验题目及实验报告要求
实验报告实验课程:操作系统实验学生姓名:王桥学号:6100412024专业班级:计科123班2014年 6月3 日目录一、实验一 (1)二、实验二 (7)三、实验三 (21)四、实验四 (28)五、实验五 (33)南昌大学实验报告---(1)操作系统安装及其接口环境学生姓名:王桥学号:6100412024 专业班级:计科123班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的熟悉Windows//Linux操作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,并为后续实验做好编程环境准备。
二、实验内容1、熟悉Windows//Linux操作系统的安装过程与安装方法,并掌握该操作系统所提供的用户接口环境,通过系统提供的用户管理程序、查看系统中的用户情况、进程、线程、内存使用情况等,学会使用它进行监视进程的状况、系统资源的使用情况及用户情况。
并为后续实验做好编程环境准备。
2、用C语言编写一小段程序,使其可以通过某个系统调用来获得OS提供的某种服务。
三、实验要求1.了解所安装的操作系统对软硬件资源的具体要求;2.机器最低硬件配置要求;3.操作系统所提供的用户接口环境的熟悉;4.了解主要BIOS CMOS参数的含义及其设置方法;5.掌握程序编写中系统调用的方法。
四、主要实验步骤1、选择语言为中文:2)选择第一项“试用Ubuntu 而不改变计算机中的任何内容”,进入live 桌面后点击“安装”图标。
1)选择语言,可以根据你自己的喜好选择,当然是选择中文(简体)了2)选择时区,默认上海就可以3)选择键盘布局,一般默认U.S.A 就可以4)准备分区,这是安装过程中最重要的一步。
选择手动。
5)准备分区,这是安装过程中最重要的一步。
6)填写用户信息。
7)文件迁移向导,点击下一页。
8)准备安装。
9)安装完成,重新启动。
10)界面如下南昌大学实验报告---(2)编程模拟进程间的同步和互斥学生姓名:王桥学号:6100412024 专业班级:计科123实验类型:□验证□综合■设计□创新实验日期:实验成绩:一、实验目的通过实验加强对进程同步和互斥的理解,并掌握进程(线程)的创建和调用方法。
操作系统实验复习题
一、选择题1.下列不是Linux操作系统特点的是()A.开放性B.良好的用户界面C.良好的可移植性D.单用户2.在Linux系统中最高目录是()A.我的计算机 B.C:\ C./ D. home3.可以代替任意单个字符的通配符是()。
A.? B.# C.@ D.*4.可以代替任意字符的通配符是()。
A.? B.# C.@ D.*4.telnet 命令的功能是()A.远程执行命令 B.传输信息C.远程登录 D.查看网络状态5.常见的Linux发布版本很多,下列不是Linux发布版本的是()A.Red Hat Linux B.红旗Linux C.Fedora Core D.X-Window6.怎样更改一个文件的权限设置?()A.attribB.chmodC.changeD.file7.Linux操作系统中下面哪条命令可以把f1.txt复制为f2.txt? ( )A. cp f1.txt f2.txtB. cat f1.txt f2.txtC. mv f1.txt f2.txtD. copy f1.txt f2.txt8.设char dat[10],从键盘输入字符串的输入语句是:( )A. scanf(“%d”,dat);B. scanf(“%s”,dat);C. scanf(“%d”,&dat);D. scanf(“%c”,dat);9.让父进程等待子进程结束的函数是( )A.exit(0);B.sleep(1)C.wait(0);D._exit(0);10. 对标准输出设备(显示器)加锁的函数是( )A.lockf(1,1,0);;B.lockf(1,0,0);C.lockf(1,0,1);;D.lockf(1,1,1);11. 对标准输出设备(显示器)解锁的函数是( )A.lockf(1,1,0);;B.lockf(1,0,0);C.lockf(1,0,1);;D.lockf(1,1,1);12. linux系统中,预置当接收到软中断信号16跳转到func函数的命令是()A. signal(16,func)B. signal(func,16)C. kill(pid,17)D. kill(17,func)13. linux系统中,消息队列通信中发送消息的系统调用格式是()A. msgsnd(msgqid,msfp,size,flag)B. msgqid=msgget(key,flag)C.msgrcv(msgqid,msfp,size,type,flag)D. msgctl(msgqid,IPC_RMID,0);14. linux系统c语言编程中,让进程暂停6秒钟的命令是()A.wait(60) B.wait(0) C.sleep(6) D.sleep(60)15. linux系统中,让后台运行的PID为1223的进程暂停的命令是()A. kill –CONT 1223B. kill –STOP 1223C. kill –KILL 1223D. kill –EXIT 1223二、填空1)linux系统中删除当前目录下的非空子目录/dir1的命令:__rm –r/dir1____2)Windows系统中远程登录Linux系统的命令:__telnet ____3)linux系统中,显示当前目录所有文件的许可权、拥有者、文件大小、修改时间等信息的命令:_ls -l_____4)linux系统中,在当前目录下创建名为dir1的目录的命令: __mkdirdir1____5)linux系统中,改变目录位置至当前目录的上层目录的命令:cd _.._____6)linux系统中,查看当前目录下文件file.c内容的命令:_cat file.c_____7)linux系统中,查看系统中的使用者的命令:__who____8)linux系统中,查看系统目前进程的命令:__ps____9)linux系统中,终止后台运行的PID为2345的进程的命令:_kill –kill2345______10)linux系统中,以树状图显示执行的进程的命令:_pstree_____11)linux系统中,监视虚拟内存的命令:__vmstat____12)linux系统中,显示消息队列使用情况的命令:__ipcs__-q__(delete ipcrm–q ID)13)linux系统中,查看ls指令的帮助信息的命令:___man ls____14)linux系统中,把源文件test.c编译为名为test的可执行文件的命令:____gcc –o test test.c___15)linux系统中,让当前目录下的可执行文件test后台执行的命令:___./test&______16)linux系统中,创建进程的系统调用格式:__ fork()________17)linux系统中,创建管道的系统调用格式:___int pipe(int fd[2])_______18)linux系统中,把dat中存储的信息写入管道fd的系统调用格式:__write(fd[1],buf,size)_____19)linux系统中,从管道fd中,读取20个字符信息存储到dat中的系统调用格式:___read(fd[0],buf,20)____20)linux系统中,创建消息队列的系统调用格式:__msgget(key,flag)____21)linux系统中,向指定的消息队列发送一个消息的系统调用格式:__msgsnd(msgqid,msgp,size,flag)____22)linux系统中,从指定的消息队列接收一个消息的系统调用格式:msgrcv(msgqid,msgp,size,type,flag)______23)linux系统中,让PID为2223的进程暂停的命令:__kill –stop 2223____24)linux系统中,让PID为2223的进程恢复执行的命令:__kill - cont_2223___25)linux系统中,在子进程中调用当前目录下一个已编译好的可执行程序hello的系统调用:____execl(“./hello”,”hello”,NULL)________26)linux系统中,c语言编程中,命令sleep(1)的含义:_休眠一秒(挂起)_____27)进程在执行过程中的三种基本状态__就绪____、_执行_____、__阻塞____28)系统中一个进程由__PCB____、_ 程序段_____和_ 相关的数据段_____三部分组成。
计算机操作系统实验课题
一、计算机操作系统实验课题1.1 输入法1.1.1找到屏幕下边栏(即任务栏)输入法图标所在位置,使用拷贝屏幕键(Print Screen)拷贝,然后粘贴在下面:(注意:使用word 图片工具栏上的图标,可以剪裁拷贝而成的图片,直到只剩下图标。
)如:你的计算机上的输入法图标是:1.1.2 拷贝语言栏粘贴在下面。
(注意:如果看不见语言栏的话,用鼠标左键点击它,可以看见一个菜单,里面有相应功能可以转到语言栏显示方式。
)如:你的计算机上的语言栏是:1.1.3 右击输入法图标或语言栏,通过右键菜单进入输入法设置界面。
你的输入法设置界面是:1.1.4删除美式键盘之外的所有其他输入法。
(注意:删除之后,要点击“应用”或“确认”才会生效。
)删除之后,你是否还能输入中文?答:1.1.5 添加一个中文输入法。
然后再次进入输入法设置界面,点击“键设置”,得到以下信息。
在不同输入法之间相互切换使用的功能键是:在中文输入法和英文字母输入之间切换使用的功能键是:在中文输入模式下,切换全角和半角输入使用的功能键是:输入全角阿拉伯数字和半角阿拉伯数字:1.1.6 再次进入输入法设置界面,点击“语言栏……”清除“在桌面上显示语言栏”复选框。
现在还可以在任务栏上看见输入法图标吗?答:如何让它再显示出来?答:1.1.7 调出和使用软键盘,软键盘可以帮助输入特殊字符。
你的软键盘界面是:输入希腊字母阿尔法和欧米茄:1.2 键盘输入1.2.1 字母输入先打出小写的汉语拼音韵母:以大小写切换组合键(shift+字母键)逐个打出大写的汉语拼音韵母:先按一下Caps Lock键,观察键盘有什么变化?答:使用Caps Lock键切换成默认大写,然后打出大写的汉语拼音声母:1.2.2 数字和符号输入输入一个回车(Enter):输入百分号:输入e-mail地址中的带圈符号:输入制表符号,通过制表符间隔出三个数字:1,1.5,1.25:输入一个中文逗号和一个英文逗号:输入中文单双引号:输入英文单双引号:输入书名号:输入省略号:输入顿号:输入国外人名的姓名间的间隔点:输入银行人民币前的羊符号:输入破折号:1.2.3 切换数字锁定键数字锁定键按下后,键盘上会有什么反应?答:使用数字锁定键结合小键盘,输入阿拉伯数字0-9:1.2.4 切换插入/改写输入模式按Insert键,看看word窗口的下边栏(状态栏)有什么反应?答:试着分别在插入和改写模式输入一些字母,回答插入模式和改写模式对输入有什么影响?答:1.2.5 删除和退格试着输入一些字母,然后在中间使用delete键和backspace(←)键,回答这两个键有什么区别。
操作系统实验复习题
一、基本操作题(每小题30分,共60分)
1.创建一个新的用户,用户名为考生姓名汉语拼音,然后切换到新的用户账号下,进入新用户的主目录中,键入命令whoami和pwd显示出新创建的用户名和主目录名。
2.使用linux命令分别显示当前的日期和日历。
3.使用vi程序,输入文字并保存为考生姓名.txt
4.使用vi程序,编写一个C文件HELLO WORLD.C,并使用gcc编译器编译后执行:
5.列出/etc目录下的信息,并将结果保存到用户目录下
6.创建一个文件,复制该文件,重命名,删除
7.创建目录,删除目录。
二、综合应用题(共40分)
1.使用c或者C++实现进程调度算法中的短进程优先算法SPF的模拟。
要求将实现结果截图保存为SPF.png
3使用c或者C++实现进程调度算法中的FCFS算法的模拟。
要求将实现结果截图保存为FCFS.png。
4.使用c或者C++实现进程调度算法中的高优先权算法的模拟。
要求将实现结果截图保存为PS.png。
5.使用c或者C++语言对银行家算法模拟。
6使用c或者C++语言实现对LRU页面置换算法模拟。
6使用c或者C++语言对OPT页面置换算法模拟。
7使用c或者C++语言对FIFO页面置换算法模拟。
8使用c或者C++语言实现在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收算法的模拟。
操作系统原理实验题
《操作系统原理》实验考核方式与基本要求:1)按要求设计相应的模拟系统并上机调试运行2)写出详细的实验报告,实验报告要求如下:(1)实验题目。
(2)程序中使用的数据结构及符号说明。
(3)流程图。
(4)打印一份源程序并附上注释。
(5)打印程序运行时的初值和运行结果。
实验报告可参考附录A中的规范进行编写。
基本要求: 4人为一小组,采取课内上机和业余上机相结合的方式进行,在规定时间内每个小组以实验报告形式上交实验(设计)结果并上机演示说明。
㈠进程管理㈡模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。
㈢银行家算法㈣模拟分页式存储管理中硬件的地址转换和产生缺页中断㈤用先进先出(FIFO)页面调度算法处理缺页中断㈥用最近最少用(LRU)页面调度算法处理缺页中断㈦设计一个按优先数调度算法实现处理器调度的进程㈧设计一个按时间片轮转法实现处理器调度的程序㈨模拟实现一个简单的固定(或可变)分区存储管理系统㈩模拟实现单通路I/O系统中的设备分配程序实验一进程管理1.实验内容至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。
㈠进程管理2.实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU 时间,进程的状态,当前队列指针等。
可根据实验的不同,PCB结构的内容可以作适当的增删。
例:实验运行结果********************************************* 进程演示系统*********************************************1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统********************************************请选择(1~6)然后根据你选择的不同,出现不同的结果。
实验二同步机构1、实验内容㈡第一题:模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。
操作系统实验复习题(带答案)(DOC)
操作系统实验复习题1. 目录操作(要求:写出相应的命令,并把执行过程截图)●在/home目录下建立自己的子目录mydir。
mkdir mydir●进入/home/mydir,创建多个子目录。
cd mydirmkdir –p newdirmkdir –p newdir1●查看当前目录下创建的子目录的详细情况。
ls –F /●删除部分子目录。
rmdir newdir1●查看当前目录下创建的子目录和文件的详细情况。
ls -a●回退到上级目录cd ..2. 文件操作(要求:写出相应的命令,并把执行过程截图)●当前目录下,用文件编辑器gedit创建新的文件file.c 。
gedit file.c●ls –l 长格式显示目录清单,查看文件权限。
ls-l●创建子目录newdir,复制文件file.c到newdir目录。
mkdir –p newdircp file.c newdir●将file.c改名为myfile.c。
mv file.c myfile.c3. 编写一段程序,使用系统调用fork()创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
让每一个进程在屏幕上显示一段字符信息。
(要求:把代码、程序编译和运行结果截图)#include<stdio.h> main(){int p1,p2;p1=fork();if(p1==0) {printf("This is child process 1! pid is %d:\n",getpid());}else if(p1>0){printf("This is parent process! pid is %d:\n",getpid());p2=fork();if(p2==0){printf("This is child process 2! pid is %d:\n",getpid());}else if(p2>0){printf("This is parent process! pid is %d:\n",getpid());}else{printf("fork()error!\n"); }}else{printf("fork()error!\n"); }}4. 编译并并运行以下程序,利用kill命令对该后台执行程序的,分别执行让它暂停、恢复执行和终止控制方式,期间多次使用ps -l命令查看进程状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、实验内容:
1、设计创建、终止、阻塞、唤醒原语功能函数。
2、设计主函数,采用菜单结构(参见后面给出的流程图)。
3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队
列中进程的变化情况。
五、实验要求:
1、进程 PCB 中应包含以下内容:
进程名 优先级
其中: 进程名用 P1,P2 标识。
3、 界面应友好、美观,在任何情况下,都应有相应的提示信息。
例:创建进程时,屏幕上应提示用户输入什么信息:
进程名:
优先级:
运行时间:
4、 完成时间:三周(6 学时)。
5、 实验报告要求:第一页要求用专用的实验报告纸,其它可用 8 开的白纸。报告内容包括:
(1) 实验题目:
(2) 实验目的:
(3) 实验环境:
信息学院—计算机科学与技术专业
实验题目一:模拟进程创建、终止、阻塞、唤醒原语
一、题目类型:必做题目。
二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的
理解,掌握操作系统模块的设计方法和工作原理。
三、实验环境:
1、硬件:pc 机及其兼容机。
2、软件:Windows OS,MS—DOS OS,Turbo C 或 C++、VC++等。
(4) 实验内容:
(5) 算法流程图:
(6) 程序清单:
(7) 程序中使用的数据结构及符号说明:
(8)调试程序《操作系统》实验指导书
信息学院—计算机科学与技术专业
实验题目二:模拟进程调度功能
一、题目类型:必做题目。 二、实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。 三、实验环境:同实验一。 四、实验内容:
第 4 页 共 13 页
《操作系统》实验指导书
信息学院—计算机科学与技术专业
4、 时间充裕的同学,可参照下面的思想,对实验题目一、二进行修改:
(1) 为系统选定某种进程调度算法,选定后,系统将按照该调度算法进行进程的调度。
从相应队列中删除。若该进程不存在,需要给出提示。若就绪队列与阻塞队列均为空,则不能执行
该功能。
5、 显示:将就绪队列与阻塞队列中的进程列表显示出来。
七、其它注意事项:
1、 就绪队列与阻塞队列中不能存在同名进程,且总数最多为 10 个进程。
2、 系统应有出错处理,如:功能选择不在 0----5 之间,应给出相应的提示,并重新选择功能。
本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有 限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有 相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学 时的剩余时间完成。
第 1 页 共 13 页
《操作系统》实验指导书
=0
返回上级菜单
X= ?
=2
? =1
转优先级调度算法
转时间片调度算法
六、各功能简要说明:
1、 返回主菜单:当用户选择该项功能时,系统退出进程调度功能,返回到实验题目一中的主菜单。
2、 优先级调度:选择该功能选项时,系统将从就绪队列中选择优先级最高的进程,使该进程处于执行
状态(将进程 PCB 的内容显示在屏幕上,显示完成后,该进程结束,即撤销该进程的 PCB)。
《操作系统》实验指导书
引言
信息学院—计算机科学与技术专业
操作系统是计算机专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功 能和实现原理,对认识整个计算机系统的工作原理十分重要。
操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅 能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论 知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基 本理论的一个重要环节。
运行时间
优先级及运行时间:为实验题目二做准备。
状态
状态为:就绪、运行、阻塞,三种基本状态。
指针
指针:指向下一个 PCB。
2、系统总体结构:
开始
系统主菜单
1…创建 2…阻塞 3…唤醒 4…终止 5…显示 0…退出 请输入您需要的功能(0-5):
0 退出 结束
1 创建
输入选择=?
2
3
5 4
阻塞
唤醒
终止
第 2 页 共 13 页
1、 设计进程调度功能,至少模拟两种以上调度算法。如:优先级调度算法、时间片调度算法等。 2、 进程调度功能作为一个函数 scheduler,加入到实验题目一中。 3、 进程调度程序从就绪队列中挑选进程,若队列为空,应显示“无就绪进程无法调度”的提示信息。 4、 若选上一个进程,以显示:进程名、状态、时间片、优先级等信息表示一个进程被执行。若运行完,
显示
《操作系统》实验指导书
信息学院—计算机科学与技术专业
六、各功能简要说明:
1、 创建:在本实验中,该功能仅实现建立 PCB,初始化 PCB,并将该 PCB 放入就绪队列中。
2、 阻塞:在本实验中,实现的功能为,根据用户输入的进程名称在就绪队列中查找该进程,若该进程
存在且在就绪队列中,则修改该进程 PCB 的状态,并将该进程从就绪队列转入阻塞队列;若该进程
3、 时间片调度:每选择一次该功能,将就绪队列中所有进程的内容显示在屏幕上,并将每个执行进程
的执行时间减去一个时间片,若某进程的剩余时间小于等于 0,则表明该进程运行结束,撤销该进
程的 PCB。
七、其它注意事项:
1、 设计界面要美观、友好。
2、 若显示信息较多时,应考虑分屏显示。
3、 完成时间:二周内。
应删除相应 PCB。 五、实验要求:
1、 在实验题目一中的主菜单中加入一个菜单项:6 调度,选择该菜单项后,系统进入进程调度。 2、 进程调度的结构:
进程调度子菜单 0---------返回主菜单 1---------优先级调度 2---------时间片调度 请选择您需要的功能选项:
读入选择=》x =》x
存在且已在阻塞队列中,则给出相应的提示信息;若该进程不存在,也需要给出相应的提示信息。
注意:若就绪队列为空,则不能执行阻塞功能。
3、 唤醒:功能类似阻塞功能,注意:若阻塞队列为空,则不能执行唤醒功能。
4、 终止:根据用户输入要结束的进程名称,从就绪队列或阻塞队列中找到相应的进程 PCB,并将该 PCB