献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

写在前面

操作系统在计算机行业中是一门最基础的技术,无论是在开发项目还是在算法岗,我们都是基于计算机上进行的,我们对操作系统的了解体现我们从事计算机相关岗位的资深素质,因此,接下来,这篇文章给大家介绍在面试中常见的操作系统的知识点。当然,开发和算法岗对计算机网络的要求程度不同,相对而言,开发对操作系统的要求其实更高一些。但是一些基础、核心、常见的问题要求我们要掌握。

面试的过程中,为了考察面试者的基础功力,除了算法以外,操作系统将会占比很大的权重,本文就给大家全部分享吧

目录大纲

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

(由于知识点太多,Σ( ° △ °|||)︴,此处省略.............................................................)

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

第一章、认识操作系统

  • 计算机硬件简介
  • 操作系统博物馆
  • 操作系统概念
  • 系统调用
  • 操作系统结构

现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

CPU

CPU是计算机的大脑,它主要和内存进行交互,从内存中提取指令并执行它。一个CPU的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

多线程和多核芯片

对于操作系统来讲,多线程是有意义的,因为每个线程对操作系统来说都像是一个单个的CPU。比如一个有两个CPU的操作系统,并且每个CPU运行两个线程,那么这对于操作系统来说就可能是4个CPU。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

内存

计算机中第二个主要的组件就是内存。理想情况下,内存应该非常快速(比执行一条指令要快,从而不会拖慢CPU执行效率),而且足够大且便宜,但是目前的技术手段无法满足三者的需求。于是采用了不同的处理方式,存储器系统采用一种分层次的结构

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

总线

上面的结构(简单个人计算机的组件图)在小型计算机已经使用了多年,并用在早期的IBM PC中。然而,随着处理器核内存变得越来越快,单个总线处理所有请求的能力也达到了上线,其中也包括IBMPC总线。必须放弃使用这种模式。其结果导致了其他总线的出现,它们处理I/0设备以及CPU到存储器的速度都更快。这种演变的结果导致了下面这种结构的出现。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

第二章、进程和线程

  • 进程
  • 线程
  • 进程间通信
  • 调度

进程模型

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

多线程解决方案

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

经典的线程模型

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

竞态条件

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

互斥量

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

消息传递

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

屏障

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

批处理中的调度

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

第三章、内存管理

  • 无存储器抽象
  • 一种存储器抽象:地址空间
  • 虚拟内存
  • 页面置换算法

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

运行多个程序

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

基址寄存器和变址寄存器

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

交换过程

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

内存针对自动增长的区域,会有三种处理方式

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

使用位图的存储管理

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

页表

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

先进先出页面置换算法

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

工作集时钟页面置换算法

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

第四章、文件系统

  • 文件
  • 目录
  • 文件系统的实现
  • 文件系统的管理和优化

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

文件结构

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

文件类型

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

层次目录系统

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

链表分配

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

日志文件系统

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

虚拟文件系统

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

磁盘空间管理

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

物理转储和逻辑转储

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

第五章、I/O

  • I/O设备
  • IO软件原理
  • I/O层次结构
  • 时钟

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

设备控制器

设备控制器是处理CPU传入和传出信号的系统。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

内存映射I/0

每个控制器都会有几个寄存器用来和CPU进行通信。通过写入这些寄存器,操作系统可以命令设备发送数据,接收数据、开启或者关闭设备等。通过从这些寄存器中读取信息,操作系统能够知道设备的状态,是否准备接受一个新命令等。

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

直接内存访问

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

精确中断和不精确中断

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

中断处理程序

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

磁盘

为了组织和检索数据,会将磁盘组织成特定的结构,这些特定的结构就是磁道、扇区和柱面

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

磁盘臂调度算法

第六章、死锁

  • 鸵鸟算法
  • 死锁检测和恢复
  • 死锁避免
  • 破坏死锁

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

计算机系统中有很多独占性的资源,在同一时刻只能每个资源只能由一个进程使用,我们之前经常提到过打印机,这就是一个独占性的资源,同一时刻能有两个打印机同时输出结果,否则会引起文件系统的瘫痪。所以,操作系统具有授权-个进程单独访问资源的能力。

死锁模型

Holt在1972年提出对死锁进行建模,建模的标准如下:

●圆形表示进程

●方形表示资源

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

通信死锁

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

死锁是一类通用问题,任何操作系统都会产生死锁。当每一-组进程 中的每个进程都因等待由该组的其他进程所占有的资源而导致阻塞,死锁就发生了。这种情况会使所有的进程都处于无限等待的状态。死锁的检测和避免可以通过安全和不安全状态来判断,其中一个检测方式就是银行家算法;当然你也可以使用鸵鸟算法对死锁置之不理,但是你肯定会遭其反噬。也可以在设计时通过系统结构的角度来避免死锁,这样能够预防死锁;也可以破坏死锁的四个条件来破坏死锁。资源死锁并不是唯一性的死锁,还有通信间死锁,可以设置适当的超时时间来完成。活锁和死锁的问题有些相似,它们都是-种进程无法继续向下执行的状态。 由于进程调度策略导 致尝试获取进程的一方永远无法获得资源后,进程会导致饥饿的出现。

第七章、操作系统面试题

解释一下什么是操作系统

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

微内核

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

多处理系统的优势

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记

(由于内容太多了,就不一一展示了Σ( ° △ °|||)︴)

这份【操作系统笔记】文档共有300+页,需要完整版的朋友,可以点赞此文关注小编,【见下图】来获取!!

猜你喜欢

转载自blog.csdn.net/m0_50180963/article/details/108992399