【第一章】操作系统引论
一.操作系统的地位和目标
1.计算机系统的组成
2.操作系统在计算机系统中的地位
3.操作系统的设计目标
-
方便性
提供用户接口,使计算机系统更方便使用
-
有效性
通过有效管理和分配软、硬件资源及合理组织计算机工作流程来改善资源利用率、提高系统吞吐量
-
可扩充性(面向未来的)
适应计算机硬件和体系结构的迅猛发展及其所对应的更高的功能和性能要求。
-
开放性
适应不同厂家与不同类型的计算机及其设备的网络化集成和协同工作,实现应用程序可移植性在Windows系统上可以运行,在Linux系统上也可以运行和互操作性。
二.操作系统的作用
1.用户与计算机硬件系统之间的接口
-
命令方式(操作系统外壳)
- 面向一般用户
- 命令行/菜单式/命令脚本式/图形用户接口
- 提供了用户使用计算机的便利方式
-
系统调用方式(操作系统内核)
-
面向程序开发人员
-
形式上类似于过程调用,编制程序中使用
-
程序访问操作系统服务的基本机制
-
2.计算机系统资源的管理者
- 管理对象
- 处理器、存储器、外围设备以及信息(数据和软件<用文件的方式>)
- 管理内容
- 资源的分配、回收和访问操作(读、写)
- 记录资源的当前状态(数量和使用情况)、相应管理策略(共享、保护及用户权限)
3.用作扩充器(或虚拟机)
- 在裸机上添加处理机管理、存储管理、设备管理、文件管理、作业管理、图形化用户接口等功能,使计算机系统功能显著增强、使用更为方便
三.操作系统的组成及层次模型
用户接口(命令接口、程序接口、图形用户接口) |
---|
操纵和管理有关对象的软件集合(处理机/存储器/设备/文件/作业管理软件) |
操作系统对象(处理机、存储器、设备、文件和作业) |
四.操作系统的定义及示例
1.操作系统的定义
操作系统是最基本的系统软件,是一组有效管理和控制计算机硬件和软件资源、合理地对各类作业进行调度以组织和控制系统工作流程,并方便用户使用计算机的程序的集合
2.操作系统实例
-
MS DOS
-
Windows(NT、9X、200X、Vista、X)
-
UNIX(Solaris、MAC OS)
-
Linux(RedHat、Ubuntu、RedFlag)
-
Novell、Netware
-
VxWorks
-
AIX
-
Android(底层是Lunix系统)、iOS(底层是Unix系统)
什么是操作系统?
计算机系统分为硬件系统和软件系统,软件又分为应用程序和系统软件,操作系统是最基本的系统软件,也是一种程序的集合,它的作用是管理和控制计算机的软硬件资源,对作业进行优化调度以控制系统工作流程,提高计算机系统的吞吐量,最终目的是使计算机有更好的性能,让其发挥更大的作用,同时还能让用户更方便的与计算机进行交互。
五.计算机系统组成及体系结构
内存系统Memory Systems
-
主存Main Memory
-
RAM & ROM
-
实际地址空间 Real address space
A.或称作物理地址空间,按字节编制Bytes
B.RAM & ROM
C.保留用于设备或以后它用
-
-
高速缓冲Cache Memories
-
因内存寻址访问效率和局部性原理引入
-
由硬件管理,对软件不可见
-
关联存储器及置换(淘汰)算法
-
输入输出系统组织方式
计算机系统体系结构
六.用户指令集体系结构User ISA
1.寄存器架构
- 通用寄存器、特定类型寄存器(如浮点数)
- 专用寄存器(PC、链接/栈指针/条件码/循环计数器)
2.内存架构
-
逻辑/虚拟地址空间
A.线性编址
eg:0x0000 0000 ->0x000 0000->0xFFFF FFFF
B.分段编址
eg:0#~15#分段基址->段寄存器值
3.用户指令–运算型
- 内存存取指令、分支跳转指令
- 整数算术、逻辑及移位指令
- 浮点指令
4.内存管理模型
实地址模型
分段模型
七.系统指令体系结构System ISA
1.系统寄存器架构
- 系统时钟寄存器、陷入与中断寄存器
- 陷入与中断屏蔽寄存器、页/段表指针寄存器
2.处理器资源管理支持
- 系统调用/返回指令、中断定时器及设置机制
3.内存资源管理支持
- 虚拟地址空间到物理地址空间的映射(页表 & TLB)
4.I/O资源管理支持
- I/O设备寻址与I/O指令
5.陷入与中断
- 陷入(软中断)
- 指令执行时因异常情况(r如运算溢出、缺页、违规内存访问、非法操作码等)产生的控制迁移副效应。
- 陷入流程(异常->设置陷入寄存器->查看陷入屏蔽寄存器裁决->终止“陷入”指令并置处理器准确状态->保护程序计数及各寄存器值->处理器置特权模式并交操作系统控制权->操作系统保存未被硬件保存的“陷入”进程的关键状态信息,经分析转特定异常陷入处理例程,待完成返回后恢复现场和转原“陷入”进程“异常”指令处继续执行)。
- “系统调用”式陷入(访管指令int 21H/int 0x80)
- 中断
- 由相对于当前执行进程的外部事件(如I/O操作、定时)引起,与特定指令执行无关。
八.操作系统用户接口与系统调用
1.操作系统用户接口概览
-
基于接口表现形式划分
-
用户交互接口
-
A.命令接口(具体课分为联脱/机接口)
B.图形化用户接口(图形化操作界面)
-
-
用户程序接口(方便用户程序访问系统资源)
-
-
基于接口使用者类型划分
本地用户接口
远程用户接口(网络用户接口)
2.操作系统联机命令接口
联机命令接口构成
- 一组联机命令
- 键盘中断处理程序
- 命令解释程序
联机命令及其格式与分类
- <命令>【<可选项>】<参数序列>
联机命令类型
- 系统访问类
- 磁盘操作类
- 网络通信类
- 输入输出重定向、管道连接、过滤命令
- 批处理方式(批处理文件/脚本文件)
键盘终端处理程序
-
基本功能
1.接收用户从终端的字符
- 面向字符/行方式
2.管理字符缓冲,以暂存所接收的字符
- 专用缓冲区、公用缓冲池方式
3.将用户键入字符回送屏幕显示
- 硬件/软件实现方式
提供屏幕编辑(编辑键)
特殊字符处理(中断/停止或恢复上卷)
命令解释程序工作流程
3.图形化用户接口特点
- 基于图形元素来表示功能,方便用户操纵和触发对应功能
- 同屏多窗口与并发进程相对应
- 支持即时交互,鼠标点击和键盘输入并举
- 操作直观,不必死记命令行参数,传递信息量大
图形化用户接口实现及运行机制
-
面向对象程序设计方法
-
消息产生、传递及处理
- 消息作为窗口的输入,如用户操作、其他窗口或系统发出的请求或通知
- 消息由各窗口字节的窗口过程进行处理
-
事件驱动模式
Windows系统运行机理
九.系统调用概念及实现机理
1.系统调用的类型基本概念
- 定义
- 系统过程->系统服务->系统调用命令
- 与普通过程调用的区别
- 运行在不同的系统的状态
- 软中断进入机制
- 返回及重新调度问题
- 嵌套调用
2.系统调用的类型
- 进程控制
- 进程的创建、结束、等待子进程结束
- 进程属性设置与获取
- 执行一个文件(进程映像替换)
- 文件操纵
- 文件的创建、打开、关闭、读/写
- 进程通信
- 连接打开与关闭、消息发型与接收
- 系统信息维护
- 时间设置与获取、文件访问/修改时间设置
3.系统调用的层次
4.系统调用的实现机制
5.混合编程要领
- 汇编语言源程序调用c函数模块
- 按逆向顺序把c函数模块参数压入栈中
- call_CModuleName | jmp_CModuleName
- 清除先前压入栈中的c函数模块参数
6.系统调用的实现要领
-
设置系统调用号和参数
- 系统调用号(指定寄存器/内存单元)
- 参数(直接[寄存器]、间接[参数表指针])
- UNIX(CHMK命令)/DOS(INT21软中断)
-
系统调用命令的一般性处理
- 将处理机状态由用户态转为系统态
- 保护CPU现场,将PSW、PC、系统调用号、用户栈指针、通用寄存器等压入栈
- 用户定义参数送至指定位置
-
分析系统调用类型,转相应处理子程序
中断和陷入向量表(入口地址、PSW)
十.操作系统引导过程及引导程序
1.DOS系统结构
2.引导扇区与系统启动
-
系统启动过程
-
机器加电=> BIOS加电自检(OFFF: 0000)进行硬件检测= >盘引导扇区(0:0:1)51 2字节到内存0000: 7C00
=>检查内存0000: 7DFE~7DFF是否为0x55AA=>跳转至00: 7C00执行引导记录程序°oc
-
-
引导扇区
- 末两个字节为0x55AA
-
引导程序编制基础
- 开发工具NASM或GCC
- 引导代码必须编译成plain binary file类型且为512B
3.最简单的引导程序
-
汇编程序代码MinBoot.asm
- hang: jmp hang
- times 510-($- $$) db 0
- dw 0xAA55H
-
程序汇编
- nasm MinBoot.asm -0 MinBoot.bin
-
0将二进制文件MinBoot.bin内容拷贝到引导扇区
十一.操作系统二次加载引导过程
二次加载引导程序设计
-
二次加载引导程序设计
- 二次加载含义
- 由BIOS将引导记录载入内存执行
- 由BIOS将引导记录载入内存执行
-
软驱复位与读取
- BIOS之INT 13H功能调用
-
字符串显示
- BIOS之INT 10H功能调用