03 2020 档案

摘要:程序执行流发生(异常)跳转 异于正常流程。 一、异常的(检测)触发:编译器插入检查指令(对语言规定的检查项); 二、异常的基本处理机制:类似中断,生成异常场景信息,然后执行转发操作。 三、异常处理的上下文:由线程货其他结构保存的类似函数调用栈的上下文结构体。 异常事件的触发、派发、处理及上下文机制。 阅读全文
posted @ 2020-03-24 15:29 zzfx 阅读(144) 评论(0) 推荐(0) 编辑
摘要:【1】无论是中断,还是异常和陷阱,对应的处理函数,一般都可以称其为中断服务程序ISR, 都只是一个函数 具体函数里面要做什么事情,是由你写程序的人决定的。 【2】 比如中断中处理对应的事情,异常中自己决定如何响应出现的异常,陷阱中决定做什么事情。 【3】 中断:是为了设备与CPU之间的通信。典型的有 阅读全文
posted @ 2020-03-24 15:23 zzfx 阅读(998) 评论(0) 推荐(0) 编辑
摘要:跨平台开发:建立中间层屏蔽底层不同; 跨平台通信:跨环境、跨语言、跨进程、跨进程空间、跨上下文等等。 阅读全文
posted @ 2020-03-24 00:20 zzfx 阅读(286) 评论(0) 推荐(0) 编辑
摘要:stub相当于服务端的对等函数在服务端的注册信息; 或者说服务端对对应服务入口的引用信息。 阅读全文
posted @ 2020-03-24 00:17 zzfx 阅读(663) 评论(0) 推荐(0) 编辑
摘要:Stub 跟 Proxy 是一对,俗称“代理-桩”,一般用在远程方法调用。Proxy 相当于是拿在手里的遥控器,而 Stub 相当于长在电视机里的遥控接收器,它们有着一一对应的接口方法,但操作的方向刚好相反。Proxy 的接口供客户端程序调用,然后它内部会把信息包装好,以某种方式(比如 RMI)传递 阅读全文
posted @ 2020-03-24 00:08 zzfx 阅读(1339) 评论(0) 推荐(0) 编辑
摘要:通信与跨平台、跨语言、跨进程、跨上下文。 阅读全文
posted @ 2020-03-24 00:04 zzfx 阅读(304) 评论(0) 推荐(0) 编辑
摘要:通信的两端各自拥有什么? 需要在会话过程中实时创建吗? 通信的通用的抽象机制是什么? 通信的两端都是一个完备的进程?进程拥有通信的上下文。 通信的对等实体是在配置文件中,需要的时候创建?或者进程创建时全部创建为进程的上下文的。 通信上下文及其构建;通信的信息处理机制。 阅读全文
posted @ 2020-03-23 23:38 zzfx 阅读(332) 评论(0) 推荐(0) 编辑
摘要:RPC框架分层描述(RPC模型) 应用层 远程调用与远程调用的对应函数的实现功能 表示层 将调用名和参量打包 平台层(会话层) 建立对等实体的上下文映射、消息的发送接收机制、信息的处理机制 通信层 根据主机、端口或其他的一些信息建立通信联系。 整套rpc是一个pipeline的过程话的处理流程。 h 阅读全文
posted @ 2020-03-23 23:21 zzfx 阅读(190) 评论(0) 推荐(0) 编辑
摘要:x86寄存器说明ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系. 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄 阅读全文
posted @ 2020-03-23 12:53 zzfx 阅读(521) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/qq_39368007/article/details/84894559 变址的优点 阅读全文
posted @ 2020-03-23 12:50 zzfx 阅读(647) 评论(0) 推荐(0) 编辑
摘要:我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。如下所示: 控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Re 阅读全文
posted @ 2020-03-21 16:51 zzfx 阅读(1238) 评论(0) 推荐(0) 编辑
摘要:CPU工作流程 CPU的基本工作是执行存储的指令序列,即程序。程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程。几乎所有的冯•诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数和结果写回。 https://blog.csdn.net/cc_net/a 阅读全文
posted @ 2020-03-20 17:56 zzfx 阅读(1602) 评论(0) 推荐(0) 编辑
摘要:可见,函数的返回值为结构体类型,其返回值既不是“值传递”也不是通过“寄存器”回传。编译器在编译此类函数时,为其附加了一个指针参数(指向的地址在caller的堆栈上),且作为函数的第一个参数(函数本身的参数依次后移),函数语义上的返回值通过该附加的指针参数回传,而函数真正的返回值就是该指针。 ———— 阅读全文
posted @ 2020-03-19 22:03 zzfx 阅读(3675) 评论(0) 推荐(0) 编辑
摘要:函数的返回值保存在内存的什么区域呢? 1、结构体大小不超过4字节,那么仍然使用EAX寄存器传递返回值2.结构体超过4字节但不等于8字节时,调用者将首先在栈上分配一块能容纳结构体的临时内存块,然后在传递完函数参数后将该临时内存块的首地址作为隐含的第一个参数最后(因为压栈顺序是从右到左)压栈,接下的动作 阅读全文
posted @ 2020-03-19 21:38 zzfx 阅读(1867) 评论(0) 推荐(0) 编辑
摘要:Oc的异常触发 异常是语言库、接口层面的错误; 信号时系统内核的错误; 作者:匿名用户链接:https://www.zhihu.com/question/20175801/answer/14225549来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 既然提问者已经补充 阅读全文
posted @ 2020-03-19 16:38 zzfx 阅读(852) 评论(0) 推荐(0) 编辑
摘要:栈帧只是保存计算上下文的数据结构 重要的要素 1、参量s 2、返回地址(调用函数的下一条指令); 3、调用者的ebp; 4、局部变量; 寄存器: ebp:保存当前栈帧的基址,计算完成时,将这个以后的变量全部弹出; esp 计算完成后的回退操作: 1、将计算结果保存到寄存器; 2、将指令寄存器赋值为保 阅读全文
posted @ 2020-03-19 16:32 zzfx 阅读(263) 评论(0) 推荐(0) 编辑
摘要:软中断调用时将返回地址和CPU状态寄存器内容压栈,修改特权级,根据中断号查找中断向量表,找到ISR中断服务例程地址,跳转执行。 综上,函数调用和软中断调用的区别是,软中断多了修改特权级和查找中断向量表的功能,其他部分完全一样。 一般,系统程序由软件公司实现且不开源,你无法知道系统API函数的偏移地址 阅读全文
posted @ 2020-03-18 23:03 zzfx 阅读(624) 评论(0) 推荐(0) 编辑
摘要:INT(软件中断指令)是CALL指令的一种特殊形式。call指令调用调用的子程序是用户程序的一部分,而INT指令调用的操作系统提供的子程序或者其他特殊的子程序。 中断服务子程序和标准过程的最大区别是 汇编程序可以有任意个过程,中断服务子程序最多有256个过程、 INT指令共有四中不同的格式: 《1》 阅读全文
posted @ 2020-03-18 22:38 zzfx 阅读(2040) 评论(0) 推荐(1) 编辑
摘要:格式:INT N 功能:转到相应中断处理程序执行 举例: mov ah,1;设置参数 int 21h ;调用中断号位21的中断处理程序 这段代码的意思是调用中断号位21的中断处理程序的1号功能,其中ah,是一个参数。 INT N就好像调用一个子程序,只是INT N调用的是中断处理程序罢了。 详解: 阅读全文
posted @ 2020-03-18 22:35 zzfx 阅读(889) 评论(0) 推荐(0) 编辑
摘要:软中断一般是指由指令int引起的“伪”中断动作——给CPU制造一个中断的假象;而硬中断则是实实在在由8259的连线触发的中断。因此,严格的讲,int与IRQ毫无关系,但二者均与中断向量有关系。int引起的中断,CPU是从指令中取得中断向量号;而IRQ引起的中断,CPU必须从数据线上取回中断号(硬件引 阅读全文
posted @ 2020-03-18 22:16 zzfx 阅读(870) 评论(0) 推荐(0) 编辑
摘要:中断向量:是指中断服务程序入口地址的偏移量与段基值,一个中断向量占据4字节空间。中断向量表是8088系统内存中最低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量 阅读全文
posted @ 2020-03-18 21:32 zzfx 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:port-港口、端口-货物(数据)寄存、装卸的地方。 数据的临时存放场所,一头连着运输,一头连着工厂(市场)。 阅读全文
posted @ 2020-03-18 17:26 zzfx 阅读(458) 评论(0) 推荐(0) 编辑
摘要:前言: 中断是计算机发展中一个重要的技术,它的出现很大程度上解放了CPU,提高了CPU的执行效率。 在中断出现之前,CPU对IO采用的是轮询的方式进行服务,这使的CPU纠结在某一个IO上,一直在等待它的响应,如果它不响应,CPU就在原地一直的等下去。这样就导致了其他IO口也在等待CPU的服务,如果某 阅读全文
posted @ 2020-03-18 17:00 zzfx 阅读(5347) 评论(0) 推荐(0) 编辑
摘要:指令周期: CPU每取出并执行一条指令所需的全部时间叫指令周期,也即CPU完成一条指令的时间叫指令周期 一般一条完整的指令包括:取指周期、间址周期、执行周期、中断周期。 JMP X:该指令的指令周期只有取指周期。 ADD X:该指令只有取指周期、执行周期。 一个指令周期包含的机器周期个数亦与指令所要 阅读全文
posted @ 2020-03-18 16:35 zzfx 阅读(4435) 评论(0) 推荐(0) 编辑
摘要:一、指令周期的基本概念 CPU每取出并执行一条指令所需的全部时间叫指令周期,也即CPU完成一条指令的时间叫指令周期,如下图所示。图中的取指阶段完成取指令和分析指令的操作,又叫取指周期;执行阶段完成执行指令的操作,又叫执行周期。在大多数情况下, CPU就是按取指-执行-再取指-再执行……的顺序自动工作 阅读全文
posted @ 2020-03-18 16:31 zzfx 阅读(5804) 评论(0) 推荐(0) 编辑
摘要:一. 简介 App的启动时间是衡量一个App性能的重要指标,或者可以说是App性能的第一印象。在这篇文章中,我们将要介绍启动时间的相关知识和打点统计。 二. 启动优化 2.1 App启动方式 首先了解一下App的启动方式分为两类: 1. 冷启动:从零开始启动App 2. 热启动:App已经存在内存当 阅读全文
posted @ 2020-03-13 17:17 zzfx 阅读(1457) 评论(0) 推荐(0) 编辑
摘要:Because initialize is called in a thread-safe manner and the order of initialize being called on different classes is not guaranteed, it’s important t 阅读全文
posted @ 2020-03-12 11:02 zzfx 阅读(385) 评论(0) 推荐(0) 编辑
摘要:Github:iOS-Source-Probe 源码探求 几天前 Github 的 RetVal 大神更新了可 debug 版本的 706 <objc/runtime.h> 源码,于是让源码阅读学习得以继续。本文将介绍个人学习 load 方法的全部流程。 load 方法的调用时机 从 Effecti 阅读全文
posted @ 2020-03-11 17:26 zzfx 阅读(357) 评论(0) 推荐(0) 编辑
摘要:uiapplicationmain: 基础元素的创建、关联与事件循环启动。 app\window\event\delegate\life circle Flowchart Flowchart of the default app launch sequence in iOS as of Xcode 阅读全文
posted @ 2020-03-09 21:07 zzfx 阅读(156) 评论(0) 推荐(0) 编辑
摘要:操作系统与内核? 操作系统 = 内核 + 服务 内核 = 硬件抽象 + 执行抽象 阅读全文
posted @ 2020-03-08 21:36 zzfx 阅读(340) 评论(0) 推荐(0) 编辑
摘要:OS X的系统结构,维基百科上有这样一张图:&amp;amp;lt;img src="https://pic1.zhimg.com/50/1e0ea7a7b120b4adeaa76a606e278fea_b.jpg" data-rawwidth="556" data-rawheight="525" 阅读全文
posted @ 2020-03-06 10:58 zzfx 阅读(488) 评论(0) 推荐(0) 编辑
摘要:操作系统的编程接口标准 可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 阅读全文
posted @ 2020-03-05 22:35 zzfx 阅读(701) 评论(0) 推荐(0) 编辑
摘要:2、操作系统内核的功能:资源抽象,资源分配,资源共享 资源抽象:用软件抽象硬件资源,简化对其所执行的操作,屏蔽低层的物理细节。 资源分配:把所抽象的各种资源分配给多个应用程序使用,并负责回收资源。 资源共享:根据资源的类型和特性,提供不同的机制以确保进程获得所需资源,允许进程共享资源并提供共享的同步 阅读全文
posted @ 2020-03-05 21:50 zzfx 阅读(2517) 评论(0) 推荐(0) 编辑
摘要:Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。 QNX是一种商用的遵从POSIX规 阅读全文
posted @ 2020-03-05 21:12 zzfx 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:有人说,这个世界上只有两种操作系统: UNIX 和类 UNIX 操作系统; 其它操作系统。 类 UNIX 系统(英文 Unix-like)既包括各种传统的 UNIX 系统,比如 FreeBSD、OpenBSD、Sun Solaris 等,还包括与 UNIX 相似的系统,比如 Linux、QNX、Mi 阅读全文
posted @ 2020-03-05 20:06 zzfx 阅读(1052) 评论(0) 推荐(0) 编辑
摘要:The stack is the memory set aside as scratch space for a thread of execution. When a function is called, a block is reserved on the top of the stack f 阅读全文
posted @ 2020-03-03 16:29 zzfx 阅读(141) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示