操作系统知识总结(面经)

操作系统知识总结(面经)

1.套接字
一个抽象层,应用程序使用来接受和发送数据的,网络套接字是加入了ip地址的,将io插入到网络中。是网络传输模型中传输层的通信端点。大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API),该接口通常以一组函数的形式出现,也称为套接字(Socket)。
套接字分为流式套接字(TCP,面向连接,可靠),数据报(UDP,非连接,不可靠)和原始套接字(Raw)。

2.IO模型
阻塞IO:执行io过程,应用程序系统调用recvfrom,阻塞等待结果,io完成后将数据从内核态复制到用户态。用户程序可运行态。
非阻塞io:循环询问数据是否准备好,可以立即获得结果,如果数据没有准备好则返回一个error。在应用程序获取数据之前都是不断询问,不阻塞。在数据的收发量不均,时间不定时,比阻塞式有优势。
io复用:select epoll系统调用,一个process可以处理多个网络连接。轮询多个IO操作的结果。当没有结果返回则程序阻塞,进行两次系统调用,select获取结果,如果没有ready,select block住用户程序,并且监听数据是否准备好,当监听到数据时通知用户程序。复用型可以同时处理多个连接,监听多个进程。在连接数量不多时,性能不如多线程+block io。
在内核态就绪时,从内核复制数据到用户态时仍然是阻塞的。
异步io:异步读取后,进行干别的事情,等待内核完成复制到用户态后,通知用户程序。

3.内存
UMA模型

物理存储器被所有处理机均匀共享。所有处理机对所有存储字具有相同的存取时间,这就是为什么称它为均匀存储器存取的原因。每台处理机可以有私用高速缓存,外围设备也以一定形式共享。

NUMA模型

NUMA模式下,处理器被划分成多个”节点”(node), 每个节点被分配有的本地存储器空间。 所有节点中的处理器都可以访问全部的系统物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。

内存分区:内存管理区域, 低端范围的16MB被描述为ZONE_DMA直接内存存取, 直接映射到内核的普通内存域ZONE_NORMAL(使用页表示最小分块),最后是超出了内核段的物理地址域ZONE_HIGHMEM, 被称为高端内存. 是系统中预留的可用内存空间, 不能被内核直接映射.还有别的例如解决内存碎片的区域。

虚拟内存和物理内存:
每个进程会分配4g的内存,这个内存是虚拟内存,每次内存空间地址需要翻译为物理地址。页表中的虚拟地址中的数据不在物理内存中则缺页中断,从外存中读取到内存。

在这里插入图片描述
使用进程中单独的虚拟内存共享物理内存中的数据。创建进程时,只需要将虚拟内存和磁盘文件数据映射就好,运行过程中缺页中断装载入内存。

1.既然每个进程的内存空间都是一致而且固定的,所以链接器在链接可执行文件时,可以设定内存地址,而不用去管这些数据最终实际的内存地址,这是有独立内存空间的好处

2.当不同的进程使用同样的代码时,比如库文件中的代码,物理内存中可以只存储一份这样的代码,不同的进程只需要把自己的虚拟内存映射过去就可以了,节省内存

3.在程序需要分配连续的内存空间的时候,只需要在虚拟内存空间分配连续空间,而不需要实际物理内存的连续空间,可以利用碎片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值