- 目标和功能
- 作为用户 计算机接口的操作系统
-
操作系统处于硬件之上,而底层硬件只能识别,高低电平,转化到计算机中及二进制代码,二级制指令集,操作系统对于底层硬件的进行封装,封装相应接口给上层用户使用。计算机里面存储的数据都是二进制的,编程过程中我们会使用一些高级语言,实际上高级语言最终会生成二进制代码,这个过程叫做编译。这种封装成为HAL层,作用是屏蔽底层的硬件电路的差异性,对于上层用户提供统一的可用的接口。例如文件系统可能有不同的文件系统,但是对于文件系统的访问读写,在同一个操作系统中大致相同。当然操作系统的功能不止于此。(API和二进制接口的区别,链接的过程实际上使用的是机器中的二进制接口(编译过程),API只是存在于编译器的上层),接口的定义===对于操作系统至关重要,当然对于操作系统向外提供的接口远远不止调用HAL层接口的硬件,还有很多其他类型的接口
-
- 作为资源管理器的操作系统
-
- 操作系统易扩展性
- 硬件升级,新的硬件
- 新的服务
- 纠正错误
- 作为用户 计算机接口的操作系统
- 发展
- 串行处理
- 简单批处理
- 多道批处理
- 分时系统(现在的操作系统也可以理解为多道批处理和分时系统的强化升级)
- 成就
- 进程
- 解决的问题
- 不正确的同步(收到不正确的信号或者重复信号)
- 失败的互斥(共享同一设备)
- 不确定的程序操作,(多个程序对系统更改应发不确定性)
- 死锁(循环等待)
- 组成部分
- 一段可执行的程序
- 程序所需要的相关数据(变量,工作空间,缓冲区等)
- 程序执行的上下文
- 包括操作系统管理进程和处理器正确执行进程的所有信息,包括各种处理器寄存器的内容,包括程序计数器和数据寄存器,还包括操作系统使用的信息,进程优先级以及是否在等特定io时间
- 程序计数器,基址寄存器,界限寄存器(这就是为什么程序当中需要存在地址这个概念的原因,取指令的时候为什么先要取地址,根据地址然后去命令进行执行,命令不变,地址在内存中可变,这就是为什么的原因),程序执行时会被装载到特定的内存中,基址寄存器和界限寄存器限制最大不可超越的内存寻址范围,地址只出现在程序执行的过程中
-
详细请参照相关书籍
- 解决的问题
- 内存管理
- 功能
- 进程隔离:防止进程相互干涉
- 自动分配和管理:对于程序员透明,在需要时分配存储空间
- 支持模块化程序设计:自定义程序模块,动态改变模块
- 保护和访问控制:
- 长期存储
- 虚拟内存,文件系统
- 虚拟内存,引入分页机制,缺页调度等,逻辑角度划分内存(局部性原理),虚拟内存,极大地扩展了内存。
- 文件系统,持久化数据,文件系统,文件管理等
- 功能
- 信息保护和安全
- 保护系统不被打断
- 保证用户不能读取未授权饿数据
- 保护数据不被未授权修改
- 认证
- 调度和资源管理
- 公平性
- 有差异的响应性
- 有效性
- 进程
- 现代操作系统的特征
- 微内核体系结构
- 主要用在嵌入式系统当中,目的也很简单,其实就是为了降低硬件成本,减少不必要的硬件支出
- 多线程
- 线程,同一个进程的线程共享进程的所有数据,线程有自己的数据,但是有自己的程序计数器和方法栈
- 进程,基址寄存器,界限寄存器等
- 对称多处理
- 提高并行程度
- 分布式操作系统
- 分布式解决单机瓶颈
- 广泛运用到云计算和分布式当中
- 面向对象设计
- 微内核体系结构
- 虚拟机
- 虚拟化技术和虚拟化被广泛运用到云计算等当中,将计算机资源更加合理地安排分配给不同的用户,从而得到相应的收入
-
从原理等的角度,主要是操作系统会为应用程序提供二进制接口,虚拟化软件会将一个平台的二进制接口转化为另一个平台的二级制接口,对于应用程序而言使用的就是另外的操作系统的ABI,从而实现虚拟化,能够在宿主机上面建立虚拟机
-
- 虚拟化技术和虚拟化被广泛运用到云计算等当中,将计算机资源更加合理地安排分配给不同的用户,从而得到相应的收入
- 多处理器
- 并发进程和线程
- 应用层并行
- 虚拟机方式(相当于回避了并行的问题)
- 调度
- 同步
- 内存管理
- 可靠性和容错性
- 并发进程和线程
- windows
- linux
操作系统:精髓与设计原理 中文第七版 阅读笔记 第二章
最新推荐文章于 2020-11-24 02:26:00 发布