当前位置:文档之家› 操作系统课程设计题目

操作系统课程设计题目

操作系统课程设计题目
操作系统课程设计题目

(除特别注明外,每组最多3人,先自由组合,并选定1个题目,再由老师作适当调整)

课题一、银行家算法

设计目的:死锁会引起计算机工作僵死,因此操作系统中必须防止。本设计的目的在于使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。

设计要求:

设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析,要求使用图形用户界面。

银行家算法的思路:

1.进程一开始向系统提出最大需求量.

2.进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量.

3.若正常,则判断该进程所需剩余量(包括本次申请)是否超出系统所掌握的

剩余资源量,若不超出,则分配,否则等待.

4.银行家算法的数据结构.

1)系统剩余资源量V[n],其中V[n]表示第I类资源剩余量.

2)已分配资源量A[m][n],其中A[j][i]表示系统j程已得到的第i资源的数量.

3)剩余需求量.C[m][n],其中C[j][i]对第i资源尚需的数目.

5.银行家算法流程:当某时刻,某进程时,提出新的资源申请,系统作以下操作:

1)判定E[n]是否大于C[j][n],若大于,表示出错.

2)判定E[n]是否大于系统剩余量V[n],若大于,则该进程等待.

3)若以上两步没有问题,尝试分配,即各变量作调整.

4)按照安全性推测算法,判断,分配过后,系统是否安全,若安全,则实际分配,否则,撤消分配,让进程等待.

6."安全性检测"算法

对进程逐个扫描,先判断flag,看进程是否完成,如果完成则继续扫描,如果没有再判断当前系统是否满足进程所需要的分配额,如果满足则分配并当进程完成后回收资源,如果没有则扫描下一个进程。扫描所有进程,如果所有的进程都能完成就表明是安全分配序列,如果没有,则分配不成功,不存在着安全序列。

课题二、处理机调度算法的实现

设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固

和加深处理机调度的概念。

设计要求:

1)先由用户输入进程数量(至少5个进程),再由系统随机生成一个进程序列(包括到达时间和服务时间)。

2)然后显示进程调度算法由用户选择,包括:时间片轮转法,短作业优先算法,动态优先级算法。

3)显示结果包括每个进程的开始时间、完成时间、周转时间以及带权周转时间,显示界面可参考书本的例子以表格形式但可不要表格线。

课题三、生产者——消费者问题

设计目的:通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制.

说明:有界缓冲区内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。

设计要求:

(1)每个生产者和消费者对有界缓冲区进行操作后,实时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者的标识符。

(2)生产者和消费者各有两个以上。

(3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。

提示:(1) 有界缓冲区可用数组实现。

课题四:基于Linux的二级文件系统。

要求做到以下几点:

1、可以实现下列几条命令,但可不用参数。

注意,必须真正实现,不能模拟实现,如Dir类似于Linux的ls命令。

Login 用户登录

Dir 列出文件夹内容

Create 创建文件

Delete 删除文件

Open 打开文件

Close 关闭文件

Read 读文件

Write 写文件

2、列目录时要列出文件名、物理地址、保护码和文件长度。

3、设计提示

实现虚拟文件系统的一般思路是调用系统的文件创建(如c中的fopen函数的w方式即可)一个新文件,将此文件作为虚拟磁盘,在完成本设计要求的内容时,要求所生成的文件目录以及文件等内容都是存储在此磁盘中。

4、源文件可以进行读写保护。

主要需完成以下子过程,但不一定全部要用到。

1、i节点内容获取函数iget( )

2、i节点内容释放函数iput( )

3、目录创建函数mkdir( )

4、目录搜索函数namei( )

5、磁盘块分配函数balloc( )

6、磁盘块释放函数bfree( )

7、分配i节点区函数ialloc( )

8、释放i节点区函数ifree( )

9、搜索当前目录下文件的函数iname( )

10、访问控制函数access( )

11、显示目录和文件用函数_dir( )

12、改变当前目录用函数chdir( )

13、打开文件函数open( )

14、创建文件函数create( )

15、读文件用函数read( )

16、写文件用函数write( )

17、用户登录函数login( )

18、用户退出函数logout( )

19、文件系统格式化函数format( )

20、进入文件系统函数install( )

21、关闭文件系统函数close( )

22、退出文件系统函数halt( )

23、文件删除函数delete( )

课题五:存储管理——动态分区分配算法的模拟:

要求设计主界面以灵活选择某算法,以下算法都要实现:

1、首次适应算法

2、循环首次适应算法

3、最佳适应算法;

4、最坏适应算法;

5、快速适应算法

具体要求:

1)首先由系统生成当前的内存状态,按照课本P122图4-5(a)所示,要求未分配的分区数量不少于3个,且空间大小随机,然后随机生成一个数,表示等待分配进程的大小。

2)然后显示上述算法由用户选择,结果显示分配后的状态。

课题六:三种存储管理方式的地址换算

1、分页方式的地址换算。具体要求:

1)随机生成页面大小,但一定为2的幂,系统随机生成一个至少有10行的页表,页号、块号从0开始。

2)用户给定一个逻辑地址,首先显示此地址的页号和页内地址,然后显示是第几块,最后显示其物理地址。

2、分段方式的地址换算。具体要求:

1)由系统随机生成5个左右的段,并随机生成一个段表并显示。

2)由用户给定一个逻辑地址,包括段号和段内地址,最后显示其物理地址。

3、段页式的地址换算。具体要求:

1)先由系统随机生成5个左右的段,然后再由系统随机生成页面大小,但一定为2的幂。然后生成段表和页表,具体内容参照课本P140的图4-22。

2)由用户给定一个逻辑地址,包括段号和段内地址,最后显示其物理地址。

课题七:进程调度模拟程序

设计要求:编写一个进程调度程序,允许多个进程共享进程调度程序。

进程调度算法:采用(1)最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),(2)时间片轮转法,(3)先来先服务算法。

每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。

进程的优先数、到达时间、时间片以及需要的运行时间由随机数产生。

1、设计内容

1)设计进程控制块PCB表结构,分别适用于优先权调度算法、时间片轮转调度算法和先来先服务算法。

2)PCB结构包括以下信息:进程名、进程优先数(或轮转时间片),进程所占用的CPU时间,进程的状态,当前队列指针等。根据调度算法的不同,PCB结构的内容可以作适当的增删。

3)建立进程就绪队列。对两种不同算法编制入链子程序。

4)编制三种进程调度算法:A、优先数调度;B、循环轮转调度;C、先来先服务。

2、具体设计要求及有关说明

选用优先数算法和简单时间片轮转法对五个进程进行调度,每个进程可有三种状态:运行状态(RUN)、就绪状态(READY)和完成状态。并假定初始状态为就绪状态。

设计进程控制块结构如下:

PCB:

NAME

PRIO/ROUND

CPUTIME

COUNT

NEEDTIME

STATE

NEXT

其中:

NAME ——进程标识符;

PRIO ——进程优先数;

ROUND ——进程轮转时间片;

CPUTIME ——进程占用CPU 时间;

COUNT ——计数器;

NEEDTIME ——进程到完成还要的CPU 时间;

STATE ——进程的状态;

NEXT ——链指针。

进程控制块链结构如插图。其中:

RUN ——当前运行进程指针;

READY ——就绪队列头指针;

TAIL ——就绪队列尾指针;

FINISH ——完成队列头指针。

为了便于处理,程序中进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数以及进程需运行的时间片数的初值均由用户给定。

3、程序设计算法:

(1)在优先数算法中,进程每执行一次,优先数减3,CPU 时间片数加1,进程还需要的时间片数减1。在轮转法中,采用固定时间片,时间片数为2,进程每执行一次,CPU 时间片数加2,进程还需要的时间片数减2,并排到就绪队列的尾上。

∧ …

… ∧ … ∧

… READ

FINISH RUN

… …

(2)程序结构说明如下:

整个程序由INSERT1, INSERT2, FIRSTIN, PRINT, CREATE, PRISCH和ROUNDSCH过程组成。其中:

INSERT1的功能是把还未完成且优先数小于别的进程PCB按进程优先数的顺序插入到就绪队列中。

INSERT2是轮转法使用的过程,将执行了一个单位时间片数(为2)且还未完成的进程的PCB插入到就绪队列的队尾。

FIRSTIN的功能是将就绪队列中的第一个进程投入运行。

PRINT打印每执行一次后的所有进程的状态,这里,就绪(等待)用“W”代表。

CREATE的功能是创建新的进程,即创立进程的PCB,并将此PCB链入到就绪队列中去。

PRISCH按优先数算法调度进程。

ROUNDSCH按时间片轮转法调度进程。

主程序中定义了PCB的结构和其它变量NUMBER——进程数,ALGO为10个字符长的字符串,存放要求输入的算法的名,PRIORITY为优先数算法,ROUNDROBIN为循环轮转法,在程序运行时输入其中的一个。

课题八:多道程序缓冲区协调操作

如下图所示,有10个PUT操作要不断循环地向Buffer1送数据,有一个Move操作要不断地将Buffer1的数据取到Buffer2,有20个GET操作要不断地从Buff2中取数据。BUFF1是10,BUFF2的容量是20, PUT、MOVE、GET每次操作一个数据,为了在操作的过程中

要保证数据不丢失,每个Buffer每次只能接受一个PUT或一个Move或一个Get,多个操作不能同时操作同一BUFFER。设计一个多道程序完成上述操作。

试用P、V原语协调PUT、MOVE、GET的操作,并说明每个信号量的含义、初值和值的范围。

PUT MOVE GET

1、基本功能要求

(1)显示Buffer的操作过程;

(2)可以确定Buffer的容量、PUT、GET、MOVE操作的个数;

(3)自行确定放数据的速度,取数据的速度;

(4)实时显示每个Buffer中数据的个数,已放入Buffer的数据个数,已取的数据个数;

(5)程序运行结束,显示汇总数据:

a)总的运行时间;

b)Buffer中数据的个数;

c)已放入BUFFER的数据个数;

d)已放已取的数据个数;

e)平均buffer中的数据个数。

f)。。。。。。

课题九、磁盘调度算法

1、设计要求:

要求设计一个程序,该程序模拟操作系统的磁盘调度。模拟仿真FCFS、SSTF、SCAN、CSCAN等磁盘调度算法,并对各算法进行性能分析。应提供良好的测试界面及测试方法。提供全面的输出结果。

2、实验原理

磁盘可供多个进程共享,当有多个进程要求访问磁盘时,应采用一种调度算法,以使进程对磁盘的平均访问时间最小,由于在访问磁盘的时间中,主要是寻道时间,因此磁盘调度的目标就是使磁盘的平均寻道时间最短。

选题十:动态资源分配算法演示程序

1、设计目的:主要用于解决多种资源被多个独立执行的进程使用的安全算法。该算法采用矩阵存储资源的数据,通过对系统资源预分配后检查系统状态,以避免死锁的产生。

2、设计要求:

1) 资源种类与数目可在界面进行设置,在资源分配过程中可以随时增加进程及其对资

源的需求

2) 可读取样例数据(要求存放在外部文件中)进行资源种类、数目与进程数的初始化

3) 在资源分配过程中可以随时进行系统安全状态检测

4) 如果能够通过系统安全状态检测,则系统对该进程进行资源分配;当进程满足所有

资源分配后能够自行释放所有资源,退出资源竞争

5) 要求进行安全性检查时按指定策略顺序进行,即按每个进程当前Need 数由小至大进

行排序,如果Need 数相同,则按序号由小至大进行排序;

6) 具有一定的数据容错性

选题十一:通用处理机调度演示程序

1、设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,也就是能运行的进程数大于处理机个数,为了使系统中的进程有条不紊地工作,必须选用某种调度策略,在一定的时机选择一个进程占有处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。

2、设计要求(多道、单处理机):

1) 进程调度算法包括:时间片轮转算法、先来先服务算法、短作业优先算法、静态优

先权优先调度算法、高响应比调度算法

2) 每一个进程有一个PCB ,其内容可以根据具体情况设定。

3) 进程数、进入内存时间、要求服务时间、作业大小、优先级等均可以在界面上设定

4) 可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长

度、作业大小、进程优先级的初始化

5) 可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与进程间

的同步关系,故只有两种状态)

6) 采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相

应的阻塞队列

7) 有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间

8) 具有一定的数据容错性

选题十二:采用最低松弛度优先调度的实时系统调度程序

1、设计目的:在实时系统中,要保证在指定的时间完成指定的任务,通常会采用抢占式的调度方式。要求采用指定的调度算法,使系统中的任务能够按时完成,通过观察中系统中的抢占点,以巩固和加深对实时系统调度算法的理解。

2、设计要求:

1) 每一个周期性实时任务必须指定周期长度与执行时间

2) 可以在界面安排周期性实时任务的个数与相关的指标值,又及要求仿真的时间长度

3) 系统可又对设定的任务条件进行检查,如果无法满足公式 的要求,则弹

出相应的错误提示,并重新进入任务安排界面 11∑

=≤m i i i P C

4)可读取样例数据(要求存放在外部文件中)进行周期性实时任务数、周期长度、执

行时间的初始化

5)采用可视化界面,数据载入后按最低松弛度算法进行调度,可以在运行中动态显示

各进程的状态:就绪、执行、完成

6)系统上下文切换时,会暂停调度,显示就绪队列中各任务的松弛度,按任意键后自

动运行

7)具有一定的数据容错性

选题十三:用多进程同步方法演示“生产者-消费者”问题

1、设计目的:通过研究Linux的进程同步机制和信号量,实现生产者消费者问题的并发控制。

2、说明:有界缓冲区内设有26个存储单元,放入取出的产品设定为26个大写英文字母。

3、设计要求:

1)生产者与消费者均有二个以上

2)生产者和消费者进程的数目在程序界面上可调,在运行时可随时单个增加与减少生

产者与消费者

3)生产者的生产速度与消费者的消费速度均可在程序界面调节,在运行中,该值调整

后立即生效

4)生产者生产的产品由随机函数决定

5)多个生产者或多个消费者之间必须有共享对缓冲区进行操作的函数代码

6)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、

当前生产者与消费者的指针位置,以及生产者和消费者线程标识符

7)采用可视化界面,可在运行过程中随时暂停,查看当前生产者、消费者以及有界缓

冲区的状态

选题十四:用多进程同步方法演示“桔子-苹果”问题

1、设计目的:通过研究Linux的进程同步机制和信号量,实现特殊的生产者与消费者问题的并发控制。

2、说明:有两类生产者,一类负责生产桔子,一类负责生产苹果;有两类消费者,一类负

责消费桔子,一类负责消费苹果;他们共享一个有20个存储单元的有界缓冲区,每个存储单元只能放入一种产品(桔子/苹果)。

3、设计要求:

1)二类生产者与二类消费者数目均为20,即20个生产者负责生产桔子,20个生产者

负责生产苹果;20个消费者负责消费桔子,20个消费者负责消费苹果

2)二类生产者的生产速度与二类消费者的消费速度均可独立在程序界面调节,在运行

中,该值调整后立即生效

3)多个生产者或多个消费者之间必须有共享对缓冲区进行操作的函数代码,同时需要

考虑算法的效率性

4)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、

当前生产者与消费者的指针位置,以及生产者和消费者线程标识符

5)采用可视化界面,可在运行过程中随时暂停,查看当前生产者、消费者以及有界缓

冲区的状态

选题十五:通用请求分页调度算法演示程序

1、设计目的:用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。

2、设计要求(多道):

1)演示实现下列五种请求分页存储管理方式的页面置换算法:

●先进先出的算法(FIFO)

●最佳置换算法(OPT)

●近期最久未使用算法(LRU)

●近期最少使用算法(LFU)

●CLOCK置换算法

2)内存物理块数固定为15个,对多个作业采用固定分配局部置换的策略分配物理块

3)作业数量与作业大小(10-20页)可在界面进行设置

4)所有作业按RR算法进行调度,时间片长度为1秒

5)可为每个作业随机产生引用的页面串,也可以人工输入引用的页面串,页面串长度

50---100,要求必须包括作业所有的页面,可作为样例数据保存

6)可读取样例数据(要求存放在外部文件中)进行作业数量、作业大小、页面串长度

的初始化

7)要求对每种算法采用可视化界面,模拟内存分配和使用情况图,可在运行过程中随

时暂停,查看当前内存物理块使用情况。

8)有性能比较功能,可比较同一组数据在不同页面置换算法下的命中率

选题十六:通用动态分区分配存储管理系统演示

1、设计目的:用高级语言编写和调试一个动态分区内存分配程序,加深对内存连续分配算法的理解。

2、设计要求:

1)演示实现下列三种动态分区分配算法

●循环首次适应算法

●最佳适应算法

●最坏适应算法

2)内存中有0-100M的空间为用户程序空间,最开始用户空间是空闲的

3)作业数量、作业大小、进入内存时间、运行时间需要通过界面进行输入

4)可读取样例数据(要求存放在外部文件中)进行作业数量、作业大小、进入内存时

间、运行时间的初始化

5)根据作业进入内存的时间,采用简单的先进先出原则进行从外存到内存的调度,作

业具有等待(从外存进入内存执行)、装入(在内存可执行)、结束(运行结束,退出内存)三种状态。(为了简化,不考虑CPU的调度与切换,运行时间为作业在内存中驻留的时间)

6)能够自动进行内存分配与回收,可根据需要自动进行紧凑与拼接操作,所有过程均

有动态图形变化的显示

7) 采用可视化界面,可随时暂停显示当前内存分配和使用情况图。

选题十七:设计内核同步原语

1、设计目的:掌握操作系统中信号量signal()与wait()的工作原理,和在Linux内核中增加系统调用函数的方法,了解对Linux内核重新进行编译、连接的过程。

2、设计要求:

1)要求设计三个原语实现操作系统中信号量signal()与wait()功能:Request()、

Release()和Broadcast()

2)Request()类似wait()操作,该原语允许多个进程因一个事件而阻塞,每次产生

阻塞时均会发出一个消息,“有多少个进程处于阻塞状态。”

3)Release()类似signal()操作,当一个进程产生这个事件的信号时,该原语会唤

醒处于阻塞队列中的第一个进程,并发出一个消息“进程XX解除了阻塞状态,尚有XX个进程处于阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。

4)Broadcast()是类似一个广播操作,当一个进程产生这个事件的信号时,该原语会

唤醒处于阻塞队列中的所有进程,并发出一个消息“广播,所有进程解除了阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。

5)编写一个测试程序,验证原语的正确性。

6)要求在实验报告中列出Linux内核的版本与编译过程

选题十八:交通信号灯模拟

1、目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,

利用信号量实现对共享资源的控制。

2、设计要求:编程模拟交通信号灯的控制。

1)问题描述:一个十字路口,共有四组红绿灯,每个路口的车辆都遵循“红灯停,绿

灯行”的原则,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的“十字路口交通管理”情况。

2)车辆通行设定:路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对

面路口的交通灯后),其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。

3)进程的互斥:交通灯进程实际上是互斥的,即不能同时为红或者同时为绿。

4)进程的消息通信或其通信方式:对车辆进程而言,每一个车辆在通过路口前,必须

确认前面的车辆已经通过了路口。

5)进程的调度:停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车

辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。

说明:

●可以根据题目的基本要求进行丰富的创意和想象。

●没有特别指定,可以采用Windows环境也可采用Linux环境,选用Windows

环境的必须为图形界面,Linux环境的可以采用文本界面。

●开发语言不限,但软件代码必需有详细中文注释:每个方法要功能说明,关

键算法要加注释说明。

六、课程设计考核方式

最后一次课程设计时间检查验收,主要检查程序能否运行,要求的功能是否全部实现。

课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。

优:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述;程序完全实现设计方案,设计方案先进,软件可靠性好;

良:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进;

中:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确;

及格:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确;

不及格:没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。

提交的电子文档和软件必须是由学生自己独立完成,发现相同题目文档雷同者,教师有权视其情况扣分或记零分。

七、提交的资料

1、文档

纸质课程设计报告

2、软件

软件需提供加注释的源程序,并能正常运行。按照学号后5位_姓名且组长在第一个的文件名保存并上传。

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

操作系统课程设计题目

课程设计任务书 一、课程设计目的 《计算机操作系统》课程设计是计算机类专业的集中实践性环节之一,是学习完《计算机操作系统》课程后进行的一次全面的综合练习。其目的在于加深对操作系统课程的理解,使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,理解操作系统在计算机系统中的作用、地位和特点,具有分析实际操作系统,设计、构造和开发现代操作系统的基本能力,为今后从事的各种实际工作,如设计、分析和改进各种系统软件和应用软件提供必要的软件理论基础。 二、课程设计内容及要求 课程设计要求: 每位同学从下述设计任务中任选一个任务完成,上机验收运行结果,现场提问,并提交所完成该任务的课程设计报告。 实验要求: 1)上机前认真使用C语言编写好程序,采用Visual C++6.0作为编译环境; 2)上机时独立调试程序 3)上机验收运行结果,现场提问 4)根据具体任务要求,提交课程设计实验报告,报告内容包括:课程设计目的、内容、基本原理、模块划分、数据结构、算法设计、程序流程图(包括主程序流程图、模块详细设计流程图等)、以及算法源码(必须有相关注释,以有助于说明问题为宜,不得全盘打印而不加任何注释)、心得体会等。

设计内容一页式虚拟存储管理页面置换算法 1.目的和要求 在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设计语言模拟实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础 2.实验内容 阅读教材《计算机操作系统》,掌握存储器管理相关概念和原理。 模拟实现页式虚拟存储管理的三种页面置换算法(OPT、FIFO和LRU),并通过比较性能得出结论。 前提: (1)页面分配采用固定分配局部置换。 (2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从文件读入。 (3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。 3.实验环境 Windows操作系统、VC++6.0、C语言 4.实验提示 (1)基础知识 存储管理是操作系统进行资源管理的一个重要功能。现代操作系统广泛采用虚

操作系统课程设计文件系统管理)

操作系统课程设计Array文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 2013年1月8日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。 二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。 以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计

4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 四、需求分析 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名” 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory);在主文件目录中,每个用户目录文件都占有一个目

操作系统课程设计报告书

题目1 连续动态内存管理模拟实现 1.1 题目的主要研究内容及预期达到的目标 (1)针对操作系统中内存管理相关理论进行设计,编写程序并进行测试,该程序管理一块虚拟内存。重点分析三种连续动态内存分配算法,即首次适应算法、循环首次适应算法和最佳适应算法。 (2)实现内存分配和回收功能。 1.2 题目研究的工作基础或实验条件 (1)硬件环境:PC机 (2)软件环境:Windows XP,Visual C++ 6.0 1.3 设计思想 首次适应算法的实现:从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。为适应这种算法,空闲分区表中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高址空间保留大的空闲区。 循环首次适应算法的实现:在分配内存空间时,不再每次从表头开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。 最佳适应算法的实现:从全部空闲区中找到能满足作业要求的、且最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表中的空闲分区要按从小到大进行排序,从表头开始查找第一个满足要求的自由分配。 1.4 流程图 内存分配流程图,如图1-1所示。

图1-1 内存分配流程图内存回收流程图,如1-2所示。

图1-2 内存回收流程图 1.5 主要程序代码 (1)分配内存 void allocate(char z,float l) { int i,k; float ad; k=-1; for(i=0;i= l && free_table[i].flag == 1) if(k==-1 || free_table[i].length

《操作系统课程设计》题目要求

操作系统课程设计要求 一.设计目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用 二.设计内容 1. 在Linux环境下模拟实现简单命令解释器。 (1)要求实现的基本命令包括: pwd //显示当前所在目录的路径名 dir <目录名> //列出指定目录名中的所有目录及文件 cd <目录名或路径>//改变当前工作目录 newdir <目录名> //新建目录 deldir <目录名> //删除目录 exit //退出命令解释程序 (2)可选做的扩展命令包括: rename <旧文件名> <新文件名> //重命名一个文件或目录 find <目录> -name <待查找的文件名> //在指定的目录及其子目录中查找指定的文件date //显示当前日期 (3)提示:整个程序的大致框架可参考如下: while ( exit未被输入) { 接收键盘的一行输入 分析输入的命令 对输入的命令进行处理,调用系统函数实现功能 } 2. 设计要求 (1) 设计必须在Linux环境下进行。 (2) 命令解释程序的提示符为:姓名拼音@ (3) 程序编写中不得使用system()系统调用。 (4) 整个程序必须严格经过测试,完成所有基本功能。源程序应有较详尽的注释。 3.可能用到的系统调用: open(),close(),read(),write(),creat() chdir(), opendir(),readdir(),rewinddir(),closedir(),rmdir(),mkdir() getcwd(), ftw() time(), localtime(), asctime()

操作系统课程设计-模拟文件系统

目录 第1章需求分析 (1) 第2章概要设计 (1) 2.1 系统的主要功能 (1) 2.2系统模块功能结构 (1) 2.3运行环境要求 (2) 2.4数据结构设计 (2) 第3章详细设计 (3) 3.1模块设计 (3) 3.2算法流程图 (3) 第4章系统源代码 (4) 第5章系统测试及调试 (4) 5.1运行结果及分析 (4) 5.2系统测试结论 (5) 第6章总结与体会 (6) 第7章参考文献 (6) 附录 (7)

第1章需求分析 通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。 模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。 第2章概要设计 2.1 系统的主要功能 1) 系统运行时根据输入的用户数目创建主目录 2) 能够实现下列命令: Login 用户登录 Create 建立文件 Read 读取文件 Write写入文件 Delete 删除文件 Mkdir 建立目录

Cd 切换目录 Logout 退出登录 2.2系统模块功能结构 2.3运行环境要求 操作系统windows xp ,开发工具vc++6.0 2.4数据结构设计 用户结构:账号与密码结构 typedef struct users { char name[8]; char pwd[10]; }users;

操作系统课程设计报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: 13软件工程1班 提交时间: 2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。

二、环境条件 系统: WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。

(4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

操作系统-课程设计

课程设计说明书(操作系统) 题目:进程调度 院系:计算机科学与工程学院 专业班级:信息安全13-2 学号:20133029xx 学生姓名:xx 指导教师:xx 2015年12月15日

安徽理工大学课程设计(论文)任务书计算机科学与工程学院

安徽理工大学课程设计(论文)成绩评定表

摘要 现代计算机系统中,进程是资源分配和独立运行的基本单位,是操作系统的核心概念。因而,进程就成为理解操作系统如何实现系统管理的最基本,也是最重要的概念。进程调度是进程管理过程的主要组成部分,是必然要发生的事件。 在现代操作系统中,进程的并发机制在绝大多数时候,会产生不断变化的进程就绪队列和阻塞队列。处于执行态的进程无论是正常或非正常终止、或转换为阻塞状态,都会引发从就绪队列中,由进程调度选择一个进程进占CPU。 进程调度的核心是进程调度的算法.在本课程设计中,用良好清晰的界面向用户展示了进程调度中的时间片轮转调度算法。在最终实现的成果中,用户可指定需要模拟的进程数,CPU时间片和进程的最大执行时间,并且选择需要演示的算法,界面将会动态的显示进程调度过程及各个队列的变化。通过此进程调度模拟系统,用户可以对时间片轮转调度算法有进一步以及直观的了解。 关键词:进程,调度,PCB,时间片轮转

目录 1.设计目的 (6) 2.设计思路 (6) 3.设计过程 (8) 3.1流程图 (8) 3.2算法 (8) 3.3数据结构 (10) 3.4源代码 (10) 4.实验结果及分析 (20) 4.1 使用说明 (20) 4.2程序演示 (20) 5.实验总结 (24) 6.参考文献 (24)

【精选】操作系统课程设计(文件系统管理)文件

评定等级 操作系统课程设计 文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 2013年1月8日 广东工业大学计算机学院制

文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看, 加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了 解。 二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete 等文件命令,对文件进行操作。以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计 4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 四、需求分析 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名” 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录 UFD (User File Directory )。这些文件目录可以具有相似的结构,它由用户所有文件的文件 控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory );在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目 录的指针。

2017操作系统(含课程设计) - 随堂练习

随堂练习提交截止时间:2017-12-15 23:59:59 当前页有10题,你已做10题,已提交10题,其中答对10题。 1.(单选题) 操作系统是基本的特征是() A、并发 B、共享 C、虚拟 D、异步 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 2.(单选题) 下面不属于操作系统设计目标的是() A、提高资源利用率 B、提高系统吞吐量 C、用户操作计算机更方便 D、并行执行多个进程 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 3.(单选题) 历史上最早出现的操作系统是() A、单道批处理系统 B、多道批处理系统 C、分时系统 D、实时系统 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 4.(单选题) 实时操作系统必须在()内处理完来自外部的事件。 A、响应时间 B、周转时间 C、被控对象规定时间 D、调度时间 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 5.(单选题) 操作系统是对()进行管理的软件。 A、软件 B、硬件 C、计算机资源 D、应用程序 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 6.(单选题) 配置了操作系统的计算机是一台比原来的物理计算机功能更强的计算机,这样的一台计算机只是一台逻辑上的计算机,称为()计算机。 A、并行 B、真实 C、虚拟 D、共享 答题: A. B. C. D. (已提交)

问题解析: 7.(单选题) 操作系统中采用多道程序设计技术提高了CPU和外部设备的() A、利用率 B、可靠性 C、稳定性 D、兼容性 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 8.(单选题) 在操作系统中,并发性是指若干事件____发生( ) A、在同一时刻 B、在不同时刻 C、在某一时间间隔内 D、依次在不同时间间隔内 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 9.(单选题) ()操作系统允许在一台主机上同时联接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A、网络操作系统 B、批处理操作系统 C、实时操作系统 D、分时操作系统 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 10.(单选题) 下面关于操作系统的叙述中正确的是 ( ) A、批处理作业必须提交作业控制信息 B、分时系统不一定都具有人机交互功能 C、从响应时间的角度看,实时系统与分时系统差不多 D、由于采用了分时技术,用户可以独占计算机的资源 答题: A. B. C. D. (已提交) 参考答案:A 问题解析:

操作系统课程设计报告

; 一、概述 课程设计目的、意义: 课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。 主要任务: 模拟文件系统设计是设计和实现一个简单的文件系统。内容包括: 1.建立文件存储介质的管理机制 2.建立目录(采用一级目录结构) 3.文件系统功能(显示目录、创建、删除、打开、关闭、读、写) ~ 4.文件操作接口(显示目录、创建、删除、打开、关闭、读、写) 二、系统设计 课程设计的系统设计: 本系统模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文

件。对于用户名下的文件,用文件目录树的分枝来存贮。采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 整体设计框架: 系统初始化界面是由创建用户存储空间,管理文件,退出系统三个模块组成。用户创建由创建用户存储空间,进入目录,删除用户存储空间,显示所有用户存储空间,等模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 三、系统实现 课程设计主要内容的实现程序代码: 《 #include <> #include <> #include <> typedef struct file{ char name[10]; struct file *next; }File; typedef struct content{ ! char name[10]; File *file;

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件 系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景

计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下: 钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

操作系统课程设计论文

学年论文(课程设计)题目:操作系统课程设计 学院数学与计算机学院 学科门类工学 专业网络工程 学号 姓名 指导教师王煜 年月日

河北大学学年论文(课程设计)任务书 (指导教师用表) 指导教师签字: 系主任签字: 主管教学院长签字: 装 订 线

河北大学学年论文(课程设计)成绩评定表学院:数学与计算机学院 装 订 线

摘要 此系统实现了存储管理、设备管理和进程管理。 存储管理部分主要实现主存空间的分配和回收。存储管理采用可移动的可变分区存储管理方式。采用数组来模拟主存,大小为512个字节。 设备管理主要包括设备的分配和回收。模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。设备分配时采用采用先来先服务策略。设备回收时唤醒等待设备的进程。 进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。其中硬件中的中央处理器用不断循环的函数CPU( )模拟,重要寄存器(如:程序状态寄存器PSW、指令寄存器IR)用全局变量模拟,中断的发现是在函数CPU中加检测PSW 的方式来模拟,时钟的模拟通过timer控件实现。进程控制块的模拟通过数组,本系统最多容纳10个。进程调度时采用时间片轮转调度算法,时间片为5。 关键词:存储管理设备管理进程管理时间片

ABSTRACT The system has storage management, equipment management and process management. The storage management has achieved the allocation and recovery of the main memory space. Variable storage management is used as storage management .We simulate the main memory by array, whose size is 512 bytes. The device management, including the distribution and recovery of devicet. We simulate three devices ,A,B,C. the numbers of them are 3,2,1. The distribution of device used to adopt first-come first-service strategy. It awakes the blocking process when the device is recycled. The process management, including scheduling ,creating revocation ,blocking and waking up the process, the realization of the interruption.We simulate the central processing unit by the cycling function named CPU(),simulate the important register by global variable, simulate the recovering of interruption by checking PSW in the function of CPU(),simulate the clock by the timer control. The simulation of the process control block by array, whose number is up to 10. When the scheduling of the process happens, we use the algorithm of time piece rotation scheduling, and the time piece is 5. Key words: storage device process time

操作系统课程设计二级文件系统

操作系统课程设计报告 专业:计算机信息处理 学号:09103408 姓名:纪旻材 提交日期:2011-12-28

【设计目的】 1. 课程设计目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。 2. 结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。 3. 通过对实际问题的分析、设计、编程实现,提高学生实际应用、编程的能力 【设计内容】 1、delete 删除文件 2、open 打开文件 3、close 关闭文件 4、write 写文件 【实验环境】 Windows7系统

Visual studio 2010 【相关知识综述】 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 【设计思路】 1 主要数据结构 #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/ #define MAXCHILD 50 /*the largest child每个用户名下最多有50个文件*/ #define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/ typedef struct/*the structure of OSFILE定义主文件*/

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件

系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。

2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<

操作系统(一个小型操作系统的设计与实现)课程设计

南通大学计算机科学与技术学院操作系统课程设计报告 专业: 学生姓名: 学号: 时间:

操作系统模拟算法课程设计报告 设计要求 将本学期三次的实验集成实现: A.处理机管理; B.存储器管理; C.虚拟存储器的缺页调度。 设计流程图 主流程图 开始的图形界面 处理机管理存储器管理缺页调度 先来先服务时 间 片 轮 转 首 次 适 应 法 最 佳 适 应 法 先 进 先 出 L R U 算 法

A.处理机调度 1)先来先服务FCFS N Y 先来先服务算法流程 开始 初始化进程控制块,让进程控制块按进程到达先后顺序让进程排队 调度数组中首个进程,并让数组中的下一位移到首位 计算并打印进程的完成时刻、周转时间、带权周转时间 其中:周转时间 = 完成时间 - 到达时间 带权周转时间=周转时间/服务时间 更改计时器的当前时间,即下一刻进程的开始时间 当前时间=前一进程的完成时间+其服务时间 数组为空 结束

2)时间片轮转法 开始 输入进程总数 指针所指的进程是 否结束 输入各进程信息 输出为就绪状态的进程的信息 更改正在运行的进程的已运行时间 跳过已结束的程序 结束 N 指向下一个进程 Y 如果存在下一个进程的话 Y N 输出此时为就绪状态的进程的信息 时间片轮转算法流程图

B.存储器管理(可变式分区管理) 1)首次适应法 分配流程图 申请xkb内存 由链头找到第一个空闲区 分区大小≥xkb? 大于 分区大小=分区大小-xkb,修改下一个空闲区的后向指针内容为(后向指针)+xkb;修改上一个空闲区的前向指针为(前向指针)+xkb 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

操作系统课程设计题目

实验一进程调度 一、实验目的 观察、体会Linux 系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解。 二、实验内容 采用动态优先数的方法,编写一进程调度程序模拟程序。模拟程序只进行相应的调度模拟操作,不需要实际程序。 [提示]: (1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为: 进程名 指针 要求运行时间 优先数 状态 其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。 指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。 要求运行时间——假设进程需要运行的单位时间数。 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。 (3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。 (4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行: 优先数-1 要求运行时间-1 来模拟进程的一次运行。 提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。 (5) 进程运行一次后,若要求运行时间?0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。 (6) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,

操作系统课程设计(文件系统)

操作系统课程设计 班级: 姓名: 学号: 使用语言:C++ 指导老师: 学院:

一、系统要求 1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 2、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 二、系统分析 1、设计思想 本文件为二级文件系统,即要实现对文件的增删改查,同时又具备登陆系统、注册用户的功能,各个用户之间的文件系统互不干扰。 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 系统采用结构体来存储用户、文件目录、文件数据内容: 0 48*5 48*5+44*50 48*5+44*50+264*200 每个分区都是由结构体组成,每个个去的结构体的个数由格式化系统是决定。整个系统的编码构成主要分为:

Allstruct.h 定义了每个分区的结构体; Mysys.h 声明了对系统操作的各种方法; Myuserfile.h 声明了对文件操作的各种方法; Mymain.cpp 整个系统的主函数,操作入口; Mysys.cpp 包含了mysys.h,实现了操作系统的各种方法;Myuserfile.cpp 包含了myuserfile.h,实现了操作文件的各种方法; 2、主要数据结构 Allstruct.h文件的内容: struct s_user //用户区结构体 { long isuse; //是否使用 char name[20]; //用户名 char psd[20]; //密码 long address; //目录地址 }; struct s_list //目录结构体 { long isuse; //是否使用 char name[20]; //文件名字 long myaddress; //本条目录地址 long pointaddress; //指向的文件的地址 long isfile; //是否锁定 long pointsize; //目标文件的大小 long nextaddress; //下条目录的地址 }; struct s_file //文件结构体 { long isuse; //是否使用 char content[256]; //文件内容 long next; //下个文件块地址 };

相关主题
文本预览
相关文档 最新文档