1、操作系统中的进程有哪几种状态

经典五状态为新建、就绪、运行、阻塞、终止;就绪进程等待 CPU,运行进程占用 CPU,阻塞进程等待外部事件,事件完成后阻塞进程回到就绪队列。

2、进程、线程、协程的区别

进程是资源分配最小单位,相互隔离;线程是 CPU 调度最小单位,共享进程资源,二者由操作系统调度;协程属于用户态轻量级任务,协作式调度,切换开销最低,适合 IO 密集型任务。

3、进程之间的通信方式

进程间通信常见方式:管道、命名管道、消息队列、共享内存、信号量、信号、Socket、内存映射;共享内存速度最快,本身无并发控制;Socket 可实现跨主机通信。

4、什么是虚拟内存、为什么要有虚拟内存

虚拟内存是操作系统为每个进程提供独立虚拟地址空间,依靠页表映射到物理内存;目的是隔离进程保障安全、缓解物理内存不足、实现按需加载、屏蔽物理内存碎片。

5、什么是分段和分页

分页是操作系统将内存切分为固定大小页面,用于内存管理;分段依据程序逻辑划分成长度可变的段;分页产生页内碎片,分段易产生外部碎片。

6、操作系统的io模型

操作系统五种 IO 模型:阻塞 IO、非阻塞 IO、IO 多路复用、信号驱动 IO、异步 IO;前四种属于同步 IO,数据拷贝阶段会阻塞,异步 IO 全程不会阻塞进程。

7、select、poll、epoll的区别

select 有 1024 连接上限,poll 无上限,但二者每次调用都需要拷贝数据并且遍历全部连接查找就绪事件;epoll 采用事件驱动,一次注册、内核维护就绪列表,不用遍历,支持水平与边缘触发,高并发性能更好。

8、什么是零拷贝

零拷贝是操作系统 IO 优化手段,消除不必要的 CPU 内存拷贝,数据不经过用户态,依靠 DMA 传输,降低开销提升 IO 性能。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐