920 likes | 1.08k Views
第 章 微型机操作系统. 本章重点. 操作系统三个层次上的界面功能 MS - DOS 的层次化模块结构以及三个模块的主要功能 内部命令和外部命令的识别和执行 MS - DOS 的文件、目录项和 FCB MS - DOS 的文件分配表机制. 本章重点. MS - DOS 的软件中断和系统功能调用 MS - DOS 的文件读写方式 Windows 的特点和设计思想 Windows 的体系结构 Windows 的四种用户界面 Windows 的主要应用软件及其功能. 教学建议.
E N D
第 章 微型机操作系统 82
本章重点 操作系统三个层次上的界面功能 MS-DOS的层次化模块结构以及三个模块的主要功能 内部命令和外部命令的识别和执行 MS-DOS的文件、目录项和FCB MS-DOS的文件分配表机制 82
本章重点 MS-DOS的软件中断和系统功能调用 MS-DOS的文件读写方式 Windows的特点和设计思想 Windows的体系结构 Windows的四种用户界面 Windows的主要应用软件及其功能 82
教学建议 以MS-DOS为基础,讲解型机操作系统的结构、命令处理方法、文件管理和程序员界面即系统功能调用,并且讲清Windows的体系结构和界面 本章用5时,其中: MS-DOS 4学时 Windows 1学时 82
操作系统功能 管理计算机硬件资源和软件资源 硬件资源 主机、磁盘、显示器、键盘、打印机 软件资源 指系统软件、大量的应用程序以及设备驱动程序 82
衡量操作系统的功能: 用户数 作业数 82
操作系统三个层次上的界面功能 (1)用户界面 (2)和应用程序的界面(程序员界面) (3)和设备驱动程序的界面 82
15.1 微型机操作系统MS-DOS15.1.1 MS-DOS的层次化结构和引导过程 1. MS-DOS的层次化模块结构 (1)基本输入输出模块BIOS ROM BIOS IBMBIO.COM (2)磁盘管理模块 (3)命令处理模块 82
MS-DOS中三个主要模块之间的关系 三个主要模块可以进行单向调用 82
用户和操作系统的关系: 从键盘打入命令 通过用户程序的执行 82
1. 基本输入输出模块 (1)ROM BIOS部分: 系统测试程序 内部中断处理及中断向量装配程序 初始化引导程序 (2) IBMBIO.COM部分: 输入输出驱动程序 82
I/O驱动程序对应的中断类型 类型0 除数为0的中断 类型1 单步中断 类型2 非屏蔽中断 类型3 断点中断 类型4 溢出中断 类型5 打印屏幕中断 类型8 时钟中断 82
类型10H 显示器输入输出 类型11H 设备测定 类型12H 内存容量测定 类型13H 磁盘输入输出驱动 类型14H RS-232-C驱动 类型15H 盒式磁带机驱动 82
类型16H 键盘驱动 类型17H 打印机驱动 类型18H ROM BASIC解释程序 类型19H 系统初始引导程序 类型1AH 日历驱动和显示 类型1BH CTRL-Break键处理程序 82
2. 磁盘管理模块 (1) 组成: 系统进一步设置 系统功能调用 (2) 功能调用包含的功能: I/O管理 目录管理 文件管理 82
3. 命令处理模块 (1)识别、接收和处理命令 (2)两个部分: • 常驻部分 • 暂存部分 82
引导过程 MS—DOS的两种启动: 冷启动 热启动 82
图 冷启动流程图 82
图 系统启动后的内存分布 82
15.1.2 命令的识别和执行 命令分类 • 内部命令 • 外部命令 82
2 命令的识别和执行 检索内部命令表 • 如有,则是内部命令 • 如没有,则作为外部命令 82
15.1.3 MS-DOS的文件系统 1 文件和文件名 文件的概念 文件名字的构成: 文件名 扩展名 82
对扩展名的一些约定 COM 系统命令文件 PAS PASCAL语言文件 EXE 可执行文件 C C语言文件 ASM 汇编语言源文件 BAS BASIC语言文件 FOR FORTRAN语言文件 82
OBJ 目标程序 COL COBOL语言文件 SYS 系统配置文件 BAT 批处理文件 LIB 库文件 BAK 备份文件 LST 可打印列表文件 82
2 目录项 (1) 磁盘文件目录的概念 文件名 有关参数 (2) 树型目录结构 根目录 子目录 82
树形目录的例子 82
目录项的结构 82
3 程序段前缀(PSP) 图 程序段前缀的格式 82
4 文件控制块(FCB) FCB的功能: 用户程序和操作系统之间文件信息缓冲区 文件读写过程中的指针 FCB的格式 82
文件控制块FCB的格式 82
5 文件分配表 (FAT) 功能: 为文件分配磁盘空间 特点: 不是一次性预先分配 对一个文件分配的族不连续 结构 82
图文件分配表 82
文件分配表的好处 (1)可以用链式结构 (2)文件长度仅受磁盘容量的限制 82
15.1.4 MS-DOS的软件中断和系统功能调用 (1)用户接口: 键盘命令 软件中断和系统功能调用 (2)软件中断中,用得最多的是: 设置屏幕中断(10H) 系统功能调用(21H) 82
1 设置屏幕中断10H 82
10H软件中断的例子 ;利用滚行功能清除屏幕 CLEAR:MOV AH,6 ;滚行功能号 MOV AL,0 ;空白屏幕的代码 MOV CH,0 ;左上角的行号 MOV CL,0 ;左上角的列号 MOV DH,24 ;右下角的行号 MOV DL,79 ;右下角的列号 MOV BH,7 ;空白行属性 INT 10H ;清除屏幕 82
;使光标定位在窗口的左下角 POS_CURSE:MOV AH,2 ;光标定位功能号 MOV DH,16 ;行号 MOV DL,30 ;列号 MOV BH,0 ;当前页号 INT 10H ;光标定位在16行、30列 82
;读取键盘输入字符 MOV CX,14H;列计数值为20 GAT_CHAR:MOV AH,1 ;键盘输入的功能调用 INT 21H ;输入1个字符 CMP AL,3 ;输入字符是否为CTRL-C JZ EXT ;如为CTRL-C,则退出 LOOP GET_CHAR ;取下1个字符 82
;滚行并开窗口 SCROLL:MOV AH,6 ;滚行功能调用 MOV AL,1 ;行数 MOV CH,8 ;左上角行号 MOV CL,30 ;左上角列号 MOV DH,16 ;右下角行号 82
MOV DL,50 ;右下角列号 MOV BH,7 ;属性码为7表示普通行 INT 10H ;窗口向上滚动 JMP POS_CURSE ;光标复位 EXT:INT 20H ;返回控制台 82
2 系统功能调用21H (1)功能: 设备管理 目录管理 文件管理 (2)调用格式: AH——功能调用号 指定寄存器——入口参数 INT 21H 出口参数 82
(1) 设备管理 输出字符串的功能调用(09H) 输入键盘字符的功能调用(0AH) 异步通信的输入功能调用(03H) 异步通信的输出功能调用(04H) 82
(2) 目录管理 两点说明: 更改文件名字的功能调用(56H) 显示和修改文件属性的功能调用(43H) 82
把文件ABC.EXE改为隐含文件 的例子 FILE1 DB ’ABC.EXE’ CNAME:MOV AX,4301H ;43H为功能调用号, 01表示修改属性 MOV BX,OFFSET FILE1 MOV DX,BX ;DX指向文件名首址 MOV CX,02 ;隐含属性 INT 21H ;修改属性 82
(3) 文件管理 两组文件管理功能: 由24H以下的功能调用号提供 由3CH以上的功能调用号提供 82
15.1.5 文件的读写 文件存取的方式和涉及的概念 对于文件的管理,实际上是对文件的读写管理,MS-DOS设计了四种存取文件方式: • 顺序存取方式 • 随机存取方式 • 随机分块存取方式 • 代号法存取方式 第一、要通过用户程序告诉操作系统要存取哪个文件,这就是要求用户填写出FCB中的磁盘名、文件名、扩展名、记录长度、相对记录号和当前块号(或随机记录号)。 第二、要有一个内存区域用来存放文件内容,称为磁盘缓冲区。读文件时,将读出的数据保留在磁盘缓冲区;写文件时,由用户程序先把数据传递到磁盘缓冲区,对顺序存取方式或普通随机存取方式,每次只传输一个记录,因此,磁盘缓冲区只要一个记录大小就够了,而对于随机分块存取和文件代号法存取方式,磁盘缓冲区需要进一步扩大。 第三、读之前必须先打开文件,写之前必须先建立文件。 第四、关闭文件,它同打开文件是相应的,写文件之后一定要关闭文件。通过关闭文件,使操作系统确认此文件放在磁盘哪一部分,写后不关闭会导致写入文件不完整。 82
1 顺序存取方式 ;读取文件filename.ext, ;并把内容显示出来 (1) 顺序读文件 读取文件并显示的例子: DATA SEGMENT ;数据段 ORG 7CH RECNO DB ? ;当前记录 ORG 80H; DTA DB 80H DUP (?) ;磁盘缓冲区,从80H到FFH,共80H字节 DATA ENDS 82
PROG SEGMENT ;代码段 ASSUME CS:PROG,DS:DATA;在堆栈中设置程序返回地址 START:PUSH DS ;保留段地址 SUB AX,AX PUSH AX ;保留偏移量 82
;打开文件 MOV DX,005CH ;DX指向FCB首址 MOV AH,0FH ;打开文件的功能调用 INT 21H ;打开文件 MOV BX,OFFSET RECNO MOV [BX],0 ;相对记录号清0 ;读记录 READREC:MOV DX,005CH ;DX指向FCB首址 MOV AH,14H;读一个记录的功能调用 INT 21H ;读一个记录 82
;显示所读取的内容 MOV CX,080H ;CX中为显示字节数 MOV BX,0 PRINT:MOV DL,〔BX+0080H〕;取字符送DL CMP DL,1AH ;判断是否为结束符 JE EXIT ;如为结束符,则退出 MOV AH,02H ;输出字符的功能调用 INT 21H ;显示字符 INC BX LOOP PRINT ;取下一个字符显示 JMP READREC ;处理下一个记录 EXIT: RET PROG ENDP END START ;运行此段程序之前,要通过调试程序把文件名和扩展名写到5DH-67H中,在5CH中读驱动器号。 82