408 面试问题总结

背景

今天收到了前端面试通知,面试官针对简历中408的过往,进行相关问题提问都是基础知识点,但回答的不是很好,重新回顾下漏洞,特此记录。

操作系统

多道批处理阶段——“多”和“批”指的是什么?

操作系统发展历程

1. 手动操作阶段

计算机工作需要人工干涉(程序的装入、运行、结果的输出),人机矛盾越来越大

2. 批处理阶段

为了解决CPU/IO设备上速度不匹配的矛盾

2.1 单道批处理阶段

作业处理:成批进行,内存保持一道作业

2.2 多道批处理阶段

作业:多个程序同时进入内存,并允许他们在内存CPU交替运行

当一道程序因I/O请求而暂停时,CPU便立即运行另一道程序

特点:宏观上并行,微观上串行

3. 分时操作系统

多个用户通过终端共享一台主机,用户键入命令,系统能及时处理再返回

4. 实时操作系统

接收到外部信号后,能在严格的时间内完成处理

进程——进程的基本概念、组成?

背景:多道程序并发,程序失去封闭性,并间断性、不可再现性

组成:程序段、相关数据段、PCB

PCB: 进程控制块,为了保证每个程序能够独立的运行,进程存在的唯一标志

PCB作用:描述进程的基本情况和运行状态

进程调度——进程是如何调度的?

概念

进程数量>处理机个数, 堆积的进程需要按照一定的算法调度

调度算法

  1. 先来先到
  2. 短作业优先
  3. 优先级调度
  4. 高响应比优先调度
  5. 时间片轮转调度
  6. 多级队列调度
    之前:虽有多道处理机系统,但仅设置一个进程的就绪队列,调度算法单一,无法满足现实需求
    之后:系统设置多个就绪队列,按照类型或者进程性质分配就绪队列,实行不同的调度算法
  7. 多级反馈队列调度( 时间片轮转 + 优先级调度)
    思想:
    1. 设置多个就绪队列,第一级队列最高,第二队列次之,接下来逐个降低
    2. 设置队列的进程运行时间片大小,优先级越高的队列时间片越小
    3. 进程时间片用完后放到其他队列

I/O——说说I/O操作的理解

概念

数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。
数据传输过程类似于水流,因此称为 IO 流。

IO按照处理的数据类型可分为:

  1. 面向字节操作的I/O接口:inputStream,outputStream (最基本单位为单个字节)
  2. 面向字符操作的接口:Reader,Writer(最基本的单元是Unicode码元大小2字节)

为什么 I/O 流操作要分为字节流操作和字符流操作呢?

字节流:一切文件数据在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。
所以,字节流可以传输任意文件数据。

字符流:字节流读取中文有可能截断导致乱码,所以,java就提供了转换流。字符流=字节流+编码表

字符流与字节流的区别

  1. 字节流适合做一切文件数据拷贝
  2. 字节流不适合读取中文内容输出
  3. 字符流适合做文本文件的操作(读、写)

数据结构

栈——相关概念以及应用

概念

运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。

应用

1、函数调用

在程序中,每个函数调用都需要将当前状态的信息(比如函数调用前的参数、局部变量和程序计数器等)保存
到栈中,等到函数调用结束后再从栈中弹出这些信息,恢复调用前的状态。这个过程被称作函数的压栈和弹栈
操作。

2、表达式求值

通常我们在计算机中对表达式求值时都采用栈来实现。比如中缀表达式转后缀表达式的操作就需要使用栈。

3、系统调用

在操作系统中,内核通常会将一个系统调用的参数、返回值和程序计数器等状态保存到进程的用户栈中,在系
统调用结束后再从栈中弹出这些信息,恢复调用前的状态。

4、缓存机制

缓存通常也使用栈的方式实现,被访问的数据最先进入栈顶,最后的则返回底部。例如:网页缓存

5、代码编辑器

用栈来判断括号是否成对,以及最近的括号匹配情况。若左括号,则入栈;
若右括号,则将栈顶元素弹出,若是对应的左括号,则继续遍历;否则匹配失败。

6、进制转换

利用栈可以实现很多不同类型的算法,其中包括进制转换。

栈和链表的联系

链栈?

是两种不同的数据结构,栈是“先入后出”的,相当于一箱书,先放进去的在最底下,最后放的在最上面,也是
最先取出的,最上面书所在的地方也称为栈顶;而链表是一种顺序的结构,就是数组,不同的是,链表是由一
系列顶点构成,每个顶点包含着自己的信息和与下一个顶点的链接(指针域),是可以随时添加删除的,随意
插入

稀疏矩阵——如何使用二维数组的存储形式找到对应位置的元素

概念

非零元素的个数相对于矩阵元素的个数来说非常少

存储策略

存储非零元素所在的行和列以及值=>三元组(可按数组或十字链表存储)

哈夫曼树——相关概念及特点

带权路径长度:路径的长度与该节点权值的乘积
哈夫曼树:带权路径最小的二叉树
哈夫曼编码:数据压缩编码——对频率高的字符赋以短编码,对频率低的字符赋以较长编码
特点:利用哈夫曼树可以设计总长度最短的二进制前缀编码,但构造出来的哈夫曼树不一定是唯一的。

其他两门——没问

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值