3.4 Computer Systems Flashcards
Hardware
Physical components, it is a platform on which software executes.
Software
Software consists of sequences of instructions, called programs. The programs can be understood and executed by the hardware.
Software
Software are the computer programs that give instructions to the computer system to run.
1) Application software
2) System software
Application software
Application software is a program designed to perform a specific task that the user interacts daily with.
Commonly used tools such as spreadsheets, web browser and word processing tools are examples of application software.
Application software needs to run on top of system software (operating system) which take care of interaction with the hardware resources.
System software
System software is concerned with the running of the computer.
It’s purpose is to control the computer hardware and manage the application software.
The most important piece of system software is the operating system.
Operating systems
Operating systems are pieces of software that regulate interactions between software and hardware.
There are lots of different operating systems. The most popular are:
• Windows
• macOX
• Linux
• Android
Functions of an operating system
• Error handling
• Program management
• Memory management
• Interaction with the user
• Processor management
• Input and output
• Security
• File management
What does the OS handle management of?
• Application management
• Processor management
• Memory management
• Security
• Input / Output devices
Application management
• Application software does not need to concern itself with interaction and complexities of managing the hardware because it is dealt with by the operating system.
• Application software needs to run on top of the operating system.
• The operating system takes care of the interaction with the hardware resources.
• The applications manager allocates memory space and determines time needed by a processor for an application to run.
Processor management
• Allows multiple applications to be run simultaneously by managing the processing time between between applications and cores and switching processing between applications very quickly.
• Multiple applications will access the processor resources via a schedule that alternates processes between applications
• High priority applications will have more CPU time, but it means that lower priority applications will take longer to run.
Memory management
• Distributes memory resources between programs and manages transfer of data and instruction code in and out of memory.
• Ensures that each applications does not use and excessive amount of memory.
Input/output devices
• OS controls interaction with input (e.g. keyboard) and output (e.g. monitor) and storage (e.g. hard disk) using hardware devices.
• Allows users to save files to the hard disk and print documents for instance.
Security
• Tools such as anti-virus software and fireballs help protect the computer from attack.
• In addition require for passwords and control of access.
Utility programs examples
• Disk defragmentation
• Auto backup and restore
• Anti-virus
• Firewall
• Compiler
Disk defragmentation
• Organises files on a disk to be located contiguously.
• Often after defragmentation performance is improved because a file can be accessed from one location on a disk.
• Files can become fragmented when the original file increases in size and no longer fit into a contiguous location and has to be split over multiple locations.
Auto back up and restore
Ability to automatically back-up files on the computer, either using cloud storage or another form of secondary storage.
Anti-virus
Scans the computer to identify malicious code.
Firewall
Scans input and output packets and prevent malicious packets entering the computer.
Compiler
Converts high level computing code into low level.
High level languages
• High level languages are those that are relatively easy for programmers to use, as they involve a large amount of English language.
• One command in a high level language will relate to several in a low level one.
• Using high level languages, allows programmers to write applications that are portable across devices and different platforms.
• Computers can only understand Machine Code, so all higher-level programming languages must be translated before the computer can understand them.
• Uses mnemonics to help understand it better.
Low level languages
• Machine code is instructions written in binary, where one instruction relates to one thing that the computer needs to do.
• Low level languages are those extremely close to machine languages.
• This means that the syntax are quite far away from human language but the instructions have a 1-1 correspondence to machine code.
Examples of low level languages?
• Machine code
• Assembly language
Machine code
• Computers use machine code.
• Machine code uses 0s and 1s (binary).
• It is almost impossible for humans to understand programs written in machine code.
• Every processor has its own specific machine code instruction set.
Assembly language
• Assembly language must be translated by an assembler for the computer to understand it, but has a 1:1 correspondence with machine code - one instruction in assembly language corresponds to one instruction in machine code.
• This means that assembly language is also specific to a processor or family of processors, and can’t be used across different pieces of hardware.
• Assembly language is often used to develop software for embedded systems and for controlling specific hardware components.