同步通信

跳频系统基本原理

久未见 提交于 2019-12-02 13:08:54
跳频系统基本原理   在广阔地域使用短波通信,都希望通信话路畅通和保密。然而他们常遇到窃听、电子对抗、信道拥塞等问题。常规短波电台用固定频率发射和接收,因而无法避开窃听、人为干扰、信道阻塞。这些问题必须利用跳频技术才能彻底克服。通常我们所接触到的无线通信系统都是载波频率固定的通信系统,如无线对讲机,汽车移动电话等,都是在指定的频率上进行通信,所以也称作定频通信。这种定频通信系统,一旦受到干扰就将使通信质量下降,严重时甚至使通信中断。   例如:电台的广播节目,一般是一个发射频率发送一套节目,不同的节目占用不同的发射频率。有时为了让听众能很好地收听一套节目,电台同时用几个发射频率发送同一套节目。这样,如果在某个频率上受到了严重干扰,听众还可以选择最清晰的频道来收听节目,从而起到了抗干扰的效果。但是这样做的代价是需要很多额谱资源才能传送一套节目。如果在不断变换的几个载波频率上传送一套广播节目,而听众的收音机也跟随着不断地在这几个频率上调谐接收,这样,即使某个频率上受到了干扰,也能很好地收听到这套节目。这就变成了一个跳频系统。   另外在敌我双方的通信对抗中,敌方企图发现我方的通信频率,以便于截获所传送的信息内容,或者发现我方通信机所在的方位,以便于引导炮火摧毁。定频通信系统容易暴露目标且易于被截获,这时,采用跳频通信就比较隐蔽也难以被截获。因为跳频通信是“打一枪换一个地方

QNX----第3章 进程间通信(1部分)

為{幸葍}努か 提交于 2019-11-30 10:52:48
QNX----第3章 进程间通信(1部分) 进程间通信在将微内核从嵌入式实时内核转换为全面的POSIX操作系统的过程中起着至关重要的作用。随着各种服务提供进程被添加到微内核中,IPC是将这些组件连接到一个内聚整体的粘合剂。 虽然消息传递是QNX中微子RTOS中IPC的主要形式,但也有其他几种形式。除非另有说明,那些其他形式的IPC是在我们的本机消息传递之上构建的。策略是创建一个简单、健壮的IPC服务,可以通过微内核中的简化代码路径进行性能调优;这样就可以实现更多“功能混乱”的IPC服务。 将更高级别的IPC服务(如通过我们的消息传递实现的管道和FIFOs)与它们的单内核对应服务进行比较的基准测试显示了类似的性能。 QNX Neutrino至少提供了以下形式的IPC: 设计人员可以根据带宽需求、排队需求、网络透明性等因素选择这些服务。这种权衡可能很复杂,但灵活性是有用的。 作为定义微内核的工程工作的一部分,将消息传递作为基本的IPC原语是经过深思熟虑的。作为IPC的一种形式,消息传递(如MsgSend()、MsgReceive()和MsgReply()中实现的那样)是同步的,并复制数据。让我们更详细地研究这两个属性。 同步消息传递 同步消息传递是QNX中微子RTOS中IPC的主要形式。向另一个线程(可能在另一个进程中)执行MsgSend()的线程将被阻塞

操作系统常见笔试面试题

♀尐吖头ヾ 提交于 2019-11-30 05:51:49
操作系统常见笔试面试题 Yuanke_S 2019年06月04日 50 0 本博客内容 一、进程与线程的关系以及区别 二、Windows下的内存是如何管理的 三、中断和轮询的特点 四、什么是临界区、如何解决冲突? 五、分段和分页的区别? 六、进程间通信有哪些方式?它们的区别? 七、线程间的通信机制 八、什么是死锁?产生条件?如何避免死锁 九、进程间同步与互斥的区别,线程同步的方式? 十、进程的调度算法有哪些? 一、进程与线程的关系以及区别 参考: https://blog.csdn.net/yaosiming2011/article/details/44280797 https://www.cnblogs.com/xymqx/p/4442329.html 1.定义:   进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.   线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 2.关系:   一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.   相对进程而言,线程是一个更加接近于执行体的概念

进程通信/线程同步方式总结

杀马特。学长 韩版系。学妹 提交于 2019-11-29 22:17:18
Linux进程间通信IPC 1. 套接字socket:用于不同机器之间的进程间通信。 2. 信号(signal):信号用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身。 3. 管道(pipe):半双工,父子进程间单向传输。 4. 有名管道FIFO(mkfifo):半双工,可在无亲缘关系进程间传输。 5. 流管道(popen/pclose):可双向传输。 6. 文件锁:flock。 7. 内存文件映射(mmap) 8. 共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。 9. 信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。 10. 消息队列:消息队列是消息的链接表,有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。 消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。 System V IPC与Posix IPC 1. System V IPC: 共享内存:shmget/shmat/shmdt/shmctl 信号量: semget/semctl/semop 消息队列:msgget/msgctl/msgrcv/msgsnd 2. Posix IPC: 共享内存:shm_open/shm_unlink/ftruncate/fstat 信号量:

【操作系统】基础知识整理 & 常见面试题

最后都变了- 提交于 2019-11-29 19:06:45
操作系统 1 操作系统概述 操作系统的四个特性 操作系统的五大功能 2 进程 进程的定义 进程的状态 进程的特性 进程的同步、互斥和通信 a 竞争关系 和 进程互斥 b 协作关系 和 进程同步 c 进程通信 3 线程 线程的定义 线程的性质 线程通信 线程同步和互斥 线程机制的优点: 4 进程 VS. 线程 进程与线程之间的关系 进程与线程之间的区别 多进程与多线程之间的区别 5 处理机调度 用户态和核心态 处理机调度的层次 操作系统的常见进程调度算法 6 存储器管理 7 虚拟存储器 定义 特征 实现方法 页面置换算法(服务于分页请求系统) 常见面试题 1 操作系统概述   操作系统是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。 操作系统的四个特性 并发 :同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件); 共享 :系统中的资源可以被内存中多个并发执行的进线程共同使用; 虚拟 :通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个; 异步 :系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进。   操作系统最基本的特征是并发和共享,两者互为存在条件。 操作系统的五大功能 处理机管理 :处理机分配都是以进程为单位

C#-socket简单同步通信学习

。_饼干妹妹 提交于 2019-11-29 11:17:59
SOCKET原理 一、套接字(socket)概念   套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。   应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 二、建立socket连接   建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。   套接字之间的连接过程分为三个步骤: 服务器监听,客户端请求,连接确认。 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字

JMM内存模型详解(一)

十年热恋 提交于 2019-11-28 05:00:33
本文开始死磕JMM(Java内存模型)由于知识点较多,分来写 该文为JMM第一篇 技术往往是枯燥的,本文文字较多 1. JMM是什么? 其实JMM很好理解,我简单的解释一下,在Java多线程中我们经常会涉及到两个概念就是线程之间是如何通信和线程之间的同步,那什么是线程之间的通信呢,其实就是两个线程之间互相交换信息线程之间通信的方式共有两种: 一种就是共享内存,和消息传递 。在共享内存中的并发模型中线程是通过读取主内存的共享信息来进行隐性通信的。在消息传递通信中线程之间没有公共的状态,只能通过发送消息来进行显性通信。然而这只是线程通信,那么同步呢,同步就是在多线程的情况下有顺序的去执行。在共享内存中同步时显式进行的,在代码中我们必须要去指定方法需要同步执行比如说加同步锁等。在消息传递的并发模型中发送消息必须是在消接收之前,所以同步时隐式的。 2.为什么要涉及到线程并发通信 java内存模型其实可以说是Java并发内存模型,在Java中是采用的共享内存模型的方式,所以Java线程之间的通信是隐式进行的,对我们是完全透明的,如果你不了解通信机制的话会产生各种线程可见性的问题。其实在Java中所有的静态域,域和数组元素都存在堆内存中,堆内存在线程中是共享的一般我们都称之为共享变量,局部变量,方法定义参数和异常处理参数不会在线程中共享,所以不会存在线程可见性的问题

【12.7】asyncio的同步和通信

雨燕双飞 提交于 2019-11-28 01:41:09
1 import asyncio 2 from asyncio import Lock, Queue 3 cache = {} 4 lock = Lock() 5 6 7 async def get_stuff(url): 8 # lock.acquire()是一个协程 9 # await lock.acquire() 10 # with await lock 11 # Lock实现了__enter__和__exit__可以使用with语法 12 async with lock: 13 if url in cache: 14 return cache[url] 15 stuff = await aiohttp.request('GET', url) 16 cache[url] = stuff 17 return stuff 18 19 20 async def parse_stuff(): 21 stuff = await get_stuff() 22 # do some parsing 23 24 25 async def use_stuff(): 26 stuff = await get_stuff() 27 # use stuff to do something interesting 28 29 30 if __name__ == '__main__': 31 tasks

万类之父——Object

孤街浪徒 提交于 2019-11-27 19:05:51
jdk1.8.0_144   Object类作为Java中的顶级类,位于java.lang包中。所有的类直接或者间接都继承自它。所以Object类中的方法在所有类中都可以直接调用。在深入介绍它的API时,先插一句它和泛型之间的关系。   在JDK1.5之前是没有泛型的,集合能够装下任意的类型,这就导致了一个潜在的问题——不能在编译时做类型检查,也就可能导致程序bug出现的概率。JDK1.5出现了泛型,在定义一个集合时指定一个泛型,这就能在编译时能做类型检查,避免了一些低级bug的出现。时至今日,实际上在JDK源码中遗留了部分不是特别优美的代码,从今天的角度来看是能够将其泛型化的(例如Map的get方法),但在当时需要考虑向后兼容不得不放弃对某些方法和类的泛型化,才导致了一丝瑕疵。   接下来将详细的剖析Object类中的一些方法,其中某些方法会延伸到其他方面(例如:wait和notify等)。 public final native Class<?> getClass()   返回Class对象实例。Class类有点“特殊”,因为它在我们的日常代码逻辑中不常出现,它所出现的地方往往是一些基础框架或者基础工具。     Class类所处的包同样是java.lang,毫无疑问它的父类还是Object。在学习面向对象编程时,我们知道类是对一个事物抽象的定义

CAN通信详解

点点圈 提交于 2019-11-27 18:10:50
转:https://blog.csdn.net/CSDN_Yoa/article/details/81384924 并结合自己项目上CAN的配置觉得该文章很好希望帮助想了解CAN的网友。 本章参考资料:《STM32F4xx 中文参考手册2》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。 若对CAN通讯协议不了解,可先阅读《CAN总线入门》、《CAN-bus规范》文档内容学习。 关于实验板上的CAN收发器可查阅《TJA1050》文档了解。 40.1 CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称,它是由研发和生产汽车电子产品著称的 德国 BOSCH公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。 CAN总线协议已经成为 汽车计算机控制系统 和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环境。 40.1.1 CAN物理层 与I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN