计算机系统软件概述
基本输入输出系统 BIOS
BIOS是固化在计算机主板上的ROM芯片中的一组程序, 直接对计算机系统的输入/输出设备进行硬件级的控制, 为其他软件程序与硬件设备之间建立连接提供基础。\ BIOS 芯片通常是一块32针的双列直插式长方形或正方形集成芯片。
- 分类
- EPROM: 可擦除可编程只读存储器
- EEPROM: 电可擦除可编程只读存储器
- 主流BIOS
- Award BIOS: 最广泛
- AMI BIOS
- Phoenix BIOS
BIOS 组成
| 组成 | 描述 |
|---|---|
| 中断服务程序 | |
| 系统设置程序 | |
| 加电自检程序 | |
| 系统启动自举程序 |
中断(1)中断源(2)中断向量表(3)BIOS 中断(4)
- 中断是改变处理器执行指令顺序的一种事件, 这样的事件与CPU芯片内外部硬件电路产生的电信号相对应
- 中断源: 产生中断的事件
- 每个中断程序的入口地址保存在中断向量表中
x86的中断类型号n为 0-255 -
- 显示服务: INT 10H
- 直接磁盘服务: INT 13H
- 键盘服务: INT 16H
- 系统设置程序: 微机中各部分组件的配置参数是放在一块可读写的
CMOSRAM芯片中
BIOS 基本功能
- 自检及初始化
- 提供程序服务处理
- 提供硬件中断处理
微机启动过程
- 按下电源后电压不稳定 主板发出 RESET 复位信号
- 执行BIOS启动程序进行加电自检
- 查找显卡BIOS输出显卡信息
- 进行其他设备的测试, 通过后BIOS重新执行代码, 显示启动画面
- 检测系统的标准硬件
- 根据用户指定的设备顺序, 依次从设备中查找启动程序
操作系统概述
操作系统是一种控制和管理计算机硬件和软件资源的系统软件, 合理地组织计算机的处理流程, 并方便用户使用计算机
作用
| 角度 | 作用 |
|---|---|
| 用户 | 操作系统是一个把繁琐留给自己, 把方便留给用户的系统软件 |
| 系统 | 操作系统是一种资源管理程序, 通过进程机制来对CPU进行调度, 通过虚拟内存机制对内存进行管理,通过中断机制和设备驱动对外部设备进行管理, 通过异常机制对CPU内部出现的问题进行处理 通过文件系统对文件进行存储和检索 |
| 软件设计角度 | 操作系统是一组程序和数据结构的集合 |
操作系统特征
- 并发性: 两个或两个以上的事情或者活动在同一时间间隔内发生
- 共享性: 系统中的硬件和软件资源不再为某个程序独占共享性, 因为并发性而产生它们相互依存
- 虚拟性: 通过某种技术把物理上的实体变为若干逻辑上的对应物
- 异步性: 多个程序的执行时间和执行顺序不可预知
操作系统功能
- 进程管理: 包括对进程的 描述 创建 运行 和 撤销
- 存储器管理
- 负责内存的 分配 和回收, 地址映射 以及内存的扩充, 为多道程序允运行提供内存支持
- 设备管理
- 缓冲区管理 设备分配 设备处理 虚拟设备 IO设备的独立性
- 对计算机中所有的外部设备进行管理, 主要任务是当用户进程提出IO请求时, 为用户进城分配所需的IO设备
- 文件管理
- 实现文件的按名存取和对外存储空间的管理
- 实现对文件存储空间的管理 对目录文件和普通文件的读写管理以及文件的共享和保护
- 用户接口: 分为用户接口和程序接口两大类
- 用户接口: 提供最终用户使用的接口,用户可以通过该接口取得操作系统和其他程序提供的服务,功能
- 程序接口: 提供给程序员编程使用的接口 形式是系统调用
发展与分类
| 系统类型 | 特征 |
|---|---|
| 现代操作系统 | 并发性, 共享性, 虚拟性, 异步性 |
| 批处理操作系统 | 多道性, 调度性, 无序性 |
| 分时操作系统 | 同时性, 独立性, 及时性, 交互性 |
| 实时操作系统 | 实时控制系统, 实时信息处理系统(以时间驱动和事件驱动任务) |
| 微机操作系统 | 开放性, 通用性, 高性能 |
| 分布式操作系统 | 把多台分散的计算机通过互联网连接而成的系统 |
- 批处理操作系统
- 多道性: 内存中同时存放多个作业
- 调度性: 由作业调度程序和进程调度程序分别将作业调入内存并分配CPU
- 无序性: 作业的进入和完成次序和程序进入内存的次序无关
- 分时操作系统
- 实时操作系统
- 微机操作系统
- 分布式操作系统
常见系统
| 操作系统 | 时间 | 描述 |
|---|---|---|
| UNIX | 20世纪60年代 | 最突出的特点: 安全可靠 为管理网络而开发的 |
| LINUX | 1991年 | 自由开放源代码的操作系统 |
| NetWare | 大多安装于服务器 | |
| Windows | 1985年推出第一版Windows1.0 |
编译系统
编译系统由编译器, 汇编器, 链接器构成
- 工作过程
- 编译器将高级语言的源程序翻译成汇编语言
- 汇编器将汇编语言程序翻译成机器代码程序
- 链接器将汇编器输出的机器语言组装成可执行程序
- 编译的原因
- 只有机器语言程序才能被计算机硬件直接识别和执行, 由汇编语言和高级语言编写的程序都不能被计算机硬件直接识别, 必须通过某种机制翻译成机器语言才能被计算机识别和执行
- 形式
- 编译形: 编译是将高级语言编写的程序翻译成目标程序, 然后再执行目标程序, 以完成目标程序的功能
- 解释形: 源程序被加载到内存中, 由解释程序对源程序进行分析, 边解释, 边执行, 并立刻得到运行结果, 不产生目标程序
- 编译过程
- 词法分析阶段
- 任务: 从左到右逐个读取源程序中的每个字符, 对构成源程序的字符序列进行扫描分解从而识别出每个具有逻辑意义的连续字符组合, 比如标识符, 保留字, 运算符, 分解符
- 语法分析阶段
- 任务: 在词法分析的基础上将单词序列解析成各类语法短语, 如语句, 表达式等
- 表示: 语法树
- 语义分析阶段
- 作用: 审查源程序有无语义错误
- 中间代码生成阶段
- 有的编译系统在经词法语法语义阶段后, 会将源程序变成一种内部表示形式即中间语言, 中间代码
- 四元式
- 运算符 运算对象1 运算对象2 结果
(* b 20 t1); (+ 10 t1 t2); (= t2 - a)
- 代码优化阶段
- 任务: 对中间代码进行等价变换或进行改造, 其目的是使将来生成的目标代码更高效, 更节省时间和空间
- 目标代码生成阶段
- 任务: 把目标代码转换成特点机器上的汇编指令代码
- 词法分析阶段
- 前端: 包括了词法分析,语法分析,语义分析和中间代码生成阶段,以及与这些阶段相关的出错处理和符号表管理工作
- 后端: 包括了目标代码生成和优化阶段,以及与这些阶段相关的出错处理和符号表管理工作
- 编译器概述
- 本地编译器
- 交叉编译器
- 商业编译器
- 开源编译器
数据库系统
数据库系统是指以计算机系统为基础, 以数据库方式管理大量共享数据的综合系统
数据处理技术发展
- 人工管理阶段
- 文件系统阶段
- 数据从程序中分离出来
- 数据库系统阶段
- 实现了数据与程序的完全独立, 实现了数据的统一管理
- 数据库系统是在文件系统的基础上发展起来的
- 优点
- 数据结构化
- 高度共享
- 冗余度低
- 程序和数据相互独立
- 易于扩充
- 易于编写应用程序
组成
- 数据库(1)
- 硬件支持系统
- 软件支持系统:
DBMS - 数据库管理员(2)
-
用户
-
以一定方式将 特定各项应用相关的全部数据 组织在一起并存储在外存储器上, 所形成的能够为 多个用户共享, 与应用程序彼此独立 的, 一组相互关联的数据集合
- 专门负责建立维护和管理数据和数据库系统的人
- 职责: 定义并存储数据库的内容, 监督和控制数据库的使用, 负责数据库的日常维护, 必要时重新组织和改进数据库
数据库管理系统 DBMS
数据库管理系统是指帮助用户建立, 使用和管理数据库的软件系统
- 工作模式
- 接收应用程序的数据请求
- 将数据请求指令转换为机器代码传递给数据库
- 实现用户要求的数据库操作
- 从对数据库的操作中接收结果
- 对结果进行处理
- 将处理结果返回给应用程序
- DBMS组成
- 数据描述语言 DDL: 用来描述数据库和表的结构 供用户建立数据库和表
- 数据操纵语言 DML: 供用户对数据表进行数据的检索 统计 增加 删除和修改等操作
- 其他管理和控制程序
- 功能
- 数据定义功能
- 数据操作功能
- 数据库的 运行管理 功能
- 数据库的 建立和维护 功能
- 常见数据库
- DB2: SQL
- MySQL: SQL
- Oracle: PL/SQL
- MS SQL Server: T-SQL
Andrioid 概述
以Linux为基础的开放源代码操作系统
架构
- 应用程序层
- 应用程序框架层
- 系统运行库层
- Linux 核心层
Android 开发环境搭建
- 下载并安装Android开发工具包 Android SDK
- 下载并安装Java集成开发环境 Eclipse
- 在Eclipse中下载安装Android开发工具插件 ADT
- 在Android Sdk 中创建Android 虚拟设备AVD
- 进行相应环境变量的设置
创建一个简单的Android 程序
- 打开Eclipse开发工具,选择File菜单中的 New->Android Application Project选项 新建Android应用程序
- 为应用程序项目和所在的文件包进行命名
- 设置最低版本SDK,目标设备,使用的编译器等设置,单击New按钮
- 依次完成后续的配置和命名,最后单击Finish完成创建
创建并启动AVD
- 选择 Windows 菜单中的 Android Virtual Device Manager 选项
- 弹出的窗口中单击New, 创建新的AVD
- 在弹出的窗口中给新建AVD 命名, 设置大小等参数, 单击OK
- 在弹出的窗口中列出了已创建的AVD, 单击Start
- 在弹出的窗口中设置AVD在屏幕上的显示大小, 单击Launch按钮启动新建的AVD