+ All Categories
Home > Documents > Unit I Single Task OS

Unit I Single Task OS

Date post: 14-Apr-2018
Category:
Upload: alberto-bello
View: 221 times
Download: 0 times
Share this document with a friend

of 38

Transcript
  • 7/30/2019 Unit I Single Task OS

    1/38

    18 de agosto de 2012

  • 7/30/2019 Unit I Single Task OS

    2/38

    SINGLE-TASK OSBefore to add the complexities of multi-

    tasking, it is useful to think about the

    operation of a single-task OS without all the

    reload that multi-tasking entails (suppose).

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

  • 7/30/2019 Unit I Single Task OS

    3/38

    SINGLE-TASK OSAt the hardware level a computer consists of

    a CPU, memory and a number of peripheral

    devices.

    The CPU contains registers or `internal

    variables' which control its operation.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

  • 7/30/2019 Unit I Single Task OS

    4/38

    SINGLE-TASK OSThe CPU can store information only in the

    memory it can address and in the registers of

    other microprocessors it is connected to.

    The CPU reads machine code instructions,

    one at a time, from the memory and

    executes them forever without stopping.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

  • 7/30/2019 Unit I Single Task OS

    5/38

    SINGLE-TASK OSThe key elements of a single-task computer are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    Register Purpose

    Accumulator Holds the data currently being worked on.

    Program counter

    Holds the address of the next instruction to be

    executed

    Index (addressing)

    registers

    Used to specify the address of data to be loaded into

    or saved from the accumulator, or operated on in

    some way.

    Stack pointerPoints to the top of the CPUs own hardware

    controlled stack.

    Status registerContains status information after each instruction

    which can be tested for to detect errors etc.

  • 7/30/2019 Unit I Single Task OS

    6/38

    SINGLE-TASK OSThe memory, as seen by the CPU, is a largestring of bytes starting with address andincreasing up to the maximum address.

    Normally, because of the hardware design ofthe CPU, not all of the memory is available to

    the user of the machine. Some of it isrequired for the operation of the CPU.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

  • 7/30/2019 Unit I Single Task OS

    7/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

  • 7/30/2019 Unit I Single Task OS

    8/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    The first t `page' of the

    memory is often

    reserved for a specialpurpose. It is faster to

    write to the zero page

    because you don't have

    to code the leading

    (principal) zero for the

    address

  • 7/30/2019 Unit I Single Task OS

    9/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    Every CPU needs a

    stack for executing

    subroutines.

  • 7/30/2019 Unit I Single Task OS

    10/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    Space the user

    programs can grow

    into.

  • 7/30/2019 Unit I Single Task OS

    11/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    What you see on the

    screen of a computer

    is the image of an

    area of memory,

    converted into colours

    and positions by a

    hardware video-controller.

  • 7/30/2019 Unit I Single Task OS

    12/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    The screen memory is

    the area of memory

    needed to define the

    colour of every `point'

    or `unit' on the screen.

  • 7/30/2019 Unit I Single Task OS

    13/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    Depending on what

    kind of visual system

    a computer uses, this

    might be one byte per

    character and it might

    be four bytes per

    pixel!

  • 7/30/2019 Unit I Single Task OS

    14/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    Hardware devices like

    disks and video

    controllers contain

    smaller

    microprocessors of

    their own. The CPU

    gives theminstructions by placing

    numbers into their

    registers.

  • 7/30/2019 Unit I Single Task OS

    15/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    To make this process

    simpler, these device

    registers (only a few

    bytes per device,

    perhaps) are wired

    (alambrados) into the

    main memory map, sothat writing to the

    device is the same as

    writing to the rest of

    the memory.

  • 7/30/2019 Unit I Single Task OS

    16/38

    SINGLE-TASK OSThe roughly (approximately) distinguished

    areas are:

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Memory map and registers

    The operating system

    itself is a large

    program which often

    takes up a large part

    of the available

    memory.

  • 7/30/2019 Unit I Single Task OS

    17/38

    SINGLE-TASK OSA stack is a so-called last-in first-out(LIFO)

    data structure.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Stack

    That is to say - thelast thing to be

    placed on top of a

    stack, when

    making it, is thefirst item which

    gets removed

    when un-makingit.

  • 7/30/2019 Unit I Single Task OS

    18/38

    SINGLE-TASK OSStacks are used by the CPU to store the

    current position within a program before

    jumping to subroutines, so that they

    remember where to return to after thesubroutine is finished.

    Because of the nature of the stack, the CPUcan simply deposit the address of the next

    instruction to be executed (after the

    subroutine is finished) on top of the stack.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Stack

  • 7/30/2019 Unit I Single Task OS

    19/38

    SINGLE-TASK OSWhen the subroutine is finished, the CPU

    pulls the first address it finds off the top of the

    stack and jumps to that location.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Stack

  • 7/30/2019 Unit I Single Task OS

    20/38

    SINGLE-TASK OSOn many older microcomputers and in many

    operating systems the stack is allocated with

    a fixed size in advance.

    If too many levels of nested subroutines are

    called, the stack can overflow (excess).

    Consider the following example code for astack.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Stack

  • 7/30/2019 Unit I Single Task OS

    21/38

    SINGLE-TASK OSOn many older microcomputers and in many

    operating systems the stack is allocated with

    a fixed size in advance.

    If too many levels of nested subroutines are

    called, the stack can overflow (excess).

    Consider the following example code for astack. CODIGO [stack.C]

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Stack

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    22/38

    SINGLE-TASK OSInterrupts

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    Are hardware

    triggered signalswhich cause the

    CPU to stop

    what it is doing

    and jump to aspecial

    subroutine.

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    23/38

    SINGLE-TASK OSInterrupts

    Interrupts normally arrive from hardware

    devices, such as when the user presses akey on the keyboard, or the disk device hasfetched some data from the disk.

    They can also be generated in software byerrors like division by zero orillegal memoryaddress.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    24/38

    SINGLE-TASK OSInterrupts

    When the CPU receives an interrupt, it saves

    the contents of its registers on the hardwarestack and jumps to a special routine whichwill determine the cause of the interrupt and

    respond to it appropriately.

    Interrupts occur at different levels.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    25/38

    SINGLE-TASK OSInterrupts

    Low level interrupts can be interrupted by high

    level interrupts. Interrupt handling routines have

    to work quickly, or the computer will be drowned

    in the business of servicing interrupts.

    For certain critical operations, low level

    interrupts can be ignored by setting a mask

    (See later).

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    26/38

    SINGLE-TASK OSInterrupts

    An important area is the interrupt vector. This isa region of memory reserved by the hardwarefor servicing of interrupts.

    Each interrupt has a number from zero to the

    maximum number of interrupts supported on theCPU; for each interrupt, the interrupt vectormust be programmed with the address of aroutine which is to be executed when theinterrupt occurs.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    27/38

    SINGLE-TASK OSInterrupts

    i.e. when an interrupt occurs, the systemexamines the address in the interrupt vector

    for that interrupt and jumps to that location.

    The routine exits when it meets an RTI

    (return from interrupt) instruction.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    28/38

    SINGLE-TASK OSBuffers

    The CPU and the devices attached to it donot work at the same speed.

    Buffers are therefore needed to storeincoming or outgoing information temporarily,

    while it is waiting to be picked up by the other

    party.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    29/38

    SINGLE-TASK OSBuffers

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    A buffer is simply

    an area ofmemory which

    works as a

    waiting area. It is

    a first-in first-out

    (FIFO) data

    structure or

    queue.

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    30/38

    SINGLE-TASK OSSynchronous and asynchronous I/O

    To start an I/O operation, the CPU writesappropriate values into the registers of the

    device controller.

    The device controller acts on the values it

    finds in its registers.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    31/38

    SINGLE-TASK OSSynchronous and asynchronous I/O

    For example, if the operation is to read from

    a disk, the device controller fetches data

    from the disk and places it in its local buffer.

    It then signals the CPU by generating an

    interrupt.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    32/38

    SINGLE-TASK OSSynchronous and asynchronous I/O

    While the CPU is waiting for the I/O to complete

    it may do one of two things.

    It can do nothing oridle until the device returns

    with the data (synchronous I/O), or it cancontinue doing something else until the

    completion interrupt arrives (asynchronous I/O).

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    33/38

    SINGLE-TASK OSSynchronous and asynchronous I/O

    The second of these possibilities is clearly

    much more efficient.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    34/38

    SINGLE-TASK OSDMA - Direct Memory Access

    Very high speed devices could place heavy

    demands on the CPU for I/O servicing if theyrelied on the CPU to copy data word byword.

    The DMA controller is a device which copiesblocks of data at a time from one place to theother, without the intervention of the CPU.

    UNIVERSIDAD AUTONOMA DE

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    35/38

    SINGLE-TASK OSDMA - Direct Memory Access

    To use it, its registers must be loaded with the

    information about what it should copy andwhere it should copy to. Once this is done, it

    generates an interrupt to signal the completion

    of the task.

    The advantage of the DMA is that it transfers

    large amounts of data before generating an

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    36/38

    SINGLE-TASK OSDMA - Direct Memory Access

    Without it, the CPU would have to copy the

    data one register-full at a time, using up

    hundreds or even thousands of interrupts

    and possibly bringing a halt to the machine!

    TLAXCALA

    Input/Output

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    37/38

    WHAT IS AN OPERATING SYSTEM?Exercises

    1. What is the program counter?

    2. Explain why a stack is used to store local variables.

    3. Some microprocessors (68000/Intel 386 upward) support multitasking internally. A separatestack is then needed for each process. How can this be achieved?

    4. Write a program to create a stack (LIFO) which can store any number of local variables for

    each subroutine. Hint: use a linked list for the stack and for the variables.5. Write a program to implement a buffer (FIFO).

    6. When a computer is first switched on, it executes a program called a bootstrap program. Thiscomes from the expression `to lift oneself by one's own bootstraps'. The computer must beginto execute instructions and `get going'. Find out for yourself, or speculate on how this takesplace.

    7. What is a stack-frame?

    8. What is memory mapped I/O?

    Practice:

    Implement Stack

    TLAXCALA

    UNIVERSIDAD AUTONOMA DE

  • 7/30/2019 Unit I Single Task OS

    38/38

    REFERENCEhttp://www.iu.hio.no/~mark/os/os.html#SECTIO

    N00200000000000000000

    TLAXCALA


Recommended