1.2 Software and Software development Flashcards
Systems Software Applications generation Software development Types of programming language
What is an operating system?
- A collection of programs that work together to provide an interface between the user and computer
Give 3 functions of an operating system
- Memory management
- Resource management
- I/O management
- Interrupt management
- Security
- User interface
- Utility software
Similarities of paging and segmentation
Both used when RAM space is insufficient, can cause disk thrashing
Differences of Paging and Segmentation
- Paging uses equal sized sections called pages
- Segmentation uses variable-sized, logical sections called segments
Describe how virtual memory is used when there is not enough RAM
- A section of the hard drive is used to act as RAM
- Sections of programs not currently being used are temporarily moved into virtual memory through paging.
- This frees up memory for other programs in RAM
What is an interrupt?
- A signal generated by software or hardware to indicate to the processor that a process needs attention.
Explain the stages of the Interrupt Service Routine (ISR)
- Interrupt register checked at the end of each FDE cycle
- If an interrupt with a higher priority exists, the current contents in the CPU are transferred to a stack.
- The relevant ISR is loaded into RAM
- A flag is set to signal the ISR had started
- Flag is reset when finished
- Interrupt register checks if there are any other high priority interrupts, if so it is repeated.
- If there are none, contents of the stack are popped off and the FDE cycle carries on.
What is pre-emptive scheduling?
- Jobs are actively made to start and stop by the operating system.
What is non pre-emptive scheduling?
- Once a job is started, it is left alone until it is completed.
Give an example of pre-emptive scheduling.
- Round Robin
- Shortest remaining time
- Multi-level feedback queues
Give an example of non pre-emptive scheduling
- First come first served
- Shortest job first
Give an advantage and disadvantage of using Multilevel Feedback Queues.
- Takes into consideration different job priority
- Difficult to implement
Define a real-time OS and when it may be used
- Real-time operating systems perform a task within a guaranteed time frame. They are used in systems where a response within a given time frame is critical e.g. life support systems, self-driving cars and power systems.
Describe three functions of the BIOS
- Running tests upon the computer’s start-up:
- POST (Power-on self test) which makes sure that all hardware is correctly connected and functional
- Checking CPU clock, memory and processor
- Testing for external memory devices
What is the role of a device driver?
Enable the operating system to interact with hardware devices
Describe when a virtual machine may be used
- Testing programs
- Protection from malware
- Running software compatible with different versions and types of OS’s
Give one advantage and disadvantage of intermediate code
- Advantage: Platform independent, portable
- Disadvantage: Slower execution
What is the difference between applications and systems software?
- Applications software is utilised directly by the end-user whereas systems software ensures high performance of the computer
Give 2 examples of utilities
- Compression
- Disk de-fragmentation
- Antivirus
- Automatic backup
- Automatic updating
Give one advantage of using closed source code
- Thorough, regular and well-tested updates
- Expert support and user manuals from company
- High levels of security as it is developed in a professional, controlled environment
State two features of open source code
- Doesn’t require a license to be used
- Distributed with the source code
- Can be modified and sold on
Give two advantages of compiled code over interpreted
- Faster execution
- Doesn’t require a compiler to run
Give two advantages of interpreted code over compiled
- Platform independent
- Runs instantly without time waiting for compilation
- Useful for debugging
What is assembly language?
- A low level language that has almost a one-to-one relationship with machine code. It is platform specific
What are the stages of compilation?
- Lexical analysis
- Syntax analysis
- Code generation
- Optimisation
What happens during syntax analysis?
- Tokens are compared to the rules of the programming language
- Syntax errors are identified
- Symbol table updated with more details
- Semantic analysis (finding logic errors)
What are the similarities and differences between static and dynamic linkers?
Similarities: Both link external modules and libraries to main program
Static: Library code copied into the file. File size increased.
Dynamic: Addresses of libraries included within file. External updates automatically feed through the main program.
Give an advantage of using libraries.
- Error free
- Saves time
- Re-usable
- No need to “reinvent the wheel”
- Designed by experts
Describe the function of a loader
Provided by the operating system, a loader retrieves the library or subroutine from the given memory location
What is the purpose of the optimisation stage of compilation?
- Reduces execution time
- Reduce inefficient sections of code
- Remove redundant code
Identify the common stages of software development life cycles (SDLCs)
Analysis, Design, Development, Testing, Implementation, Evaluation and Maintenance.
Define white box testing
- A form of testing carried out by software development teams in which the test plan is based on the internal structure of the program. All of the possible routes through the program are tested.
What is TELOS?
A method of analysis used by designers to evaluate the feasibility of a project. It considers technical, economic, legal, operational and scheduling aspects of the project.
What are agile methodologies?
- A collection of methodologies which aim to improve the flexibility of software development. They respond quickly to changes in user requirements.
Give an advantage of waterfall programming methodologies.
- Straightforward to manage
- Clear structure
- Clearly documented
Give a disadvantage of extreme programming methodologies.
- High cost due to two people working on one project.
- Teamwork and good communication is essential.
- End-user must be present throughout the duration of the project.
What type of projects are spiral programming methodologies suited to?
- Large, risk-intensive projects with a high budget
What type of projects are Rapid Application Development (RAD) programing methodologies suited to?
- Projects where high usability is required and user requirements may not be clear from the outset or are changing. Suited to projects of a small to medium size with a relatively low budget and short time-frame.
Define an algorithm
- Set of instructions to solve a problem
Give 2 key qualities or considerations good algorithms should make.
- Inputs must be clearly defined - what is valid and what is invalid?
- Must always produce a valid output for any defined input.
- Must be able to deal with invalid inputs.
- Must always reach a stopping condition
- Must be well-documented for reference.
- Must be well-commented so modifications can easily be made
What are programming paradigms?
- Different approaches to using a programming language to solve a problem
Which two broad categories are programming paradigms split into?
- Imperative
- Declarative
Give an advantage of procedural programming
- Can be applied to a wide range of problems.
- Relatively easy to write and interpret.
Give a use of declarative programming
- Expert systems / Knowledge-based systems
- Artificial intelligence
What are the four main structures used in structured programming?
- Sequence
- Iteration
- Selection
- Recursion
How does assembly language differ from machine code?
Assembly language uses mnemonics rather than binary. One line in assembly language is equal to one line in machine code.
What does the STA mnemonic do?
- Stores the value in the Accumulator at the given memory address.
What does the BRP mnemonic do?
- Branches to a given address if the value in the accumulator is positive. Conditional branch.
What is the function of the opcode and operand?
- Opcode: Specifies the instruction to be performed and teh addressing mode.
- Operand: Holds the value which is related to the data on which the instruction is to be performed.
What are the four addressing modes?
- Immediate Addressing
- Direct Addressing
- Indirect Addressing
- Indexed Addressing
What is a class?
- A blueprint for an object that defines its state and behaviour. An object is an instance of a class.
What is immediate addressing?
- Where the operand is the actual value the instruction is performed on
What is direct addressing?
- When the operand gives the address for the actual value that the instruction is performed on
What is indirect addressing?
- The operand gives the address of a register which hold the actual value that the instruction is performed on.
What is indexed addressing?
- Address determined by adding the operand to the index register.
Give a disadvantage of Object Oriented Languages
- Requires a different style of thinking which can be difficult for programmers accustomed to other paradigms to pick up.
- OOP may not be suited to all types of problems
- Generally unsuitable for smaller problems.