操作系统9.19
windows体系结构
·自底向上:硬件|HAL -》内核 设备驱动程序-〉执行体|用户层
·设备驱动程序与硬件无关 与硬件相关在内核,HAL中
unix架构
·shell不属于内核
·device:字符型设备,块型设备(如磁盘)
device driver与硬件相关
块型设备-》buffer cache
linux android架构
·android使用linux内核 提供核心系统服务
在这之上是c与c++的库的集合
再上层为应用程序框架
操作系统的定义
操作系统是一个系统软件,是一些程序模块的集合
组织管理计算机的软硬件资源(尽量有效合理的方式)
组织计算机的工作流程,控制程序执行并向用户提供各种服务功能
令用户灵活方便使用计算机,使整个计算机系统能高效的运行
有效: 系统效率,资源利用率(cpu利用的充足与否,IO设备是否忙碌)
合理: 是否公平,合理
方便使用: UI, API
从不同角度认知操作系统
软件观点
外在特性: 界面, 接口 如:命令,系统调用
内在特性: 内在特性
资源管理的观点
自底向上 : 操作系统是资源的管理者
硬件资源: CPU, 内存, 设备
软件资源: 磁盘上的文件, 信息
目的: 实现资源共享, 提高资源利用率
资源共享实现方式: 时间,空间
方式:
1.跟踪记录资源使用状况(数据结构)
2.分配和回收资源(算法) : 静态分配策略, 动态分配策略
进程的观点
- 操作系统由一些独立的进程组成
虚机器观点
- 将操作系统分成若干层: 1.降低复杂性 2.容易定位错误
操作系统的特征
并发(concurrency)
处理多个同时性活动的能力
宏观上:同时在执行 微观上:任何时刻只有一个程序在运行(单cpu)
引发的问题: 活动切换, 保护, 相互依赖的活动间的同步
并行(parallel)
与并发相似, 但多指硬件支持
共享(sharing)
操作系统与用户共同使用计算机系统中的资源
互斥共享(打印机)
同时访问(可重入代码,磁盘文件)
问题: 资源分配难以达到最优化, 保护
虚拟(virtual)
一个物理实体映射为若干个对应的逻辑实体——-分时或分空间
是操作系统管理系统资源的重要手段,可以提高资源利用率
CPU: 用户的虚处理机
存储器:每个进程都占有的地址空间(代码+数据+堆栈)
显示设备:多窗口或虚拟终端
随机性
操作系统必须随时对以不可预测的次序发生的事件进行响应
- 进程的运行速度不可预知(有不可预测的事件发生使进程“走走停停”)
- 难以重现系统在某个时刻的状态(包括重现运行中的错误)