献上膝盖!华为工程师抛出一份堪称“举世无双”操作系统笔记
写在前面
操作系统在计算机行业中是一门最基础的技术,无论是在开发项目还是在算法岗,我们都是基于计算机上进行的,我们对操作系统的了解体现我们从事计算机相关岗位的资深素质,因此,接下来,这篇文章给大家介绍在面试中常见的操作系统的知识点。当然,开发和算法岗对计算机网络的要求程度不同,相对而言,开发对操作系统的要求其实更高一些。但是一些基础、核心、常见的问题要求我们要掌握。
面试的过程中,为了考察面试者的基础功力,除了算法以外,操作系统将会占比很大的权重,本文就给大家全部分享吧
目录大纲
(由于知识点太多,Σ( ° △ °|||)︴,此处省略.............................................................)
第一章、认识操作系统
- 计算机硬件简介
- 操作系统博物馆
- 操作系统概念
- 系统调用
- 操作系统结构
现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。
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+页,需要完整版的朋友,可以点赞此文关注小编,【见下图】来获取!!
本文地址:https://blog.csdn.net/m0_50180963/article/details/108992399
上一篇: Sqlmap注入技巧集锦
下一篇: Dos\ddos原理及攻击介绍