Table of Contents generated with DocToc
- 什么是操作系统?请简要概述一下
- 操作系统有哪些分类?
- 什么是内核态和用户态?
- 如何实现内核态和用户态的切换?
- 并发和并行的区别
- 什么是进程?
- 进程的基本操作
- 简述进程间通信方法
- 进程如何通过管道进行通信
- 进程如何通过共享内存通信?
- 什么是信号
- 如何编写正确且安全的信号处理函数
- 进程调度的时机
- 不能进行进程调度的情况
- 进程的调度策略
- 进程调度策略的基本设计指标
- 进程的状态与状态转换
- 什么是孤儿进程?僵尸进程?
- 什么是线程?
- 为什么需要线程?
- 简述线程和进程的区别和联系
- 进程和线程的基本API
- 多线程模型
- 进程同步的方法
- 线程同步的方法
- 进程同步与线程同步有什么区别
- 死锁是怎样产生的?
- 如何解决死锁问题?
- 什么是虚拟地址,什么是物理地址?
- 什么是虚拟内存?
- 为什么要引入虚拟内存?
- 常见的页面置换算法
- 请说一下什么是写时复制?
- 实时操作系统的概念
- 优先级反转是什么?如何解决
什么是操作系统?请简要概述一下
操作系统是管理计算机硬件和软件资源的计算机程序,提供一个计算机用户与计算机硬件系统之间的接口。
散列表
散列表的基本概念
在线性表和树表的查找中,记录在表中的位置和记录的关键字之间不存在确定关系,因此,在这些表中查找记录时需进行一系列的关键字比较。这类查找方法建立在“比较”的基础上,查找的效率取决于比较的次数
错误码不体现版本号和错误等级信息。 说明:错误码以不断追加的方式进行兼容。错误等级由日志和错误码本身的释义来决定。
错误码为字符串类型,共 5 位,分成两个部分:错误产生来源+四位数字编号。
片选低电平有效:
主要是为了降低功率。选中信号输出时,地址译码器输出端为低电平,此时译码器不输出功率;选中信号没有输出(不选中)时,译码器输出端为高阻状态,输出消耗功率也为0。因此芯片的CS信号采用低电平有效可以最大程度减小片选控制的功率消耗。
一、消息队列的演进
分布式消息队列中间件是大型分布式系统中常见的中间件。消息队列主要用来解决应用耦合
、异步消息
、流量削峰
等问题,具有高性能、高可用、可伸缩和最终一致性等特点。消息队列已经逐渐成为企业应用系统内部通信的核心手段,使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar等,此外,利用数据库(如Redis、MySQL等)也可实现消息队列的部分基本功能。
1.基于OS的MQ
单机消息队列可以通过操作系统原生的进程间通信机制来实现,如消息队列、共享内存等。比如我们可以在共享内存中维护一个双端队列,消息产出进程不停地往队列里添加消息,同时消息消费进程不断地从队尾取出这些消息。添加消息的任务称为producer,取出消息的称为consumer。 单机MQ易于实现,但是缺点明显:依赖于单机OS的IPC(进程间通信)机制。无法实现分布式的消息传递,并且消息队列的容量也受限于单机资源。