系统程序简介及背景_第1页
系统程序简介及背景_第2页
系统程序简介及背景_第3页
系统程序简介及背景_第4页
系统程序简介及背景_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统程序简介及背景

简介系统程序简介●

由各种支援计算机运作的程序所组成,使用者因此可以

专注于应用程序

。●

使得使用者开发应用程序(Application)与解决问

,而不需要知道机器的低阶运作方式

。●

如Compiler

、Loader

、Linker、Debugger、Assembler、MacroProcesser、Operating

System等等

。系统程序简介●藉由与计算机的作业系统的互动,操控这些流程●

UNIX

(Linux),

DOS:指令式

●MacOS,

Windows:

视窗式●作业系统会帮你处理好机器层面的细节,你都不必

担心这些问题程序编译过程1.

Preprocess

先处理那些#ifdef#define这些东西

并做一些巨集代换2.Compile

做语意分析

,翻译成汇编语言3.Assemble

翻成机器码与OS有关的格式,做成

relocatable

obj档

。4.

Link

找到symbol(函式,变量名)与程序库(sharedobj)中的子程序,做成可执行obj档(executable

obj)。完整程序处理过程系统程序的形式

(1)汇编程序(SourceProgram

inSource

Language)(ObjectProgram)机器语言程序

表列程序组合程序

Assembler系统程序的形式

(2)含有缩写的原始程序(

有巨集指令的原始程序)不含有缩写的原始程序(不含有巨集指令的原始程序)巨集处理程序

MacroProcessor系统程序的形式

(3)以高阶语言写成之原始程序编译程序Compiler低阶语言之原始程序系统程序的形式

(4)一群目的程序与函式馆的集合连结程序Linker连结成单一目的程序系统程序的形式

(5)可执行之机器语言目的程序载入程序Loader放入主存储器中,等待执行系统程序的形式

(6)●

作业系统

:包含了●档案管理程序●存储器管理程序●输出输入程序●

命令解译程序(Shell)●

中断处理程序●

……等等

。系统程序与应用程序●

应用程序(Application)●是以计算机为工具

,用来解决某些问题

。●

系统程序(System

Program)●是用来支援使用者对电脑的使用与操作

。●与机器的结构有关,但与机器的特性无关。●

本课程将以

Simplified

Instructional

Computer(SIC

、SIC/XE)系列的计算机作为系统程序的讨论

平台

。应用程序的范例●

例如●

浏览器●

排版软件●

多媒体●

绘图软件●

……等等。程序设计的考量●

应用程序的设计●考虑与探讨应用程序的设计、制作,与维护

系统程序的设计●考虑与探讨如何设计、制作,与维护以计算机为基础的信息处理系统(Computer

basedInformation

Processing

System)的核心部分。

背景内容●

第1.1节将说明系统软件和本书的整体架构

。●

第1.2节开始探讨系统软件和本书所使用的机器架

构之间的关系

。●

第1.3节将描述具备基本软件概念的「简化指令电

脑」(

Simplified

Instructional

Computer

,SIC)。●

第1.4节和第1.5节展示许多种类的计算机架构范例

。1.1

简介●

本节主要是介绍系统软件(system

software

)的

设计和实作概念。●

系统软件是由许多支援计算机运作的程序所组成的

此项软件可以让使用者只需关注应用程序或问题的

解决方案

,而不必知道计算机内部的运作细节

。汇编语言×汇编语言(assembler

language

)撰写程序

,并

且使用巨集指令(

macro

instructions)来读取或

写入资料,或是执行其他的高阶功能

。×然后,使用具备巨集处理器(macro

processor)

的组译器(assembler

,将这些程序转换成机器

语言。转换后的机器码,可藉由载入器或连结器以

置入系统中准备执行

,并可以使用除错器×来侦测程序的错误。本书的主题×组译器×载入器×连结器×巨集处理器

×编译器×作业系统×数据库管理系统×

文字编辑器以及交互式除错系统1.2

系统软件与机器架构×系统软件和应用软件最大的不同

,就是与机器的相

关性×系统程序是为了要支援计算机的运作并且供电脑本身

的使用,而不是支援特定的应用×系统程序通常与其执行机器的架构是有密切的关系:

组译器,编译器,作业系统×有许多的系统软件并不是与其所支援计算机系统的类

型有直接的关系。例如,组译器的一般设计和逻辑简化指令计算机(SIC)●

SIC

是一种假想的计算机

,其设计包括了大部分真实

机器中常见的特性,而避免掉一些不适当的独特性

。主要的章节×1.在任何此类软件的范例中

,都能找到的基本功能

×2.与机器架构有紧密关系的特性。×3.在实作这种类型软件时

,其他与机器无关的共通

特性。×

4.建构特殊软件的主要设计考量

。例如

,单阶段(single-pass)或是多阶段(multi-pass)处理。×

5.真实机器上的实作范例

,着重不常使用的软件特

性,以及与机器相关的特性。1.3

简化指令计算机(SIC)●

可以代表大多数硬件所具备的特性和概念

,而且可

以避免真实机器上大部份的特殊性质。●

二种不同的版本

:标准版本和XE

版本1.3.1

SIC

机器架构●

存储器●存储器是由长度为八个位元的字节(bytes)所组

;连续三个位元组形成一个字组(word,24个位

元)●所有的位址都是字节位址(byteaddress

;字组

的位址是以最低位之字节的位址来表示●

计算机记的忆体共有32,768(215)个位元组。1.3.1

SIC

机器架构●

暂存器1.3.1

SIC

机器架构●

资料格式●

整数是以24位元的二进制值来表示;并以二的补码

来表示其负数

。●

字符是以8位元的ASCII码来表示(参考附录B)。●

在标准版的SIC

,没有硬件的浮点运算器

。000000000000000000000000整数●

24位元●

2的补码表示法1.3.1

SIC

机器架构●

SIC指令格式●SIC的所有机器码指令都为底下的24位元格式opcode

x

address●旗标位8元x用来1表示索引位15址模式模式指定目标位址的算法直接x=0目标位址=位址索引x=1目标位址=位址+(X)opcodexaddressSIC

位址模式8

1151.3.1

SIC

机器架构●

指令集●

载入和储存暂存器(LDA、LDX、STA、STX等)

整数算数运算指令(ADD、SUB、MUL、DIV)●

COMP指令是比较暂存器A和记忆体中字组的值

条件跳跃指令(JLT、JEQ、JGT)●JSUB跳到子程序●

RSUB则是跳到暂存器L中所储存的位址1.3.1

SIC

机器架构●

输入和输出●

在标准SIC版本中,输入和输出的运作是从暂存器A

最右边的八个位元开始●每个装置都具有一组八位元的装置码

SIC系统共有三个I/O指令●

装置测试(Test

Device,TD)●

读取资料(Read

Data,

RD)●

或写入资料(Write

Data,WD)助记符号编号特定用途B3基底暂存器;用于定址S4一般工作暂存器

-

没有特定用途T5一般工作暂存器

-

无特定用途F6浮点累加器(48个位元)1.3.2SIC/XE机器架构●

存储器●

最大可用存储器为1

M字节(220字节)。●

额外暂存器1.3.2SIC/XE机器架构●

资料格式1.3.2SIC/XE机器架构●

指令格式:有四种,如下所示●格式一(Operand):仅有运算子(Operator),不具运

算元●格式二:操作数为暂存器●格式三:操作数为相对位址●格式四:操作数为绝对位址●

格式如下页图所示。1.3.2SIC/XE机器架构●

指令格式1.3.2

SIC/XE●

Base

Relative●

Program-Counter

(PC)

Relative●

定址模式

,有两种

:机器架构Counter

(PC)

Relative1.3.2SIC/XE机器架构●

其他选项●

e

=

1

:Format4Instruction●

e

=

0

:Format

3Instruction●

(b,

p)

=

(0,

0)

:DirectAddressing●

x

=

1

:IndexedAddressing●

(i,

n)

=

(1,0):ImmediateAddressing

(i,

n)

=

(0,

1)

:IndirectAddressing●

i

=

n

:SimpleAddressing1.3.2

SIC/XE机器架构1.3.2SIC/XE机器架构●

指令集●

针对新的暂存器(LDB、STB等等)进行存取资料,

以及执行浮点算数运算(ADDF

、SUBF、MULF、DIVF)。●

一些暂存器对暂存器的算数运算(ADDR、SUBR

MULR、D1VR)●

「监督呼叫指令」(

supervisorcall,

SVC)1.3.2SIC/XE机器架构●

输出和输入●

SIC中的I/O指令,同样适用于SIC/XE中。●

当CPU正在执行其他指令时

,还可以用一些I/O通道

(I/Ochannels)继续执行输入和输出的动作。●

SIO、TIO和HIO指令可以用来启始

、测试和暂停I/O

通道的运作。指令集(Instruction

Set)

(1)●

有关算数运算的指令

:例如●

(18)ADD

m

A

<-

(A)

+

(m..m+2)●

(58)ADDF

m●F<-

(F)

+

(m..m+5)●

(90)

ADDRR1,

R2●

R2

<-

(R2)

+

(R1)指令集(Instruction

Set)

(2)●

有关逻辑运算的指令

:例如●

(40)AND

m

A

<-

(A)

&

(m..m+2)●

(44)

OR

m●

A

<-

(A)

|

(m..m+2)指令集(Instruction

Set)

(3)●

有关资料传送的指令:例如

(00)

LDA

m●

A

<-

(m..m+2)●

(68)

LDB

m●

B

<-

(m..m+2)●

(0C)STA

m●(m..m+2)

<-A●

(B4)CLEARR1●

R1

<-

0指令集(Instruction

Set)

(4)●

有关输出输入的指令

:例如●

(E0)

TD

m

测试

device●

(D8)

RDm●

读出

device●

(DC)WDm●写入

device指令集(Instruction

Set)

(5)●

有关跳跃与控制的指令

:例如●

(3C)Jm

(30)

JEQ

m●

(48)JSUBm

跳到子程序●

(4C)

RSUB●

结束子程序,回到主程序。指令集(Instruction

Set)

(6)●

其他型态的指令

:例如●

(2C)TIX

m

X

<-

(X)

+

1;

(X)

:

(m..m+2)●

(B8)TIXR

R1●

X

<-

(X)

+

1;

(X)

:

(R1)●

(B0)

SVC

n●SVC;

(n)

=

nSIC

输出与输入●TD

测试未指装置是否准备好传送或接收,

结果设

定条件码CC,

<代表已经准备好,

=表示还没准备

好●程序必须等待装置准备好,才能执行

RD

(读取资

料)或

WD(写入资料)指令SIC

程序设计范例●

定义资料储存空间的方法●WORD会保留一个字组的空间

(常数)●RESW会保留一个以上的字组空间供程序使用

(变

数)●BYTE,

RESB类似,空间大小仅为一个字节1.3.3SIC程序设计范例SIC

程序设计范例–

给值●上页程序

(课本图1.2a)相对应的

C

语言intALPHA

=

5;char

C1

=‘Z’;1.3.3SIC程序设计范例SIC

指令集●

整数运算

ADD,

SUB,

MUL,

DIV●ADD–将数值加入暂存器

A

●SUB–将暂存器

A

减去数值●MUL–

将数值乘入暂存器

A

DIV–将暂存器

A

除以数值1.3.3SIC程序设计范例SIC

程序设计范例–

数值运算●上页程序

(课本图1.3a)相对应的

C

语言int

ONE,ALPHA,

BETA,GAMMA,DELTA,INCR;BETA

=ALPHA

+INCR–

ONE;DELTA

=

GAMMA

+INCR

–ONE;LDXZEROMOVECHLDCHSTCHTIXJLT…STR1,XSTR2,XELEVENMOVECHSTR1BYTEC’TEST

STRING’STR2RESB11ZEROWORD0ELEVENWORD11SIC

程序设计范例–

循环和索引(1.4a)SIC

程序设计范例–

循环和索引●上页程序

(课本图1.4a)相对应的

C

语言char*STR1

=“TEST

STRING”;char

STR2[11];strcpy(STR2,

STR1);SIC

指令集●COMP

可比较暂存器

A

的值和存储器中的字组,

他会设定结果

(<,

=,

>)

的条件码

CC●条件跳跃指令可以测试CC的设定,根据CC的值来跳跃

(JLT,JEQ,JGT)暂存器

SW条件码

CC:<,

=,

>跳跃指令

JLT,JEQ,JGT存储器中的字组暂存器

ACOMP结果SIC

索引●

SIC

指令前可以加索引,让跳跃指令使用,例:;无索引;有索引ALPHAALPHALDALDALABEL11.3.3SIC程序设计范例1.3.3SIC程序设计范例1.3.3SIC程序设计范例SIC

指令集●连结子程序

JSUB

跳跃至子程序,将返回位址放到

L;

RSUB返回时会跳到暂存器L存放的位址1.3.3SIC程序设计范例1.3.3SIC程序设计范例1.4传统(CISC)机器●

Complex

Instruction

Set

Computers(CISC)机器●

指令集多而暂存器少。(约十几个)

变动格式的指令

。●

多种定址形式。●硬件结构较复杂

。●

VAX

的架构●

Intel

x86系列的处理器架构1.4.1VAX架构×存储器+八位元的字节所组成+连续的二个位元组形成一个字组(word)+连续四个位元组形成一个「长字组」(longword)

+连续八个位元组形成一个「四字组」(quadword)+连续十六个位元组形成一个「八字组」(octaword)×所有VAX的程序都可以在2^32字节的虚拟记忆

体空间(virtual

address

space)中运作1.4.1VAX架构×暂存器+VAX机器有16个通用暂存器(general-purposeregisters

,编号从R0到R15。+长度都是32个位元。+R15为「程序计数器」+R14为「堆栈指标」(stack

pointer,

SP

+R13为区段指标(frame

pointer,

FP+R12是参数指标(argument

pointer,AP)

+R6到R11:一般用途+R0到R5:一般用途/特殊目的1.4.1VAX架构●

资料格式●

整数是以字节、字组、长字组、四字组或八字组

字符是使用8位元的ASCII码来储存

。●有四种不同的浮点(floating-point)资料格式,其

长度范围从4到16个位元组

。●

「聚集式十进制」(packeddecimal)●队列(queues

)以及可变长度的位元串(variable-

length

bit

strings)1.4.1VAX架构●

指令格式●

可变长度的指令格式●

运算码(一个或二个位元组)

,以及依据指令型态的不同,最多有六个「操作数描述子」(operandspecifiers)所组成的。1.4.1VAX架构×定址模式+暂存器模式+暂存器委托模式+自动增加和自动减少模式+基底相对的定址模式:程序计数器相对模式+所有的定址模式都可以包含一个索引暂存器(index

register+指定间接定址模式+立即操作数和许多特定用途的定址模式1.4.1VAX架构●

指令集●

指定运算子型态的字首(prefix)。●

指定操作数资料型态的字尾(suffix

)。●

决定操作数数量的修饰子(modifier,某些指令才具

备)

。1.4.1VAX架构●

输入和输出●藉由I/O装置控制器(devicecontroller)来完成输

入和输出的动作

。●每个控制器拥有一组控制/状态和资料暂存器,这些暫存器在實際位址空間(physicaladdressspace

)上都有特定的对应位置。装置控制器之暂存器所對應的位址空间,称之为I/O空间(I/Ospace)1.4.2

Pentium

Pro架构●

存储器●

在实体层次上,存储器是由八个位元的字节所组成

的●

连续的二个位元组形成一个字组●

连续的四个位元组形成双字组(double-word

,也称为

dword)。●程序设计者通常将x86存储器视为是一些区段

(segments

)的集合●

位址将包含二个部分:区段的编号以及该区段中的位移量

(offset)。1.4.1VAX架构×暂存器+八个通用的暂存器:EAX、EBX、ECX、EDX、ESI

EDI、EBP、以及ESP

。(长度都是32位元长)+EAX、EBX、ECX、和EDX通常作为资料处理的用途

+FLAGS是一个长度为32位元的暂存器

,其内容可以包含许多不同旗标位元,+区段暂存器(segment

registers),用来指定记忆

体中的区段。×

CS存放现正执行之区段码的位址

×SS包含了目前堆栈区段的位址×DS、ES、FS、和GS指出资料区段的位址。1.4.1VAX架构●

资料格式●x86架构提供了整数、浮点数、字符、以及字符串的储

存空间

。●

FPU可以处理64位元之具正负符号的整数。●x86架构有三种不同的浮点资料格式

。●

单精度(single-precision)格式的长度是32位元●

双精度(double-precision)格式的长度是64位元●

延伸精度(extended-precision)格式的长度是80个位元1.4.1VAX架构●

指令格式●x86机器的所有指令是使用相同的基本格式

前置词(

prefix

,●运算码(

opcode

,一个或二个位元组)●

操作数以及所使用的定址模式1.4.1VAX架构●

定址模式●

操作数的值可能本身就位于指令中(立即模式),或是儲存在暫存器中(暫存器模式)

。●TA

=(基底暂存器)+(索引暂存器)*(比例因子)

+位移量1.4.1VAX架构●

指令集●超过四百种不同的机器指令●每一个指令可能会有零个

、一个

、二个或三个操作数●暂存器对暂存器●暂存器对存储器的指令●存储器对存储器的指令1.4.1VAX架构●

输入和输出●藉由I/O埠将一个字节、字组、或是双字组,传送

到EAX暂存器中●输出指令则是从EAX暂存器中,传输一个字节、字组、或双字组到I/O埠●

利用重复前置词,可以让这些指令再单一的运算中就

可以传送一个完整的字符串。1.5

RISC机器●

Reduced

Instruction

Set

Computers●

标准和固定的指令长度●

单周期(single-cycle

)的指令

。●

存储器的存取通常只能透过载入和储存的指令●

所有的指令都是运作于暂存器与暂存器之间●

通用暂存器的数目都相当的多●

机器指令的数目、指令格式、以及定址模式却是相

当的少。1.5.1

Ultra

SPARC架构●

存储器●存储器是由长度为八位元的字节所组成的

连续两个位元组形成「半字组」(halfword)●

连续四个位元组形成「字组」●

连续八个位元组则形成「双字组」●

UltraSPARC的程序可以使用264字节的虚拟存储器1.5.1

Ultra

SPARC架构●

暂存器●

非常大量的暂存器档案(registerfile

●超过100个以上的通用暂存器●

一个程序只能够存取其中的32个暂存器,编号从r0

到r31。●

前八个暂存器(r0到r7)是全域式(global)

暂存器1.5.1

Ultra

SPARC架构●

资料格式●

整数、浮点数以及字符的储存空间。●

整数是以8、16、32或64位元的二进制值来储存●

三种不同的浮点资料格式●

单精度(

single-precision

)格式的长度是32位元●

双精度(double-precision)格式的长度是64个位元●「四精度」(quad-precision)格式中,有63个位元为浮点

,而15个位元为指数值

。●

字符是储存在一个字节中1.5.1

Ultra

SPARC架构●

指令格式●

长度都是32个位元●格式1是用于呼叫(call)指令●格式2是使用在分歧(branch)指令●

其余的指令都是使用格式3,包括了暂存器的载入和

储存,以及三个操作数的算数运算。1

5

1

UltSPARC架构1.5.1

UltraSPARC●

定址模式1.5.1

Ultra

SPARC架构●

指令集●

少于100种的机器指令●

唯一可以存取存储器的就是载入和储存指令●

其他所有的指令都是运作于暂存器与暂存器之间。

●采用「管线」(pipelined)方式1.5.1

Ultra

SPARC架构●

输入和输出●

透过存储器来达成与I/O装置的通讯。●

某一段范围的存储器位址

,在逻辑上是被装置暂存器

所占用。●每个I/O装置都有唯一的位址●

针对存储器中的装置暂存器位址进行载入或储存时,

就可以启动相对应的装置1.5.2

PowerPC

架构●

存储器●

八位元的字节所组成●

连续的两个位元组形成「半字组」●

连续四个位元组形成「字组」●

连续八个位元组形成「双字组」●

连续十六个位元组形成「四字组」●

PowerPC的程序可以使用264字节的虚拟存储器1.5.2

PowerPC

架构×暂存器+PowerPC架构中有32个通用暂存器,编号从GPR0到GPR31。+长度都是64个位元+浮点运算可以执行于浮点运算单元

,此单元包含了32个64位元的浮点暂存器,以及状态和控制暂存器。+32位元的条件暂存器+「连结暂存器」(Link

Register,

LR)+「计数暂存器」(Count

Register,CR)1.5.2

PowerPC

架构×资料格式+提供了整数、浮点数和字符的储存空间+整数可以是8、16、32、或64个位元的二进制数值

,而且也支援具正负符号以及不具符号的整数;负数是

以二的补码方式来表示。+两种不同的浮点资料格式。×

单精度(single-precision)格式的长度是32位元×

双精度(double-precision)格式的长度是64位元+每个字符占一个字节,且使用八位元长的ASCII码表示

。1.5.2

PowerPC

架构

指令格式●

PowerPC架构中有七种基本的指令格式,其中某些

格式还有子格式(subforms)●所有格式的长度都是32个位元●

指令必须对齐字组边界的开始位置(亦即

,四的倍数

的字节位址)●

指令的前六个位元通常都是运算码;某些指令格式会

有额外的延伸运算码(extended

opcode)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论