Chapter 3: Software Flashcards
Software, and Programs
An algorithm that is coded for a computer to use in order to perform tasks. (Generally known as software. Software also includes the associated data the program needs).
Software is written using programming languages, a type of software.
The three main categories of software:
1) Systems software (controls hardware/operating system)
2) Development/Utility software (programming languages, and utilities)
3) Application software (real-world jobs, apps e.g. Microsoft Word)
Dedicated system
Have software installed on a chip of some sort. This software is specific to the job, and is only changes when updated. For example, a washing machine embedded system is only ever going to run software to control a washing machine.
Multi-purpose system
Computers such as laptops, tablets, PCs, and phones regularly run different prgrams according to the wishes of the user. They store their software on a secondary storage medium such as a hard disk, memory stick, SD card, or optical disk (CD, or DVD).
System software
The software that controls the hardware, and operating system.
Acts as an intermediary between the application, and the hardware:
- Hides the complexities of the hardware from the user, and application programmers.
- Allows the user to operate the computer without having to wire programs.
At the heart of the operating system is the kernel, this is the part that actually makes the hardware do things.
User interface software
The user interface is the boundary between the human user, and the machine. It
- Lets the user give commands
- Asks questions
- Displays a response
See Command line interface, Graphical User Interface (GUI)
User Interface Software: Command line interface
- Requires the user to type commands that are then translated by a command interpreter into signals that the computer can understand.
- You can completely control a computer with these commands which is why technicians, and programmers like using them.
- They also find it useful to group commands in shell scripts to carry out maintenance jobs automatically. A shell is a software that the user needs to communicate with the kernel.
User Interface Software: Graphical User Interface (GUI)
- Uses images, known as icons, to represent resources, files, programs, and actions.
- The user either clicks on areas of the screen with the mouse, or touches, or pinches them to make things happen.
- GUIs are useful to interact with the computer as they are intuitive, you don’t need any training, keyboard use is limited, and no commands need to be learned.
- This interface sits on top of the operating system kernel, and allows easy access to many everyday features such as selecting software, selecting files, sending messages, controlling sound volume, connecting to Wi-Fi, and updating software.
User Interface Software: Touch screens
Some interfaces are designed for phones, or tablets. These are not designed for mouse input, but various actions of the fingers such as pinch, drag, or tap.
User Interface Software: Natural language, and speech
Some interfaces accept normal speech as input, This is difficult as speech can vary (accent, pace, dialect, clarity of diction).
Speech input is useful for selecting options on telephone menus, giving commands to a computer, and dictating text.
The production on television programmes involves speech recognition software, but mistakes can be made.
Memory Management
Operating systems have to decide what goes where in memory. They must ensure that memory is used efficiently, and important data is not overwritten during the running of a program.
To do this memory is divided into pages.
A program, when it is being executed, is called a process.
When a job needs to be done, a process is loaded into a vacant page. The operating system keeps track of this, and protects it from being overwritten by other processes.
Memory Management: Virtual Memory
Sometimes there are more jobs than space in memory. The OS then swaps jobs in, and out of memory, using a technique called virtual memory.
Virtual memory (‘not real’ memory) uses secondary storage/the disk to hold parts of the program that are not currently needed. It is slower to access than main memory.
A large program may take up too much space so it is divided into modules.
- The modules are stored separatly on secondary storage.
- When a module is needed it is loaded into memory, and run as a process.
- When a different module is needed, it can overwrite an unused module.
The OS must keep track of which pages are vacant, and which processes are currently being swapped in, and out.
Memory Management: Peripheral Management
Files can be:
- Data files e.g. a word processed document, a database
- Program files e.g. OS components, applications
- Configuration data e.g. the parts of the Windows registry
The OS is responsible for keeping track fo all of the files in a system, and must know exactly where each file is stored on the storage medium.
When you save a file the OS looks up where there is free space on the medium, writes the data to the medium, and makes a record of where it is located. Next time that you want the file the OS looks up where it is, finds it, and retrieves it.
File
A named store of data on a secondary storage medium.
Memory Management: Fragmentation, and Defragmentation
Secondary storage is divided into segments. Files are often larger than the size of a segment, so they are split into blocks across many segments. These segments could be anywhere on a storage medium.
If a file is split across many locations it takes longer to read, and write it. Each blocks contain pointers (informations) about the location of the next block, so the OS can follow the pointers to retrieve the whole file.
After a while, access to the file slows down. Defragmentation can be used to tidy up the disk, or other medium so that each of the parts of the files are moved to be stored next to each other.