140 likes | 457 Views
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: Exec
E N D
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: Exec • Command Line Interface: Amiga DOS • Graphic User Interface: 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.