筑基期
1. 什么是操作系统?它的主要功能有哪些?
操作系统就是用于用户与计算机硬件交互的软件。简单来说就是我们在硬件上安装了系统,之后我们就是在使用这个操作系统软件。
操作系统会提供进程管理、内存管理、文件系统管理、设备管理、安全与权限控制等功能。
2. 进程与线程的区别是什么?
进程的范围比线程更大,比如我们在计算机运行了一个软件,这个软件就会产生一个或多个进程。
在这个软件的进程中,为了处理多个任务或者复杂的计算,又会开辟出多个线程。
总的来说区别就是:进程之间相互独立,线程之前可以共享资源,线程开销远远小于进程。
3. 内存管理的基本概念是什么?分页与分段有什么区别?
当我们在运行程序时,都需要内存,内存管理就是负责为这些程序分配内存、管理内存、回收内存等操作。
分页:分页就是将内存分配为相同大小的块,每一页大小相同,这样可以减少内存碎片
分段:分段则是将内存划分为了长度不同的块,系统根据不同的数据类型、场景按需分配。
4. 什么是虚拟内存?它是如何工作的?
虚拟内存简单理解就是将一部分磁盘空间转化为内存使用,比如当内存极度紧张时,操作系统会拿出一部分磁盘空间来作为内存使用。
准确的来说就是:当物理内存不足时,操作系统会将一些不常用的数据移动到磁盘的交换空间,也就是相当于使用虚拟内存作为一个暂存。
5. 中断是什么?在计算机中起到什么作用?
中断是一种信号,用于通知 CPU
暂停当前的任务,去处理更紧急的任务或事件。
中断可以将 CPU
的效率提高,通过中断、交替执行,提高了 CPU
的使用率,让 CPU
可以更实时的处理任务。
6. 什么是缓存?为什么缓存对于计算机系统很重要?
缓存是一种快速的存储区域,用于存放频繁访问的一些数据。
缓存可以减少 CPU
直接访问内存的频率,缩短了数据读取时间,提高了系统性能。
7. I/O 模型有哪些?阻塞与非阻塞 I/O 的区别是什么?
I/O模型 描述了应用程序与操作系统之间处理输入/输出的方式。
阻塞性I/O:程序会等待 I/O
操作完成后再继续执行,CPU 处于空闲状态。
非阻塞性I/O:I/O
操作不会阻塞程序执行,程序可以继续处理其他任务,直到 I/O
操作完成。
其他常见的 I/O
模型:
多路复用 I/O: 如 select
和 poll
,允许一个进程同时监听多个 I/O
事件。
异步 I/O: I/O
操作和应用程序完全并行,操作系统会在 I/O
完成后通知应用。