标签:efi front 系统调用 机制 执行 打开 ring 中断 访问
今天再面阿里,只面了一个多小时,莫非是凉了。。。
刚开始是问简历中的问题
集中在linux内核上
Q:linux内核你都看过那些模块?
A:启动程序和进程调度模块
Q:那进程都包含什么资源?
A:用户栈,寄存器跟内存(页)
Q:进程中都有哪些段?
A:我用的intel8086一般会分配数据段,堆栈段跟代码段
Q:那你知道线程会分配什么资源吗?
A:用户栈,寄存器,不再分配内存,跟父进程共用
Q:好,那你知道如果A,B两个线程,同时对父进程的变量a执行自增,会怎么样
A:a++在汇编中是”mov ax, $a“,"inc ax","mov $a, ax",但是他们不是原子操作,执行不一定独立,所以a可能会是2
Q:所以我们该怎么做?
A:对a的访问与更改要加锁
Q:那锁都有哪几种那?
A:我记得有五种,但是说的上来的只有自旋锁,条件锁和互斥锁
Q:自旋锁说一下吧
A:比如A握住了mutex,B就会轮询等待资源,直到A放弃这个资源
Q:ok,那条件锁那?
A:emmmmmmm,忘记了。。。
Q:没关系,再问你一个问题,比如用户进程要使用系统调用,是什么一个过程
A:用户进程会产生一个软中断,然后内核进程会唤醒并执行相应的调用,返回结果等
然后就问完了,让打开一个神奇的代码编辑网站
之后是让写算法题
第一道是写按行且按列递增的二维数组确定某个数是否存在
第二道是写一个最大长度为一个亿的URL缓存机制
// 1
#include<bits/stdc++.h> #define LL long long #define maxn 5010 using namespace std; int a[maxn][maxn]; int main(){ int n, m, t; scanf("%d %d %d", &n, &m, &t); for(int i = 0; i < n; ++i){ for(int j = 0; j < m; ++j){ scanf("%d", &a[i][j]); } } int l, r, T; l = 0, r = n, T = 50; while(l < r && T--){ int mid = (l + r) >> 1; if(a[mid][0] > t){ r = mid; } else{ l = mid; } } int rl = r; l = 0, r = n, T = 50; while(l < r && T--){ int mid = (l + r) >> 1; if(a[mid][m - 1] < t){ r = mid; } else{ l = mid; } } int ll = r; for(int i = ll; i <= rl; ++i){ int mb = lower_bound(a[i], a[i] + m, t) - a[i]; if(mb < m && a[i][mb] == t){ printf("YES\n"); return 0; } } printf("NO\n"); return 0; }
// 2
unordered_map<u32d, string> mp; LL count = 0, MAX_SIZE = 100000000; list<u32d> ls; void _delete(){ while(count > MAX_SIZE){ count = count - mp[ls.front()].size(); mp.erase(mp.find(ls.front())); ls.pop_front(); } } void _push(u32d _key, string _value){ if(mp.find(_key) != mp.end()){ mp[_key] = _value; } else{ mp[_key] = _value; count = count + _value.size(); ls.push_back(_key); if(count > MAX_SIZE){ _delete(); } } } string _get(u32d _key){ return mp[_key]; }
就是这样了,据传薪资还是很好的,想投的我给个连接把
阿里云块存储团队,承接阿里云及阿里巴巴集团内部块存储服务,无论营收,用户数,数据量,机器规模均在国内遥遥领先,欢迎各位同学加入,一起创造未来。
岗位:C++研发
工作地点: 北京、杭州
面向范围:2020年11月到2021年10月毕业的学生
联系邮箱: lilong.hll@alibaba-inc.com
标签:efi front 系统调用 机制 执行 打开 ring 中断 访问
原文地址:https://www.cnblogs.com/Hebut-Amadeus/p/12513259.html