java后台面经_操作系统

一、介绍一下linux内存模型

在linux内核中支持3中内存模型,分别是flat memory modelDiscontiguous memory modelsparse memory model。所谓memory model,其实就是从cpu的角度看,其物理内存的分布情况,在linux kernel中,使用什么的方式来管理这些物理内存。

1 flat memory model

如果从系统中任意一个处理器角度看,当它访问物理内存时,物理地址空间是一个连续的,没有空洞的地址空间,那么这种计算机系统的内存模型就是flat memory。

2 discontiguous memory model

如果cpu在访问物理内存时,其地址空间有一些空洞,是不连续的,那么这种计算机系统的内存模型就是discontiguous memory。

3 sparse memory model

Sparse memory model是为了解决memory hotplug而生的。

二、页表

页表是一种特殊的数据结构,放在系统空间的页表区,存放逻辑页与物理页帧的对应关系。 每一个进程都拥有一个自己的页表。

页表的作用:

实现从页号到物理块号的地址映射。

逻辑地址转换成物理地址的过程是:用页号p去检索页表,从页表中得到该页的物理块号,把它装入物理地址寄存器中。同时,将页内地址d直接送入物理地址寄存器的块内地址字段中。这样,物理地址寄存器中的内容就是由二者拼接成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。

三、一些数据在磁盘上,要发送到网络上,要经过哪些过程?

1.在linux操作系统中,JVM在用户空间下向内核空间发送sendfile命令,并且换至内核态,内核从硬件中读取数据至内核缓冲区,这就产生了第一次数据拷贝
2.当数据在内核空间准备完成之后,内核直接将数据拷贝至socket缓冲区,这就产生了第二次数据拷贝,并从内核态切换至用户态;
3.当socket缓冲区的数据准备完成之后,将数据拷贝至协议引擎,并发送至网络,这就产生了第三次数据拷贝
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值