Software Flashcards
Describe the difference between system software and application software
- System software provides the services that the computer requires, including operating system and utility software
- Application software provides the services that the user requires
example of system software
operating system, printer driver, encryption software
example of application software
word processor, spreadsheet
Describe the role and basic functions of an operating system
– managing files
– handling interrupts
– providing an interface
– managing peripherals and drivers
– managing memory
– managing multitasking
– providing a platform for running applications
– providing system security
– managing user accounts
how hardware, firmware and an operating system are required to run applications software
-When the computer is first switched on, the firmware is executed.
-This instructs the hardware how to access the attached storage devices.
- The operating system can then be started, running after the firmware.
- Once the operating system has loaded and is running, application software can be loaded and run
how an interrupt is generated
Hardware interrupts include pressing a key on the keyboard and moving the mouse
Software interrupts include division by zero and two processes trying to access the same memory location
types of interrupt
hardware and software
what is an interrupt?
signal sent to the operating system.
OS will then suspend its current task and execute an interrupt service routine for the device or application that sent the interrupt. When the interrupt has been serviced, the OS will continue with the task it was performing before the interrupt occurred
how it is handled using an interrupt service routine
current task in the OS is suspended an the signal is dealt with, this might mean shutting down a program of moving the mouse cursor somewhere
high-level language
(python and java) High-level languages have a higher level of abstraction, which means they deal with general algorithmic concepts rather than specific details of the underlying computer hardware.
low-level language
(C++ and assembly language) Low-level languages have a much lower level of abstraction, meaning they deal less with general concepts and more with specific details
adv of high
- similar to human
- debugging is easier and faster
- No knowledge of underlying hardware required.
- cross platform
disadv of high
slow execution
adv of low
fast execution
disadv of low
- hard to read so development is slower
- technical knowledge is required
- machine dependent: tied to specific architecture