Linux进程通讯机制Linux系统中有万物皆文件的说法,虚拟文件系统(VFS)是Linux对外的接口,任何程序都必须通过这层接口来使用它。为了避免系统安全问题(越权访问),进程间内存无法共享,数据交互就得采用特殊的通信机制(IPC)。进程划分用户空间(不可共享)跟内核空间(可共享),并且所有进程都共享一个内核空间;Linux系统中,主要通过 copy_from_user()跟 copy_to_user()函数来进行跨进程数据的交互。交互流程当Client向Server发起IPC请求时(交互),Client会先将数据从用户空间拷贝到内核空间,驱动程序在将内核空间中的数据拷贝到Server中,完
前言为什么要老药换新汤作为Android中至关重要的机制之一,十多年来,分析它的文章不断,大量的内容已经被挖掘过了。所以:已经对这一机制熟稔于心的读者,在这篇文章中,看不到新东西了。但对于还不太熟悉消息机制的读者,可以在文章的基础上,继续挖一挖。一般,诸如此类有关Android的消息机制的文章,经过简单的检索和分析,大部分是围绕:Handler,Looper,MQ的关系上层的Handler,Looper、MQ源码分析展开的。单纯的从这些角度学习的话,并不能完全理解消息机制。这篇文章本质还是一次脑暴,一来:避免脑暴跑偏,二来:帮助读者捋清内容脉络。先放出脑图:脑暴:OS解决进程间通信问题程序世界
前言为什么要老药换新汤作为Android中至关重要的机制之一,十多年来,分析它的文章不断,大量的内容已经被挖掘过了。所以:已经对这一机制熟稔于心的读者,在这篇文章中,看不到新东西了。但对于还不太熟悉消息机制的读者,可以在文章的基础上,继续挖一挖。一般,诸如此类有关Android的消息机制的文章,经过简单的检索和分析,大部分是围绕:Handler,Looper,MQ的关系上层的Handler,Looper、MQ源码分析展开的。单纯的从这些角度学习的话,并不能完全理解消息机制。这篇文章本质还是一次脑暴,一来:避免脑暴跑偏,二来:帮助读者捋清内容脉络。先放出脑图:脑暴:OS解决进程间通信问题程序世界
前段时间一个小伙伴去面试,遇到这样一个问题。”Fail-safe机制与Fail-fast机制分别有什么作用“他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。普通人的回答 额….嗯… 高手的回答Fail-safe和Fail-fast,是多线程并发操作集合时的一种失败处理机制。Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常,从而导致遍历失败,像这种情况定义一个Map集合,使用Iterator迭代器进行数据遍历,在遍历过程中,对集合
前段时间一个小伙伴去面试,遇到这样一个问题。”Fail-safe机制与Fail-fast机制分别有什么作用“他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。普通人的回答 额….嗯… 高手的回答Fail-safe和Fail-fast,是多线程并发操作集合时的一种失败处理机制。Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常,从而导致遍历失败,像这种情况定义一个Map集合,使用Iterator迭代器进行数据遍历,在遍历过程中,对集合
一、list-watch机制1.1list-watch介绍Kubernetes是通过List-Watch的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过kubectl根据配置文件,向APIServer发送命令,在Node节点上面建立Pod和Container。APIServer经过API调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里 需要ControllerManager、Scheduler和kubelet的协助才能完成整个部署过程。在Kubernetes中,所有部署的信息都会写到etcd中保存。实际上etcd在存储部署信息的时候
一、list-watch机制1.1list-watch介绍Kubernetes是通过List-Watch的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过kubectl根据配置文件,向APIServer发送命令,在Node节点上面建立Pod和Container。APIServer经过API调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里 需要ControllerManager、Scheduler和kubelet的协助才能完成整个部署过程。在Kubernetes中,所有部署的信息都会写到etcd中保存。实际上etcd在存储部署信息的时候
一、kubernetes安全机制apiserver是k8s集群的入口,默认有两个端口:本地端口8080:用于接收HTTP请求,不对外服务,非认证或授权的HTTP请求通过该端口访问APIServer安全端口6443:用于接收认证授权的HTTPS请求,对外服务。用户通过安全端口访问k8s的apiserver需要过三关:认证、授权、准入控制Authentication认证:用于识别用户身份,方式有:SSL证书,token,用户名+密码等Authorization授权:确认是否对资源具有相关的权限AdmissionControl准入控制:判断操作是否符合集群的要求 无论kubectl客户端命令或api
一、kubernetes安全机制apiserver是k8s集群的入口,默认有两个端口:本地端口8080:用于接收HTTP请求,不对外服务,非认证或授权的HTTP请求通过该端口访问APIServer安全端口6443:用于接收认证授权的HTTPS请求,对外服务。用户通过安全端口访问k8s的apiserver需要过三关:认证、授权、准入控制Authentication认证:用于识别用户身份,方式有:SSL证书,token,用户名+密码等Authorization授权:确认是否对资源具有相关的权限AdmissionControl准入控制:判断操作是否符合集群的要求 无论kubectl客户端命令或api
TTL机制排毒,线上k8s的Job已经通过API增加了Job的TTL时长,且成功响应,为什么系统还是清理了Job?面试官:"已完成Job的TTL机制了解嘛?简单说说TTL存在的时间偏差问题?"面试官:"能简单描述一下什么是TTL-after-finished控制器嘛?"面试官:"我明明已经通过API增加了Job的TTL时长,且得到了成功的响应,为什么系统还是清理了Job?"面试官:"如何更加准确的跟踪Job完成情况?了解Finalizer追踪Job嘛?"面试官:"说说什么场景下CronJob无法被调度?"囧么肥事-胡说八道已完成Job的TTL机制了解嘛?简单说说TTL存在的时间偏差问题?完成的