摘要:
cache 平均访存时间=命中时间+不命中率不命中开销 CPU时间=(CPU执行周期数+存储器停顿周期数)×时钟周期时间 = (CPU执行周期数+访存次数不命中率不命中开销)×时钟周期时间 = IC(CPI+访存次数/指令数不命中率不命中开销)×时钟周期时间 性能改进 降低不命中率 减少不命中开销
阅读全文
posted @ 2026-05-10 16:23
Radarman108
阅读(8)
推荐(0)
摘要:
实现进程同步的工具 共享资源的数据结构+一组过程(进行pv操作的函数)-->封装 入口等待队列 紧急等待队列 内部等待队列 入口等待队列 那些想进入管程,但因为里面已经有人而被锁在外面的进程,在这里排队 12位 内部等待队列 段界限 属性 紧急等待队列 段界限 属性
阅读全文
posted @ 2026-05-03 12:37
Radarman108
阅读(3)
推荐(0)
posted @ 2026-05-03 11:57
Radarman108
阅读(5)
推荐(0)
摘要:
段选择符 13位索引 TI RPL 13位索引:去描述符表(GDT或LDT)里查第几项,共可索引8192个描述符 TI位:0→查GDT(全局描述符表);1→查LDT(局部描述符表) RPL(请求特权级):你请求这次访问时“声称”的权限等级(0~3),用来做特权级检查 段描述符表GDT/LDT 非系统
阅读全文
posted @ 2026-04-26 14:03
Radarman108
阅读(3)
推荐(0)
摘要:
producer and consumer mutex=1 empty=k full=0 procedure producer produce a product p(empty) //申请一个空位 p(mutex) //互斥操作队列 B[in]=product in=(in+1)%k v(mute
阅读全文
posted @ 2026-04-18 16:06
Radarman108
阅读(4)
推荐(0)
摘要:
软件算法 dekker算法 p0: flag[0]=1 while(flag[1]==1){ if(turn==1){ flag[0]=0 while(turn==1); flag[0]=1 } } //临界区 turn=1 flag[0]=0 p1: flag[1]=1 while(flag[0]
阅读全文
posted @ 2026-04-15 21:02
Radarman108
阅读(4)
推荐(0)
摘要:
prime O(n^2) 从一点开始选择距离最小的点扩大集合U至整个图G,维护距离数组表示未加入集合的点到集合的最小距离 /* d[N]距离数组 vis[N]是否加入集合 */ d[1] = 0;//从点1开始 int ans = 0; int flag = 1;//图是否联通 for (int i
阅读全文
posted @ 2025-11-14 18:57
Radarman108
阅读(11)
推荐(0)
摘要:
处理多组图时 vector<pair<int,int>>e[N]需要在每次新建图时清空 /* 错误操作: */ e.clear(); /* 正确操作: */ for(int i=1;i<=n;i++){ e[i].clear(); }
阅读全文
posted @ 2025-11-08 17:41
Radarman108
阅读(11)
推荐(0)
摘要:
tarjan /* dfs1 dep[N] siz[N] son[N] fa[N] dfs2 top[N] */ node* tarjan(node* a, node* b) { if (top[a] == NULL || top[b] == NULL)return NULL; while (top
阅读全文
posted @ 2025-11-07 19:04
Radarman108
阅读(11)
推荐(0)
摘要:
dijkstra 单源最短路 O(mn) O(mlogn)优先队列优化 理解:点与源最近的距离等于直接边权或中转后和距离 贪心思路-选择已探明的点中距离最小的点 只有从距离最小的点中转的点距离才会最小 /* 数据存储形式 带权邻接表 vector<pair<int, int>>e[N]; 辅助数组
阅读全文
posted @ 2025-11-07 14:41
Radarman108
阅读(9)
推荐(0)