针对末级共享缓存众核处理器架构的操作系统面临的一个主要问题是共享资源和高速缓存的并发访问冲突问题,表现形式是对共享资源的竞争访问开销随CPU核数的增加成超线性递增的锁抖动现象(lock trashing),以及任务无法有效共用共享高速缓存导致随CPU核数增加高速缓存利用率反而急剧下降的高速缓存抖动现象(cache trashing)。本课题将采用在线分析任务的数据访问模式,并对内核中竞争访问开销与竞争资源的任务所占CPU核数/位置的内在关系进行建模,设计新的锁机制,并结合调度迁移设置合理的任务迁移时机以及CPU核数量/位置,避免锁抖动现象。另一方面,本课题基于数据访问临近度和局部性的任务分类和迁移策略对访问资源的任务片段进行拆分和分类,通过结合调度的内存区间隔离管理把访问相近内存和无共享冲突的任务尽量放在共享高速缓存的CPU核上运行,实现"数据共享的专核专用",以避免高速缓存抖动现象。
many-core architecture;operating system;parallel computing;;
采用共享最后一级缓存的众核处理器架构设计面临的一个主要挑战是众核(manycore)对共享资源和高速缓存的访问冲突与重用问题,表现形式是对共享资源的竞争访问开销随 CPU 核数的增加成超线性的递增的锁抖动现象(lock trashing) ,以及多线程无法有效共用共享高速缓存导致随 CPU 核数增加高速缓存利用率反而急剧下降的高速缓存抖动现象(cache trashing)。本课题将采用在线分析内核线程的数据访问模式,并对内核线程的竞争访问开销与竞争资源的线程所占 CPU 核数/位置的内在关系进行建模,并结合调度迁移设置合理的线程迁移时机以及 CPU 核数量/位置,避免锁抖动现象。另一方面,本课题基于数据访问临近度和局部性的线程分类和迁移策略对访问资源的线程片段进行拆分和分类,把访问相近资源和无共享冲突的线程尽量放在共享高速缓存的 CPU 核上运行,实现“数据共享的专核专用”,以避免高速缓存抖动现象。