冯诺依曼结构
1> 采纳二进制, 摈弃十进制
2> 程序存储
|================================
| 内存储器 |
| 运算器 控制器 |
| |
| 输出设施 输出设备 |
|=================================|
简化为: CPU(中央处理器) + 内存储器 + I/O 设施
1、操作系统必须针对 “ 硬件 ” 来开发, 即 某些架构, arm/x86 等等
2、操作系统提供可用的 人机交互 界面
3、操作系统 反对用户 编写和安装程序
个别 操作系统两大次要内容:
1> 面向上层: 治理硬件
2> 面向下层: 提供人机交互、为第三方程序研发提供 API
定义:
计算机操作系统是 负责管理系统硬件, 并为下层利用提供稳固编程接口 和 人机交互界面的 软件汇合
其中 要钻研的 Andoird os 是基于 Linux kernel
过程间通信 IPC
指 运行在 不同过程 (无论是否在 1 台机器上) 中的若干线程的 数据交互
实现形式: 消息传递、管道、socket、、、、共享内存、文件共享
[1]共享内存 shared memery
因为两个过程能够间接共享拜访 同一块 内存区域, 缩小了数据的复制操作, 因此速度较快
实现共享内存:
1> 创立共享内存区
// linux 中用 shmget 函数实现, 生成的 共享内存快将 与特定的某个 key (shmget 的第 1 个参数) 绑定
2> 映射共享内存区
// 把申请的共享内存映射到过程的空间能力进一步操作, linux 下用 shmat 实现
3> 拜访共享内存区
// 过程 1 创立了内存共享区, 过程 2 拜访: 利用过程 1 创立时 的 key, 过程 2 shmget 传入同 1 个 key 值
// 而后 过程 2 执行 shmat 将内存映射到它的空间
but 共享内存没有 同步的机制
4> 利用该区域 进行信息替换
5> 撤销内存映射区
// linux 中 用 shmdt 实现
6> 删除共享内存区
// linux 下用 shctl 实现
[2] 管道 pipe
g
[3] Socket
IPC 针对单机内的过程间通信,
Android 中的 IPC 机制 是 binder,其次是 UDS