操作系统知识点

iwehdio的博客园:https://www.cnblogs.com/iwehdio/

1、概述

概述和进程与线程基础

  • 操作系统的概念?
  • 操作系统的功能和目标?
  • 操作系统的四个特征?
  • 操作系统的发展和分类?
  • 操作系统运行机制?
  • 中断和异常?
  • 系统调用?

2、进程与线程

进程与线程基础知识

  • 什么是进程?
  • 并发和并行有什么区别?
  • 进程的七种状态和状态变迁?
  • 进程的控制结构PCB 具体包含什么信息?
  • 每个 PCB 是如何组织的呢?
  • 进程的控制?创建、终止、阻塞、唤醒的过程?
  • CPU 的上下文切换?进程的上下文切换?
  • 进程的上下文切换到底是切换什么呢?
  • 发生进程上下文切换有哪些场景?
  • 为什么使用线程?
  • 什么是线程?
  • 线程的优缺点?
  • 线程与进程的比较?
  • 线程相比进程能减少开销,体现在?
  • 线程的上下文切换?
  • 线程的实现?
  • 用户线程如何理解?用户线程的优点和缺点?
  • 内核线程如何理解?内核线程的优点和缺点?
  • 轻量级进程如何理解?
  • 进程调度时机?
  • 抢占式和非抢占式?
  • 进程调度原则和算法指标?
  • 读者写者问题?
  • 哲学家进餐问题?
  • 进程间通信?
    • 管道、消息队列、共享内存、信号量、信号、Socket。
  • 锁?
  • 互斥锁与自旋锁?
  • 读写锁?
  • 乐观锁与悲观锁?

进程与线程

  • 调度的三个层次?三种调度对比?
  • 进程调度算法?
    • 先来先服务
    • 短进程优先
    • 高响应比优先
    • 时间片轮转
    • 最高优先级
    • 多级反馈队列
  • 进程的同步和互斥?
  • 临界资源的互斥访问的原则?
  • 进程互斥的软件实现方法?
  • 进程互斥的硬件实现方法?

信号量、死锁

  • 信号量机制?
  • 信号量实现进程互斥和同步?
  • 生产者与消费者问题?多生产者与多消费者问题?
  • 吸烟者问题?
  • 管程是什么?
  • 死锁是什么?
  • 死锁、饥饿、死循环的区别?
  • 死锁产生的必要条件?
  • 死锁的处理策略?
  • 预防死锁?
  • 避免死锁?银行家算法?
  • 死锁的检测与消除?

3、内存

内存与文件基础知识

  • 为什么需要虚拟内存?如何与物理内存映射?
  • 内存分段?如何映射的?
  • 内存分段的不足?
  • 内存碎片?内部和外部?
  • 内存交换?
  • 内存分页?如何映射的?
  • 页的换入换出?
  • 内存地址转换步骤?
  • 简单的分页有什么缺陷?
  • 页表缓存TLB?
  • 段页式内存管理?
  • Linux 内存管理?
  • Linux 的虚拟地址空间是如何分布的?用户空间的分段?
  • 缺页异常/缺页中断?处理流程?
  • 页表项的字段?
  • 虚拟内存管理下,访问一个页的整个流程?
  • 页面置换算法:
    • 最佳页面置换
    • 先进先出置换
    • 最近最久未使用置换
    • 时钟页面置换
    • 最不常用置换

内存

  • 内存的基础知识?链接和装入?
  • 内存的动态分区分配算法?
    • 首次适应、最佳适应、最坏适应、邻近适应
  • 虚拟内存?
  • 页面分配策略,驻留集?
  • 何时调入调出页面?抖动现象?

4、文件

  • 文件系统是什么?
  • Linux 文件系统?索引节点和目录项?
  • 目录项和目录是一个东西吗?
  • 文件数据是如何存储在磁盘的?
  • 磁盘进行格式化的时候,会被分成哪三个存储区域?
  • 虚拟文件系统?
  • 打开文件?文件描述符?
  • 读写文件的过程?文件系统的基本操作单位?
  • 文件的存放方式?
  • 连续空间存储方式?
  • 非连续空间存放方式:链表/索引?
  • 隐式链表?显式链表?优缺点?
  • 索引方式的优缺点?
  • 如何处理大文件?链表和索引组合?
  • 文件存放方式比较?
  • Unix 文件系统?
  • 空闲空间管理?
  • 空闲表法?
  • 空闲链表法?
  • 位图法?
  • 文件系统结构?块组?
  • 超级块和块组描述符表为什么每个块组都有?
  • 目录的存储?
  • 软链接和硬链接?
  • 缓存与非缓存I/O?
  • 直接与非直接I/O?
  • 阻塞与非阻塞I/O?非阻塞 I/O 的多路复用?
  • 同步与异步I/O?

文件

5、磁盘与IO

磁盘与IO基础知识

  • 磁盘调度算法:
    • 先来先服务
    • 最短寻道时间优先
    • 扫描算法
    • 循环扫描算法
    • LOOK与C-LOOK算法
  • 为什么需要设备控制器?
  • 设备控制器中寄存器的分类与作用?
  • 输入输出设备分类?块设备的数据缓存区?
  • CPU 是如何与设备的控制寄存器和数据缓冲区进行通信的?
  • DMA的工作流程?
  • 为什么需要设备驱动程序?属于操作系统吗?
  • 中断处理程序的处理流程?
  • Linux中的通用块层?两个功能?
  • Linux 支持 5 种 I/O 调度算法?
  • Linux 存储系统的 I/O分层?
  • Linux 提供了哪些缓存机制来提高 I/O 的效率?
  • 键盘敲入字母时,期间发生了什么?

磁盘和IO

  • 磁盘的结构?
  • 如何在磁盘中读写数据?
  • 一次磁盘读写操作需要的时间?
  • 减少磁盘延迟时间的方法?
  • 磁盘的初始化?引导块、坏块?
  • I/O控制方式?
    • 轮询等待、中断、DMA、通道控制
  • 设备分配?
  • 缓冲区的作用和管理?

参考


iwehdio的博客园:https://www.cnblogs.com/iwehdio/
原文地址:https://www.cnblogs.com/iwehdio/p/14248612.html