精华内容
下载资源
问答
  • bdi

    2016-11-22 21:27:20
    一、实例 Username Bill:80 ...bdi指的是bidi隔离 标签运行你设置一段文本,使其脱离其父元素的文本方向设置。 在发布用户评论或其他你无法完全控制的内容时,该标签很有用 四、属性 dir ltr/rtl/auto 可

    一、实例

    <ul>
    <li>Username <bdi>Bill</bdi>:80 points</li>
    <li>Username <bdi>Steve</bdi>: 78 points</li>
    </ul>

    二、浏览器支持

    只有火狐和chrome支持


    三、定义和用法

    bdi指的是bidi隔离

    <bdi>标签运行你设置一段文本,使其脱离其父元素的文本方向设置。

    在发布用户评论或其他你无法完全控制的内容时,该标签很有用


    四、属性

    dir  ltr/rtl/auto  可选,规定<bdi>元素内文本的文本方向,默认为auto

    展开全文
  • Proyecto-BDI-源码

    2021-03-27 22:32:49
    Proyecto-BDI
  • BDI推荐模型

    2015-05-07 21:04:01
    BDI推荐框架,这片文章讲了一个例子,将怎么利用BDI推荐框架给出基于上下文的推荐
  • BDI模型

    2016-01-25 09:48:06
    面向主体(agent)的系统越来越具有广泛的应用价值,在理性主体(agent)的形式化过程中,通常认为主体(agent)的思维状态包括信念、愿望和意图这三个属性,因此BDI模型一直是主体(agent)建模研究的重点。 当前...
    面向主体(agent)的系统越来越具有广泛的应用价值,在理性主体(agent)的形式化过程中,通常认为主体(agent)的思维状态包括信念、愿望和意图这三个属性,因此BDI模型一直是主体(agent)建模研究的重点。
    当前主体(agent)使用的BDI模型一般都是在Cohen和Levesque的正规模态逻辑的意图模型以及Rao和Georgeff的BDI计算数逻辑模型基础上发展起来的,即侧重于形式描述信念(belief)、愿望(desire)和意图(intention),简称BDI,其本质上要解决的问题是如何确定主体(agent)的目标以及如何实现这个目标。
    一个BDI模型包含三种基本成分:
    (1) 信念(Belief)是一个包括了对世界相关的信念、与其它主体(agent)思维趋向相关的信念和自我信念的集合。信念是主体(agent)对世界的认知,包含描述环境特性的数据和描述自身功能的数据,是主体(agent)进行思维活动的基础。
    (2) 愿望(Desire)是主体(agent)的最初动机,是其希望达到的状态或希望保持的状态的集合。主体(agent)希望达到的状态,由此可以激发系统的规划和行动。一般来说,可以表达为主体(agent)对环境状态的一种期待和判断,也就是通过判断该状态是否成立作为Desire是否实现的标志。主体(agent)可以拥有互不相容的愿望,而且也不需要相信它的愿望是绝对可以实现的。
    (3) 意图(Intention)是承诺实现的愿望中选取的当前最需要完成或者最适合完成的一个,是当前主体(agent)将要正在实现的目标,它是属于思维状态的意向方向。当前意图对主体(agent)的当前动作具有指导性的作用。
    基于BDI模型的主体(agent)研究一般分为两个层面,一个就是理论层面,也叫做逻辑层面
    展开全文
  • BDI各个结构体关系

    2020-08-16 17:15:14
    BDI各个结构体关系 每块磁盘对应着一个BDI设备,用struct backing_dev_info表示 系统上所有BDI设备通过struct list_head bdi_list;链表串在一起 一个BDI设备对应一个struct bdi_writeback结构,存放该设备需要处理...

    BDI各个结构体关系

    • 每块磁盘对应着一个BDI设备,用struct backing_dev_info表示
    • 系统上所有BDI设备通过struct list_head bdi_list;链表串在一起
    • 一个BDI设备对应一个struct bdi_writeback结构,存放该设备需要处理的脏页及脏页回写函数
    • struct delayed_work定义了一个延迟任务,其处理函数也就是脏页回写函数,bdi_writeback_workfn
    • struct list_head b_dirty存放该BDI所有dirty inode,但回写时不是在这个链表上处理
    • struct list_head b_io, b_dirty链表上的dirty inode经过dirty_expire_centisecs后,过期才会挂到该链表,进行实际的回写。而且还会对该链表排序,按分区将inode排序,因为同一块磁盘可能有多个分区,每个分区的文件系统可能不同,回写脏页的处理也不尽相同,排序是为了提供效率,避免频繁切换,同时有时候回写任务是针对特定某个分区,这样回写就更快
    • struct list_head b_more_io主要是存放b_io链表处理时无法处理的inode,会先放到这里,避免一致等待inode可用,减少竞争
    • struct list_head work_list链表挂的是该BDI设备所有的回写任务,比如周期回写或者background回写,以及对某个分区的单独回写。回写函数就是通过执行struct wb_writeback_work这一个一个任务,把struct list_head b_io链表中的dirty inode回写到设备。
      在这里插入图片描述
    展开全文
  • BDI bdiAccess 接口定义规范 1. Overview The bdiAccess library can be used to access the BDI functions. With this library, a user can execute the following task: • Read/Write target registers • Read/...
  • BDI-1

    2019-03-15 15:22:46
    kernel-2.6.32以后脏数据的下刷彻底取消了pdflush,而是将此部分功能添加到BDI机制中,并且是为每个设备创建了一个名为“flush-设备主次设备号”的线程,用于脏数据的下刷。 backing_dev_info结构体 struct ...

    kernel-2.6.32以后脏数据的下刷彻底取消了pdflush,而是将此部分功能添加到BDI机制中,并且是为每个设备创建了一个名为“flush-设备主次设备号”的线程,用于脏数据的下刷。

    backing_dev_info结构体

    struct backing_dev_info {
    	struct list_head bdi_list;
    	unsigned long ra_pages;	/* max readahead in PAGE_CACHE_SIZE units */
    	unsigned long state;	/* Always use atomic bitops on this */
    	unsigned int capabilities; /* Device capabilities */
    	congested_fn *congested_fn; /* Function pointer if device is md/dm */
    	void *congested_data;	/* Pointer to aux data for congested func */
    
    	char *name;
    
    	struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS];
    
    	unsigned long bw_time_stamp;	/* last time write bw is updated */
    	unsigned long dirtied_stamp;
    	unsigned long written_stamp;	/* pages written at bw_time_stamp */
    	unsigned long write_bandwidth;	/* the estimated write bandwidth */
    	unsigned long avg_write_bandwidth; /* further smoothed write bw */
    
    	/*
    	 * The base dirty throttle rate, re-calculated on every 200ms.
    	 * All the bdi tasks' dirty rate will be curbed under it.
    	 * @dirty_ratelimit tracks the estimated @balanced_dirty_ratelimit
    	 * in small steps and is much more smooth/stable than the latter.
    	 */
    	unsigned long dirty_ratelimit;
    	unsigned long balanced_dirty_ratelimit;
    
    	struct fprop_local_percpu completions;
    	int dirty_exceeded;
    
    	unsigned int min_ratio;
    	unsigned int max_ratio, max_prop_frac;
    
    	struct bdi_writeback wb;  /* default writeback info for this bdi */
    	spinlock_t wb_lock;	  /* protects work_list */
    
    	struct list_head work_list;
    
    	struct device *dev;
    
    	struct timer_list laptop_mode_wb_timer;
    
    #ifdef CONFIG_DEBUG_FS
    	struct dentry *debug_dir;
    	struct dentry *debug_stats;
    #endif
    };

    对应的state状态:

    enum bdi_state {
    	BDI_wb_alloc,		/* Default embedded wb allocated */ 表示该设备上已经申请出一个下刷任务
    	BDI_async_congested,	/* The async (write) queue is getting full */
    	BDI_sync_congested,	/* The sync queue is getting full */
    	BDI_REGISTERED,		/* bdi_register() was done */ 表示该设备已经创建了flush线程
    	BDI_writeback_running,	/* Writeback is in progress */
    	BDI_unused,		/* Available bits start here */
    };

    用于sys接口计数统计的数值:

    enum bdi_stat_item {
    	BDI_RECLAIMABLE,
    	BDI_WRITEBACK,
    	BDI_DIRTIED,
    	BDI_WRITTEN,
    	NR_BDI_STAT_ITEMS
    };

    初始化函数blk_alloc_queue_node,初始化ra_pages、state、capabilities、unplug_io_fn、unplug_io_data、name,bdi_init函数初始化其他的值。

    struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
    {
    	struct request_queue *q;
    	int err;
    
    	q = kmem_cache_alloc_node(blk_requestq_cachep,
    				gfp_mask | __GFP_ZERO, node_id);
    	if (!q)
    		return NULL;
    
    	q->id = ida_simple_get(&blk_queue_ida, 0, 0, gfp_mask);
    	if (q->id < 0)
    		goto fail_q;
    
    	q->backing_dev_info.ra_pages =
    			(VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE;
    	q->backing_dev_info.state = 0;
    	q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY;
    	q->backing_dev_info.name = "block";
    	q->node = node_id;
    
    	err = bdi_init(&q->backing_dev_info);
    
    	setup_timer(&q->backing_dev_info.laptop_mode_wb_timer,
    		    laptop_mode_timer_fn, (unsigned long) q); 设置5秒超时执行下刷函数
    	setup_timer(&q->timeout, blk_rq_timed_out_timer, (unsigned long) q);

    backing_dev_info结构中描述每个设备的一些bdi状态信息,BDI中提供了一个sys接口,在/sys/kernel/debug/bdi目录下,每个设备以设备号区分,可以查看每个设备与bdi有关的状态等。

    下面是CentOS的信息:

    海思3520的内核3.10.y没有此信息,但是看内核中是由开CONFIG_DEBUG_FS宏的,也没有对应的打印,为啥?

    内核启动

    1.  创建名为sync_supers的线程,此线程由定时器来唤醒,此外无其他唤醒模式。每5s钟被唤醒执行一次函数sync_supers,用来下刷系统super_blocks链表中所有的元数据块信息。没看到代码实现啊?

    2、定义一个默认的结构backing_dev_info,同时会创建一个线程bdi-default。

    struct backing_dev_info default_backing_dev_info = {
    	.name		= "default",
    	.ra_pages	= VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE,
    	.state		= 0,
    	.capabilities	= BDI_CAP_MAP_COPY,
    };
    EXPORT_SYMBOL_GPL(default_backing_dev_info);
    static int __init default_bdi_init(void)
    {
    	int err;
    
    	bdi_wq = alloc_workqueue("writeback", WQ_MEM_RECLAIM | WQ_FREEZABLE |
    					      WQ_UNBOUND | WQ_SYSFS, 0);
    	if (!bdi_wq)
    		return -ENOMEM;
    
    	err = bdi_init(&default_backing_dev_info);
    	if (!err)
    		bdi_register(&default_backing_dev_info, NULL, "default");
    	err = bdi_init(&noop_backing_dev_info);
    
    	return err;
    }
    subsys_initcall(default_bdi_init);

    3、有新的设备分区添加时,add_disk会为每个设备定义一个结构backing_dev_info,然后将此结构挂到bdi_list链表尾;

    void add_disk(struct gendisk *disk)
    {
    	struct backing_dev_info *bdi;
    	/* Register BDI before referencing it from bdev */
    	bdi = &disk->queue->backing_dev_info;
    	bdi_register_dev(bdi, disk_devt(disk));
    int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev)
    {
    	return bdi_register(bdi, NULL, "%u:%u", MAJOR(dev), MINOR(dev));
    }
    EXPORT_SYMBOL(bdi_register_dev);
    int bdi_register(struct backing_dev_info *bdi, struct device *parent,
    		const char *fmt, ...)
    {
    	va_list args;
    	struct device *dev;
    
    	if (bdi->dev)	/* The driver needs to use separate queues per device */
    		return 0;
    
    	va_start(args, fmt);
    	dev = device_create_vargs(bdi_class, parent, MKDEV(0, 0), bdi, fmt, args);
    	va_end(args);
    	if (IS_ERR(dev))
    		return PTR_ERR(dev);
    
    	bdi->dev = dev;
    
    	bdi_debug_register(bdi, dev_name(dev));
    	set_bit(BDI_REGISTERED, &bdi->state);
    
    	spin_lock_bh(&bdi_lock);
    	list_add_tail_rcu(&bdi->bdi_list, &bdi_list);
    	spin_unlock_bh(&bdi_lock);
    
    	trace_writeback_bdi_register(bdi);
    	return 0;
    }
    EXPORT_SYMBOL(bdi_register);

    下刷动作

    wb_writeback_work用来描述一次下刷任务的信息,如该次下刷任务以何种模式下刷,下刷多少数据等,多用在唤醒下刷线程之前定义。

    struct wb_writeback_work {
    	long nr_pages;
    	struct super_block *sb;
    	unsigned long *older_than_this;
    	enum writeback_sync_modes sync_mode;
    	unsigned int tagged_writepages:1;
    	unsigned int for_kupdate:1;
    	unsigned int range_cyclic:1;
    	unsigned int for_background:1;
    	enum wb_reason reason;		/* why was writeback initiated? */
    
    	struct list_head list;		/* pending work list */
    	struct completion *done;	/* set if the caller waits */
    };

    触发下刷的操作时,可以将此work挂到一个工作队列中,由下刷线程来完成任务;也可以用此结构的信息,指导结构writeback_control中的值,然后直接调用下刷函数,完成工作任务。

     

    展开全文
  • BDI2000的配置使用

    2014-11-09 16:03:27
    BDI2000使用文档(BDI2000的配置使用).
  • HTML 的bdi标签

    2019-12-16 17:07:52
    bdi>标签之前,建议你了解一下控制文字方向的标签:<bdo>标签 2、HTML中<bdi>标签的作用是从周围文字方向设置中隔离出来:<bdi> 标签允许您设置一段文本,使其脱离其父元素的文本方向设置。 3...
  • BDI3000 ARMv8 用户手册

    2018-05-05 10:39:45
    BDI3000 ARMv8 用户手册 bdiGDB enhances the GNU debugger (GDB), with JTAG debugging for ARMv8 based targets. With the built-in Ethernet interface you get a very fast download speed. No target ...
  • HTML <bdi> 标签

    2020-08-19 15:17:02
    bdi> 标签 bdi 指的是 bidi 隔离。 <bdi> 标签允许您设置一段文本,使其脱离其父元素的文本方向设置。 实例 <ul> <li>Username <bdi>Bill</bdi>:80 points</li> <li>...
  • 利用BDI代理和拓扑理论挖掘在线社交网络
  • Abatron公司新推出BDI3000高速BDM/JTAG仿真器。这为成功BDI家族的仿真器产品增添了新的血液。BDI家族产品以高性能、灵活和极佳的产品质量享誉全球。  BDI3000的BDM接口支持的处理器有ColdFire, PowerPC 5xx/8xx,...
  • BDI-Agent应用系统的集成开发环境的实现
  • <div><p>The images /images/sample-bdi.png and /images/sample-not-bdi.png has no alt attribute, which is mandatory if I understand correctly.</p><p>该提问来源于开源项目:whatwg/html</p></div>
  • 基于BDI模型的多机器人智能体系统设计pdf,基于BDI模型的多机器人智能体系统设计
  • BDI Agent模型结构

    千次阅读 2018-08-27 10:53:43
    1. BDI的概念 主体的信念-愿望-意图(Belief-Desire-Intention, BDI)概念的哲学观点源自Bratman。   信念——Agent具有的关于环境信息、其他Agent信息和自身信息的集合。信念不同于知识,知识是为真的信念。 ...
  • BDI3000 GDB中文手册

    热门讨论 2014-01-23 16:09:33
    BDI3000/2000 是一款功能强大而且非常稳定耐用的JTAG/BDM仿真器,可以在 Windows/Linux平台下使用,通过以太网方式进行远程调试。它可以显示、修改通用寄存器,显 示、修改特殊功能寄存器,显示、修改RAM中的数据,...
  • 基于Agent的应急响应建模仿真具有优越性和现实性,通过分析应急响应体系中Agent主体所应具有的特征——反应性、推理性、互动性和能动性,构建了基于BDI模型的反应+思考+通信的混合型Agent结构,并在NetLogo仿真...
  • 针对BDI模型在不确定领域应用的薄弱,提出了一种改进的BDI(Beliefs—Desires—Intentions)模型。以BDI体系结构为基础,结合贝叶斯网络,建立了智能体对可能世界的认知表示;通过贝叶斯网络推理,实现了对达成目标...
  • Bdi2000仿真器中文手册

    2014-11-09 11:01:30
    该文档可以帮助到用BDI2000进行调试的同仁。
  • BDI-3000使用手册

    2013-06-26 15:26:29
    BDI—3000的使用手册:bdiGDB enhances the GNU debugger (GDB), with JTAG debugging for ARM11 and Cortex-A8/M3 based targets. With the built-in Ethernet interface you get a very fast code download speed....
  • In this letter, the differences between the fluorescence spectra of lactobacillus casei-BDI (Lc-BDI) and Streptococcus thermophilus (St) are shown, and the second-order derivative spectra are used to...
  • 基于Q-learning的不确定环境BDI Agent最优策略规划研究
  • 为提升非线性BDI 指数的预测效果,分析了多种预 测模型对BDI 指数的单步及多步预测结果,借助“分解-重 构-预测”思路,设计构建了VMD-FFT-LSTM 组合预测模 型. 首先,通过VMD 算法分解出BDI 指数的IMF 分量; 然 后...
  • HTML <bdi> 标签

    2018-09-28 11:47:01
    实例把用户名从周围的文本方向设置中隔离出来:<ul> <li>Username<bdi>Bill</bdi>:80points</li> <li>Username<...
  • 论文研究-基于跳跃时间和幅度的BDI指数波动幂律分布特性研究.pdf, BDI指数是国际航运市场的风向标,摸清BDI指数波动幂律分布特性,对于进一步掌握运费规律、预测BDI趋势...
  • 论文研究-基于EMD-WA模型的BDI指数波动周期特征研究.pdf, 运用结合EMD分解和小波分析构建的EMD-WA模型,分析了国际干散货市场BDI指数的波动周期特征.通过EMD方法对BDI...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 657
精华内容 262
关键字:

bdi