Systems software and software development Flashcards
State functions of OS
Memory management (paging, VM, allocating memory etc.)
Provide a (user) interface
Manage hardware/peripherals
Manage CPU usage / handles interrupts
Provide system security
Provide platform to run other software
Provide utilities for system maintenance
What is virtual memory
Memory content divided into pages
Pages not needed get moved to VM
VM is an area on a secondary storage device
When required, pages are moved from VM back into RAM
What is paging
Paging is fixed size / physical divisions (units)
What is segmentation
Segmentation is dividing memory logically (variable size)
What is an interrupt
A signal to the processor indicating a device/process needs attention
Describe the process of receiving interrupts
-Complete current FDE cycle
-Check priority of incoming interrupt
-If it’s a higher priority than the current task…
-…contents of registers are stored in memory…
-…in a stack
-…relevant interrupt service is loaded
-… by changing PC to memory location of ISR
-…when ISR (Interrupt Service Routine) has completed, the previous state is popped from the stack…
-…and loaded back into registers
State the scheduling algorithms
First come first served
Round Robin
Multi-level feedback queues
Shortest job first
Shortest time remaining
When is the scheduling algorithm “first come first served” suitable
When jobs are dispatched FIFO, jobs are equal priority and equal processing time
What is open source software
Source code is freely available, for others to amend
Explain an advantage of using open source software for a company
A lot of the core functionality needed is already available, so the company just has to make amendments/additions specific to their system, saving time and money
What is closed source software
Closed source software is distributed in binary form only/source code is not freely available, and there are licensing conditions restricting the redistribution/no permission to amend program
State the disadvantages of custom-written software
Wait time is long, large cost, help not easily available (no user community), has not been trial and tested, there are likely to be other off-the-shelf alternatives
What is RTOS
Processor will make decisions based on changes and take action immediately (within a small fraction of a second)
What is an advantage of RTOS over non-RTOS, stating an
RTOS gives a guaranteed response time
Non-RTOS might be busy might be busy dealing with other tasks and may respond once it’s too late
Needed in systems which need to respond to changes immediately, such as in self-driving cars (eg. person steps in front of car)
What is an embedded system
Software used to manage device
Which is built into the device itself
Stored in device’s ROM so cannot be changed
Specific to hardware/purpose
What is a distributed OS, and what tasks might it be used for
Allows multiple computers to work together on a single task
Used for computationally intensive tasks (textbook)
What is a multitasking OS
Can run multiple programs simultaneously
What is a multi-user OS
Allows multiple users to use a system and its resources simultaneously (this does not mean just allowing multiple accounts)
What is a virtual machine
A piece of software that behaves in the same way as an actual computer.
A theoretical computer which provides an environment in which a translator is available
Uses an interpreter to run intermediate code
State the advantages of virtual machine
-reduced hardware costs
-improved security by keeping all software running from one physical device
-easier/cheaper to manage as only one physical device runs programs
-can add/remove resources
-no direct access to hardware
-resources can be used more flexibly between the machines
What is intermediate code
Is simplified code that…
…is between high level & machine code
…is produced by compiler
…runs on any computer
…allows portability between machines
Not machine code, cannot be read by CPU, but still a similarly efficient representation of a program. Any device running appropriate VM can read this intermediate code, while machine code is hardware specific (textbook)
State advantages of intermediate code
Allows sections of code to be written in different languages…
…by different programmers
…suitable for specific tasks
Error free
Protects source code
What is an assembler
A program that translates assembly code into machine code/object code
Useful for developers
What is a compiler
A program that translates high level language into hardware specific machine code/object code.
Creates an executable file and compiles the whole program at once, and returns all the errors (not MS)