Amiga-by-Brad-Campbell-Greg-Mathurin-Aaron-Hensley-Kayla

Download Report

Transcript Amiga-by-Brad-Campbell-Greg-Mathurin-Aaron-Hensley-Kayla

The Amiga Operating System: Past and Present
Aaron Hensley
Kayla Zinn
Brad Campbell
Gregory Mathurin
Josh Benson
What is Amiga?
The Hardware
• Amiga 1000:
– 32bit
– 7.16Mhz MC68000 processor
– 512K
– 4096 colors
– two stereo channels
What is Amiga?
The Operating System
– Kernel:
– Command Line Interface:
– Graphic User Interface:
Exec
Amiga DOS
Intuition
Memory Management
• EXEC
– Based on simple list of nodes
– Prone to fragmentation
• EXECSG (Exec Second Generation)
– Object oriented
– No Memory Protection
Scheduling in the Amiga
• Known for its efficiency as a multitasking operating
system
• Uses preemptive, round-robin, prioritized
scheduling
– Time quantum: 80 ms
– Priority range: -127 to 127, higher number  higher
priority
– Uses a set time quantum, but tasks with higher priorities
receive the processor more often than those with lower
• User has the ability to change the priority of any
running process at will. No need for privileged
mode.
Deadlock Handling
• Most the time, deadlocks are IGNORED and
must be removed manually
• A few efforts were made that use deadlock
avoidance and find-and-repair techniques
 Some semaphores used
 In some cases, if a task locks a context that becomes
deadlocked, because only one task can lock it at a
time, the OS will switch back to that task and fix it or
remove it
 Some operations time out after a set time quantum
Amiga’s display co-processor
Has the ability to change special
purpose registers to synchronize with
the video beam’s position
Allows for
• color pallet changes mid-screen
• screen split into many different
horizontal slices that each have
separate color depths and video
resolution.
Pipes in Amiga
• Introduced in Amiga 2.04
• Differs from pipes in UNIX in three ways
•the input or output of a program using pipes does not have to
be redirected standard output
•flush operation is not supported
• if non-outputted data is bigger then the internal buffer of the
‘pipe’ the application writing to it will block until the
data is output
•Advantages: they free up RAM and system
running faster then if the information being
passed was stored to the hard drive
File System
• Favors Data Integrity over Speed of Access
• Written completely in assembler
• Multiple sectors of disk can be assigned to each block of
logical memory
• Checksum for each logical block of data on the disk
• Directory caching
– Complete list of directories and contents held in file
• Every directory and entry uses same data structure with
same attributes
– Name, last modified, permissions, size, block numbers
Task (process) States
• Two Queues for tasks
– Running Queue
– Waiting Queue
• TaskStart creates a task and places it
directly in the running queue
• TaskEnd removes a task from either
queue and terminates it.
Threading
(or not)
Amiga does not support threads.
However, because it is a lightweight, single-user,
non-memory protected environment it is possible to
achieve similar effects using semaphores and inter
process messaging.
Semaphores
Procure() – allows a task to request a semaphore without
blocking and receive a message when the semaphore is
available
Vacate() – releases a semaphore and sends a bidMessage to
the next task in that semaphore’s que
This system allows a task to wait asynchronously for any
number of semaphores at once and continue to process.
Inter Process Messaging
With inter process messages you can both synchronize and
transfer information between tasks in a very efficient manner.
AmigaOS doesn't copy the messages, but passes a reference to
shared memory instead, which makes communication much
faster than conventional Oss.
END