模拟面试

1.TCP通信中的三次握手和四次挥手过程

三次握手

1.客户端像向服务器端发送连接请求

2.服务器应答连接请求

3.客户端与服务器简历连接

四次挥手:

客户端或服务器端发起断开请求,这里假设客户端发送断开请求

1.客户端向服务器发送断开请求

2.服务器应答断开请求

3.服务器请求关闭连接

4.客户端发送确认应答

2.并发和并行的区别

并发:一个处理器同时处理多个任务。

并行:多个处理器同时处理多个不同的任务。

3.阻塞IO和非阻塞IO的区别

阻塞IO:若等待的事件没有发生,会一直阻塞等待,不会执行后序的任务

非阻塞IO:如果等待的事件没有发生,会立即返回,继续后序的任务

4.同步和异步的区别

同步是阻塞模式,异步是非阻塞模式

同步:进程必须按顺序执行。例:如果该请求需要一段时间才能返回信息,那么该进程将会一直等待,直到收到返回信息才会继续执行

异步:多个任务执行没有先后顺序,可以并发执行。例:进程不需要一直等下去,而继续执行下面的操作,不管其他进程的状态。节约了时间,提高了效率。

但有些时候必要要用同步解决,就比如必须拿到返回的数据才能对后面进行操作。

5.详细描述IO多路复用的原理

引入目的:

        在有操作系统时,想多任务并发执行,可以使用多进程或多线程完成多任务并发执行。但在没有操作系统的情况下,就不能使用多进程和多线程,转而使用IO多路复用技术

原理:

        将多个阻塞任务的文件描述符,统一放入到一个检测容器中,然后用一个阻塞函数进行管理,如果检测容器中有一个或多个文件描述符对应的事件产生,就会解除阻塞,进而去执行相应的函数。

6.广播的相关内容

1.主机之间是一对多的通信模式,网络对其中的每一台主机都会进行消息转发

2.在当前网络下的所有主机都会收到广播消息(无论对方是否愿意接受)

3.广播的实现方式是基于UDP通信模型

4.广播地址:当前网络号+全1的主机号

5.广播消息不允许穿过路由器

7.组播的相关内容

1.广播是给同一网络下的所有主机发送消息,会占用大量的网络带宽,影响正常的网络通信

2.组播也是实现一对多的通信机制,只有加入了同一个小组的主机可以收到该组内发送的数据

3.组播也是通过UDP实现的

4.组播地址:D类网络(224.0.0.0---239.255.255.255)

8.在使用套接字通信时,客户端就一定不需要绑定操作吗

不一定,对于报式域套接字,如果不绑定套接字文件,系统不会自动绑定,发送数据没有问题,但是服务器不能向客户端发送信息

9.进程间通信的方式有哪些

套接字、共享内存、管道(有名管道、无名管道)、信号、信号灯集、消息队列

10.线程的同步互斥机制

在多任务操作系统中,同时运行的多个任务可能:

        都需要访问、使用同一种临界资源

        多个任务之间有依赖关系,某个任务的运行依赖于另一个任务

同步:进程必须按顺序执行

互斥:一个临界资源在同一时刻只能被一个进程或线程使用,不能同时使用。

线程之间,如果要进行通信,需要引入同步互斥机制,避免产生竞态。保证任何一个时刻,只有一个线程处理临界资源。

1.互斥锁:

对于要访问临界资源的线程,在访问之前要先申请互斥锁

互斥锁只能保证临界区完整,只有一个线程访问,但无法指定访问者的顺序

2.信号量(信号灯)

对于要访问临界资源的线程,都去执行申请信号量的操作

互斥锁又称为二值信号量,只允许一个线程进入临界区,即信号量的初始值为1

PV操作:实现线程、进程同步互斥

        P:申请信号量,减操作

        V:释放信号量,加操作

3.条件变量

将不访问共享资源的线程直接休眠,并设置一个唤醒条件,该唤醒条件称之为条件变量

当到线程需要访问的时候,其他线程通过制定的条件变量唤醒该线程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值