《操作系统课程设计说明书》参考样版
- 格式:pdf
- 大小:454.94 KB
- 文档页数:19
中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学生姓名:刘婷学号:0921010708 设计题目:基于Linux的实现进程的信号量互斥申请起迄日期: 2011年12月22日- 2012年1月7日指导教师:贾美丽2012 年 1月 7 日1需求分析基于Linux的进程同步与通信的模拟实现需要完成以下功能:(1).创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、执行时间和申请资源的等待时间等。
在同一时刻可能有多个进行在内存申请某资源,即可以输入多个进程的资源申请。
(2).3类临界资源的管理,包括申请以及分配等。
分别通过信号量实现或者管程实现。
(3).银行家算法,判断是否可以进行资源的分配。
基于以上的功能,可以使用户选择操作,模拟临界资源的管理和银行家算法。
目的:实现临界资源的管理及死锁的避免。
2总体设计进程同步与模拟实现系统分为4个模块:输入输出,进程对资源的随机申请及分配,临界资源管理,银行家算法避免死锁。
输入输出:包括系统运行所需要的进程的名称,执行时间,申请资源的等待时间,进程对资源的需要量等信息以及系统所要显示出的进程的创建信息,资源的分配信息,进行执行信息,进行动态申请资源信息等。
进程对资源的随机申请及分配:根据所输入的进程、资源、以及进程对资源的最大申请情况,随机产生进程当前对资源的申请,输出相应的分配信息与进程执行信息并调用银行家算法对进程的资源申请进行判断。
临界资源的管理:创建相应个数的进程,完成进程的并发执行,使用互斥信号量使各进程互斥的进入各自的临界区对资源进行申请,进程执行完毕后,互斥的对资源进行恢复。
银行家算法避免死锁:对当前进程对资源的申请利用银行家算法进行判断,看系统分配后是否处于安全状态,若处于安全状态,则将资源分配给进程,并输出分配信息,否则对不予以分配。
3.详细设计在该系统中我主要实现了银行家算法避免死锁的模块,该模块中主要使用了数组的数据结构.3.1银行家算法:设Request[i]是进程i的请求向量,如果Request[i][j]=k,表示进程i需要k各j类型的资源。
操作系统课程设计指导书操作系统课程设计指导书李晓东编电子与信息工程学院计算机系-9一、课程设计的目的和意义本课程设计是学生在学完了《操作系统》课程后,培养学生程序设计能力的一个重要教学环节。
课程设计为学生提供了一个动手、动脑并独立实践的机会,有助于学生将教材的理论知识和实践相结合,从而锻炼学生分析问题、解决问题的能力,提高学生实际编写程序的能力,为学生学习计算机专业的后续课程打下良好基础。
本课程设计要求对操作系统的分析以加深对计算机硬件结构和系统软件的认识,初步掌握操作系统组成模块和应用接口的使用方法,提高进行工程设计和系统分析的能力,为毕业设计和以后的工程实践打下良好的基础。
本课程设计的主要目的:1.熟悉并巩固《操作系统》的基本概念和基本理论,加强对操作系统有关原理的理解;2.培养学生自主学习、独立思考的能力,学会查找资料并善于分析资料的能力;3.培养学生严谨的工作作风,提倡互相学习培养团队精神;4.提高学生独立设计、独立调试程序的能力;5.初步养成良好的系统软件分析和设计能力,形成良好的编程风格。
二、本课程设计有关要求基本要求:1、巩固和加深对操作系统原理的理解,提高综合运用本课程所学知识的能力。
2、培养学生选用参考书,查阅手册及文献资料的能力。
培养独立思考、深入研究、分析问题、解决问题以及团队协作能力。
3、经过实际操作系统的分析设计、编程调试,掌握系统软件的分析方法和工程设计方法。
4、能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统和程序框图。
5、经过课程设计,培养学生严谨的科学态度,严肃认真的工作作风,和团队协作精神。
具体要求:1.认真阅读本课程设计指导书,明确课程设计的目的、意义和要求;2.根据要求完成课程设计的系统开发和调试任务,提供可运行的课程设计系统,参加上机面试答辩。
3.根据学校有关格式要求,完成本课程设计的课程设计说明书。
(必须绘制系统工作原理图及算法流程图)重点:本设计的重点是要求根据任务要求,确定操作系统有关算法并加以实现,注重实际应用能力的培养。
目录1概述--------------------------------------------------------------------------------------31.1 目的--------------------------------------------------------3 1.2 主要完成的任务----------------------------------------------3 1.3 使用的开发工具、开发语言------------------------------------3 1.4 本软件解决的主要问题 ---------------------------------------42 设计的基本理念、概念和原理------------------------------------------------42.1 设计的基本理念----------------------------------------------4 2.2 基本概念----------------------------------------------------4 2.3 基本原理----------------------------------------------------53 总体设计----------------------------------------------------53.1基本的技术路线:面向对象--------------------------------------------------------5 3.2模块关系及总体流程-------------------------------------------54 详细设计----------------------------------------------------74.1 变量设计----------------------------------------------------7 4.2 线程的设计--------------------------------------------------7 4.3 button按钮的设计-------------------------------------------85编码设计----------------------------------------------------95.1开发环境----------------------------------------------------9 5.2注意事项----------------------------------------------------9 5.3主要代码设计------------------------------------------------9PUTTER线程的设计---------------------------------------------------9 MOVER1线程的设计---------------------------------------------------10 GETTER1线程的设计--------------------------------------------------11 “开始”按钮的设计--------------------------------------------------12 “结束”按钮的设计--------------------------------------------------14 5.4解决的主要难题----------------------------------------------16 6测试出现的问题及其解决方案-------------------------------167工程总结----------------------------------------------------16 8参考文献----------------------------------------------------16多道程序缓冲区协调操作演示程序设计说明书1概述1.1目的计算机操作系统是计算机系统中最不可缺少的,最常用的软件,也是核心的,最接近于计算机硬件的软件。
河南城建学院《操作系统》课程设计说明书设计题目:管道通信专业:计算机科学与技术指导教师:邵国金郭猛薛冰班级:0814102学号:081410217姓名:金贺同组人:李乾坤邵光光计算机科学与工程系2011年1 月10 日前言课程设计是检测学生课程效果的重要手段,是训练学生通过所学的知识解决实际问题的重要方式,同时也是实践性教学中的一个重要环节,它以某以课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让学生对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《操作系统》是一门重要的专业课,是计算机理论和应用的核心基础课程。
操作系统课程设计,是一次对多学知识的综合演练,要求学生在操作系统的设计理念、整体机构、模块划分、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解,同时,在课程设计方法以及上机操作等基本技能和科学作风方面收到比较系统和严格的训练。
在这次的课程设计中我们选择的题目是进程间通信消息机制的设计,实现消息的创建、发送和接收及在server端创建一个服务函数,从而形成C/S通讯模式。
消息机制是消息通过消息队列的方式进行进程间消息的传递,通过此次课程设计,全面理解消息机制进程间通信方法。
实现把死板的课本知识变得生动有趣,激发了学生的积极性。
把学过的计算机操作系统的知识强化,能够把课堂上的知识通过自己设计的程序表示出来,加深了岁理论知识的理解目的。
目录一、 (4)二、 (4)三、设计题目及要求 (4)(1)设计管道通信 (4)(2)设计命名管道 (4)四、总体设计 (4)五、详细设计 (6)1、实现管道通信 (6)2、命名管道设计 (8)六、调试与测试方法 (12)七、执行结果及分析 (13)八、源程序清单 (14)九、心得体会 (19)十、参考文献 (19)三、系统环境1、硬件环境:Intel(R)Core (TM)2 Duo CPUE7200 @ 2.53GHz1.59GHz,2.00GB的内存2、软件环境Microsoft Windows XPProfesstonal版本 2002Service Pack 3四、设计目的利用UNIX系统提供的管道机制实现进程间的通信。
操作系统课程设计说明书在Linux环境下模拟实现命令解释器专业:班级:姓名:学号:班内序号:一.程序概述1. 命令解释器的源程序保存在服务器上的路径为:home / 1-31 / j j . c的目录文件中。
可执行程序保存在服务器上的路径为:home / 1-31 / j 。
2. 该命令解释器所完成的功能如下:输入pwd指令来查看目前所在的工作目录的绝对路径名称。
简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。
一般开启终端后默认的“当前工作目录”是用户的“主文件夹”。
输入dir指令显示目录,显示指定目录下或当前目录下的信息,包括文件名等等。
输入cd +<目录名或路径>指令改变当前文件路径,实现将当前用户的当前工作目录更改至cd 命令中指定的目录或文件夹。
如果未指定目标目录名(即只输入“cd”或没输入目录名或文件名),则输出错误信息。
输入newdir +<目录名>指令创建一个新的目录或文件夹,如果创建已存在的目录,则输出创建失败。
输入deldir+<目录名>指令删除一个指定的目录或文件夹,若删除不存在的目录或文件,则显示删除失败。
输入exit指令退出命令解释程序二.概念原理strcmp(str1,str2)函数就是比较参数中两个字符串str1 和str2的大小(大小写敏感,即"A" != "a"),如果完全相等,返回0,如果str1 < str2(按照字母顺序比较),返回-1,如果str1 > str2,则返回1。
本程序的strcmp()函数就是比较t1与6个指令的大小,来输出相应的信息。
chdir()是C语言中的一个系统调用函数,功能:改变工作目录,用法: int chdir(const char *path);返回值:成功返回0 ,失败返回-1。
mkdir()创建由dir-name命名的目录。
要求创建目录的用户在当前目录中(dir-n ame的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。
河南城建学院《操作系统》课程设计说明书设计题目:UNIX/Linux文件系统分析专业:计算机科学与技术指导教师:邵国金耿永军陈红军班级:0614082学号:061408261姓名:贠炳森同组人:叶矿辉、陈宇计算机科学与工程系2011年1月7日前言在现在计算机更新如此迅速的时代要学好计算机软件技术,特别是操作系统的学习,不仅要努力学好课本上的基础知识,还要经常在图书馆看些有关这方面的书籍,而更重要的是要有足够的实践经验,也要注重和同学的交流,经常尝试性的做些小的操作系统,对自己技术的提升会有很大的帮助。
同时,学习计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。
例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。
但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。
本操作系统课程设计,是给同学提供一个集中实验的机会。
希望同学们通过该设计加深对所学习课程的理解。
本设计是基于课程中学到的UNIX系统调用,使用操作系统环境是Red Hat Linux 9,言语开发环境是Linux的GNU C或C++。
我做的课程设计是:Linux/Unix文件系统分析。
在Linux系统下,使用与文件相关的系统调用实现对物理设备文件的读写,参照Linux系统源代码以及Grub 系统的源代码,对不同介质上的FAT格式文件系统进行分析。
要求在Linux环境下设计出C语言程序,实现以下功能:1)分析UNIX SysV/Linux系统引导记录的作用;2)分析UNIX SysV/Linux的超级块及其结构,并建立相关数据结构,通过编程实现UNIX SysV/Linux文件系统内各部分的定位。
3)至少要实现对给定i节点文件的只读访问目录一.系统环境 (3)1.1硬件环境 (3)1.2软件环境 (3)二.设计目的及要求 (3)三.总体设计 (5)四.详细设计 (6)五.调试与测试 (6)六.设计中遇到的问题及解决方法 (6)七.Linux/Unix文件系统分析源程序清单 (7)7.1 头文件 (7)7.2 示例程序 (10)八.运行结果及分析 (16)8.1 linux文件系统读取 (16)8.2 UNIX文件系统读取 (18)九.心得体会 (19)十.参考文献 (20)Linux/Unix文件系统分析一.系统环境1.1硬件环境cpu为pentium4双线程技术,频率为2.8GHZ,内存为256MB。
操作系统课程设计报告说明书-----------银行家算法的实现指导老师:欧阳浩班级:计071姓名:苏建学号:200700401006操作系统课程设计报告说明书---银行家算法1 课设简介:1.1 课程设计题目银行家算法的模拟实现1.2 课程设计目的通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。
1.3 课程设计内容模拟实现动态资源分配。
同时要求编写和调试一个系统动态资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。
2 实验原理分析:银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
死锁的产生,必须同时满足四个条件,即一个资源每次只能由一个进程申请;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,单它仍继续宝石已得到的所有其他资源;第三个为非剥夺条件,即在出现死锁的系统中一定有不可剥夺使用的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。
防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。
通过这个算法可以用来解决生活中的实际问题,如银行贷款等。
3 程序结构分析:3. 1.银行家算法:设进程i提出请求Request[n],则银行家算法按如下规则进行判断。
(1)如果Request[n]>Need[i,n],则报错返回。
(2)如果Request[n]>Available,则进程i进入等待资源状态,返回。
(3)假设进程i的申请已获批准,于是修改系统状态:Available=Available-RequestAllocation=Allocation+RequestNeed=Need-Request(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
操作系统课程设计说明书课程设计说明书课程设计名称:操作系统题目:XXXXXXX年级:开发小组名称:小组自评成绩:小组负责人:课题组成员:姓名学号班级自评成绩分工签字课题开发日期:指导教师:1. 概述1、目的与意义题目:多道程序缓冲区协调操作设自行车生产线上有3只箱子(BOX ),箱中有N 个位置(N>=2),BOX1每个位置可存放下一个车架,BOX2每个位置可存放一个车轮,BOX3每个位置可存放下一台组装好的车。
有设有3个(类)工人,工人1不定地向箱1中放车架,工人2不定地向箱2中放车轮,工人3不定地从箱中1取出一个车架和箱2中取2个轮子,组装成一台自行车,并把它放到BOX3中。
任何一个时刻只能有1个工人对箱子操作。
有很多个搬运工(Carrier )不停地将BOX3取出运走。
其活动可分别可以抽象为图1。
采用多进程或多线程方式,运用同步和互斥机制,设计一个多道程序完成上述任务和操作。
提示:需要设计Worker1、Worker2、Worker3、Carrier 类线程基本功能要求:(1)提供良好图形界面,显示整个系统操作过程,可以暂停和继续系统的执行;(2) 可以设定各BOX 容量;(3) 可以设定PUT 、GET 、Move 操作的速度;(4) 实时显示每个BOX 中当前物品的数量,空闲空间的数量;(5) 实时显示线程、进程所处于等待(阻塞)状态的个数;(6)程序运行结束,显示汇总数据:总的运行时间;处理个物品的个数;平均每个BOX 中的物品个数。
(7)能够将每次的实验输入和实验结果存储起来,随时可查询。
意义:通过本次课设应对消费者生产者问题有一个更加透彻的了解,加深对于多线程下的互斥同步机制的理解。
2、主要完成的任务;1、数据的输入:包括文件输入和键盘输入。
输入工人数量可用资源数量以及BOX 的容量和工人的生产时间;2、数据的处理(多线程机制):根据可用资源计算生产最大车辆人员最佳分配比例以及根据输入安装生产线按照多线程方式运转;3、数据的输出:运行中实时显示BOX 中的物品数量和余量以及系统中线程阻塞的个数和名称,以及历史纪录。
广州大学松田学院操作系统课程设计报告题目:修改内核及Linux内核重编译修改内核及Linux内核重编译--为Linux内核增加系统调用systest( )1概述针对ubuntu10.04.中,通过下载新的内核版本,并且修改新的版本的内核的系统调用,然后在其系统中编译,加载新内核1.1 内核修改内容介绍输入一个数字,各个位上数字相乘,如15 1*5=524 2*4=81.2 内核编译环境介绍虚拟机版本VM9.0Ubuntu版本10.02内核2.6.32-21-generic2内核修改2.1 系统设计2.1.1内核修改的基本思路将被调用的函数写入内核中,并生成新的内核,在新的内核中编写函数调用2.1.2内核修改的实现步骤在网站中下载想要修改的内核版本,并放入到/usr/src中进行解压,解压后修改函数,并重新生成新的内核,重启后再调用函数2.2 程序设计2.2.1Sysmyf( )系统调用介绍操作系统的主要功能是为应用程序的运行创建良好的环境,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。
系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序2.2.2Sysmyf( )系统调用程序设计asmlinkage int sys_mycall(int num){Int k=1;do{k*=num%10;num/=10;}while(num);return (k);}2.2.3Sysmyf( )系统调用验证程序设计#include<stdio.h>#include<unistd.h>int main(){int num;scanf("%d",&num);printf("%ld\n", sys_mycall(223,num));}3内核重编译3.1 Linux内核源代码下载及其版本说明在网站https:///中下载3.2 在Linux内核源代码中添加sysmyf()系统调用首先修改/usr/src/linux-4.0.4/kernel/sys.c文件。
个人资料整理仅限学习使用中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学学生姓名:郑丽波号: 1121011747设计题目:鉴于 Linux 的模拟进度调动算法的实现起迄日期:2018年 11月 22日- 2018 年 12月 6 日指导教师:康珺2018年12月6 日1需求剖析在操作系统中,进度调动实质就是给进度分派内存资源,跟着计算机系统的发展,为了更充足的利用系统资源以及提升计算机的运转效率,所以需要在不一样的环境下采纳不一样的调动算法,使得系统拥有合理的响应时间,就要求系统能依据某种算法,动向的把办理机分派给就绪行列中的一个进度,使之履行。
所以,就需要设计出几种不一样的算法,经过比较,选出一种最优的。
个人资料整理仅限学习使用务调动算法,短作业优先调动,高响应比调动算法。
在程序的履行过程中,能够自主输入进度的个数以及进度必需的信息,如:进度的创立时间,服务时间等,而后经过不一样的调动算法实现进度的调动,每一种算法都能动向的演示进度调动的过程,时间间隔为一秒钟,而且能够计算出每种调动算法下的均匀周转时间和均匀带权周转时间,经过排序比较各样调动算法的好坏。
2整体设计本程序主要分为四大模块:1.创立进度:能够手动创立进度,用户能够自主决定进度的个数,而且在创立进度时自主决定进度名,进度的创立时间以及履行时间。
2.几种不一样的调动算法:分别是先来先服务调动算法,短作业优先调动和高响应比调动算法。
3.显示结果函数:在各个调动算法中,每一步履行完后都会以表格的形式显示出进度的信息,包含:进度名,创立时间,服务时间,开始履行时间,达成时间,周转时间,带权周转时间。
4.比较各算法的好坏:对均匀周转时间和均匀带权周转时间依据由小到大的次序进行排序比较。
构造图以下:鉴于 linux 的进度调动算法寄存 PCB 信息构造体数组录入 PCB 信息三种调动算法先来先服务短作业优先高响应比调动FCFS SJF HHRN显示结果比较各算法的好坏struct Pro//进度调动信息构造体{char name。
《计算机操作系统》课程设计指导书一、课程设计的目的和意义本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
二、总体要求:1、课程设计总时间为五天。
2、课程设计地点是实验楼616机房。
3、一个班分若干个组,每组2人,个别可以3人组(自由组合)课程设计题目由任课老师指定;4、人员分工:组长1人、组员1到2人。
组长可由小组人员自行选出或自荐,组长的职责是负责与老师交流,合理安排分配本组的各项任务,任务有:系统总体设计、编码、测试、写文档。
三、设计要求:本课程设计以Linux操作系统为实验平台,进行源代码分析和修改或应用。
通过该课程设计,使学生掌握Linux操作系统各部分结构、实现机理和各种典型算法;或使学生进行网络管理和系统管理,系统地了解操作系统的设计和实现思路,运用内核开发环境实现对内核的修改,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。
要求如下:1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
四、成绩评定1、同学平时表现占总成绩30%,若迟到扣5分,无故旷课每次扣10 分,二次不到者总成绩以0分计。
2、课程设计报告占总成绩70%,在规定时间内上交。
3、严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
操作系统课程设计说明书格式要求湖南工业大学课程设计资料袋计算机与通信___ 学院(系、部)年第一2」学期课程名称计算机操作系统指导教师文志强职称博士学生姓名邓德尽专业班级计算机081班学号题目 __________ 磁盘调度成绩____________ 起止日期_年丄月土日〜_年丄月_6日目录清单湖南工业大学课程设计任务书—年第2学期计算机与通信学院(系、部)计算机专业081班级课程名称:计算机操作系统课程设计设计题目:__________ 磁盘调度完成期限:自_年丄月4日至—年丄月_6_日共丄周指导教师(签字): ______ 年月曰系(教研室)主任(签字):年月曰设计说明书(题目) 磁盘调度起止日期: _年_±月_4_0至_年月_6日学 生 姓 名 邓德尽 班 级081学号 _______________________________ 成绩 _______________________________指导教师(签字) ______________________________XXXXXXX 学院(部)年 月曰目录计算机操作系统课程设计1 课程设计简介 ............................... 错误! 未定义书签1.1 课程设计的目的........................ 错误! 未定义书签1.2 课程设计内容.......................... 错误! 未定义书签2 数据结构的设计 .............................. 错误! 未定义书签2.1 XXXXXXX ....................................................... 错误! 未定义书签2.2 XXXXXXX ..................................................... 错误! 未定义书签3 功能模块(或算法)描述...................... 错误! 未定义书签3.1 XXXXXXX ....................................................... 错误! 未定义书签3.2 XXXXXXX ..................................................... 错误! 未定义书签4 程序运行结果 ............................... 错误! 未定义书签5 心得体会 ................................... 错误! 未定义书签参考文献..................................... 错误! 未定义书签附源代码..................................... 错误! 未定义书签1 课程设计简介1.1 课程设计的目的使学生熟悉磁盘管理系统的设计方法;加深对所学各种磁盘调度算法的了解及其算法的特点。
Xxxx学院《操作系统》课程设计说明书设计题目:文件加密储存专业:计算机科学与技术指导教师: xxx班级: xxx学号: xxx姓名: xxx同组人: xxx计算机科学与工程系2011年12月30 日前言至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。
通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。
进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。
相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。
本次课程设计要求利用文件系统的系统调用编程对文件的内容进行加、解密。
要求程序从环境的命令行携带4个参数。
第一个是文件名,第二个是操作方式,第三个是密钥,第四个是加密钥循环使用长度。
其中后两个参数是可以忽略,但对忽略的情况要提供缺省值。
要求最后实现对文件的加密转储,或通过改道的办法进行转储。
对于已加密的文件可以进行解密显示或解密后转储。
形成加密或解密文件后要删除原来的文件。
目录一、系统环境 (4)二、设计目的 (4)三、设计内容 (5)四、程序流程图 (6)五、详细设计 (7)六、设计过程遇到问题及改进方法 (8)七、程序原代码 (9)八、程序运行结果分析 (12)九、心得体会 (14)参考文献 (15)一、系统环境硬件环境:处理器:英特尔酷睿2 双核E7200内存:三星 2G DDR2 667MHz软件环境:Windows XP 32位SP3操作系统VM workstation 9.0 red hat linux二、设计目的:加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码保存,读取时以特定的解密方法将文件还原,加密技术包括两个元素:算法和密钥。
操作系统课程设计(完整规范版)一、引言操作系统是计算机系统的核心软件,它管理计算机的硬件资源,为应用程序提供运行环境。
本课程设计旨在通过实践,加深学生对操作系统原理的理解,提高学生的编程能力和系统设计能力。
二、课程目标1. 理解操作系统的基本原理和功能。
2. 掌握进程管理、内存管理、文件系统等核心模块的设计和实现。
3. 熟悉操作系统调度的基本算法。
4. 提高学生的编程能力和系统设计能力。
三、课程内容1. 操作系统概述操作系统的定义、功能和发展历程操作系统的基本组成和结构操作系统的类型和特点2. 进程管理进程的定义、状态和转换进程控制块(PCB)的结构和作用进程同步与互斥进程通信进程调度算法3. 内存管理内存管理的目标连续内存管理技术非连续内存管理技术页面置换算法4. 文件系统文件系统的定义和功能文件的结构和类型文件存储空间管理文件目录管理文件操作5. I/O系统I/O系统的功能和组成 I/O设备管理I/O调度算法缓冲管理6. 系统调用系统调用的定义和类型系统调用的实现机制常用系统调用分析7. 实验与课程设计实验目的和要求实验内容和步骤课程设计题目和要求课程设计报告格式四、课程考核1. 平时成绩(30%):包括课堂表现、实验报告和作业完成情况。
2. 实验成绩(30%):包括实验操作和实验报告。
3. 课程设计成绩(40%):包括设计报告、代码实现和答辩表现。
1. 《操作系统概念》作者:亚伯拉罕·西尔伯斯查茨等2. 《现代操作系统》作者:安德鲁·S·塔嫩鲍姆3. 《操作系统导论》作者:威廉·斯托林斯六、附录1. 课程设计报告模板2. 实验报告模板3. 课程设计答辩评分标准七、课程安排1. 理论学习操作系统概述(2课时)进程管理(4课时)内存管理(4课时)文件系统(4课时)I/O系统(2课时)系统调用(2课时)2. 实验与课程设计进程管理实验(2课时)内存管理实验(2课时)文件系统实验(2课时)I/O系统实验(2课时)课程设计(8课时)课程考核(2课时)八、实验与课程设计指导1. 实验指导进程管理实验:通过模拟进程的创建、撤销、阻塞和唤醒等操作,理解进程管理的原理。
中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:模拟文件系统的设计与实现起迄日期: 2016年12月21日- 2017年1月4日指导教师:2016年12月20日一、需求分析1.1课程设计题目和目的通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。
同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的力。
1.2 课程设计要求通过课程设计,要求学生主要掌握以下内容:a.文件的物理结构可以选用顺序分配,链表分配或索引分配。
b.建立文件:从命令中得到文件名,得到该文件的文件长度,建立文件修改目录表。
c.删除文件:回收文件占用的空间,修改目录表d.读文件:read[文件名][显示开始字节][显示的字节数],直接显示所需要的字节数。
e.写文件:write[文件名][插入的位置][插入的内容]f.查询属性:显示文件属性,文件名,类型,长度,时间等。
1.3程序设计思想此课程设计把TXT文件作为研究对象来模拟操作系统的文件系统的文件系统工作过程。
所以用一个字符串数组来模拟磁盘空间,顾名思义,模拟磁盘提供字符的存储服务。
磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志。
如果占用标志为0,即该空间可分配给文件。
初始化磁盘空间时,从头开始遍历,检查占用位,如果该块位可分配,则检查块大小,若块长度大于或者等于申请空间的大小,则把块的前一部分(等于申请大小)分配给文件,并置标志位为占用。
剩下的大小做来一个新块,做来一个新的节点插入到原节点的后边,标志位为可用。
这样就实现了模拟磁盘的线性分配。
文件表,由于模拟文件系统的文件数量不多,故文件表采用线性表来存储。
线性表每个节点存储一个文件的信息。
打开文件表,采用数组形式存储打开的文件,数组每个元素保存一个打开文件的信息。