AlenaNuna

导航

操作系统、数据库、网络基础知识

本文主要用于后端开发工程师面试复习。

本篇为各概念的大概讲解,每个大部分的每个小部分我会单独发一条更加详细的讲解。如我会单独发一条(操作系统基础——进程与线程)。

具体请在我的博客里找。

#操作系统基础:

1.进程与线程:

进程:操作系统中独立运行的程序单位,每个进程有自己的地址空间和资源

线程:进程内的执行单位,共享进程的地址空间和资源。

关系:一个进程可以包含多个线程,线程之间共享内存,但进程之间是独立的。

2.内存管理:

分页:将内存分成固定大小的页,虚拟地址到物理地址的映射。

分段:内存按段管理,每段有不同的基址和长度,提供更灵活的内存管理。

虚拟内存:通过磁盘空间扩展物理内存,提供更大的地址空间。

3.文件系统:

文件系统结构:包括文件、目录、超级块、索引节点等。

文件权限:读、写、执行权限(r,w,x),用户、组、其他用户权限。

4.调度算法:

先来先服务(FCFS)

短作业优先(SJF)

轮转调度(Round Robin)

优先级调度(Priority Scheduling)

5.进程间通信(IPC):

管道(Pipe):单向通信。

消息队列(Message Queue):消息的队列,允许进程间异步通信。

共享内存(Shared Memory):多个进程共享同一块内存区域。

信号量(Semaphore):用于同步进程间的访问。

6.死锁:

条件:互斥、持有并等待、不剥夺、循环等待。

预防:避免四个必要条件中的一个或多个。

检测和恢复:检测死锁并采取措施恢复。

#数据库基础:

1.基本概念:

数据库:存储数据的集合

表:数据库中的数据结构,由行和列组成

行(记录):表中的一个数据项

列(字段):表中的一个属性

2.SQL语句:

查询: SELECT * FROM table_name WHERE condition;

插入: INSERT INTO table_name(column 1,column 2) VALUES(value 1,value 2);

更新: UPDATE table_name SET column 1 = value 1 WHERE condition;

删除: DELETE FROM table_name WHERE condition;

3.索引:

作用:用于加速数据库的查询操作,通过预先排序和优化数据存储,提高数据检索速度。

索引类似于书籍的目录,可以快速定位数据。

创建普通索引:最常见的索引类型,用于加速查询。

CREATE INDEX index_name ON table_name (column_name);

唯一索引:确保索引列的值唯一。

CREATE UNIQUE INDEX index_name ON table_name (column_name);

复合索引:在多个列上创建索引,用于加速复合查询。

CREATE INDEX index_name ON table_name (column 1,column 2);

删除索引: 删除不再需要的索引,释放资源。

DROP INDEX index_name ON table_name;

索引的使用注意事项:

选择性:索引适用于选择性很高的列,即列中的值有很多不同。

索引开销:索引会占用存储空间,并增加插入、删除和更新操作的时间开销。

覆盖索引:查询中包含的所有列都在索引中,可以避免回表操作,提高查询效率。

索引类型:

B树索引:最常见的索引结构,适用于大多数查询操作。适用于范围查询,平衡树结构。

B树索引保持数据的有序性,支持范围查询和排序操作。

哈希索引:

基于哈希表的数据结构,适用于等值查询('=')。适用于精确匹配。

哈希索引不适用于范围查询和排序操作。

全文索引:

适用于全文搜索,支持复杂的文本查询。

通过分词和倒排索引优化文本查询。

4.事务:

事务控制语句:'BEGIN TRANSACTION'、'COMMIT'、'ROLLBACK'。

隔离级别:

读未提交(Read Uncommitted):最低级别,可能会看到未提交的更改。

读已提交(Read Committed):只能看到已提交的更改,避免脏读。

可重复读(Repeatable Read):在一个事务内多次读取同一数据结果一致,避免不可重复读。

可序列化(Serializable):最高级别,完全隔离,避免幻读。

5.范式和反范式:

范式:规范化数据库结构,减少数据冗余。

第一范式(1NF):每列仅包含原子值。

第二范式(2NF):满足1NF,且每个非主键列完全依赖于主键。

第三范式(3NF):满足2NF,且每个非主键列不传递依赖于主键。

反范式:为了性能和查询效率,有时需要引入冗余数据。

#网络基础:

1.TCP/IP协议栈:

应用层:HTTP、HTTPS、FTP、SMTP等。

传输层:TCP(传输控制协议)、UDP(用户数据报协议)。

网络层:IP协议,路由和数据报转发。

链路层:以太网、Wi-Fi等。

2.HTTP和HTTPS:

HTTP:超文本传输协议,无状态协议。

HTTPS:HTTP的安全版本,通过SSL/TLS加密数据传输,确保安全性。

3.TCP和UDP:

TCP:面向连接,提供可靠的数据传输(握手过程、流控制、拥塞控制)。

UDP:无连接、提供不可靠的数据传输,适用于实时应用(如视频流、在线游戏)。

4.IP地址和子网:

IPv4地址:32位地址(如192.168.0.1)。

IPv6地址:128位地址,解决IPv4地址耗尽问题。

子网掩码:用于划分子网(如255.255.255.0)。 

posted on 2024-09-01 07:26  AlenaNuna  阅读(20)  评论(0编辑  收藏  举报