Software Flashcards
What is the User Interface, what types are there and what are the main principles?
The User Interface is the software layer which allows the user to interact directly with the operating system.
There are two types of user interface:
1) text-based Command Line Interface (CLI) - Linux
2) icon-based Graphical User Interface (GUI) - Windows
The user interface allows the user to:
load and run programs and controls the interaction between programs and the user.
It also allows the user to modify system settings, control system functions and request information.
What is the File Management System?
The File Management System is responsible for organising and managing the storage of data on permanent media.
What is File Locking?
If one process tries to read information from a file at the same time as another process is modifying it this could cause inconsistencies in the data.
To avoid this the file system doesn’t allow access to a file to a program while it is already in use, until it is free.
What is Record Locking?
When you split the file up into sections. Once a program has finished using a section it is unlocked and available for use by other programs.
This type of access control is known as record locking
What is the Logical Structure?
Every storage device has a principal directory, known as the root directory.
All other files and directories are stored within the root directory.
Each file and folder must have a name which is unique at that level
Purpose of the Input/Output layer?
Controls all physical communication with external devices. Processes in the I/O layer are usually activated by means of interrupts.
The interrupting device carries out the transfer of the data into memory by itself. This is known as Direct Memory Access (DMA).
What are Device Drivers?
BONUS: Difference between Device Driven and Interupt Service Routine.
A device driver (or device handler) is a program which controls a particular type of device that is attached to a computer.
Device drivers are not held in ROM like the BIOS, but are loaded into RAM from disk every time the computer starts up. Once a device driver has been loaded, the Kernel can call upon device driver processes to deal with any interrupt from the device, and the I/O system can use device driver processes to control it.
Explain I/O Device Management.
How does it affect a printing job?
Where more than one program or process wants to use a peripheral device such as a printer, the Input / Output system is responsible for controlling and sharing access to the device.
Printer can only print one document at a time. The I/O system holds print jobs in a print queue, the queued document are held in a special file known as a spool file and I/O system process which controls printing is called a print spooler.
What does the Memory Management layer do?
It is responsible for sharing the physical memory of the computer between processes and handling programs which require more memory than physically available. This layer is also responsible for ensuring that the memory allocated to any program is protected against access by other programs.
Virtual Memory
When a program needs more memory than is physically present, the memory management layer of the operating system is invoked. The operating system must allocate additional memory to the program before allowing it to proceed.
With virtual memory, what the computer can do is look at RAM for areas that have not been used recently and copy them onto the hard disk. This frees up space in RAM to load the new application.
The operating system has to constantly swap information back and forth between RAM and the hard disk. This is called thrashing, and it can make your computer feel incredibly slow.
The area of the hard disk that stores the RAM image is called a page file.
Segmentation
An alternative approach to virtual memory is the use of segmentation. The biggest disadvantage of paging is that all the pages are the same size. If the page size is large this can lead to a waste of (physical) memory, as small process may not use a complete page. However, if page sizes are small, then we will need a large number of pages which may need to be swapped in and out frequently.
Segmentation allows memory to be divided up into variable sized blocks. The amount of memory required by a process is defined by the programmer when it is written and this is the size of the segment which will be allocated to the process by the MMU when it runs. Details of the segments allocated to various processes are stored in a segment table.
However, there is still a possibility that there is insufficient memory available to load a segment. This can be overcome by a combination of segmentation and paging, whereby each variable-length segment is composed of a number of fixed-length pages and has its own page table.
Kernel
Acts as a regulator for the whole system, controlling the allocation of time slices to users or processes.
The kernel is responsible for multi-tasking, process control, exception handling (or error handling) and interrupt processing.
Process Scheduling System
The prime aim of the process scheduling system is to keep the CPU busy all the time and to deliver minimum response time for all programs.
The user or the system assign a priority to each process. The overall amount of time allocated to a process, the higher the priority, the faster the process will execute.
The Kernel groups processes into one of three states:
Running: the process is currently executing on the processor.
Ready: the process is ready to be run on the processor.
Blocked: the process is waiting for a specific event to occur
Inter-Process Communication (IPC)
Inter-Process Communication (IPC) is a set of techniques for the exchange of data between processes. Applications that can use IPC are generally classed as clients or servers.
Utility programs
Utility programs are stand-alone tools used to implement or augment OS control and management functions. Sometimes they are bundled with the operating system, but they can also be obtained from third-party vendors.
Common utility programs include disk defragmenters, file compression programs and antivirus software.
It is used to support the computer, used to carry out maintenance tasks