bootable programs building an o/s. basic requirements of any o/s respond to interrupts (all kinds)...

Post on 18-Jan-2018

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Responding to ANY interrupt Hardware loads a pre-defined state vector – Context switch occurs – NSI is inside kernel at primary interrupt handler Primary handler determines type of interrupt – I/O completion – Service call – Program error – Paging/addressing exception Save user’s environment (stack, registers) in process’s PCB or thread’s TCB Branch to detail interrupt handler

TRANSCRIPT

Bootable Programs

Building an O/S

Basic Requirements of any O/S• Respond to interrupts (all kinds)• Preserve user environment• Protect users and self from corruption• Handle I/O errors• Handle user errors

Responding to ANY interrupt• Hardware loads a pre-defined state vector– Context switch occurs– NSI is inside kernel at primary interrupt handler

• Primary handler determines type of interrupt– I/O completion– Service call– Program error– Paging/addressing exception

• Save user’s environment (stack, registers) in process’s PCB or thread’s TCB

• Branch to detail interrupt handler

Detail interrupt handler• Take required action– All instructions valid– Must not cause another interrupt• Therefore must not do I/O - one exception:

– Handling I/O errors may require I/O to device– Interrupt for this 2ndary I/O must be deleted

• Must allow for all possible (and improbable) errors

• Return to common return point

Common return to user• Determine next thread/process to run– New user– Interrupted user

• Locate PCB/TCB for selected user• Prep state vector, could be:– Old vector (in reserved RAM) from previously interrupted

program– New vector data determined for a new program

• Save kernel’s registers in reserved storage• Restore user’s registers & stack from PCB/TCB• Load prepared state vector for user• Context switch occurs

SOS• A Small Operating System• “built-in” user command-line shell • Written in z/390 assembler language– 32-bit mode– Runs in a z/390 virtual machine

• You will – Modify it to provide service call handling– Install it as a bootable program– Boot it– Test it

SOS – bootable drive• Virtual device at address 222• Preformatted as a CMS disk– Simplifies putting programs on the drive– Reserved space for the bootable program (SOS)– Boot loader (IBM supplied) installed by student– Allows seeing disk content from CMS shell

SOS – original contents• Device address discovery– Operator’s terminal– Boot drive

• Locate volume TOC• Locates file directory• Displays content of directory in hexadecimal• Terminates

SOS - Lab 1 • Copy the SOSSAMP file to your “a-disk”• Rename it to: SOS• Assemble it using HLASM• Prepare the bootable drive• Boot it

SOS – Lab 2• Add “shell” code to the single compile• Add state-vector loading to “activate” shell• Shell displays your prompt, waits for input• Shell issues SVC n in response to input– 0<= n <= 7– See lab assignment for details

• SOS gets control and performs service “n”• SOS – returns control to shell – loads “terminate” state vector

top related