【多任务的实现】

简介: 【多任务的实现】

多任务就是操作系统可以同时运行多个任务,至少同时有3个任务正在运行

多任务实现的3种方式:多进程模式;多线程模式;多进程+多线程模式

注意点:

并发:指的是任务数>CPU核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行

(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)

并行:指的是任务数<=CPU核数,即任务真的是一起执行的

线程访问全局变量

在一个进程内所有线程共享全局变量,方便在于多个线程间共享数据

缺点:线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)

七层模型,亦称OSI(Open System Interconnection)

参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,

一般称为OSI参考模型或七层模型

它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

物理层:建立、维护、断开物理连接。(由底层网络定义协议)

数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能(由底层网络定义协议)

将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择 ,协议有:ICMP IGMP IP(IPV4 IPV6)

传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

会话层

建立、管理、终止会话。(在五层模型里面已经合并到了应用层),对应主机进程,指本地主机与远程主机正在进行的会话

表示层:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层),格式有,JPEG、ASCll、EBCDIC、加密格式等

应用层:网络服务与最终用户的一个接口,协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。

端口是通过端口号来标记的,端口号只有整数,范围是从0到65535,按照一定的规定进行分配。


知名端口是众所周知的端口号,范围从0到1023, 如果一个程序需要使用知名端口的需要有root权限。

动态端口的范围是从1024到65535


之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。


动态分配是指当一个系统程序或应用程序程序需要网络通信时,


它向主机申请一个端口,主机从可用的端口号中分配一个供它使用。


当这个程序关闭时,同时也就释放了所占用的端口号

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议。

在通信开始之前,不需要建立相关的链接,只需要发送数据即可

TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)

是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义

TCP通信需要经过创建连接、数据传送、终止连接三个步骤。

创建一个基于udp的网络程序:

创建客户端套接字

发送/接收数据

关闭套接字

完成一个tcp服务器的功能,需要的流程:

socket创建一个套接字

bind绑定ip和port

listen使套接字变为可以被动链接

accept等待客户端的链接

recv/send接收发送数据



TCP的特点:

1.面向连接

2.可靠传输

1)TCP采用发送应答机制

2)超时重传

3)错误校验

4)流量控制和阻塞管理



TCP与UDP的区别

面向连接(确认有创建三方交握,连接已创建才作传输。)

有序数据传输

重发丢失的数据包

舍弃重复的数据包

无差错的数据传输

阻塞/流量控制

相关文章
|
存储 编解码 算法
MRI多任务技术及应用
MRI多任务技术及应用
|
机器学习/深度学习 搜索推荐 算法
多任务学习之mmoe理论详解与实践
多任务学习之mmoe理论详解与实践
多任务学习之mmoe理论详解与实践
|
5月前
|
并行计算 安全 物联网
操作系统的演化:从单任务到多任务再到并行计算
【8月更文挑战第6天】在数字技术的飞速发展中,操作系统作为计算机硬件与软件之间的桥梁,其设计哲学和功能实现经历了翻天覆地的变化。本文将探讨操作系统如何从最初的单任务处理模式,逐步演变为支持多任务、多用户以及并行计算的复杂系统,并分析这一过程中的关键技术创新及其对现代计算领域的影响。我们将通过历史的视角,揭示操作系统设计的进步如何推动整个信息社会的变革。
75 1
|
5月前
|
资源调度 并行计算 算法
操作系统的演变:从单任务到多任务再到并行计算
在数字时代的浪潮中,操作系统作为计算机硬件与软件之间的桥梁,其发展史是技术进步的缩影。本文将探索操作系统的演化轨迹,从早期的单任务系统,经历多任务处理的革命,直至今日并行计算的挑战与机遇。通过回顾历史,我们将理解现代操作系统设计的复杂性及其对计算未来的启示。
|
6月前
|
分布式计算 并行计算 iOS开发
操作系统的演变:从单任务到多任务和并行计算
【7月更文挑战第30天】本文旨在探索操作系统(OS)从最早期的单任务处理模式,经过多任务处理的变革,最终发展至支持并行计算的现代操作系统。文章将详细讨论每个阶段的技术特点、设计哲学以及它们对计算机科学领域的影响。通过比较不同时代的操作系统,我们可以更好地理解现代操作系统的复杂性和它们如何支撑起当今数字世界的基础设施。
|
6月前
|
分布式计算 并行计算 安全
操作系统的演变:从单任务到多任务,再到并行计算
随着计算机技术的飞速发展,操作系统作为计算机系统的核心,也在不断地演进和升级。本文将从操作系统的发展历程出发,详细解析从单任务到多任务,再到并行计算的演变过程。我们将深入探讨每个阶段的特点、优势以及面临的挑战,并结合具体案例和数据进行对比分析,以期为读者提供对操作系统发展脉络的全面认识。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
多任务学习
【5月更文挑战第25天】多任务学习
77 5
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
多任务学习的优势
【5月更文挑战第25天】多任务学习的优势
139 6
|
自然语言处理 计算机视觉
单一ViT模型执行多模态多任务,谷歌用协同训练策略实现多个SOTA
单一ViT模型执行多模态多任务,谷歌用协同训练策略实现多个SOTA
428 0
|
自然语言处理 Java 物联网
干货!MFTCoder论文多任务微调技术详解
代码大模型(Code LLMs)已经成为一个专门的研究领域,通过使用代码相关数据对预训练模型进行微调来提升模型的编码能力。以往的微调方法通常针对特定的下游任务或场景进行定制,意味着每个任务需要单独进行微调,需要大量的训练资源,并且由于多个模型并存而难于维护和部署。此外,这些方法未能利用不同代码任务之间的内在联系。
466 0