操作系统
一些朴实的操作系统概念和知识
街道口afs
这个作者很懒,什么都没留下…
展开
-
应用层的binder
java服务框架构成。 java层ipc调用 使用aidl进行跨进程通讯极大的简化了应用层的开发流程。阅读完《Android框架揭秘》的7、8两章,可以提高对binder的认知。再来看aidl的生成文件就容易多了。 ...原创 2020-03-26 17:15:36 · 127 阅读 · 0 评论 -
binder通讯过程
这一个过程在《android框架解密》中有细致的讲解。 binder中设计到的类如下图所示。 Binder服务中的类结构图 可以看到从RefBase中派生下来重要有三类, - IBinder系,是Android中binder抽象数据结构,负责接收rpc数据和代码,生成binder节点。 -ProcessState系,是一些支持binder通信的类和数据结构。 - Inte...原创 2020-03-25 12:59:06 · 326 阅读 · 0 评论 -
Binder摘要
binder是android中的一种跨进程的通信方式 通常一次跨进程调用现它包含四个对象,客户端,服务端,ServiceManager,binder驱动。其中客户端、服务端、ServiceManager都是位于不同的进程,他们都是通过binder进行跨进程调用的。 原理是通过内核空间来完成代码调用、数据交换;每个进程的用户空间都有一小块内存区域映射了一个内核内存区域,通过映射用户就能够获得到...原创 2020-03-24 23:12:59 · 131 阅读 · 0 评论 -
Android中的类
1.主线程的looper.loop()是个死循环,为什么ui线程不会出现anr。 首先,其次在ActivityThread中如果looper执行结束了,应用程序的主线程就结束。 anr核心也是通过looper处理超时消息来实现的。 就那广播的10s未执行完,然后出现anr这来举例。在发送广播的时候会发送一条广播消息,和一条延迟的广播超时消息,如果广播执行完成就从messagequeue中删除...原创 2020-03-23 14:40:30 · 488 阅读 · 0 评论 -
Android系统启动摘要
1.Android中init进程主要做了什么事情? a.解析init.rc文件。 b.根据配置文件创建属性服务和zygote进程。 2.zygote进程主要做了什么事情? zygote进程是根据init.rc文件中的配置创建的。启动位置在App_main.cpp a.在AndroidRuntime::start()中创建虚拟机、注册jni,并通过jni调用java类ZygoteIni...原创 2020-03-23 12:07:29 · 120 阅读 · 0 评论 -
计算机基础知识
1.为什么计算机进行小数运算的时候会出错? 首先来看一下二进制数1011.0011转化成10进制数的方式,如下图所示。 该转换方式同样适用于16进制转10进制。 小数运算出错的原因在于,一些小数无法转化成2进制,比如0.1就无法用2进制表示。 十进制数0.1转换成二进制后,会变成0.00011001100…(1100循环)这样的循环小数这和无法用十进制数来表示1/3是一样的道理。1...原创 2020-03-20 21:04:36 · 142 阅读 · 0 评论 -
操作系统哲学原理笔记
1.用户程序和操作系统又什么关系呢? 操作系统为用户程序提供各种服务,用户程序通过调用操作系统提供的服务来完成任务。 2.用户态和内核态 用户态和内核态是cpu的状态(根据cpu中的一个标志位来判断当前状态),当cpu处于内核状态的时候能够获得更多系统的资源,而处于用户态是获得的系统资源相对较少。、 操作系统对进程的管理是通过进程表来是实现的, ...原创 2020-03-20 19:49:06 · 266 阅读 · 0 评论