北京邮电大学操作系统综合课程设计

北京邮电大学操作系统综合课程设计
北京邮电大学操作系统综合课程设计

北京邮电大学课程设计报告

目录

实验一 Linux启动优化.......................................................................................... - 2 -一实验目的...................................................................................................... - 2 -二实验内容与步骤.......................................................................................... - 3 -1内核态启动优化...................................................................................... - 3 -

2 用户态启动优化..................................................................................... -

3 -

3 测试系统总的启动时间......................................................................... - 3 -

三实验原理...................................................................................................... - 3 -四实验结果及分析.......................................................................................... - 3 -

1 内核态启动优化..................................................................................... - 3 -

2开机画面................................................................................................ - 11 -1)开机画面字符隐藏技术.......................................................................... - 11 -2)开机画面调出.......................................................................................... - 13 -3)内核态开机画面更改................................................................................ - 13 -4)开机用户态界面更改................................................................................ - 14 -五实验总结.................................................................................................... - 14 -实验二Linux系统内核/系统配置小型化........................................................... - 15 -一实验目的.................................................................................................... - 15 -二实验内容.................................................................................................... - 15 -三实验设计原理............................................................................................ - 15 -四实验步骤.................................................................................................... - 15 -Code maturity level options(代码成熟度选项)......................... - 16 -

Processor type and features(处理器类型和特色)..................... - 17 -

Loadable module support(可加载模块支持)(1)、Enable loadable module support (CONFIG_MODULES) [Y/n/?] 选择内核是否支持加载模

块。........................................................................................................... - 18 -

General setup(一般设置)................................................................. - 19 -

Plug and Play configuration(即插即用设备支持)..................... - 20 -

Block devices(块设备)..................................................................... - 21 -

Networking options(网络选项)....................................................... - 21 -

SCSI support(SCSI支持).................................................................. - 22 -

Network device support(网络设备支持)....................................... - 22 -

Character devices(字符设备)......................................................... - 23 -

Filesystems(文件系统)..................................................................... - 24 -

Console drivers(控制台驱动)......................................................... - 25 -

ATA/IDE/MFM/RLL support..................................................................... - 26 -

Sound(声音)......................................................................................... - 26 -五实验结果及分析.......................................................................................... - 26 -六实验总结......................................................................... 错误!未定义书签。实验三 ARM/ucLinux-SkyEye的安装、配置与集成.......................................... - 29 -一实验目的.................................................................................................... - 29 -

二实验环境.................................................................................................... - 29 -三实验内容与步骤........................................................................................ - 29 -

1 将下载的4个数据包安装并进入目录home/buptlynn/env............ - 29 -

2 安装skyeye.......................................................................................... - 29 -

3 安装arm-elf-tools 交叉编译器 (用于编译ucLinuxSkyEye)..... - 31 -

4.安装uclinux........................................................................................ - 31 -

5.配置....................................................................................................... - 36 -

6.运行....................................................................................................... - 37 -

7测试........................................................................................................ - 39 -

8运行五条常用指令................................................................................ - 40 -四实验总结......................................................................... 错误!未定义书签。实验四ARM/ucLinux-SkyEye下BusyBox集成——Shell小型化.................... - 41 -一实验目的.................................................................................................... - 41 -二实验环境.................................................................................................... - 41 -三实验内容与步骤........................................................................................ - 41 -四实验总结......................................................................... 错误!未定义书签。实验五 Linux 环境下的Ramdisk技术及其实验............................................. - 48 -一实验目的.................................................................................................... - 48 -二实验环境.................................................................................................... - 48 -三实验内容与步骤........................................................................................ - 48 -四实验总结......................................................................... 错误!未定义书签。

五问题和解决方法............................................................. 错误!未定义书签。

六附录............................................................................................................ - 54 -实验六 Linux 环境下嵌入式数据库mSQL的集成............................................. - 55 -一实验目的.................................................................................................... - 55 -二实验环境.................................................................................................... - 56 -三实验内容与步骤........................................................................................ - 56 -四实验总结......................................................................... 错误!未定义书签。

五问题和解决方法............................................................. 错误!未定义书签。

六附录................................................................................. 错误!未定义书签。

实验一 Linux启动优化

一实验目的

Linux 系统从启动到登录 shell 界面需要花费较长时间,在普通微机上的启动过程需要十几秒或更长。如果要启动 X 界面,那花费的时间就更多了。启动

时间过长对嵌入式系统而言,如信息家电产品(机顶盒),是无法接受的。

Linux 系统的启动由内核态下的启动和用户态下的启动组成。利用本实验中采取的多种方法,可以简化 Linux 系统启动过程,提高 Linux 系统启动速度,适应嵌入式系统快速启动和实时应用的需要。

二实验内容与步骤

实验系统:Red Hat Enterprise Linux 9(VMware 9.0 模拟/Linux 内核为2.4.20-8)

1内核态启动优化

1)测量几个较大代码模块的启动时间

2)更改 MAX_HWIFS ,减小检测IDE过程的启动时间

2 用户态启动优化

1)开机画面字符隐藏技术

2)开机画面隐藏/调出

3)开机画面更换

3 测试系统总的启动时间

三实验原理

根据 Linux 源代码,从根本上分析 Linux 启动原理

四实验结果及分析

1 内核态启动优化

在Redhat 9 中,安装内核开发包,能得到Linux 源代码。位于/usr/src/linux-2.4

目录下。

修改linux/init/main.c,在所有的需要检测的代码段添加条件编译TIME_TEST 常量。

测试的代码段包括console_init(), vfs_caches_init,和pci_init()等。

改动完成之后,编译内核

1,清除源码树:make mrproper

2,生成现有.config文件:make oldconfig

3,配置内核:make menuconfig

4,生成依赖关系:make dep

5,编译内核:make bzImage

6,编译模块:make modules

7,安装模块:make modules_install

8,安装内核:make install

9,重起:init 6

重启系统之后,选择做好的系统,应为上面2.4.20-8custom那个。

启动结束之后,用

dmesg| grep “second”

得到所有设定的打印位置的记录

5处较长代码模块的时间打印如下:

通过时间检测,我们发现了最耗时间的是__initcall_ide_init这个函数,如下图所示。

花很多时间在ide接口检测上,代码如下,

既然知道IDE检测时间比较长,所以,改变后的ide数量为3

时间改变尺度对比

2开机画面

1)开机画面字符隐藏技术

在/etc/grub.conf 中,在kernel 一行后添加console=/dev/tty2 CONSOLE=/dev/ty2 后,

重启即能隐藏内核态的输出信息。通过ALT+F2就可以调出内核态的输出信息。隐藏之后的开机界面

Alt+F2(切换到tty2终端)可以调出打印信息

2)开机画面调出

默认情况下,开机画面是系统内核态打印输出(如上图),调出小企鹅通过在系统的启动参数后面加vga=0x301可以吧小企鹅调出来.

3)内核态开机画面更改

改变/drivers/video/fbcon.c中宏定义的logo大小

最终内核态开机界面为

4)开机用户态界面更改

五实验总结

通过学习内核源码,充分体验了内核的代码量,分析了内核的代码,很受震撼,同时也学到了不少东西.

实验二Linux系统内核/系统配置小型化

一实验目的

1个Linux系统发行版本可多达上百兆,功能众多,支持众多硬件设施。

但在一个实际Linux应用系统中,并非用到Linux系统发行版本所提供的全部功能。所以,可以针对实际计算机系统的硬件配置及其应用需求,对Linux 系统内核/系统进行合理的选择和裁减,得

到一个更接近实际需要的、无冗余、启动和运行更为高效的Linux系统。

例如,嵌入式系统存储容量有限、支持的硬件外设类型也有限,因此可通过内核/系统配置与裁减,选择嵌入式应用系统所必需的一些内核/系统功能(如设备驱动程序)进行配置。由此得到一个满足系统功能、体积更小的、可放入嵌入式系统的容量较小Flash中的Linux系统内核。

本实验要求学生针对PC机上的Linux系统发行版本,利用make menuconfig方法,在对硬件深入了解的基础上,选择相应的设备驱动程序和与主机CPU相关的Linux部分,进行Linux系统内核/系统配置,掌握Linux 系统内核/系统的配置方法。

二实验内容

利用makemenuconfig方法,将不必要的内核功能去掉,只留下最基本的一些功能模块,如CPU为i586、IDE 设备驱动、TCP/IP协议栈、ne2000网卡驱动、Minix文件系统等,完成内核配置工作。

比较配置前后Linux内核/系统的体积大小、功能差异,指明配置过程中各配置选项的作用

三实验设计原理

根据make menuconfig中的菜单项配置Linux内核

四实验步骤

开始时使用make bzImage命令查看内核大小

使用make menuconfig配置内核,为了最小化内核,我们将一些不必要的功能都去掉。

各功能简介:

Code maturity level options(代码成熟度选项)

Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [N/y/?] 如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

这里我们选择n,使用稳定成熟的代码。

Processor type and features(处理器类型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 选择处理器类型,缺省为Ppro/6x86MX。这里我们选择386。

(2)、Maximum Physical Memory (4GB, 16GB)内核支持的最大内存数,缺省为4G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 协处理器仿真,缺省为不仿真。不选。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?] 选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。不选。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 选择内核将支持对称多处理器。最小化系统中,使用的是的处理器,最大内存。只选择(1)(2)两厢,其他高级特性不选择。

Loadable module support(可加载模块支持)

(1)、Enable loadable module support (CONFIG_MODULES) [Y/n/?] 选择内核是否支持加载模块。

(2)、Kernel module loader (CONFIG_KMOD) [N/y/?] 内核将自动加载那些可加载模块,否则需要用户手工加载。

为了简化系统,在这个实验里不选择可加载内核模块的支持,选择N.

General setup(一般设置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 该选项设置是否在内核中提供网络支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 该选项设置是否在内核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux 将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?]是否支持平行口。

Plug and Play configuration(即插即用设备支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?]内核将自动配置即插即用设备。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?]内核将自动配置基于ISA总线的即插即用设备。

我们不需要配置,全不选。

操作系统课程设计

课程设计报告 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 -

北邮网络-操作系统原理-阶段作业三

一、单项选择题(共10道小题,共100.0分) 1. 不支持记录等结构的文件类型是 A. 顺序文件 B. 索引顺序文件 C. 索引文件 D. 哈希文件 2. 在I/O系统层次模型中处于最高的一个层次,负责所有设备I/O工作中均 要用到的共同的功能的模块是 A. 系统服务接口 B. I/O子系统 C. 设备驱动程序接口 D. 设备驱动程序 3. 在采用局部转换策略进行页面置换的系统中,一个进程得到3个页架。系 统采用先进先出的转换算法,该进程的页面调度序列为:1,3,2,6,2,5,6,4,6。如果页面初次装入时不计算为缺页,请问该进程在调度中会产生几次缺页。 A. 6次 B. 5次 C. 4次 D. 3次

4. 完成从物理页架号到虚地址的映射是 A. 页表 B. 反向页表 C. 多级页表 D. 快表 5. 下列设备中,()为块设备。 A. 软盘驱动器 B. MODEM C. 声卡 D. 鼠标 6. 在下列的实存管理技术中,同一进程在连续地址存储的技术是 A. 可变分区多道管理技术 B. 多重分区管理 C. 简单分页 D. 简单分段

7. 采用简单分页系统的内存管理,页面的大小是8K字节。现有一个逻辑地 址A=3580h,该进程的页表为 [0,5/1,6/2,1/3,0...],则该逻辑地址对应的物理地址A'=() A. 0580h B. D580h C. 6580h D. 7580h 8. 对于实存管理技术,实际上它不具备的功能有: A. 主存分配 B. 地址转换和重定位 C. 存储保护和主存共享 D. 存储扩充 9. 在当前的计算机系统中,通常是按()进行编址。 A. 位 B. 字节

操作系统课程设计报告书

题目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

北京邮电大学计算机学与技术大三数据库第8次实验报告

北京邮电大学 实验报告 课程名称数据库系统概念 实验名称数据库事务创建与运行实验_计算机_系_302_班姓名华逸群 _计算机_系_302_班姓名魏乐业 教师_叶文吴起凡_ 成绩_________ 2013年6月5日

实验目的 通过实验,了解SQL SERVER数据库数据库系统中各类数据库事务的定义机制和基于锁的并发控制机制,掌握SQL SERVER数据库系统的事务控制机制。 实验环境 采用SQL SERVER数据库管理系统作为实验平台。其中,SQL SERVER 可以采用2005、2008及2012的企业版本等高级版本。 实验背景 多用户或者多进程并发操作数据库时必须有事务的概念,其具备ACID原则。SQL SERVER也不例外,它的事务可分成以下几种: 显式事务:以BEGIN TRANSACTION开始,COMMIT TRANSACTION结束,中间是一系列属于该事务的SQL语句。如果有错,可以用ROLLBACK TRANSACTION语句来撤销。 隐式事务:使用SET IMPLICIT_TRANSACTION ON命令,可以在本连接上开始一个隐式事务。除非显式执行COMMIT TRANSACTION或者ROLLBACK TRANSACTION,该事务不会完成。 自动提交事务:如果连接没有设置为前两种事务,则其对每一条SQL语句自动提交,即它是包含一条SQL语句的事务。 事务针对数据的修改,就是CRUD(Create、Read、Update和Delete的时候起作用。完全实现ACID原则非常困难,而实现ACID原则的方法是非常灵活的,SQL SERVER使用冗余结构,即使用事务日志来实现事务的各种功能。 1.显式执行模式:以begin transaction开始,以commit transaction、rollback transaction 结束。要注意SQL SERVER中事务不会自己检查错误,所以需要我们在事务中进行处理,写成如下形式: BEGIN TRAN BEGIN TRY 一系列SQL语句 COMMIT TRAN END TRY CATCH RAISERROR(‘Transaction Aborted’,16,1) ROLLBACK TRAN END CA TCH 2.隐式事务:略。

操作系统课程设计报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: 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<

课程设计实验报告 北邮

课程设计实验报告 -----物联网实验 学院:电子工程学院班级:2011211204 指导老师:赵同刚

一.物联网概念 物联网是新一代信息技术的重要组成部分。物联网的英文名称叫“The Internet of things”。顾名思义,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网的基础上延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。因此,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。 二.物联网作用 现有成熟的主要应用包括: —检测、捕捉和识别人脸,感知人的身份; —分析运动目标(人和物)的行为,防范周界入侵; —感知人的流动,用于客流统计和分析、娱乐场所等公共场合逗留人数预警; —感知人或者物的消失、出现,用于财产保全、可疑遗留物识别等; —感知和捕捉运动中的车牌,用于非法占用公交车道的车辆车牌捕捉; —感知人群聚集状态、驾驶疲劳状态、烟雾现象等各类信息。 三.物联网无线传感(ZigBee)感知系统 ZigBee是一种新兴的短距离、低功耗、低数据速率、低成本、低复杂度的无线网络技术。ZigBee在整个协议栈中处于网络层的位置,其下是由IEEE 802.15.4规范实现PHY(物理层)和MAC(媒体访问控制层),对上ZigBee提供了应用层接口。 ZigBee可以组成星形、网状、树形的网络拓扑,可用于无线传感器网络(WSN)的组网以及其他无线应用。ZigBee工作于2.4 GHz的免执照频段,可以容纳高达65 000个节点。这些节点的功耗很低,单靠2节5号电池就可以维持工作6~24个月。除此之外,它还具有很高的可靠性和安全性。这些优点使基于ZigBee的WSN广泛应用于工业控制、消费性电子设备、汽车自动化、家庭和楼宇自动化、医用设备控制等。 ZigBee的基础是IEEE802.15.4,这是IEEE无线个人区域网工作组的一项标准,被称作IEEE802.15.4(ZigBee)技术标准。ZigBee不仅只是802.15.4的名字。IEEE仅处理低级MAC

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 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

北京邮电大学课设 基于MSP430的简单信号发生器的设计

基于MSP430的信号发生器 设计报告 学院:电子工程学院 班级:2013211212 组员:唐卓浩(2012211069) 王旭东(2013211134) 李务雨(2013211138) 指导老师:尹露

一、摘要 信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。本设计介绍一款基于MSP430G2553 单片机的信号发生器。该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。本次需要完成的任务是以MSP430 LaunchPad 的单片机为控制核心、DAC 模块作为转换与按键电路作为输入构成的一种电子产品。MSP430 LaunchPad 单片机为控制核心,能实时的进行控制;按键输入调整输出状态,DAC0832将单片机输出的数字信号转化为模拟量,经运放放大后,在示波器上输出。在本次程序设计中充分利用了单片机内部资源,涉及到了中断系统、函数调用等。 关键字:信号发生器 MSP430单片机数模转换 二、设计要求 以msp430单片机为核心,通过一个DA (数字模拟)转换芯片,将单片机输出的方波、三角波、正弦波(数字信号)转换为模拟信号输出。提供芯片:msp430G2553、DAC0832、REF102、LM384、OP07。参考框图如下: Lauchpad MSP430 电位器 按键1 DA 转换DAC0832 放大输出LM384 按键N 按键2 AD …… 图1 硬件功能框图 1、基本要求 (1) 供电电压 VDD= 5V~12V ;(√) (2) 信号频率:5~500Hz(可调);(√) (3) 输出信号电压可调范围:≥0.5*VDD ,直流偏移可调:≥0.5*VDD ;(√) (4) 完成输出信号切换;(√) (5) 方波占空比:平滑可调20%~80%;(√) (6) 通带内正弦波峰峰值稳定度误差:≤±10%(负载1K )。(√)

北京邮电大学2009年操作系统期末试卷

北京邮电大学2008——2009学年第一学期 《操作系统》期末考试试题(A) 1.FILL IN BLANKS (10 points) 1.1 A _trap___ is a software-generated interrupt caused either by an error or by a specific request from a user program that an operating-system services be performed. 1.2 A ______ is used in Unix systems to notify a process that a particular event has occurred. 1.3 To manage the process executing, OS records the state and other information (e.g. the priority) of the process in . 1.4 The scheduling criteria include CPU utilization, throughput, turnaround time, waiting time, and response time .

1.5 For n concurrent processes that mutual exclusively use some resources, the code segmentations, in which the processes access the resources, are called deadlock . 1.6. The ___visual memory___ scheme enables users to run programs that are larger than actual physical memory, this allows the execution of a process that is not completely in memory. 1.7. The __FIFO___ page replacement algorithm associates with each page the time when that page was brought into memory. When a page must be replaced, the oldest page is chosen. 1.8The file system resides permanently on , which is designed to hold a large amount of data permanently. 1.9The file system itself is generally composed of many different levels, including the logical file system, the file-organization module, the and the I/O control. 1.10 T he kernel’s I/O subsystem provides numero us services. Among these are I/O scheduling, , caching, spooling, device reservation, and error handling, and name translation. 2.CHOICE ( 10 points ) 2.1 _____ operating systems have well defined, fixed time constraints. Processing must be done within the defined constrains, or the system will fail. A. Multimedia B. Real-time C. Clustered D. Network 2.2 Which one of the following OS is implemented based on microkernel structure? _____

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告学院:计算机学院 专业班级: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<

北邮移动通信课程设计

信息与通信工程学院移动通信课程设计 班级: 姓名: 学号: 指导老师: 日期:

一、课程设计目的 1、熟悉信道传播模型的matlab 仿真分析。 2、了解大尺度衰落和信干比与移动台和基站距离的关系。 3、研究扇区化、用户、天线、切换等对路径损耗及载干比的影响。 4、分析多普勒频移对信号衰落的影响,并对沿该路径的多普勒频移进行仿真。 二、课程设计原理、建模设计思路及仿真结果分析 经过分析之后,认为a 、b 两点和5号1号2号在一条直线上,且小区簇中心与ab 连线中心重合。在此设计a 、b 之间距离为8km ,在不考虑站间距的影响是默认设计基站间距d 为2km ,进而可求得a 点到5号基站距离为2km ,b 点到2号基站距离为2km ,则小区半径为3/32km,大于1km ,因而选择传播模型为Okumura-Hata 模型,用来计算路径损耗;同时考虑阴影衰落,本实验仿真选择阴影衰落是服从0平均和标准偏差8dB 的对数正态分布。实验仿真环境选择matlab 环境。 关于路径损耗——Okumura-Hata 模型是根据测试数据统计分析得出的经验公式,应用频率在150MHz 到1 500MHz 之间,并可扩展3000MHz;适用于小区半径大于1km 的宏蜂窝系统,作用距离从1km 到20km 经扩展可至100km;基站有效天线高度在30m 到200m 之间,移动台有效天线高度在1m 到10m 之间。其中Okumura-Hata 模型路径损耗计算的经验公式为: terrain cell te te te c p C C d h h h f L ++-+--+=lg )lg 55.69.44()(lg 82.13lg 16.2655.69α 式中,f c (MHz )为工作频率;h te (m )为基站天线有效高度,定义为基站天线实际海拔高度与天线传播范围内的平均地面海拔高度之差;h re (m )为终端有效天线高度,定义为终端天线高出地表的高度;d (km ):基站天线和终端天线之间的水平距离;α(h re ) 为有效天线修正因子,是覆盖区大小的函数,其数字与所处的无线环境相关,参见以下公式: 22(1.1lg 0.7)(1.56lg 0.8)(), 8.29(lg1.54) 1.1(), 300MHz,3.2(lg1.75) 4.97(), 300MHz,m m m m f h f dB h h dB f h dB f α---??-≤??->?中、小城市()=大城市大城市 C cell :小区类型校正因子,即为:

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: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 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

北邮高级操作系统期末试卷

2017,2015,2013北邮高级操作系统 试题 学号: 姓名: 成绩: 、分布式操作系统中的透明性主要是什么?其中那些透明性容易实现?哪些难实现????分? 难点: 、创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子数据库。 、不确定性,控制比较复杂,尤其是在资源管理上要附加许多协调操作—资源属于局部工作站,性能、可靠性对网络的依赖性强,安全保密——基础不好。用户掌握有许软件接口,相应的应用软件较少,需要大力开发。 、分布式互斥中集中式算法、分布式算法、令牌算法。分析一下其中那个算法比较实用,为什么????分? 集中式算法:集中式算法借鉴了集中式互斥算法的思想,在分布式系统

中,选出一个进程为协调者 ?通过科学的分析制定一套规则? 。协调者对所有的请求进行排队并根据一定的规则授予许可。协调者接受请求以后,检查临界区内的资源是否被其他进程占用。如果是,则它将当前请求进程插入到对应临界资源的请求队列中 否则,回复一个同意消息给请求进程,通知它可以访问该临界资源。该算法通俗易懂,既能够杜绝死锁、饥饿等现象发生,又能保证资源的互斥访问顺利进行。 但是它也有缺点,由于是集中式管理,所以一旦管理进程出现故障,则整个系统将处于瘫痪状态。因此,管理进程的性能完全决定了算法的效率,应用范围小,难以普及。 分布式算法:分布式算法中运用到广播请求通信,当进程想请求共享资源时,需要首先建立三个变量 准备进入临界区,实时时间和处理器号,并利用广播通信发送给正在运行的所有进程。该算法的核心思想如下 当进程想进入临界区时 要建立一个包括进入的临界区名字、处理器号和当前时间的消息 并把消息发送给所有其它进程。当进程接收到另一个进程的请求消息时 将分下面三种情况来区别对待 ?若接收者不在临界区中 也不想进入临界区 就向发送者发送 ?消息; ?若接收者已经在临界区内就不必回答 而是负责对请求消息排队; ?若接收者要进入临界区 但还没进入 它就会把接收的消息和它发送的消息的时间戳进行对比 取小的那个。如果接收的消息时间戳小 就发 ?消息 如果发送的消息时间戳小 那么接收者负责排列请求队列而不发送任何消息。当进程接收到允许消息时 它就进入临界区。从临界区退出时 向队列中的所有进程发送 ?消息 并将自己从队列中删除。该算法可以保证访问临界区的互斥性以及无死锁进程、无饥饿进程。但是这种算法有个严重的缺点是算法太复杂并且不健壮 任何一个进程崩溃都会影响到算法的正确性。二是令牌丢失 令牌算法:令牌算法中引入了令牌,所有的进程组成一个环模型,环中每个进程需要知道它的下一个位置的节点的名称。令牌在环上顺序传递,当

操作系统课程设计报告

操作系统课程设计实验报告 实验名称:进程控制 姓名/学号: 一、实验目的 学习、理解和掌握Linux与windows的进行控制系统调用的功能,熟悉主要的几个系统调用命令的格式和如何利用系统调用命令进行编程。通过学习,理解如何创建一个进程、改变进程执行的程序、进程和线程终止以及父子进程的同步等,从而提高对进程和线程控制系统调用的编程能力。 二、实验内容 设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。 三、实验环境 CPU: Inter ×2 2.10GHz RAM: 3.00GB Windows 7 旗舰版 Linux Ubuntu 10.04 编译: VS2010 四、程序设计与实现 4.1进程控制系统的调用 4.1.1 windows进程控制调用程序中使用的数据结构及主要符号说明 SYSTEMTIME starttime,endtime; //进程开始时间和结束时间 PROCESS_INFORMATION pi //该结构返回有关新进程及 //其主线程的信息 STARTUPINFO si //该结构用于指定新进程的主窗口特性4.1.2 linux进程控制调用程序中使用的数据结构及主要符号说明 struct timeval starttime,endtime //进程开始时间和结束时间 pid_t pid //进程标志符

4.2 程序流程图 图1 windows进程控制调用图2 linux进程控制调用程序运行流程图程序运行流程图 五、实验结果和分析 5.1 windows实验结果和分析

北邮高级操作系统期末试卷

20仃,2015,2013北邮高级操作系统 试题 学号:姓名:成绩: 1、分布式操作系统中的透明性主要是什么?其中那些透明性容 易实现?哪些难实现?(20分) 难点: 1、创建一个分布式数据库系统可提供有效的存取手段来操纵这些结点上的子数据库。 2、不确定性,控制比较复杂,尤其是在资源管理上要附加许多协调操作一资源 属于局部工作站,性能、可靠性对网络的依赖性强,安全保密一一基础不好。用户掌握有许软件接口,相应的应用软件较少,需要大力开发。 2、分布式互斥中集中式算法、分布式算法、令牌算法。分析一下其 中那个算法比较实用,为什么?(20分) 集中式算法:集中式算法借鉴了集中式互斥算法的思想,在分布式系统中,选出一个进程为协调者(通过科学的分析制定一套规则)。协调者对所有的请求进行排队并根据一定的规则授予许可。协调者接受请求以后,检查临界区内的资源是否被其他进程占用。如果是,则它将当前请求进程插入到对应临界资源的请求队列中;否则,回复一个同意消息给请求进程,通知它可以访问该临界资源。该算法通俗易懂,既能够杜绝死锁、饥饿等现象发生,又能保证资源的互斥访问顺利进行。 但是它也有缺点,由于是集中式管理,所以一旦管理进程出现故障,则整个系统将处于 瘫痪状态。因此,管理进程的性能完全决定了算法的效率,应用范围小,难以普及。

分布式算法:分布式算法中运用到广播请求通信,当进程想请求共享资源时,需要首先建立三个变量:准备进入临界区,实时时间和处理器号,并利用广播通信发送给正在运行的所有进程。该算法的核心思想如下:当进程想进入临界区时,要建立一个包括进入的临界区名字、处理器号和当前时间的消息,并把消息发送给所有其它进程。当进程接收到另一个进程的请求消息时,将分下面三种情况来区别对待:1)若接收者不在临界区中,也不想进入临界区,就向发送者发送0K消息;2)若接收者已经在临界区内就不必回答,而是负责对请求消息排队;3)若接收者要进入临界区,但还没进入,它就会把接收的消息和它发送的消息的时间戳进行对比,取小的那个。如果接收的消息时间戳小,就发0K消息,如果发送的消息时间戳小,那么接收者负责排列请求队列而不发送任何消息。当进程接收到允许消息时,它就进入临界区。从临界区退出时,向队列中的所有进程发送0K消息,并将自己从队列中删除。该算法可以保证访问临界区 的互斥性以及无死锁进程、无饥饿进程。但是这种算法有个严重的缺点是算法太 二是令牌丢失 复杂并且不健壮,任何一个进程崩溃都会影响到算法的正确性。 令牌算法:令牌算法中引入了令牌,所有的进程组成一个环模型,环中每个进程需要知道它的下一个位置的节点的名称。令牌在环上顺序传递,当某个进程拥有令牌时就表明可以访问临界区。当请求进程没有令牌时,算法需要N发送任何消息。如果得到令牌的进程不打算进入临界区,它只是简单地将令牌传送给它后面的进程。当每个进程都需要进入临界区时,令牌在环上的传递速度最慢;相反,当没有进程想要进入临界区时,令牌在环上的传递速度最快。 (该算法的正确性是显而易见的,但是也存在一些问题,比如说,当令牌丢失时,需要重新生成。可是如何检测令牌丢失又是一个困难的问题。还有,如果环中的一个进程崩溃,那么环 的连贯性就遭到破坏,算法也就会出现麻烦。) 综上所述,基于令牌的算法在排除了令牌丢失和进程故障等问题之后,在今后的分布式系统中,能有更好的应用。

计算机操作系统课程设计

计算机操作系统课程设计 班级:计091-1 姓名: 学号: 使用语言: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; //目录地址 };

相关文档
最新文档