前言:本文适合用于基础了解和背诵,尽可能采用流畅且简短的语言回答操作系统相关问题并且辅以图片帮助记忆,不适合用作详细了解与深入学习 。
总述
操作系统部分主要分为以下几个重点 —— 操作系统基础 、 进程和线程、操作系统的内存管理、虚拟内存
一、操作系统基础篇
- 什么是操作系统
操作系统本质上是一个运行在计算机上的软件程序,用于管理软件和硬件资源,其存在屏蔽了硬件层的复杂性。
- 什么是操作系统的内核
操作系统的核心部分是操作系统的内核(Kernel),其负责系统的内存管理、硬件设备的管理、文件系统的管理以及应用程序的管理。内核是连接软硬件的桥梁,决定了系统的性能和稳定性。
- 什么是操作系统用户态和系统态
根据访问资源的特点,进程在操作系统上运行的两个级别分别为用户态和系统态。其中我们运行的程序基本上都是运行在用户态,用户态运行的进程只可以读取用户程序的数据,而系统态运行的进程几乎可以访问计算机的任何资源。
- 什么是系统调用
运行在用户态的进程,需要调用操作系统提供的系统态级别的子功能时,就需要系统调用。系统调用大致可分为设备管理、文件管理、进程控制、进程通信、内存管理等。
二、进程和线程篇
- 进程和线程间的区别和联系是什么
线程是进程划分的更小运行单元,一个进程可以有多个线程,多个线程共享进程的堆和方法区(元空间)资源,每个线程有自己的程序计数器、虚拟机栈和本地方法栈。各个进程之间是独立的,而各个线程间可能会相互影响。线程执行开销小,但是不利于资源的管理保护,而进程则相反。
- 进程有几种状态,并且状态如何转化
进程具有 5 种状态, 分别是 a. 创建状态 —— 表示进程正在被创建、b. 就绪状态 —— 此时进程获得了除了处理器外的一切资源,一旦获得得处理器资源(即时间片)就可以运行、c. 运行状态 —— 这时进程正在处理器上运行 、d. 阻塞状态 —— 表示进程正在等待某事件而暂停运行 、结束状态 —— e. 表示进程正在从系统中消失,可能是正常结束或者其他原因中断退出。
- 进程间的通信方式有那些
进程间有 7 中常见的通讯方式,分别是 a. 管道 —— 其常用于具有亲缘关系的进程间 、b. 有名管道 —— 有名管道以磁盘文件的方式存在,严格遵守先进先出的原则,可以实现本机任意两个进程间的通信、 c. 信号 —— 信号用于通知和接收进程某个事件的发生、d. 消息队列 —— 消息队列是消息的列表,其存放在内核中,可以实现消息的随机查询 、 e. 共享内存 —— 通过多个进程可访问同一块内存的方式实现进程间的通信 、 f. 套接字 —— 套接字主要用于客户端与服务器间的网络通信、 g. 信号量 —— 其是一个计数器,意图在于进程间同步
- 线程间的同步方式有那些
当具有共享关键资源的线程并发执行时需要进行同步操作,从而避免关键资源使用冲突。操作系统具有三种线程同步方式,分别是 : a. 互斥量 —— 其规定拥有互斥对象的线程才具有访问共享资源的权限,如 Java 中的 synchronized 关键字和各种锁机制。 b. 信号量 —— 其允许在一定规定量的并发线程数量下,多个线程并发访问同一资源。 c. 事件 —— 事件通过通知的方式保证多线程同步
- 进程调度算法有那些
主要的进程调度算法有: a. 先到先服务调度算法 —— 先到先服务是指从就绪队列中选取最先进入队列的进程先分配资源使其执行 b. 短作业优先调度算法 —— 短作业优先调度算法是指从就绪队列中选取估计运行时间最短的进程优先分配资源使其执行 c. 时间片轮转调度算法 —— 时间片轮转调度算法是是最古老、最公平、使用最广的算法,每个进程被分配一个允许运行时间(即时间片),按照时间片轮转运行 d. 多级反馈队列调度算法 —— 既能使得优先级高的作业得到响应又能使得短作业迅速完成 e. 优先级调度算法 —— 高优先级进程先运行,相同优先级进程按照先到先服务运行