169it科技资讯
169it -->


当前位置:  建站>运营/SEO
本页文章导读:
    ▪Error, some other host already uses address      rhel 5.9,在修改完网卡配置信息重启网卡之后提示如下无法激活网卡: Error, some other host already uses address 确认配置的IP地址是没有在用的,解决办法找到了,但是没找到什么原因; 注释/etc/sysco......
    ▪修改uCOS_II以实现“优先级+时间片”联合调度       本文在uCOS II上增加时间片任务调度的的原理: 对设置为同优先级的任务使用时间片调度,不同优先级任务仍然使用uCOS II的优先级调度策略。在同优先级任务的时间片调度中,所有任务暂时......
    ▪weblogic开发模式与生产模式介绍      weblogic开发模式与生产模式介绍       开发模式:该模式启用自动部署 生产模式:该模式关闭自动部署 weblogic server 三种部署方法:自动部署、控制台部署、命令部署 自动部署:当......
      最新IT科技资讯推荐: -1

[1]Error, some other host already uses address
    来源: 互联网  发布时间: 2013-11-01
rhel 5.9,在修改完网卡配置信息重启网卡之后提示如下无法激活网卡:
Error, some other host already uses address
确认配置的IP地址是没有在用的,解决办法找到了,但是没找到什么原因;
注释/etc/sysconfig/network-scripts/ifup-eth文件内容:

         #if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then
          #  net_log $"Error, some other host already uses address ${IPADDR}."
          #  exit 1
         #fi
-EOF-        
作者:gtlions 发表于2013-8-20 15:10:48 原文链接
阅读:0 评论:0 查看评论

    
[2]修改uCOS_II以实现“优先级+时间片”联合调度
    来源: 互联网  发布时间: 2013-11-01


本文在uCOS II上增加时间片任务调度的的原理:

对设置为同优先级的任务使用时间片调度,不同优先级任务仍然使用uCOS II的优先级调度策略。在同优先级任务的时间片调度中,所有任务暂时时间片长度固定,时间片的调度使用FIFO(先进先出)队列。


整体的描述参看下图。


上图中假设有3个优先级为5的任务,3个优先级为8的任务。纵向,第一列的OS_TCB形成OSTCBList双向链表(通过OSTCBNext和OSTCBPrev指针,这是原uCOS II系统已经有的部分)。横向,通过OSPSPrev和OSPSNext指针形成时间片链表(实际上是FIFO),这部分是我们在uCOS II上要增加的内容。第一列的任务每当有任务时间片用完后将挪到队列尾,从FIFO中选择下一个任务,这就是本文的时间片调度的过程。总体上看来,不同优先级使用了uCOS II原有的优先级调度策略,相同优先级之间增加了时间片调度策略,因此本文称为“优先级+时间片”联合调度。


下面我们列出实现时间片调度要修改的一些结构和函数,我们可以通过调试跟踪了解uCOS II的机理,从而理解为什么要这么做。

1 修改结构体OS_TCB(ucos_ii.h文件中)

增加4个成员变量用于时间片调度。

struct os_tcb {
	...

	/* 增加下面4个成员 */
	struct os_tcb *OSPSNext;  /* 同一优先级下,每个任务的后向指针 */
    struct os_tcb *OSPSPrev;  /* 同一优先级下,每个任务的前向指针 */
    INT8U OSPSLen;            /* 该任务分配的时间片             */
    INT8U OSPSCurLen;         /* 该任务当前剩下的时间片          */
} OS_TCB;


2 修改OS_TCBInit任务结构体初始化函数(os_core.c文件)

在OS_TCBInit中增加时间片长度的初始化,我们可以先在os_cfg_r.h中宏定义一个时间片长度用于不同情况下的配置,

#define TIME_SLICE_LEN            10

OS_TCBInit函数中增加结构体成员初始化

ptcb->OSPSLen = TIME_SLICE_LEN;
ptcb->OSPSCurLen = TIME_SLICE_LEN;
ptcb->OSPSNext = (OS_TCB*)0;
ptcb->OSPSPrev = (OS_TCB*)0;

当出现同优先级的情况时,任务控制块插入到时间片链表中而不是优先级链表中,OS_TCBInit函数中要增加将任务插入到时间片链表的过程,我写的一个示例如下:

if (ptcb != (OS_TCB *)0) {
	...
	
	OSTCBPrioTbl[prio] = ptcb;
	if (OSTCBList != (OS_TCB *) 0) { /* 不存在同优先级任务, 按照uCOS ii方法链接到OSTCBList */
		ptcb->OSTCBNext    = OSTCBList; /* Link into TCB chain                      */
		ptcb->OSTCBPrev    = (OS_TCB *)0;
		if (OSTCBList != (OS_TCB *)0) {
		    OSTCBList->OSTCBPrev = ptcb;
		}
		OSTCBList               = ptcb;
		OSRdyGrp               |= ptcb->OSTCBBitY; /* Make task ready to run */
		OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
	} else {  /* 出现同优先级情况,链接到时间片链表 */
		while(ptcb1->OSPSNext!=(OS_TCB*) 0)
		{
		   ptcb1=ptcb1->OSPSNext;   /* move to the rear of time slice list */
		}
		ptcb1->OSPSNext = ptcb;
		ptcb->OSPSPrev = ptcb1; 
		ptcb->OSPSNext=(OS_TCB*) 0;

		ptcb->OSTCBNext = (OS_TCB *)0;
		ptcb->OSTCBPrev = (OS_TCB *)0;
	}

	OSTaskCtr++;  /* Increment the #tasks counter             */
	OS_EXIT_CRITICAL();
	return (OS_ERR_NONE);
}


3 修改时钟中断函数OSTimeTick(os_core.c文件)

增加时间片调度的内容,这是时间片调度的主要部分。给出一个示例:

OSTimeTick (void)
{
	...
	OS_TCB *ptcb1;
  
	if (OSRunning == TRUE)
	{
		ptcb = OSTCBList;		/* Point at first TCB in TCB list           */
		while (ptcb->OSTCBPrio != OS_IDLE_PRIO)
		{			/* Go through all TCBs in TCB list          */
		  	OS_ENTER_CRITICAL ();

			/* delay time out */
			...

			/* time slice count down */
			if (ptcb->OSPSCurLen != 0) {
			    --ptcb->OSPSCurLen;
			} else {  /* time slice out */
			    /* reload time slice */
			    ptcb->OSPSCurLen = ptcb->OSPSLen;

				ptcb1 = ptcb->OSPSNext;
				if (ptcb1 != (OS_TCB*) 0) {  /* there are some tasks with the same priority */
	 				/* (1) link new to priority-level list */
		            ptcb1->OSTCBNext = ptcb->OSTCBNext;
					ptcb1->OSTCBPrev = ptcb->OSTCBPrev;
					if (ptcb->OSTCBNext != (OS_TCB *)0) {
					    ptcb->OSTCBNext->OSTCBPrev = ptcb1;    
					}
					if (ptcb->OSTCBPrev != (OS_TCB *)0) {
					    ptcb->OSTCBPrev->OSTCBNext = ptcb1;
					}
					ptcb->OSTCBPrev = (OS_TCB *)0;
					ptcb->OSTCBNext = (OS_TCB *)0;

					/* (2) update OSTCBList if TCBcur is OSTCBList*/
	                if (ptcb == OSTCBList) {
					    OSTCBList = ptcb1;   
					}			

					/* (3) Compute X, Y, BitX and BitY */
					ptcb1->OSTCBY = ptcb1->OSTCBPrio >> 3;	 
					ptcb1->OSTCBBitY = OSMapTbl[ptcb1->OSTCBY]; 
					ptcb1->OSTCBX = ptcb1->OSTCBPrio & 0x07;                        
					ptcb1->OSTCBBitX = OSMapTbl[ptcb1->OSTCBX];	
					
				    /* (4) set task to be ready */
					if (ptcb1->OSTCBDly == 0) {
						OSRdyGrp |= OSMapTbl[ptcb1->OSTCBY];
						OSRdyTbl[ptcb1->OSTCBY] |= OSMapTbl[ptcb1->OSTCBX];
					}							

		            /* (5) move ptcb to the rear of queue */					    
		            while(ptcb1->OSPSNext!=(OS_TCB*) 0)
		            {
		                ptcb1=ptcb1->OSPSNext;
		            }
		            ptcb1->OSPSNext = ptcb;	   
		            ptcb->OSPSPrev = ptcb1; 
		            ptcb->OSPSNext=(OS_TCB*) 0;

					/* (6) set OSTCBPrioTbl for Context switch */
					OSTCBPrioTbl[ptcb1->OSTCBPrio]=ptcb1;  
				} else {
				    // do nothing
				}	
			}

			/* 
			 * (7) don't forgot that after time slice 
			 * schedule, ptcb->OSTCBNext==NULL 
			 */
			if (ptcb->OSTCBNext != (OS_TCB*)0) {
				ptcb = ptcb->OSTCBNext;
			} else if (ptcb1->OSTCBNext != (OS_TCB*)0) {
			    ptcb = ptcb1->OSTCBNext;
			} else {
			    break;
			}
			
			OS_EXIT_CRITICAL ();
		}
	}
}

OK,修改好上面的内容就大致实现了在uCOS II上增加时间片调度的过程,通过修改时间片长度TIME_SLICE_LEN可以验证时间片长度对任务调度的影响。本文最后在硬件平台STM32F103RB上测试通过,但因为时间片的引入而且未对程序做相关优化,因此时间片调度的实时性提高上还有待完善。



作者:xiahouzuoxin 发表于2013-8-20 16:10:37 原文链接
阅读:3 评论:0 查看评论

    
[3]weblogic开发模式与生产模式介绍
    来源: 互联网  发布时间: 2013-11-01

weblogic开发模式与生产模式介绍

 

 

 

开发模式:该模式启用自动部署

生产模式:该模式关闭自动部署

weblogic server 三种部署方法:自动部署、控制台部署、命令部署

自动部署:当其处于启用状态时,管理服务器将建设指定的目录以确定是否有新建的或者更新的应用程序,Weblogic server 将自动部署该目录中的所有文件或目录。

默认情况下,自动部署目录为域的"/home/weblogic/bea/user_projects/domains/domainname/autodeploy"子目录,在autodeploy目录中找到任何新文件都将自动部署,applications目录中编辑或者修改的归档文件将会重新部署。

如果应用程序处于展开格式,则创建一个名为REDEPLOY的空文件,将其放置在WEB-INF目录中,然后当应用程序需要重新部署时,请修改该文件更新其时间戳,服务器将定期检查对REDEPLOY文件时间戳的更新。                                                                                                                                                                                                                                                                                                                最后,当前存在的applications目录中,后来被删除的文件自动从应用服务器中取消部署。

控制台部署:登陆控制台,选择部署项目,进行下一步,下一步部署

命令部署:WLST (这个相对用的较少)

 

 

其他地方借鉴的介绍(个人认为比较靠谱):

可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一.或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true.

就是这一段
@rem Set Production Mode.   When set to true, the server starts up in production mode.   When
@rem set to false, the server starts up in development mode.   The default is false.
set STARTMODE=true
---------------------------------------------------------------
据weblogic技术工程师说,产品模式是为保证速度快放在指定目录下,他的包不会自动更新。开发模式是比较自由的,它保证开发灵活性,随便把它扔哪里都会自动更新,这样会影响速度。一般地开发好的产品,都给客户用产品模式部署。
---------------------------------------------------------------

You can start your domain in one of two modes, development or production. You use development mode while you are developing your applications. Development mode uses a relaxed security configuration and allows you to auto-deploy applications. You use production mode when your application is running in its final form. A production domain uses full security and may use clusters or other advanced features.
---------------------------------------------------------------

开发模式下,主要是为了满足用户的应用经常变化的需求,server会自动刷新你的应用,可以立即看到更改的最新页面,但是这样就会影响效率。所以,在正式运行的环境,一般应用变化较少,建议选择产品模式提高性能。
---------------------------------------------------------------


开发模式下支持热部署,同时启动的速度慢,运行性能不如产品模式。

 

 

生产模式与开发模式转换:

1、生产模式--》开发模式

    将domain路径下%DOMAIN_HOME%\bin\setDomainEnv.cmd文件set PRODUCTION_MODE=true 更改为 set PRODUCTION_MODE=false 或set PRODUCTION_MODE=

    将%DOMAIN_HOME%\config\config.xml文件中<production-mode-enabled>true</production-mode-enabled>更改为<production-mode-enabled>false</production-mode-enabled>或者直接删掉。

2、开发模式--》生产模式

    将domain路径下%DOMAIN_HOME%\bin\setDomainEnv.cmd文件set PRODUCTION_MODE= 更改为 set PRODUCTION_MODE=true

ps:上面是Windows环境下更改配置的方法,linux环境下很类似。

作者:xyy27 发表于2013-8-20 15:29:21 原文链接
阅读:52 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允
▪Dynamics CRM 2013 初体验(4):不再被支持的功    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问    ▪Win7实现快速启动栏并实现靠左边的终极操作    ▪《深入理解Nginx》阅读与实践(二):配置项
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号