Topic 2: Software and software development Flashcards
What are the functions of an OS
- Interrupts
- User Interface
- File Management
- Peripheral Management/Drivers
- User Management
- Memory Management
- Processor Scheduling
What is the purpose of an OS
To manage interaction between hardware and software
What does a GUI have
WIMP
What does WIMP stand for
Windows
Icons
Menus
Pointers
What does BIOS do in terms of OS
BIOS loads OS to RAM
What is CLI and when would it be used
Command Line Interface, used at a technical level as you interact with hardware more
What is MDI and when would it be used
Menu Driven Interface, used to simplify options so the user can’t be annoying (ATM)
What is Memory Management
Manage memory, Paging and Segmentation
What is Paging
A process loaded to RAM is allocated sufficient pages that may not be contiguous in physical terms. Pages are fixed length blocks of memory. Each page has an address.
What is Segmentation
Variable length memory-size data, Logical
What are the benefits of Paging
So data can swap into and out of virtual memory.
Page tables don’t have to have data contiguous
What does a page table do
Maps between the logical and the physical memory locations
What is swapping
Moving data to and from virtual memory
How are the pages that get swapped decided
By the OS
Why is swapping bad
It causes disk thrashing which slows performance
What is Immediate addressing
Actual value
What are the 4 types of addressing
Immediate
Direct
Indirect
Indexed
What is Direct addressing
Address of value
What is Indirect addressing
Address of Address of value
What is Indexed addressing
Index value + Value
What sends interrupts
Software, Hardware devices or the CPUs internal clock
When would you Interrupt
User Input
Errors
Power Failure
An I/O sends and Interrupt signal
When are interrupts checked for
CPU checks for interrupts at the end of every cycle
What happens if an Interrupt is found
Current processing is pushed to a stack
What happens when the interrupt is finished
Processing is popped back
What is the ISR
Interrupt Service Routine
What is a Queue
FiFo
What is a Stack
LiFo
How are interrupts processed
In order of priority using levels
Can an interrupt be interrupted
Yes, by a higher level interrupt, it will be pushed to the stack
What is processor Scheduling
Allows us to have the illusion that the CPU is multitasking
Name some features of a Round Robin
FIFO
Set amount Time slices
Sent to back of Queue
What is a Round Robin routine
Each job is given a time slice of processor time to run in.
When a job has used up it’s time slice it is returns to the start of the queue and receives another.
This repeats until the job is complete.
What is First come First Served Routine
Jobs are processed in the order they entered the queue
What is a Multilevel feedback queue routine
Uses multiple queues, each with a different priority
What is a Shortest job first routine
The queue is ordered by the amount of processor time needed. Shortest jobs are completed first.
What is a Shortest time remaining routine
The queue is ordered based on the time left to completion.
Jobs with the least time needed to complete are finished first
Advantages and Disadvantages of Round Robin
A: All jobs are eventually attended to.
D: Longer jobs take much longer. Takes no account of priority.
Advantages and Disadvantages of First come First Served
A: Easy to implement.
D: Takes no account of priority.
Advantages and Disadvantages of Multilevel Feedback
A: Considers job priority.
D: Tricky to implement
Advantages and Disadvantages of Shortest Job First
A: Works well for batch systems
D: Requires additional processor time to order the queue. Takes no account of priority.
Advantages and Disadvantages of Shortest time Remaining
A: Increased throughput
D: Requires additional processor time to order the queue. Takes no account of priority.
Name 5 types of Software Development
- Waterfall
- Agile
- Extreme Programming
- Spiral
- Rapid Application Development (RAD)
Advantages and Disadvantages of Waterfall
A: Straightforward to Manage. Clearly documented
D: Lack of Flexibility. No risk analysis. Limited user involvement
Advantages and Disadvantages of Agile
A: High quality code. Flexible to changing requirements. Regular user inputs.
D: Poor Documentation
Advantages and Disadvantages of Extreme Programming
A: High quality code. Constant user involvement means high usability.
D: High cost as two people needed. Teamwork is essential. User needs to be present.