操作系统
操作系统算是基础了,重点就这么几个
进程
- 什是进程?一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
- 进程是资源申请和系统调度的基本单位
- 进程描述了程序的动态执行过程。
- 对应处理机、存储器和外设等资源的分配和回收
- 反映系统中程序执行的并发性、随机性和资源共享
- 多进程提高了对硬件资源的利用率,但有带来了额外的空间和时间开销,增加了OS的复杂性
进程与程序
- 进程是动态的,程序是动态的
- 进程是暂时的,程序是永久的
- 进程与程序的组成不同
- 进程更能真实的描述并发,程序不能
- 进程可创建其他进程,程序不能
- 一个程序对应于若干个不同的进程,进程是程序的一次执行
进程生命周期
新建-就绪-执行-阻塞-刮起阻塞-挂起就绪-退出
进程间通信
通信分为低级通信和高级通信
- 低级通信:以信号量作为通信工具,交换的信息量少
- 高级通信:操作系统提供的一组通信命令,高效的传送大量数据
高级通信的方式:共享内存、消息队列、管道、套接字、文件、信号、内存映射文件
进程与线程区别
概念上:
- 进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位
- 线程:一个进程内的基本调度单位,一个进程可以包含一个或多个线程
从执行结果看:
- 进程:用够独立的内存单元,而多个线程共享内存
- 线程:每一个独立的线程都有一个程序运行的入口、顺序执行序列、程序的出口。但是线程不能独立执行,必须依存在应用程序中
从逻辑角度看:
- 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行,但是操作系统并没有将多个线程看做多个独立的应用,来实现进程间的调度和挂你及资源分配
死锁
什么是死锁?
多个进程在运行过程中因争夺资源而造成一种僵局,当进程处于这种僵持状态时若无外力作用,他们都将无法向前推进
产生的原因
- 资源不足导致的资源竞争:多个进程所共享的资源不足,引起他们对资源的竞争而产生死锁
- 并发顺序不当:当进程运行过程中,请求和释放资源的顺序不当,而导致进程死锁
充要条件
互斥-占有且等待-非剥夺-循环等待
处理死锁的基本方法
预防-避免-检测接触-忽略
虚拟存储
具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充
计算机网络
计算机网络也有部分考点
OSI模型及每一层作用
OSI模型,按自顶向下可分为五层或七层,一下按五层来讲,分别是:
- 应用层:
- 传输层:端到端可靠报文传递和错误恢复
- 网络层:数据包从源到宿的传递和网际互联
- 链路层:将比特组装成帧 点到点传递
- 物理层:通过物理媒介传输比特
IP地址作用及分类
IP地址是ip协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异
ARP
ARP是地址解析协议。
原理:
每个主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
当源主机要发送数据时,首先检查ARP列表中是否有对应的IP地址的目的主机的MAC地址,如果有则直接发送数据,如果没有就要向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址、源主机MAC地址,目的主机IP地址。
当本网络的所有主机收到该ARP数据包时,首先会检查数据包中IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP地址和MAC地址写入到ARP列表中,如果已存在,则覆盖,然后将自己的MAC地址写入到ARP响应包中,告诉源主机自己是他想要找的MAC地址。
源主机收到ARP响应包后,将目的主机的IP地址和MAC地址写入到ARP列表中,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败
TCP三次握手四次挥手
三次握手:
第一次:客户端向服务器发送syn,进入SYN_SEND状态
第二次:服务器接收到syn,确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包,进入ESTABLISHED状态
第三次:客户端接收到服务器的SYN_ACK包,向服务器发送确认包ACK,进入ESTABLISHED状态,完成三次握手。
四次挥手:
第一次:主动方发送一个FIN,关闭主动方到被动方的数据传送
第二次:被动方收到FIN后,发送一个ACK给对方
第三次:被动方发送一个FIN,关闭被动方到主动方的数据传送
第四次:主动方收到FIN,发送一个ACK给被动方
TCP UDP 区别
TCP建立长连接,是安全可靠的数据传输,而UDP不会建立连接,是不可靠的
TCP传输的单位是TCP报文段,UDP传输单位是用户数据报
TCP注重安全性,UDP传数据快,安全性一般
TCP对应的协议:FTP Telnet SMTP POP3 HTTP
UDP对应的协议:DNS SNMP TFTP
浏览器中输入www.baidu.com后的执行过程
1.客户端通过DNS解析到域名对应的IP地址,通过这个IP地址找到客户端到服务器的路径,客户端浏览器通过发起一个HTTP会话,然后通过TCP进行封装数据包,输入到网络层
2.在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口号
3.客户端网络层通过查找路由表确定如何到达服务器
4.客户端在链路层将包发送到路由器,通过邻居协议查找到给定的IP地址的MAC地址,然后发送ARP请求查找到目的地址,如果得到回应的话就可以使用ARP的请求应答交换IP数据包现在就可以传输了