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

写在前面

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

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

目录大纲

 

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

 

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

 

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

 

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

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

 

第一章、认识操作系统

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

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

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

 

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+页,需要完整版的朋友,可以点赞此文关注小编,【见下图】来获取!!

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
【实验目的】 1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解; 2. 熟悉虚存管理的各种页面淘汰算法; 3. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 【实验准备】 1.虚拟存储器的管理方式  段式管理  页式管理  段页式管理 2.页面置换算法  先进先出置换算法  最近最久未使用置换算法  Clock置换算法  其他置换算法 【实验内容】 1. 实验题目 设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后地址部分。为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 2. 具体做法 产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以 1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,直到所有地址访问完毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值