interBINDING AND LOADING• Constructing gates• Formatting object files for the convenience of boot loaders and dynamic loaders• Creating export modules that contain gates for operating-system interfacesFigure 11-2 shows the Binder specifications that combine the level-zero modules of XOS. The inputmodules contain only three unique segment names (the PL/M-<strong>286</strong> names: NUCLEUS_CODE,NUCLEUS_DATA, and STACK); therefore, the output module contains just three segments: one forinstructions, one for static data items, and one for the level-zero stack. The name of the output moduleis NUCLEUS; it is written to the file NUC.LNK. Similar specifications combine the level-one modules.Figure 11-3 shows the specifications to build a bootloadable file for the example operating system. TheSEGMENT statement assigns privilege levels to to each of the segments; segments not mentioned inthis clause receive privilege level 3 (PL 3) by default.The TABLE statement defines the descriptor tables. The RESERVE clause allocates space for theworking descriptors used by such modules as the memory-management module described inChapter 3. The ENTRY clause identifies the remaining segment descriptors that belong in each table.Builder allocates slots for each of these descriptors.The TASK statement provides information for contructing TSSs. The identifier assigned to each taskis the identifier of the descriptor of its TSS. The OBJECT clause identifies the module containing theinformation Builder can use to fill the segment-register and initial stack fields of the TSS.The GATE statement creates gates for each of the public procedures that are XOS primitives, assignsa privilege level to each gate, and gives each a name different from the procedure name.The EXPORT statement creates a linkable module KERNEL in file XOS.EXP that application modulescan use for binding to the gates for XOS primitives.RUN :F2:BND<strong>286</strong> &:Fl:POINT.OBJ, :Fl:SLOT.OBJ, &:Fl:MEMORY.OBJ, :Fl:DISP.OBJ, &:Fl:ALIAS.OBJ, :Fl:SEMAPH.OBJ, &:Fl:MBOX.OBJ, :Fl:INTRPT.OBJ, &:Fl:DESCR.OBJ , :Fl:DISQUE.OBJ, &:Fl:TASK.OBJ:Fl:MESSAG.OBJ, &PLM<strong>286</strong>.LIB&NAME (NUCLEUS) OBJECT (:Fl:NUC.LNK) NOLOAD DEBUGFigure 11-2. Binder Specifications for XOS Kernel11-6 121960·001
interBINDING AND LOADINGsystem-ID<strong>iAPX</strong><strong>286</strong> SYSTEM BUILDER, Vx.yINPUT FILES: :Fl:NUC.LNK, :Fl:URTASK.OBJ, :Fl:CONSOL.OBJ, :Fl:LOADER,LNK,:F2:LARGE.LB2, :Fl:STACKS.OBJ .OUTPUT FILE: :Fl:XOSCONTROLS SPECIFIED: TITLE (Example O.S.) BOOT LOAD BUILDFILE(:FI:XOS.BLD)OBJECT (:Fl: XOS)BUILD FILE: :Fl:XOS.BLD12345678910111213141516171819202122232425262728293031323334353637383940414243444546SEGMENTNUCLEUS CODENUCLEUS-DATANUCLEUS·:-STACKURTASK CODEURTASK-DATAURTASK:-STACKLQ PLM<strong>286</strong> LIB CODELARGE VIP0.STACK0LARGE-VIP0.STACKILARGE-VIP0.STACK2CONSOLE DRIVER CODECONSOLE-DRIVER-DATACONSOLE-DRIVER:-STACKCONSOLE-STACK0LOADER_STACK0GATEXQ ATTACH TO INTERRUPTXQ-WAIT FOR INTERRUPTXQ-RESERVE SLOTSXQ-RELINQUISH SLOTSXQ-ALLOCATE -XQ-FREE SEGXQ-CREATE ALIASXQ-CHANGE-ARXQ-WAIT SEMAPHOREXQ-SIGNAL SEMAPHOREXQ-SEND MESSAGEXQ-RECEIVE MESSAGEXQ-CREATE LDTXQ-CREATE-TASKXQ-LOAD LOTXQ-LOAD-LDT GATEXQ-GET GATE-POINTERTIME_SLICE (INTERRUPT,TABLEGDT(RESERVE=(4 .• 9), ENTRY=(NUCLEUS CODE,NUCLEUS-DATA,NUCLEUS-:-STACK,LQ PLM<strong>286</strong> LIB CODE,LARGE_VIP0. STACK,(DPL=0) ,(DPL=0) ,(DPL=0, LIMIT=+20),(DPL=0),(DPL=0) ,(DPL=0, LIMIT=+20H),(DPL=0, CONFORMING),(DPL=0) ,(DPL=I) ,(DPL=2) ,(DPL=I) ,(DPL=I) ,(DPL=I, LIMIT=+20),(DPL=0, LIMIT=+20),(DPL=0, LIMIT=+20);(ENTRY=ATTACH TO INTERRUPT,(ENTRY=WAIT FOR INTERRUPT,(ENTRY=RESERVE SLOTS,(ENTRY=RELINQUISH SLOTS,(ENTRY=ALLOCATE, -(ENTRY=FREE SEG,(ENTRY=CREATE ALIAS,(ENTRY=CHANGE-AR,(ENTRY=WAIT SEMAPHORE,(ENTRY=SIGNAL SEMAPHORE,(ENTRY=SEND MESSAGE,(ENTRY=RECEIVE MESSAGE,(ENTRY=CREATE_LDT,(ENTRY=CREATE TASK,(ENTRY=LOAD LOT,(ENTRY=LOAD-LDT GATE,(ENTRY=GET GATE-POINTER,DPL=0, ENTRY=TIMINT);DPL=I) ,DPL=I) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,DPL=3) ,Figure 11-3. Builder Specifications for XOS11-7121960-001
- Page 2 and 3:
LITERATUREIn addition to the produc
- Page 4 and 5:
Intel Corporation makes no warranty
- Page 6 and 7:
PREFACEExternal LiteratureMany aspe
- Page 8:
Table of ContentsCHAPTER 1PageINTRO
- Page 11 and 12:
TABLE OF CONTENTSCHAPTER 9PageVIRTU
- Page 13 and 14:
TABLE OF CONTENTSLIST OF FIGURESFig
- Page 15:
Introduction to Protected 1Multitas
- Page 18 and 19:
INTRODUCTION TO PROTECTED MULTITASK
- Page 20 and 21:
inter INTRODUCTION TO PROTECTED MUL
- Page 22 and 23:
111'eI INTRODUCTION TO PROTECTED MU
- Page 24 and 25:
INTRODUCTION TO PROTECTED MULTITASK
- Page 26 and 27:
INTRODUCTION TO PROTECTED MULTITASK
- Page 29:
Using Hardware2Protection Features
- Page 32 and 33:
USING HARDWARE PROTECTION,FEATURESs
- Page 34 and 35:
interUSING HARDWARE PROTECTION FEAT
- Page 36 and 37:
USING HARDWARE PROTECTION FEATURES(
- Page 38 and 39:
USING HARDWARE PROTECTION FEATURES
- Page 40 and 41:
USING HARDWARE PROTECTION FEATUREST
- Page 42 and 43:
USING HARDWARE PROTECTION FEATURESo
- Page 44 and 45:
USING HARDWARE PROTECTION FEATURESL
- Page 46 and 47:
USING HARDWARE PROTECTION FEATUREST
- Page 48 and 49:
USING HARDWARE PROTECTION FEATURESE
- Page 50 and 51:
inl:el~USING HARDWARE PROTECTION FE
- Page 52 and 53:
IntelUSING HARDWARE PROTECTION FEAT
- Page 54 and 55:
IntelU~ING HARDWARE PROTECTION FEAT
- Page 56 and 57:
lSLDTFORMATRt;;SERV~~"O~iA~~.~ijij
- Page 59 and 60:
CHAPTER 3REAL MEMORY MANAGEMENTIn d
- Page 61 and 62:
REAL MEMORY MANAGEMENTIALLOCATEGATE
- Page 63 and 64:
interREAL MEMORY MANAGEMENTBEFOREAF
- Page 65 and 66:
REAL MEMORY MANAGEMENTGLOBAL DESCRI
- Page 67 and 68:
REAL MEMORY MANAGEMENTTable 3-1. Ac
- Page 69 and 70:
REAL MEMORY MANAGEMENTBEFOREI "FREE
- Page 71 and 72:
REAL MEMORY MANAGEMENTBEFOREI "FREE
- Page 73 and 74:
REAL MEMORY MANAGEMENTPL/M-286 COMP
- Page 75 and 76:
REAL MEMORY MANAGEMENTPL/M-286 COMP
- Page 77 and 78:
REAL MEMORY MANAGEMENTPL/M-286 COMP
- Page 79:
REAL MEMORY MANAGEMENTPL/M-286 COMP
- Page 82 and 83:
IIIIIIIIIIIIIIIIIIIIII
- Page 84 and 85:
II I telTASK MANAGEMENTCPUTASK REGI
- Page 86 and 87:
TASK MANAGEMENTIf the proc~sser, wh
- Page 88 and 89:
TASK MANAGEMENTUsually, termination
- Page 90 and 91:
TASK MANAGEMENTTASK XTSS TSS TSS TS
- Page 92 and 93:
TASK MANAGEMENTSCHEDULING POLICIEST
- Page 94 and 95:
TASK MANAGEMENTThe example in figur
- Page 96 and 97:
TASK MANAGEMENTREADY QUEUESBY PRIOR
- Page 98 and 99:
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
- Page 101 and 102:
CHAPTER 5DATA SHARING, ALIASING, AN
- Page 103 and 104:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 105 and 106:
interDATA SHARING, ALIASING, AND SV
- Page 107 and 108:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 109 and 110:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 111 and 112:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 113 and 114:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 115 and 116:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 117:
DATA SHARING, ALIASING, AND SYNCHRO
- Page 121 and 122:
CHAPTER 6SIGNALS AND INTERRUPTSInte
- Page 123 and 124:
interSIGNALS AND INTERRUPTSlOTGOTTS
- Page 125 and 126:
SIGNALS AND INTERRUPTSTable 6-1. In
- Page 127 and 128:
SIGNALS AND INTERRUPTSSend interrup
- Page 129 and 130:
SIGNALS AND INTERRUPTSprocedure suc
- Page 131:
Handling Exception Conditions 7
- Page 134 and 135:
HANDLING EXCEPTION CONDITIONSError
- Page 136 and 137: HANDLING EXCEPTION CONDITIONSAn exc
- Page 138 and 139: HANDLING EXCEPTION CONDITIONSA few
- Page 140 and 141: HANDLING EXCEPTION CONDITIONSAn ins
- Page 143 and 144: CHAPTER 8INPUT /OUTPUTMany of the c
- Page 145 and 146: INPUT /OUTPUTYou can still take adv
- Page 147 and 148: INPUT /OUTPUT• Only the operating
- Page 149: INPUT /OUTPUTtask the I/0 procedure
- Page 153 and 154: CHAPTER 9VIRTUAL MEMORYThe memory l
- Page 155 and 156: VIRTUAL MEMORYthose segments that a
- Page 157 and 158: VIRTUAL MEMORY• Return the RAM sp
- Page 159 and 160: VIRTUAL MEMORYReplacementThe operat
- Page 161 and 162: System Initialization10
- Page 163 and 164: CHAPTER 10SYSTEM INITIALIZATIONThe
- Page 165 and 166: SYSTEM INITIALIZATIONStarting the f
- Page 167 and 168: iAPX286 "ACRO ASSEMBLERLOCOBJEnter
- Page 169 and 170: iAPX286 MACRO ASSEMBLEtEnter Protec
- Page 171 and 172: iAPX286 MACRO ASSEMBLER·· Enter ~
- Page 173 and 174: iAPX286 'UCRO USE148LER Ente,. P,.o
- Page 175 and 176: iAPX286 MACRO ASSEMBLEREnt9~ P~otec
- Page 177: iAPX286 MACRO ASSEMBLE~ INITIAL TAS
- Page 181 and 182: CHAPTER 11BINDING AND LOADINGBindin
- Page 183 and 184: BINDING AND LOADINGNamingThe names
- Page 185: BINDING AND LOADING$ COMPACT (NUCLE
- Page 189 and 190: BIND.ING AND LOADINGConverting a Pr
- Page 191 and 192: BINDING AND LOADINGThe OMF of each
- Page 193 and 194: interBINDING AND LOADINGsystem-IDiA
- Page 195 and 196: BINDING AND LOADINGPL/M-2B6 COMPILE
- Page 197 and 198: BINDING AND LOADI.NGPL/M-286 COMPIL
- Page 199 and 200: BINDING AND LOADINGPL/M-286 COMPILE
- Page 201 and 202: BINDING AND LOADINGPL/M-2B6 COMPILE
- Page 203 and 204: BINDING AND LOAD.INGPL/M-286 COMPIL
- Page 205 and 206: interBINDING AND LOADINGPL/M-286 CO
- Page 207 and 208: BINDING AND LOADINGPL/M-286 COMPILE
- Page 209: Numerics Processor Extension 12
- Page 212 and 213: NUMERICS PROCESSOR EXTENSIONMath Pr
- Page 214 and 215: interNUMERICS PROCESSOR EXTENSION
- Page 217: Extended Protection13
- Page 220 and 221: EXTENDED PROTECTIONIndirect NamingT
- Page 222 and 223: EXTENDED PROTECTIONanother procedur
- Page 225: Glossary
- Page 228 and 229: GLOSSARYbootloadable module: a modu
- Page 230 and 231: GLOSSARYexception: a processor-dete
- Page 232 and 233: GLOSSARYintersegment reference: a r
- Page 234 and 235: GLOSSARYoutward call: the attempt t
- Page 236 and 237:
GLOSSARYscheduling state: one of se
- Page 238 and 239:
GLOSSARYvirtual address: an address
- Page 240 and 241:
INDEXES register, 2-17, 2-18, 2-21,
- Page 242 and 243:
INDEXpresent bit, 2-2, 2-3, 2-9, 5-
- Page 245 and 246:
interu.s. SALES OFFICESALAIWIA IlEQ
- Page 247 and 248:
interu.s. DISTRIBUTORSNEW YORK (C"n
- Page 249 and 250:
intJINTEL INTERNATIONAL SALES OFFIC