首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Tool之Simulator

    Simulator可以模拟硬件设备并运行VxWorks系统。这个模拟的系统可以提供VxWorks的大部分标准功能,包括网络、Shell等等。而且它的构建过程与构建真实硬件设备镜像的过程也基本是一样的。有了它,我们就可以脱离硬件设备,直接在Host上开发、运行、测试VxWorks应用。这样在项目开发阶段,尽可能的减少了对硬件设备的依赖。而外界与这个VxWorks系统进行交互的应用程序,是区分不出它是模拟设备还是真实的硬件设备。因此,除了可以加快软件开发进度,Simulator在很多领域也可以给我们提供帮助,例如教学、项目展示等。 Simulator对应用层提供的API与真实设备上的API没有什么区别,有区别的仅是对外设的访问,也就是无法提供一些外设的驱动程序。Simulator至少可以模拟以下硬件或功能

    03

    无锁环形缓冲区的详细解释

    由以下博客的分析可以知道,内核的kfifo使用了很多技巧以实现其高效性。比如,通过限定写入的数据不能溢出和内存屏障实现在单线程写单线程读的情况下不使用锁。因为锁是使用在共享资源可能存在冲突的情况下。还用设置buffer缓冲区的大小为2的幂次方,以简化求模运算,这样求模运算就演变为 (fifo->in & (fifo->size – 1))。通过使用unsigned int为kfifo的下标,可以不用考虑每次下标超过size时对下表进行取模运算赋值,这里使用到了无符号整数的溢出回零的特性。由于指示读写指针的下标一直在增加,没有进行取模运算,知道其溢出,在这种情况下写满和读完就是不一样的标志,写满是两者指针之差为fifo->size,读完的标志是两者指针相等。后面有一篇博客还介绍了VxWorks下的环形缓冲区的实现机制点击打开链接,从而可以看出linux下的fifo的灵巧性和高效性。

    03

    The Linux Scheduler: a Decade of Wasted Cores 译文 一

    ​ 作为资源管理的核心部分,OS的线程调度器必须保持下面这样简单,不变的特性: 确保ready状态的线程总是被调度到有效的CPU核上。虽然它看起来是简单的,我们发现这个不变性在Linux上经常被打破。当ready状态的线程在runqueue中等待时,有些CPU核却还会空闲几秒。以我们的经验,这类性能方面的问题会导致重度依赖同步的应用的性能成倍的下降,针对Kernel编译会多造成高达13%的延迟,针对广泛使用的商用数据库会造成23%的吞吐量降低。传统的测试技术和调试工具对于确认和了解这类问题是无效的,因此这些问题的症状经常是难以捕获的。为了能够推动我们的调查,我们构建了新的工具来在线检测这种违反不变性的情况并且将调度行为可视化。这些工具是简单的,易于在多个kernel版本间移植的并且使用的代价很小。我们相信这些工具将成为内核开发者工具链的一部分来帮助其避免这类问题的出现。

    01
    领券