大一下第八周总结4.19

这周两次课老师讲了背包dp,剩下的时间就是刷题刷题刷题!!!

1.写了两场cf的比赛,还是就能出AB两个题

2.再就是周六写了两场比赛的题,在山科同学的帮助下获得了山科 蓝桥杯校内模拟赛的试题 ,然后又参加了科大讯飞杯,都写了赛后总结

蓝桥杯的比赛形式我有点不适应,竟然还有填空题…,但是都比较简单,应该是让选手练练手,找找状态的。编程题也没法提交代码在线测评,比较难受,只能自己造数据测试;前边的题做的还算可以,最后两道题是真的难,都没啥思路,后续再找题解看看。
科大讯飞杯的题量真大…,只做了前面5道题。好像都没用到啥算法知识,就出题了。后面几道题再找时间做做…

3.还有就是老师布置的dp训练题,这几天光去关注其他的比赛了,反而忽略了最基本的练习题…

做的几道都是老师上课讲过的例题,老师上课讲的时候像是听明白了,但是自己再做的时候就是另一码事了,还是稀里糊涂的。老师讲的东西还不是我自己的东西,还需要消化吸收转化为自己的知识。

今天学长讲了一些关于cf的问题,说到了 补题 这个事情,对我启发很大,这是我之前一直忽略的问题,每次做完比赛都是写写做出来的题的题解,没去关注过没做出来的题,其实我忽略的东西才是最重要的。我这样子很难有提高。

<think>好的,我需要回答用户关于Linux内核4.19版本中struct page的小的问题。首先,我得确认struct page在Linux内核中的定义和作用。struct page是内核用来管理物理内存页的数据结构,每个物理页对应一个这样的结构体。不同内核版本可能会有差异,所以必须确认是4.19版本的。 接下来,我需要找到4.19内核源码中的struct page定义。通常,这个结构体定义在include/linux/mm_types.h文件中。我需要检查该版本的源码,查看struct page的各个成员变量,计算每个成员的小,并考虑编译器对齐带来的影响。 然后,考虑到struct page在不同配置下可能有变化,比如是否启用内存调试功能(如CONFIG_DEBUG_VM)、是否支持透明页(CONFIG_TRANSPARENT_HUGEPAGE)等,这些编译选项可能会增减成员变量,从而影响结构体的小。因此,需要指出小可能因配置而异,但给出一般情况下的常见值。 另外,用户可能想知道如何自行验证struct page的小。可以建议他们使用sizeof(struct page)在内核模块中打印,或者使用pahole工具来分析结构体的布局和小。 最后,需要将这些信息组织成清晰的中文回答,分步骤解释,确保用户理解struct page的小不是固定不变的,而是依赖于具体的配置和架构,同时提供典型情况下的参考值。</think>Linux内核4.19版本中`struct page`的小会根据架构和内核配置有所不同,以下是关键分析步骤: 1. **基础结构体定义** 在`include/linux/mm_types.h`中,`struct page`包含以下核心成员: - `unsigned long flags` (8字节,64位系统) - 联合体`union`:包含`_mapcount`、`page_type`等(通常4字节) - `atomic_t _refcount` (4字节) - 内存管理相关的`struct list_head lru` (16字节) - 地址空间指针`void* virtual` (8字节) - 其他调试/特性相关字段 2. **典型小计算** 在标准x86_64配置(未启用特殊调试选项)中: ```c struct page { unsigned long flags; // 8 union { ... }; // 4 atomic_t _refcount; // 4 struct list_head lru; // 16 void *virtual; // 8 /* 其他可选字段 */ // ≈0-20 }; ``` 对齐后总小通常在32~64字节之间,最常见为**64字节**(缓存行对齐优化) 3. **影响因素** - **架构差异**:ARM64与x86_64可能有不同对齐要求 - **内核配置**: - `CONFIG_DEBUG_VM`:增加调试字段 - `CONFIG_IDLE_PAGE_TRACKING`:添加额外标记 - 透明页/HugeTLB支持会增加联合体复杂度 4. **验证方法** - **内核模块打印**: ```c printk(KERN_INFO "sizeof(struct page)=%zu\n", sizeof(struct page)); ``` - **pahole工具分析**: ```bash pahole -C page vmlinux ``` 结论:在标准x86_64环境下,kernel 4.19的`struct page`通常为**64字节**,但实际值需结合具体配置验证。内存敏感场景建议通过上述方法直接测量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值