Skip to content

Commit

Permalink
fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
wolverinn committed Dec 21, 2019
1 parent 00daad0 commit 18e68cd
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
6 changes: 3 additions & 3 deletions Computer Network.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ TCP连接的一方A,随机选择一个32位的序列号(Sequence Number)
![四次挥手](_v_images/20191129112652915_15481.png)

- 第一次挥手:Client将FIN置为1,发送一个序列号seq给Server;进入FIN_WAIT_1状态;
- 第二次挥手:Server收到FIN之后,发送一个ACK=1,acknowledge number=收到的序列号+1,同时发送一个自己的序列号;进入CLOSE_WAIT状态。此时客户端已经没有要发送的数据了,但仍可以接受服务器发来的数据。
- 第二次挥手:Server收到FIN之后,发送一个ACK=1,acknowledge number=收到的序列号+1;进入CLOSE_WAIT状态。此时客户端已经没有要发送的数据了,但仍可以接受服务器发来的数据。
- 第三次挥手:Server将FIN置1,发送一个序列号给Client;进入LAST_ACK状态;
- 第四次挥手:Client收到服务器的FIN后,进入TIME_WAIT状态;接着将ACK置1,发送一个acknowledge number=序列号+1给服务器;服务器收到后,确认acknowledge number后,变为CLOSED状态,不再向客户端发送数据。客户端等待2*MSL(报文段最长寿命)时间后,也进入CLOSED状态。完成四次挥手。

Expand Down Expand Up @@ -190,7 +190,7 @@ UDP接收方收到报文后,不需要给出任何确认

无连接的网络服务(数据报服务)-- 面向连接的网络服务(虚电路服务)

虚电路服务:首先建立连接,所有的数据包经过相同的路径,服务质量有较号的保证
虚电路服务:首先建立连接,所有的数据包经过相同的路径,服务质量有较好的保证

数据报服务:每个数据包含目的地址,数据路由相互独立(路径可能变化);网络尽最大努力交付数据,但不保证不丢失、不保证先后顺序、不保证在时限内交付;网络发生拥塞时,可能会将一些分组丢弃;

Expand All @@ -200,7 +200,7 @@ UDP接收方收到报文后,不需要给出任何确认
### TCP如何保证传输的可靠性

1. 数据包校验
2. 对失序数据包重新排序
2. 对失序数据包重新排序(TCP报文具有序列号)
3. 丢弃重复数据
4. 应答机制:接收方收到数据之后,会发送一个确认(通常延迟几分之一秒);
5. 超时重发:发送方发出数据之后,启动一个定时器,超时未收到接收方的确认,则重新发送这个数据;
Expand Down
6 changes: 6 additions & 0 deletions Database.md
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,12 @@ delete;
- [ ] E-R 模型
- [ ] [数据类型](https://github.com/CyC2018/CS-Notes/blob/master/notes/MySQL.md#%E5%9B%9B%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B):VARCHAR和CHAR的区别,DATETIME和TIMESATMP的区别
- [ ] Redis 面试
- [CyC2018](https://github.com/CyC2018/CS-Notes/blob/master/notes/Redis.md)
- [几率大的Redis面试题(含答案) - CSDN](https://blog.csdn.net/Butterfly_resting/article/details/89668661)
- [Redis面试题总结 - 简书](https://www.jianshu.com/p/65765dd10671)
- [Redis常见面试题 - 博客园](https://www.cnblogs.com/jasontec/p/9699242.html)
- [0voice/interview_internal_reference](https://github.com/0voice/interview_internal_reference#10)
- [ ] [史上最全的数据库面试题,不看绝对后悔 -- 博客园](https://www.cnblogs.com/wenxiaofei/p/9853682.html)
- [ ] MySQL索引的底层实现原理(B+ Tree)(https://blog.csdn.net/justloveyou_/article/details/78308460)
- [ ] 使用B+ 与红黑树、B-、Hash索引的比较(https://github.com/CyC2018/CS-Notes/blob/master/notes/MySQL.md)

Expand Down
14 changes: 13 additions & 1 deletion Operating Systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@ wait操作:执行wait操作的进程进入条件变量链末尾,唤醒紧急

##### 并发、并行、异步的区别?

<details>
<summary>展开</summary>

并发:在一个时间段中同时有多个程序在运行,但其实任一时刻,只有一个程序在CPU上运行,宏观上的并发是通过不断的切换实现的;

多线程:并发运行的一段代码。是实现异步的手段

并行(和串行相比):在多CPU系统中,多个程序无论宏观还是微观上都是同时执行的

异步(和同步相比):同步是顺序执行,异步是在等待某个资源的时候继续做自己的事
</details>

### 进程有哪几种状态?

![Process State](_v_images/20191202090217863_1873.png)
Expand Down Expand Up @@ -253,7 +265,7 @@ wait操作:执行wait操作的进程进入条件变量链末尾,唤醒紧急
> 为什么需要线程同步:线程有时候会和其他线程共享一些资源,比如内存、数据库等。当多个线程同时读写同一份共享资源的时候,可能会发生冲突。因此需要线程的同步,多个线程按顺序访问资源。
- **互斥量** Mutex:互斥量是内核对象,只有拥有互斥对象的线程才有访问互斥资源的权限。因为互斥对象只有一个,所以可以保证互斥资源不会被多个线程同时访问;当前拥有互斥对象的线程处理完任务后必须将互斥对象交出,以便其他线程访问该资源;
- **信号量** Semaphore:信号量是内核对象,它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。信号量对象保存了最大资源计数和当前可用资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就减1,只要当前可用资源计数大于0,就可以发出信号量信号,如果为0,则将线程放入一个队列中等待。线程处理完共享资源后,应在离开的同时通过```ReleaseSemaphore```函数将当前可用资源数加1。如果信号量的取值只能为0或1,那么信号量就成为了互斥量;
- **信号量** Semaphore:信号量是内核对象,它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。信号量对象保存了**最大资源计数****当前可用资源计数**,每增加一个线程对共享资源的访问,当前可用资源计数就减1,只要当前可用资源计数大于0,就可以发出信号量信号,如果为0,则将线程放入一个队列中等待。线程处理完共享资源后,应在离开的同时通过```ReleaseSemaphore```函数将当前可用资源数加1。如果信号量的取值只能为0或1,那么信号量就成为了互斥量;
- **事件** Event:允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务。事件分为手动重置事件和自动重置事件。手动重置事件被设置为激发状态后,会唤醒所有等待的线程,而且一直保持为激发状态,直到程序重新把它设置为未激发状态。自动重置事件被设置为激发状态后,会唤醒**一个**等待中的线程,然后自动恢复为未激发状态。
- **临界区** Critical Section:任意时刻只允许一个线程对临界资源进行访问。拥有临界区对象的线程可以访问该临界资源,其它试图访问该资源的线程将被挂起,直到临界区对象被释放。

Expand Down

0 comments on commit 18e68cd

Please sign in to comment.