System Software
-
Operating System: a software platform which provides facilities for the programs to be run and beneficial to the user
A computer requires OS because:
-
provides user interface
-
command line interface: user is in direct communication with the computer system by typing in instructions
-
graphical user interface: user interacts with the computer by using icons and buttons, launches application by the use of a pointer (e.g. Windows)
-
-
hardware is unable to use without OS
-
controls the communication between hardware and software
Management tasks carried out by the OS:
-
Memory Management:
-
memory protection by keeping two processes separate and not using the same memory space
-
using virtual memory to organize memory
-
paging
-
-
File Management:
-
controls file access
-
provides file naming conventions
-
allocates space to particular files
-
maintains directory structure
-
-
Security Management:
-
sets up user account, provides usernames and passwords
-
ensures data privacy, access rights
-
automatic backup
-
system restoring
-
-
Hardware Management:
-
manages communication between devices
-
controls inputs and outputs
-
receives and handles interrupts
-
appropriate driver software is installed
-
-
Process Management:
-
allows multitasking and multiprogramming
-
enables process to share information
-
prevents conflicts between the processors
-
manages which resource the process requires
-
e.g. Round - Robin method
-
Key Utility Softwares:
-
Disk formatter:
-
prepare the disk for initial use, to allow data to be stored in it
-
deletes and makes existing data inaccessible
-
searches for errors
-
sets up specified file system
-
-
Virus checker:
-
scans files on the computer for any malicious code and removes any viruses found
-
regularly checks all incoming and outgoing files
-
-
Defragmentation software:
-
re-organizes the disk, because files might be big and result in fragmentation because it is stored in multiple sectors
-
fragmentation slows down the risk so it has to be defragmented
-
creates larger contiguous free space
-
it reduces the number of movements read/write head has to make to access the disk contents, so it increases computer performance
-
-
Disk content analysis/repair:
-
visualizes disk space usage, generates a graphical chart
-
checks for any errors, marks bad sectors
-
retrieves files from damaged disk
-
-
File compression:
-
compresses and decompresses the files
-
saves space in hard disk
-
improves computer performance by reducing the data that needs to be stored
-
-
Back-up software:
-
creates a copy of the content of the disk
-
can be automatic
-
backed up data might be encrypted
-
can provide synchronization between devices
-
data can be restored
-
Program Libraries
-
Library routine:
-
pre compiled code
-
can be linked to other programs
-
can perform complex tasks
-
Benefits of a library routine:
- more robust software as the code has been tested many times by the other programmers
- less code needs to be written so it saves time
- doesn't require a specialist
- simplifies the program
Drawbacks of a library routine:
- compatibility issues
- might be doing something malicious
- cannot be updated
- some libraries require large storage/CPU
- may not meet the needs, give unexpected results
-
Two types of program libraries:
-
static: library routines are embedded directly into the new program code, linked to the executable file in the library at the time of compilation
-
dynamic: not linked into the library routine until the actual runtime, code only loaded to main memory when required
-
Benefits:
-
requires less storage, executable file is smaller
-
changes to DLL code is done independently from the main program
-
the same DLL program can be made available to several applications at the same time saving space in the memory
-
-
Drawbacks:
-
executable code not self-contained
-
appropriate linking software must be available during the runtime
-
might give error if it is not present
-
malicious changes or unexpected changes might stop working the program as expected or install virus on the computer
-
-
-
Language Translators
-
Assembler:
-
translates assembly(low level) language to machine code
-
each instruction in the source code contains an operand and an opcode
-
the source code uses instructions from the user’s instruction set
-
machine dependent
-
-
Compiler:
-
translates high level language
-
creates an executable file
-
the compiler program and the source code file are made available but no data is needed. Translates the whole code in one go creating an executable file. If an error is detected, a separate error report is created
-
-
Interpreter:
-
translates high level language
-
the interpreter program, the source code file and the data to be used by the source code. It reads each code line by line and stops if an error is detected. Instructions are executed under the control of the interpreter
-
Compiler
Interpreter
-
Integrated Development System: software applications that combine all the features and tools needed by a software developed
Features of an IDE:
-
for coding
-
context-sensitive prompts: this feature displays hints or a choice of keywords and available identifiers that might be appropriate at the current insertion point of the program code
-
-
for initial error detection
-
dynamic syntax checks: when a line has been typed, some editors perform syntax check and alert the programmers if there is an error
-
type and parameter checking
-
-
for presentation
-
pretty printing: presentation of the program code typed into an editor, e.g color coding functions comments variables etc and automatic indentation
-
expanding and collapsing code blocks: helps with reading and identifying global variables or parts of the code
-
-
for debugging
-
single stepping: executing the code line by line
-
breakpoints: run the code to a set point to find the errors
-
report window: errors are displayed on a side panel
-
by: Elif Nur Cholak


