自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (19)
  • 问答 (1)
  • 收藏
  • 关注

原创 ubuntu eclipse framework 源码开发,智能提示很卡

最近在ubuntu 下做安卓源码的开发,遇到了一个很痛苦的事情就是

2014-07-14 09:44:22 976

原创 ubuntu下安卓源码编译环境的搭建

sudo apt-get install ia32-libs sudo apt-get install git gnupg flex bisongperf build-essential \  zip curl libc6-devlibncurses5-dev:i386 x11proto-core-dev \  libx11-dev:i386libreadline6-dev:i38

2014-07-01 19:22:03 1084

原创 android 锁屏壁纸和桌面壁纸的设置实现

在安卓下面,有个类是可以用来设置桌面

2014-06-17 18:54:39 10668 10

原创 android 读取一个文件下所有的文件

在android下, 读取一个文件下所有的文件是比较简单的。

2014-06-12 17:11:05 954

原创 short i; scanf("%d", &i); 栈溢出

#include int main(){short i;scanf("%d",&i);return 0;}

2014-04-24 20:44:52 2363

原创 二维数组 传参数

今天看到了二维数组如何传递参数。直接上代码了:三种情况1:参数是二维数组int array[10][10];void passFunc(int a[][10]){ // ...}passFunc(array);2:参数是一个包含指针的数组int *array[10];for(int i = 0; i < 10; i++) array[i] = ne

2014-04-22 09:23:26 1171

原创 load_file:could not read 174863040 bytes from 'system.img' error:cannot load 'system.img'

今天

2014-04-13 19:29:04 3224

原创 android eclipse debug 调试 Source not found

在debug时,总是提示Source Not Found The source attachment does not contain the source for the file Activity.class.解决办法:add attched source后选择选择external folder,选择SDK目录下的sources文件夹。搞定。

2014-04-03 10:19:40 1249

原创 static 在C语言中的作用

通过对static的理解,记录下来。总的来说,static的作用有以下3点1.改变了他所修饰的变量或函数的使用范围2.改变了他所修饰的变量和函数的生命周期3.改变了他所修饰的变量和函数的存放位置以上3点体现在以下3个地方1.修饰局部变量使用范围:是在该变量所在的语句块中,这个和普通变量一样。生命周期:在程序开始时存在,一直到程序结束时才消失。存放位置:存放在

2014-03-27 17:24:44 914

原创 IAR Unable to open file '<dir>\<filename>.xcl' 问题解决

如果你的例程是从其他电脑拷贝过来的,或者你改变了项目文件的位置,编译的时候有可能会出现Unable to open file '\.xcl'如下图:这个时候可以现在你的项目文件中搜索一下这个.xcl的文件的位置,将位置拷贝下来,然后修改项目配置,Option->Linker->config->Linker command file,将之前记录的路径填在这里。如下

2014-02-27 16:35:01 2563

原创 cc2530 看门狗小实验

看门狗程序的编程思路1.设置好系统时钟源2.初始化看门狗,选择看门狗模式,1秒的间隔3.循环使用喂狗程序/************************************************ @project : 看门狗实验* @时间 :2014年1月20日* @姓名 :林少游*************************************

2014-01-20 10:57:11 3637

原创 cc2530 串口实验4--设置时间

/****************************** project : PC机可以向cc2530发送时间,来设置cc2530的当前时间 cc2530每秒钟向PC机发送当前时间。* 时间 :2014年1月12日* 作者 :林少游*****************************/#include #include #include

2014-01-12 23:57:04 3523 2

原创 cc2530 串口实验--控制led灯

/************************* project : PC机向cc2530发送指令,控制led的亮灭 指令格式为“xy#”,其中x可以是B或Y, 代表着蓝灯或黄灯。y可以是0或1,0代表 关灯,1代表亮灯* 时间 :2014年1月10* 作者 :林少游******************

2014-01-11 20:38:01 10182

原创 CC2530--串口实验的回显

今天做了一个下面的实验,注释都有了,所以就不过多解释了,主要就是总结一下1.串口收发要初始化串口,(设置时钟频率-->选择用来当做串口的IO-->设置波特率-->发送中断设为0-->打开数据接收的中断)2.字符串发送函数(U0DBUF填充字符-->等待串口发送完毕-->发送中断标志设为0,准备下次发送)3.按键中断服务程序中,除了P1IFG要清零以外,P1IF也要清零。哎,忘记为什么了

2014-01-10 17:25:41 3078 1

原创 CC2530 串口实验

CC2530的串口实验主要有编程主要有一下几个步骤:一、串口初始化函数(设置时钟频率-->选择用来当做串口的IO-->设置波特率-->发送中断设为0)二、字符串发送函数(U0DBUF填充字符-->等待串口发送完毕-->发送中断标志设为0,准备下次发送代码如下:#include #include #define YLED P1_0#define BLED P1_1

2014-01-09 21:12:22 2261

原创 定时器4实验

下面的这个代码主要是使用定时器3来控制led灯的亮灭的,使用的单片机是粤嵌的cc2530底板。/*** 项目名称:定时器4实验* 时间:2014年1月5日10:16:04* 作者:林少油**/#include #define YLED P1_0#define BLED P1_1#define LIGHTOPEN 1#define LIGHTCLOSE 0#defin

2014-01-05 15:21:35 1709 1

原创 21cn 世纪龙 二面

终于到了世纪龙的二面了,主要就是技术总监见面,这也是最后一面了,主要就是自我介绍,然后技术总监和你聊聊你的项目,听其他同学说,还有谈待遇。最后就是你问他问题了。就没了。。。。

2013-12-12 17:09:08 2964

原创 21cn 世纪龙 面试

世纪龙在双选会上是简单面试加收简历,貌似不刷人,接着就让同学们去参加笔试了,笔试是行测加专业题,笔试过后就是第一轮面试。第一轮面试比较简单,主要就是自我介绍和问问项目,然后根据项目问一些非技术的问题。最后问你拿了多少个offer,签三方了没有,还有什么问题要问公司的么?第一轮面试之后就马上通知你当天下午来参加二面。

2013-12-08 11:57:40 3140

原创 21cn 世纪龙 笔试

1.1个小时的行测题。题型比较多,常识题,推理题等,建议先把简单的全部做了先,然后有时间再做那些需要思考的题目。2.专业题有20道左右。(好像不分岗位)1.网络七层模型的第3到5是什么?七层有:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。2.如果带你到电信的三亚分局,那在机房里你能看到什么设备?语言设备(电话交换机),宽带设备,数据设备(光缆接入,传输设

2013-12-07 13:04:21 3301

原创 80C51 单片机 数码管显示循环数字

#include#define uchar unsigned char#define uint unsighen intuchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //code ,则表示该数组放在程序代码中,不加code这表示放在存储

2013-10-31 00:10:49 5290

原创 80C51 单片机 继电器控制灯的亮灭

#include#includesbit light=P2^4; //将light设置为P2的第4位,该IO口连接继电器。#define uchar unsigned char#define uint unsigned intvoid delay(uint ms);void main(){ while(1) { light=0; //灯灭 delay(200); l

2013-10-30 22:53:50 5798 4

原创 80C51 单片机 蜂鸣器

#includesbit fen=P2^3; //将fen设置为P2的第3位,该IO口连接蜂鸣器的FM。#define uchar unsigned char#define uint unsigned intvoid delay(uint ms);void main(){while(1){fen=0;delay(200);fen=1;delay(30

2013-10-30 22:39:06 1796

原创 80C51 单片机 流水灯代码

#include#includesbit led1=P1^0; //将led1设置为P1的第0位#define uchar unsigned char#define uint unsigned intvoid delay(uint ms);void main(){ uchar a; a=0xfe; while(1) { P1=a; delay(500); a=

2013-10-30 19:54:38 3787

原创 单片机C51 helloworld小程序

使用proteus仿真电路,keil4编写程序,实现单片机LED灯循环亮灭。#include#define uint unsigned intvoid main(){ uint n=5000; while(1) { P1=0xfe; while(n--); P1=0xff; while(n--); }}下面贴出proteus仿真电路:

2013-10-30 10:02:29 5787

原创 汇顶 笔试 一面 二面 软件开发工程师-嵌入式软件开发

汇顶的面试真是让我自信心大跌,不过还是要总结一下的。1.笔试宣讲会上,老总说,本科起薪13万,硕士起薪16万,还有一大堆的福利待遇,挺得心痒痒的。1个小时的宣讲会完了,就去其他教室笔试。一个大教室,估计有200人,都是笔试软件开发的。大家并排坐着,然后发2套卷子,蓝色一套,黄色一套,题目完全不同,每列一套题目,呵呵,这倒是防止了同桌对答案的问题。不错。题目倒不会很难,很多都是在网上找得到的

2013-10-29 11:11:13 4739 1

原创 百度 软件研发工程师笔试题 2013/10/13 广州考场

一、简述题1.请简述一下OSI七层模型。2.进程间的通信有哪几种?(至少列出3种)3.TCP和UDP的差别是什么?并分别举例一个对应的上层协议。二、编程题1、给出一个数组A[a0,a1,a2....an](n可以改变),请输出数组元素的所有可能的组合。2、一个数组,相邻的元素相差不超过1,例如A[4,5,4,5,6,7,8,7,8,9,10,9],现给定一个t,求出

2013-10-13 18:42:18 1643

原创 redhat 安装Yum

今天发现自己的yum不能用了,于是就决定重新安装配置我的yum,其实我之前也没怎么用过yum。好了,废话也不多说了,直接干。1.首先需要确定系统架构确认是x86_64之后,在网易的mirrors下载需要的rpm包:(如果是i386的话则需要到http://mirrors.163.com/centos/5/os/i386/CentOS/ 找到对应的软件包,或者自己到我这里下载。)

2013-10-05 11:22:53 1062

原创 shopt -s expand_aliases

shopt -s expand_aliases这一条命令让shell脚本中的alias可以使用。但是经测试,在#!/bin/sh下,该命令可有可无,不影响alias的使用,在!/bin/bash下,才有影响。

2013-09-29 16:59:42 2951

原创 shell 编程之汉诺塔 递归算法

一块板上有三根针A、B和C,A针上套有n个大小不等的圆盘,大的在下,小的在上。要把这n个圆盘从A针移动C针上,每次只能移动一个圆盘,移动可以借助B针进行。但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上,求移动的步骤。设A上有n个盘子,该问题可分解为下面的问题加以解决:如果n=1,则将圆盘从A直接移动到C。如果n=2,则:         1.将A上的n-1(等于1

2013-09-29 15:19:26 1985 1

原创 不解压tar包,查看包中的内容

例如有一个hello.tar,或hello.tar.gz可以使用tar -tvf hello.tar或tar -tvf hello.tar.gz也就是说tar具有智能分析,只用-t就可以查看压缩包的内容了。

2013-09-26 08:44:48 4656

原创 腾讯面试 总结

经过了CVTE的面试,也总结了一些问题,这一次参加了腾讯的面试,第一次面试我就有压力了,以下是问题:1.一上来就谈项目的问题,项目就是你做了什么项目,在项目中遇到的最大的问题是什么,是怎么解决的(怎么解决一定要想清楚先,这一点貌似很重要),其实这个问题,不管是哪个公司的技术面应该都会问到啦。2.接着是问你汇编学得如何?我说学得不是很好(晕,就这样了,说学得好,他问问题,你又不回答不出来,说

2013-09-24 15:49:07 1545 2

原创 循环链表队列

#include using namespace std;#define maxIndex 5struct QueueNode{ int data; QueueNode* next;};QueueNode *head = NULL;QueueNode *tail = NULL;int curQueueCount = 0;int AddNode(){ if(curQu

2013-09-23 12:29:51 1132

原创 CVTE 嵌入式软件工程师 二面

昨天晚上收到了二面的通知,激动啊~第二天提前20分钟到达指定地点,然后一起做大巴去到CVTE总部,发现笔试刷掉的人好像并不是很多。我们一下车被带到了公司的电影院,听演唱会。呵呵,挺有意思的,有一个漂亮的工作人员在那里,她发现电影的声音不是很大,就准备去调大声点,结果找电影控制台找了好久都没发现在哪里。最后是在影院后面的角落里发现了控制台,但是她不会弄。。。(跑题了)后来有同学帮她弄好了。面试技

2013-09-17 14:50:17 4615 1

原创 CVTE 嵌入式软件工程师 笔试题

早上考完了CVTE的嵌入式软件工程师的笔试题,昨晚做了android工程师的题,结果发现完全没有相同的,真晕。。。今天早上去9:30华工参加笔试,题目共20题,包括选择题,填空题,量不大,主要涉及软件工程,计算机组成原理,编译原理。共20分左右,做得不好,pass了。主要讲讲后面的简答题和程序错题与编程题。简答题有说出你知道的文件系统,至少3种。(3分)可重入函数的条件有哪些?

2013-09-16 13:21:05 11658 7

原创 CVTE 一面

在网上做完了测评之后,当天就收到面试的通知了,CVTE效率真高。第二天就去参加面试,面试前紧张了一把,后来去到之后发现只有几个应聘者,很多面试官前面都没人,估计现在中午一点,所以都去吃饭了。我和一个同学去,直接就面试了。我面的是技术类的岗位。       一面没有问技术,只是问问简历上写的东西。HR有2个人,同时面试我们3个人。以下是HR问的问题:你为什么要应聘这个职位?你的成绩排

2013-09-15 14:05:38 7368

原创 Not able to reset SmartRF04DD

今天在使用使用CC2540的时候,想下载个程序到CC2540底板上,结果出现Not able to reset SmartRF04DD的错误。如下图经过一番摸索,最终是按下CCDEBUG上的reset键才成功的。

2013-09-11 12:26:44 3528

原创 Tiny210 中断控制LED灯的亮和灭

实验环境:1.      windows xp和虚拟机 Ubuntu。2.      A8 Tiny210 粤嵌的开发板。实验步骤:1.      安装交叉编译环境。1.1   将arm-none-eabi-arm-2010-09-51-for-linux.tar.bz2在虚拟机中的ubuntu中解压缩到根目录,最终交叉编译工具链会在usr\local\arm\arm-none

2013-06-17 09:25:37 2360

原创 A8 ping通服务器的几个要求

我使用的是win7 64位系统,然后新建了2个虚拟机,一个xp和一个ubuntu。要想开发板平通ubuntu的服务器,需要注意一下几点:1.虚拟机的网络要选成桥接,而且网卡要选择你的开发板与电脑相连的那个网卡。如下图2.ubuntu的ip地址要和主机(即win7)的ip地址一样。默认网关和子网掩码也要一样。3.开发板的ipaddr与ubuntu的ip要在同一网段。

2013-05-31 20:49:05 1236

原创 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

这几天,使用VS2010打开VC6.0编写的程序时,运行报错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。解决办法:1.2.

2013-05-28 21:03:14 1084

原创 六级之听力攻略1

短对话:即听即选长对话:主题型(反复谈到的事情)What are the two speakers talking about?What did sb. do....?()场景题()Where does the conversation most probably take place?What is the possible relationship betw

2013-05-23 21:59:33 1003

redhat 安装 yum

1.卸载yum: #rpm -qa|grep yum|xargs rpm -e --nodeps 2.安装以下几个包 yum-3.2.22-26.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm 安装方法:rpm -ivh *.rpm 若提示缺少其他包,可以先安装其他所需要的rpm。 3.导入证书 #rpm -import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5 4.让yum使用网易的源: #cd /etc/yum.repos.d/ #wget http://mirrors.163.com/.help/CentOS-Base-163.repo 5.配置文件 #vi CentOS-Base-163.repo 在所有mirrorlist前面加上#,把所有$releasever替换成5,保存 6..清理并重新生成yum缓存 #yum -y upgrade http://blog.csdn.net/shawyou/article/details/12305975

2013-10-05

Protel实验

华南师范大学计算机学院Protel的8个实验

2013-07-31

redhat5安装tftp

1.先按以下步骤安装 2.安装tftp-server-0.43-1.i386.rpm 服务器 [root]# rpm -ivh --nodeps tftp-server-0.43-1.i386.rpm,此时根目录下会多一个tftpboot的目录,是tftp的共享目录 3.编译安装tftp-hpa-0.48.tar.gz [root]# tar vxfz tftp-hpa-0.48.tar.gz [root]# cd tftp-hpa-0.48 [root]# make [root]# make install 搞定,tftp客户端命令就可以用了。 4.使用超级用户身份运行setup命令,在系统服务理选上tftp服务 [*]tftp 5.启动tftp服务器 [root]# service xinetd restart 看到启动[OK]就可以了 可以在tftpboot中放一些文件,然后使用tftp客户端命令连接服务器,然后用GET命令下载文件,如果下载成功,就大功告成了。 配置结束。 遇到的问题: 如果第4步找不到tftp选项,就先安装tftp-0.32-4.i386。完成了第5步再弄这一步。 rpm -ivh --nodeps tftp-0.32-4.i386 如果第5步启动tftp服务器失败,就安装xinetd-2.3.14-10.el5.i386 rpm -Uvh xinetd-2.3.14-10.el5.i386

2013-07-25

xinetd-2.3.14-10.el5.i386.rpm

在安装完tftp的时候,启动tftp服务,service xinetd restart.发现 xinetd:未被识别的服务 这个时候就可以按照这个文件,然后就可以开启tftp服务了。 安装命令:rpm -Uvh xinetd-2.3.14-10.el5.i386.rpm

2013-07-25

中断控制led灯

本程序可以通过A8的K2来控制D102的led灯进行亮灭。 具体实验过程可以看http://blog.csdn.net/linsoiler1/article/details/9109503

2013-06-17

arm-none-eabi-arm-2010-09-51-for-linux交叉工具链

arm-none-eabi-arm-2010-09-51-for-linux是另一种交叉工具链,安装之后可以使用anm-none-eabi-gcc等命令。 #mkdir /usr/local/arm #cp /mnt/hgxxx/arm-none-eabi-arm-2010-09-51-for-linux.tar.bz2 / #tar xvfj arm-none-eabi-arm-2010-09-51-for-linux.tar.bz2 #vim /etc/bash.bashrc export PATH=/usr/local/arm/arm-none-eabi-2010-09-51/bin:$PATH 保存退出。 #source /etc/bash.bashrc

2013-06-17

Linux进程间通信

Linux下进程间通信概述 Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。 UNIX平台进程通信方式早期进程间通信方式AT&T的贝尔实验室,对Unix早期的进程间通信进行了改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内BSD(加州大学伯克利分校的伯克利软件发布中心),跳过了该限制,形成了基于套接字(socket)的进程间通信机制 Linux下进程间通信概述 常用的进程间通信方式 传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal) System V IPC对象共享内存(share memory)、消息队列(message queue)和信号量(semaphore)、BSD、套接字(socket)

2013-05-06

C语言之进程(内含实例)

进程 学习目标 理解进程概念 复制进程 fork 替换进程映像 exec 守护进程 linux 进程概述 程序与进程 程序是一个普通文件,是机器代码指令和数据的集合,这些指令和数据存储在磁盘上的 一个可执行映像(Executable Image)中。 进程是一个独立的可调度的任务 进程是一个抽象实体。当系统在执行某个程序时,分配和释放的各种资源 进程是一个程序的一次执行的过程 进程和程序的区别 程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的 概念 进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡 进程是程序执行和资源管理的最小单位 进程不仅包括程序的指令和数据,而且包括程序计数器值、 CPU 的所有寄存器值以及存储临时数据的进程堆栈。

2013-05-06

多线程编程

线程基础 每个用户进程有自己的地址空间 系统为每个用户进程创建一个task_struct来描述该进程 该结构体中包含了一个指针指向该进程的虚拟地址空间映射表 实际上task_struct 和地址空间映射表一起用来表示一个进程 由于进程的地址空间是私有的,因此在进程间上下文切换时,系统开销比较大 为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,也被称为线程 在同一个进程中创建的线程共享该进程的地址空间 Linux里同样用task_struct来描述一个线程。线程和进程都参与统一的调度 通常线程指的是共享相同地址空间的多个任务 使用多线程的好处 大大提高了任务切换的效率

2013-05-06

vim的rpm for linux

vim的rpm for linux 内含安装方法

2013-03-17

flex+gcc+tools

可以完成以下实验的工具 实验功能: 1.C++源代码扫描程序识别C++记号。C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 2.打开一个C++源文件,打印出所有以上的记号。 3.* 选作部分:为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设你想牺牲可读性,以节省磁盘空间,那么你可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。因此,程序中还应该有这样的压缩功能。 4.* 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。 5.应该书写完善的软件文档。

2013-01-03

C++源代码单词扫描程序(词法分析)实验报告

一. 实验内容 功能: 1.C++源代码扫描程序识别C++记号。C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 2.打开一个C++源文件,打印出所有以上的记号。 3.* 选作部分:为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设你想牺牲可读性,以节省磁盘空间,那么你可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。因此,程序中还应该有这样的压缩功能。 4.* 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。 5.应该书写完善的软件文档。

2013-01-03

TINY 扩充语言的语法分析

华南师范大学 本资源包括TINY扩充语言的语法分析的实验报告,编译原理附录B和TINY扩充语言的语法分析代码.实验报告中说明了该实验的完成步骤. 扩充的语法规则有:实现while、do while、for语句和求余计算式子,具体文法规则自行构造。 可参考:P97及P136的文法规则。 (1) While-stmt --&gt; while exp do stmt-sequence endwhile (2) Dowhile-stmt--&gt;do stmt-sequence while exp (3) for-stmt--&gt;for identifier:=simple-exp to simple-exp do stmt-sequence enddo 步长递增1 (4) for-stmt--&gt;for identifier:=simple-exp downto simple-exp do stmt-sequence enddo 步长递减1 要求: (1)要提供一个源程序编辑界面,以让用户输入源程序(可保存、打开源程序) (2)可由用户选择是否生成语法树,并可查看所生成的语法树。 (3)应该书写完善的软件文档

2013-01-02

模拟操作系统的页面置换

一、实验名称 模拟操作系统的页面置换 二、实验目的 1、掌握操作系统的页面置换过程,加深理解页式虚拟存储器的实现原理。 2、掌握用随机数生成满足一定条件的指令地址流的方法。 3、掌握页面置换的模拟方法。 三、实验要求与提示 1、 采用一种熟悉的语言,如C、PASCAL或C++等,编制程序。 2、 模拟操作系统采用OPT、FIFO和LRU算法进行页面置换的过程。 3、 设程序中地址范围为0到32767,采用随机数生成256个指令地址,满足50%的地址是顺序执行,25%向前跳,25%向后跳。为满足上述条件,可采取下列方法:设d0=10000,第n个指令地址为dn,第n+1个指令地址为dn+1,n的取值范围为0到255。每次生成一个1到1024范围内的随机数a,如果a落在1到512范围内,则dn+1=dn+1。如果a落在513到768范围内,则设置dn+1为1到dn范围内一个随机数。如果a落在769到1024范围内,则设置dn+1为dn到32767范围内一个随机数。 4、 页面大小的取值范围为1K,2K,4K,8K,16K。按照页面大小将指令地址转化为页号。对于相邻相同的页号,合并为一个。 5、 分配给程序的内存块数取值范围为1块,2块,直到程序的页面数。 6、 分别采用OPT、FIFO和LRU算法对页号序列进行调度,计算出对应的缺页中断率。 7、 打印出页面大小、分配给程序的内存块数、算法名、对应的缺页中断率。 8、 分析页面大小和分配给程序的内存块数对缺页中断率的影响。分析不同的页面置换算法的调度性能。 9、 在上机实现该程序之后,要求写出实验报告,其中包括实验名称、实验目的、实验内容、程序的主要流程图、实验心得和主要源程序清单等。

2012-07-07

用动态规划法求解资源分配问题

实验课程:算法分析与设计 实验名称:用动态规划法求解资源分配问题 (验证型实验) 实验目标: (1)掌握用动态规划方法求解实际问题的基本思路。 (2)进一步理解动态规划方法的实质,巩固设计动态规划算法的基本步骤。 实验任务: (1)设计动态规划算法求解资源分配问题,给出算法的非形式描述。 (2) 在Windows环境下用C 语言实现该算法。计算10个实例,每个实例中n=30, m=10, Ci j为随机产生于范围(0,103)内的整数。记录各实例的数据及执行结果(即最优分配方案、最优分配方案的值)、运行时间。 (3)从理论上分析算法的时间和空间复杂度,并由此解释相应的实验结果。 实验设备及环境: PC;C/C++等编程语言。 实验主要步骤: (1) 根据实验目标,明确实验的具体任务; (2) 分析资源分配问题,获得计算其最优值的递推计算公式; (3) 设计求解问题的动态规划算法,并编写程序实现算法; (4) 设计实验数据并运行程序、记录运行的结果; (5) 分析算法的时间和空间复杂度,并由此解释释相应的实验结果; 问题分析: 问题描述: 某厂根据计划安排,拟将n台相同的设备分配给m个车间,各车间获得这种设备后,可以为国家提供盈利Ci j(i台设备提供给j号车间将得到的利润,1≤i≤n,1≤j≤m) 。问如何分配,才使国家得到最大的盈利? 算法基本思想: 本问题是一简单资源分配问题,由于具有明显的最优子结构,故可以使用动态规划求解,用状态量f[i][j]表示用i台设备分配给前j个车间的最大获利,那么显然有f[i][j] = max{ f[k][j–1] + c[i-k][j] },0<=k<=i。再用p[i][j]表示获得最优解时第j号车间使用的设备数为i-p[i][j],于是从结果倒推往回求即可得到分配方案。程序实现时使用顺推,先枚举车间数,再枚举设备数,再枚举状态转移时用到的设备数,简单3重for循环语句即可完成。时间复杂度为O(n^2*m),空间复杂度为O(n*m),倘若此题只需求最大获利而不必求方案,则状态量可以减少一维,空间复杂度优化为O(n)。

2012-07-07

进程调度的设计与分析实验报告

一、实验名称 进程调度的设计与实现 二、实验目的 1、 综合应用下列知识点设计并实现操作系统的进程调度:邻接表,布尔数组,非阻塞输入,图形用户界面GUI,进程控制块,进程状态转换,多级反馈队列进程调度算法。 2、 加深理解操作系统进程调度的过程。 3、 加深理解多级反馈队列进程调度算法。 三、实验内容与主要设计思想 1、 采用一种熟悉的语言,如C、PASCAL或C++等,编制程序。 2、 采用多级反馈队列调度算法进行进程调度。 3、 每个进程对应一个PCB。在PCB中包括进程标识符pid、进程的状态标识status、进程优先级priority、进程的队列指针next和表示进程生命周期的数据项life(在实际系统中不包括该项)。 4、 创建进程时即创建一个PCB,各个进程的pid都是唯一的,pid是在1到100范围内的一个整数。可以创建一个下标为1到100的布尔数组,“真”表示下标对应的进程标识号是空闲的,“假”表示下标对应的进程标识号已分配给某个进程。 5、 进程状态status的取值为“就绪ready”或“运行run”,刚创建时,状态为“ready”。被进程调度程序选中后变为“run”。 6、 进程优先级priority是0到49范围内的一个随机整数。 7、 进程生命周期life是1到5范围内的一个随机整数。 8、 初始化时,创建一个邻接表,包含50个就绪队列,各就绪队列的进程优先级priority分别是0到49。 9、 为了模拟用户动态提交任务的过程,要求动态创建进程。进入进程调度循环后,每次按ctrl+f即动态创建一个进程,然后将该PCB插入就绪队列中。按ctrl+q退出进程调度循环。 10、 在进程调度循环中,每次选择优先级最大的就绪进程来执行。将其状态从就绪变为运行,通过延时一段时间来模拟该进程执行一个时间片的过程,然后优先级减半,生命周期减一。设计图形用户界面GUI,在窗口中显示该进程和其他所有进程的PCB内容。如果将该运行进程的生命周期不为0,则重新把它变为就绪状态,插入就绪队列中;否则该进程执行完成,撤消其PCB。以上为一次进程调度循环。 11、 在上机实现该程序之后,要求写出实验报告,其中包括实验名称、实验目的、实验内容、程序的主要流程图、实验心得和主要源程序清单等。

2012-06-14

马周游 实验报告.doc

第一部分 实验内容 1.实验目标 (1)熟悉使用回溯法求解问题的基本思路。 (2)掌握回溯算法的程序实现方法。 (3)理解回溯算法的特点。 2. 实验任务 (1)从所给定的题目中选择一题,使用回溯法求解之。 (2)用文字来描述你的算法思路,包括解空间、限界函数、算法主要步骤等。 (3)在Windows环境下使用C/C++语言编程实现算法。 (4)记录运行结果,包括输入数据,问题解答及运行时间。 (5)分析算法最坏情况下时间复杂度和空间复杂度。 (6)谈谈实验后的感想,包括关于该问题或类似问题的求解算法的建议。 3. 实验设备及环境 PC;C/C++等编程语言。 4. 实验主要步骤 (1) 根据实验目标,明确实验的具体任务; (2) 设计求解问题的回溯算法,并编写程序实现算法; (3) 设计实验数据并运行程序、记录运行的结果; (4) 分析算法时空性能; (5) 实验后的心得体会。

2012-06-13

作业进程调度算法设计与实现操作系统实验报告

作业进程调度算法设计与实现操作系统实验报告

2012-05-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除