计算机408重点知识及其他(面试)

(计算机考研复试时期整理)

操作系统

操作系统的特点?
共享:资源可被多个并发执行的进程使用
并发:可以在同一时间间隔处理多个进程,需要硬件支持
虚拟:将物理实体映射成为多个虚拟设备
异步:进程执行走走,每次进程执行速度可能不同,但OS保证进程每次执行结果相同

操作系统的主要功能?
处理机管理(包括进程控制,进程同步,进程通信,调度)
存储器管理(内存分配,内存包含,内存映射,内存扩充)
设备管理(缓冲管理,设备分配,设备处理)
文件管理(文件存储空间管理,目录管理,文件读写保护)

操作系统的发展过程?
无操作系统:用户独占,CPU等待人工
单道批处理:内存只保存一道作业
多道批处理:运行多个程序同时存在主存中
分时:及时接收,及时处理,交互性
实时:实时控制,事实性信息处理

进程和线程的区别?
线程被称为轻量级进程,在进程中包含线程。进程有独立的内存空间,不同进程间不能直接共享其他进程的资源,同一个进程内的线程共享进程空间;相比进程,线程切换对系统开销更小一些;进程是资源分配的最小单位,线程是程序执行的最小单位。
进程优点:同时利用多个CPU,能够同时进行多个操作
缺点:耗费资源,重新开辟内存空间
线程优点:共享内存,IO操作的时候,创造并发操作
缺点:抢占资源
进程的三个组成部分:程序段,数据段,PCB

进程切换的过程?
保持处理机上下文,更新pcb,把pcb移入相应队列,选择另一个进程并更新其PCb,更新内存管理的数据结构,回复处理机上下文

进程的通信方式?
1.低级的通信方式
PV操作(信号量机制)
P:wait,申请S资源
V:signal,释放S资源
1.高级通信方式:以较高效率传输大量数据的通信方式
共享存储,消息传递,管道通信

管程是什么?
由一组数据及对这组数据操作的定义组成的模块,同一时间只能有一个进程使用管程,即管程是互斥使用的,进程释放管程后需唤醒申请管程资源的等待队列上的进程,进程只有通过进入管程并使用管程的内部的操作才能访问其数据

进程的定义?
进程是指一段程序的执行过程,进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。是操作系统构成的基础
进程的五种状态?
创建 就绪 阻塞 执行 终止

线程间的同步与通信类型有哪些?
互斥锁 条件变量 信号量机制
线程实现的方式?
内核支持线程 用户级线程 混合
产生死锁的原因?
对互斥资源分配不当 进程推进顺序不当
处理产生死锁的办法?
预防死锁 避免死锁 检测死锁 解除死锁

死锁产生的四个必要条件?
1.互斥条件:资源不能被共享,只能由一个进程使用
2.请求与保持条件:已经得到资源的进程可以再次申请新的资源
3.非剥夺条件:已经分配的资源不能从相应的进程中被强制的剥夺
4.循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源

死锁避免是在系统运行过程中注意避免死锁的发生,这就要求每当申请一个资源时,系统都应根据一定的算法判断是否认可这次申请,使得在一段时间内不会发生死锁

死锁与饥饿的区别?
都是资源分配问题
死锁是等待永远不会释放的资源,饥饿申请的资源会被释放。只是永远不会分配给自己
一旦发生死锁,则死锁的进程必然是多个,而饥饿可以有一个
饥饿的进程可能处于就绪状态,死锁一定是阻塞进程

FCB包含什么?
文件指针:上次读写位置
文件打开数
文件磁盘位置
文件的访问权限

页面置换算法?
最佳置换算法OPT
先进先出置换算法FIFO
最近最久未使用算法LRU
始终算法LOCK
改进型时钟算法

批处理作业调度算法?
先来先服务FCFS
最短作业优先SJF
最高响应比优先HRN
多级队列调度算法

进程调度算法?
先进先出FIFO
时间片轮转算法RR
最高优先级算法HRF
多级队列反馈算法

什么是中断?
中断的引入:为了支持CPU和设备之间的并行操作
中断也称外中断,只CPU执行指令以外的事件发生,如果设备发出的I/O结束中断、时钟中断等
这一类中断通常是与当前执行的指令无关的事件
异常的引入:表示CPU执行指令本身出现的问题
异常也称内中断,指原自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、缺页异常等。对异常的处理一般要依赖与当前程序的运行现场,不能被屏蔽

中断和系统调用的区别?
中断:解决处理器速度和硬件速度不匹配,是多道程序设计的必要条件,每个中断都有自己的数字标识,当中断发生时,指令计数器PC和处理机状态字PSW中的内容自动压入处理器堆栈。同时新的PC和psw的中断向量也装入各自的寄存器中。
区别:中断是由外设产生,无意的,被动的,系统调用是由应用程序请求操作系统提供服务产生,有意的,主动的,要从用户态通过中断进入内核态

数据结构
数据结构就是研究数据的逻辑结构和物理结构以及他们之间的互相关系,并对这种结构定义相应的运算,而且确保经过这些运算运算后所得到的新结构仍然是原来的结构类型。
1.数据:所有能被输入到计算机中,且能被计算机处理的符号集合,是计算机操作对象的总称、
2.数据元素:数据中的一个个体,数据及结构中讨论的基本单位
3.数据项:数据不可分割的最小单位,一个数据元素可由若干个数据项组成
4.数据类型
5.物理结构/存储结构:数据在计算机的表示。在内存中的存储、顺序结构,链式结构,索引结构,哈希结构
6.逻辑结构:线形或非线性
7.数据结构的基本操作的设置最重要的准则是,实现应用程序和存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”,逻辑结构是对该结构操作的设定,物理结构是描述数据具体在内存中的存储
8.算法的五个特性:有穷性,确定性,可行性,输入,输出
9.算法设计的要求:正确性,可读性,健壮性,高效率与第存储量要求
10.线性表和链表的区别:线性表必须占用一整块连续的存储空间,不利于空间的管理、链表存储位置通过指针链接,每个节点的存储位置可以任意安排,不要求连续。链表便于进行插入和删除,线性表便于查找,线性表随机存储,链表顺序存储。链表需要额外指针,存储密度会下降,
11.静态链表:用一维数组来实现线性链表,表的容量是一定的,其他与动态差不多。
12.栈和队列的区别:队列先进先出,栈先进后出。栈是限定只能在表的一段进行插入和删除的线性表,队列是只能在表的一段进行插入,另一端进行删除。栈只能从头部取数据,也就是说先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为那个数据开辟临时空间,保持数据在遍历前后的一致性。队列基于地址指针进行遍历,而且可以从头到尾开始遍历,无需开启临时空间,速度更快。
相同点:站和队列的逻辑结构相同,其存储表示也可相同,都是受限的线性表
13.一棵度为2的有序树和一棵二叉树有什么区别?有序树的节点次序是相对于另一节点而言的,如果有序树的子树只有一个孩子,这个孩子节点就无需区分其左右顺序,而二叉树无论孩子是否为2都要确定其左右顺序。
14.常有的存储方法有什么?
顺序存储,链式存储,索引存储,散列存储
15.头指针,头结点,首元结点:头结点是指向链表中第一个结点的指针,首元节点是链表中存储第一个数据元素的节点。头结点是在收元节点前附设的一个节点,该节点不存储数据元素,其指针域指向首元节点,其作用是为了方便对链表的操作,它可以对空表、非空表,首元节点的操作进行统一。
16.队列的上溢现象是什么?怎么解决?队列上溢是指队列中仍有足够的空间,但元素却不能入队,一般是由于队列的存储结构或操作方式的选择不当所致,可以用循环队列解决。移动元素的方法,每当有一个元素入队,就将队列中已有的元素向队头移动一个位置。循环队列,将队头队尾看做一个首尾相接的循环队列。
17.对链表设置头结点有什么好处?如果没有头结点,则首元素节点没有前驱节点,其插入和删除该节点的操作会复杂。对于带头结点的链表,头指针是指向头结点的非空指针,因此对空表和非空表的处理一样

数据库
你知道的数据库有哪些?
1.MS SQL
2.Access
3.My sql
4.DB2
5.Oracle

数据库中的事务?事务的四大特性?
数据库事务是数据库运行中的逻辑工作单位。单个逻辑工作单元所执行的一系列操作,要么都执行,要么都不执行。

数据库事务的四大特性;
原子性,事务中包含的程序作为数据库的逻辑工作单位,他所做的对数据修改操作要么全都执行,要么完全不执行
一致性:在一个事务执行之前和一个事务执行之后数据库必须处于一致性状态
分离性:并发的事务是相互隔离的。
持久性:当系统或介质发生故障时,确保已提交事务的更新不能丢失。

如何理解数据库的范式?
第一范式:确保每一列的原子性,如果每一列都是不可再分的最小数据单元,则满足第一范式
第二范式:非键字段必须依赖键字段。如果一个关系满足1NF,并且除了主键以外的其他列,都依赖该主键,要求每个表只描述一件事情
消除非主属性对主键的部分依赖,每个非主属性完全依赖某个候选键
第三范式:在第二范式的基础上,不存在传递依赖

什么是视图?
视图:是一种虚拟的表,数据库只存放视图的定义,不存放数据,视图就是一个窗口,通过视图可以看到数据库中自己想了解的数据变化

什么是图标?
对查询出来的结果集作为一个单元来有效的处理。可以定在该单元的特定行,从结果集的当前行检索一行或多行,可以对结果进行修改,需要逐条处理数据的时候,游标很重要

视图的优缺点?
优点:简化操作,把经常使用的数据定义为视图
安全性,视图随着基本标的变化而更新,但不会通过视图修改基本标的数据,保持数据的安全性
可以合并分离的数据,创建分区视图。更好的实现数据对比
缺点:SQL Server必须把视图的查询转化成对基本表的查询,
修改限制

数据为什么需要锁机制?
保持数据库事务的一致性
锁分为行级锁,表级锁,悲观锁,乐观锁

Drop,truncate,delete区别
drop直接删掉表
truncate删除表数据,再插入时自增长id从1开始
delete删除表数据,可以加where语句

计算机网络
在这里插入图片描述

五层协议:
物理层:透明的传送比特流
数据链路层:两个主机之间的数据传输,总是在一段一段的链路上传送的,在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据组装成帧
网络层:负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或者用户数据报封装成组或包进行传送,在TCP/IP体系中,由于网络层使用IP协议,分组也叫IP数据报
运输层:负责向两个主机中进程之间的通信提供服务。一个主机可以同时运行多个进程,因此运输层有复用和分用的功能。运输主要使用两个协议,传输协议TCP:面向连接的,数据传输的基本单位是报文段,能过提供可靠交付。用户数据包协议UDP:无连接的,数据传输的基本单位是用户数据报,不能保证提供可靠的交付,只能尽最大努力交付。
应用层:用户进程提供服务http smtp ftp

TCP和UDP的区别?
1.连接方面:TCP面向连接,UDP是无连接的
2.安全方面:TCP提供可靠服务,通过TCP传送的数据,无差错,不丢失,不重复。且按序到达。UDP尽最大努力交付,既不保证可靠交付
3.传输效率的区别:TCP传输效率相对较低。UDP传输效率高,适用于对高速传输和实时性有较高要求的通信或广播通信
4.连接数量的区别:TCP连接只能是点到点、一对一的。UDP支持一对一,一对多,多对一和多对多的交互通信
5.信息:TCP的逻辑通信信息是全双工的可靠信息,UDP是不可靠信息
6.UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
7.TCP面向字节流(可能会出现黏包问题),实际上是TCP白数据看成一连串无结构的字节流;UDP是面向报文的(不会出现黏包问题)

谈谈对TCP/IP协议的理解
TCP/IP分层(四层):网络接口层、网际层、运输层、应用层
五层协议:物理层,数据链路层,网络层,运输层,应用层
每一层的协议如下:
物理层:RJ45,CLOCK,IEEE802.3,中继器,集线器,网关
数据链路层:PPP,FR,HDLC,VLAN,MAC,网桥,交换机
网络层:IP,ICMP,ARP,RARP,OSPF,IPX,RIP,IGRP,路由器
传输层:TCP,UDP,SPX
会话层:NFS,SQL,NETBIOS,RPC
表示层:JPEG,MPEG,ASII
应用层:FTP,DNS,TELNET,SMTP,HTTP,WWW,NFS

TCP如何保证可靠传输?
确认和超时重传
数据合理分片和排序
流量控制
拥塞控制
数据校验
TCP传输连接管理
TCP建立连接:三次握手

TCP 建立连接全过程解释:
1.客户端发生SYN给服务器,表示客户端向服务器请求建立连接;
2.服务端收到客户端的SYN,并回复SYN+ACK给客户端(同意建立连接);
3.客户端收到来自服务器的SYN+ACK后,回复ACK给服务端(表示客户端收到了服务端发的同意报文);
4.服务端收到客户端的ACK,连接已建立,可以进行数据传输。

TCP为什么要进行三次握手?
1.因为信道不可靠,而TCP想在不可靠信道建立可靠的传输,那么三次通信是理论上的最小值。(UDP不需要三次握手)
2.因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误

TCP 断开连接全过程解释:
1.客户端发送 FIN 给服务器,说明客户端不必发送数据给服务器了(请求释放从客户端到服务器的连接);
2.服务器接收到客户端发的 FIN,并回复 ACK 给客户端(同意释放从客户端到服务器的连接);
3.客户端收到服务端回复的 ACK,此时从客户端到服务器的连接已释放(但服务端到客户端的连接还未释放,并且客户端还可以接收数据);
4.服务端继续发送之前没发完的数据给客户端;
5.服务端发送 FIN+ACK 给客户端,说明服务端发送完了数据(请求释放从服务端到客户端的连接,就算没收到客户端的回复,过段时间也会自动释放);
6.服务端收到客户端的 ACK 后,断开从服务端到客户端的连接

拥塞控制和流量控制都是什么?两者的区别?
流量控制是端到端的控制,例如A通过网络给B发数据,A发送的太快导致B没办法接收(B缓冲窗口过小或者处理过慢),这时候的控制就是流量控制,原理是通过滑动窗口的大小改变来实现
拥塞控制是A与B之间的网络发生堵塞导致传输过慢或者丢包,来不及传输,防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络性能有关的所有因素

访问一个网页的过程?
1)解析该网址域名对应的IP地址
2)得到网址对应的IP后,客户端会发送TCP的三次握手,进行连接
3)连接成功后,使用HTTP协议发送请求数据包给WEB服务器
4)WEB收到数据请求,通过查询自己服务器得到对应结果,并将结果原路返回给浏览器
5)浏览器收到数据,通过浏览器的渲染结果来显示网页
6)浏览器关闭TCP,四次挥手离别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值