distributed
allocate
corresponding
associate
toolkit
coworker
cell – string – array – page – block – plane – die
多机
- 单机单容器
多集群
推广进度
- 亦庄集群部署但无人用, 来广营集群有使用但未部署
专利
低速/高速网络存储特有协议 结构
人工智能学习资料
- https://www.bilibili.com/cheese/play/ep6173
- 172.16.0.15 172.16.0.16
- 深度学习
- https://www.bilibili.com/video/BV1nJ411z7fe?p=1&share_medium=iphone&share_plat=ios&share_session_id=862BCC86-C5AB-480F-AF30-61DC98531B03&share_source=WEIXIN&share_tag=s_i×tamp=1632901903&unique_k=HYq3Z1
目标
- 了解深度学习框架如何部署以及使用
linux的系统调用的过程:
1.enter system_call
2.push eax 保存eax的值,因为此值与系统调用有关
3.SAVE_ALL ,保存现场(在定位了新堆栈(内核态堆栈)之后,CPU就会首先把原用户态堆栈指针ss和esp压入内核态堆栈,随后把标志积存器eflags的内容和返回位置cs,eip压入内核态堆栈。)
4.比较系统调用号eax和NR_systemcall,如果这是一个合法的系统调用则执行调用符号表syscall_table
5.根据eax寻找到系统调用号对应的系统调用函数,用内核函数进行处理,如sys_time,sys_read等.
6.内核函数返回后,先不急着切换回用户态,而是检查此时是否需要进程调度,如果需要,则跳转进程调度函数.
7.若不需要调度,则返回用户态进程.
如果一个任务正在内核态中运行,那么若CPU响应中断就不再需要进行堆栈切换操作。因为此时该任务运行的内核代码已经在使用内核态堆栈,并且不涉及到优先级别的变化,所以CPU仅把eflags和中断返回指针cs,eip压入当前内核态堆栈,然后执行中断服务过程。
也就是说是把参数放到寄存器里,再放到栈中来传递的?
是的话它是把四个寄存器一下全压栈还是按需要压栈?
为什么不直接放到栈中?为什么必须经过寄存器?为什么不能分批把参数放进一个寄存器一次一次压栈?
|
系统调用是在内核中执行的,参数只能压入内核栈
在进入内核之前压栈只是压入用户态栈,所以需要寄存器传递
int x是用户态和内核态的分界线