What Does Bus Mean?
A bus is a subsystem that is used to connect computer components and transfer data between them.
For example, an internal bus connects computer internals to the motherboard.
A “bus topology” or design can also be used in other ways to describe digital connections.
A bus may be parallel or serial.
Parallel buses transmit data across multiple wires. Serial buses transmit data in bit-serial format.
Computer bus types are as follows:
“bus speed” - in megahertz, or in megabytes per second.
100 MHz is - 6400 MB per second
speed achieved by modern processors include bus speeds of typically under 10,000 MB or 10 GB per second.
What Is an Addressing Mode?
The addressing mode - specify the operand of an instruction.
Operations require the following:
With immediate addressing mode, the actual data to be used as the operand is included in the instruction itself.
Let's say we want to store operand 1 into a register and then add operand 2.
�
2. Direct Addressing
the address of the operand is specified in the instruction.
The processor will retrieve the data directly from the address specified in the instruction.
In this figure, the example shows how the instruction tells the processor where to get the data from in memory.
The variable addr_of_2 is a pointer to the effective address of the operand.
�
3. Register Addressing
Register addressing mode indicates the operand data is stored in the register itself,
so the instruction contains the address of the register.
The data would be retrieved from the register. Here's how this would work:
�
�
.
five types of systems software,
They actually enable functional interaction between hardware, software and the user.
Systems software can be categorized under the following:
1. Operating System (OS)
The operating system is a type of system software kernel that sits between computer hardware and end user.
It is installed first on a computer to allow devices and applications to be identified and therefore functional.
System software is the first layer of software to be loaded into memory every time a computer is powered up.
2. Device Drivers
Driver software is a type of system software which brings computer devices and peripherals to life.
Drivers make it possible for all connected components and external add-ons to perform their intended tasks and as directed by the OS.
Without drivers, the OS would not assign any duties.
Examples of devices which require drivers:
3. Firmware
Firmware is the operational software embedded within a flash, ROM, or EPROM memory chip for the OS to identify it.
It directly manages and controls all activities of any single hardware.
Traditionally, firmware used to mean fixed software as denoted by the word firm.
It was installed on non-volatile chips and could be upgraded only by swapping them with new, preprogrammed chips.
This was done to differentiate them from high-level software, which could be updated without having to swap components.
4. Programming Language Translators
These are intermediate programs relied on by software programmers to translate high-level language source code to machine language code.
The former is a collection of programming languages that are easy for humans to comprehend and code (i.e., Java, C++, Python, PHP, BASIC).
The latter is a complex code only understood by the processor.
5. Utilities
Utilities are types of system software which sits between system and application software.
These are programs intended for diagnostic and maintenance tasks for the computer.
They come in handy to ensure the computer functions optimally. Their tasks vary from crucial data security to disk drive defragmentation.
Types of Operating Systems
Examples of Operating Systems
Popular OSs for computers are:
Popular network/server OSs are:
Memory management -
handles or manages primary memory and moves processes back and forth between main memory and disk during execution.
Memory management keeps track of each and every memory location, regardless of either it is allocated to some process or it is free.
It checks how much memory is to be allocated to processes.
It decides which process will get memory at what time.
It tracks whenever some memory gets freed or unallocated and correspondingly it updates the status.
S.N. | Memory Addresses & Description |
1 | Symbolic addresses The addresses used in a source code. The variable names, constants, and instruction labels are the basic elements of the symbolic address space. |
2 | Relative addresses At the time of compilation, a compiler converts symbolic addresses into relative addresses. |
3 | Physical addresses The loader generates these addresses at the time when a program is loaded into main memory. |
Static vs Dynamic Loading
The choice between Static or Dynamic Loading is to be made at the time of computer program being developed.
If you have to load your program statically, then at the time of compilation, the complete programs will be compiled and linked without leaving any external program or module dependency.
The linker combines the object program with other necessary object modules into an absolute program, which also includes logical addresses.
If you are writing a Dynamically loaded program, then your compiler will compile the program and for all the modules which you want to include dynamically, only references will be provided and rest of the work will be done at the time of execution.
At the time of loading, with static loading, the absolute program (and data) is loaded into memory in order for execution to start.
If you are using dynamic loading, dynamic routines of the library are stored on a disk in relocatable form and are loaded into memory only when they are needed by the program.
Static vs Dynamic Linking
when static linking is used,
the linker combines all other modules needed by a program into a single executable program to avoid any runtime dependency.
When dynamic linking is used,
it is not required to link the actual module or library with the program, rather a reference to the dynamic module is provided at the time of compilation and linking.
Dynamic Link Libraries (DLL) in Windows and Shared Objects in Unix are good examples of dynamic libraries.
Swapping
Swapping is a mechanism in which a process can be swapped temporarily out of main memory (or move) to secondary storage (disk)
make that memory available to other processes.
At some later time, the system swaps back the process from the secondary storage to main memory.
Though performance is usually affected by swapping process but it helps in running multiple and big processes in parallel and that's the reason Swapping is also known as a technique for memory compaction.
Memory Allocation
Main memory usually has two partitions −
S.N. | Memory Allocation & Description |
1 | Single-partition allocation In this type of allocation, relocation-register scheme is used to protect user processes from each other, and from changing operating-system code and data. Relocation register contains value of smallest physical address whereas limit register contains range of logical addresses. Each logical address must be less than the limit register. |
2 | Multiple-partition allocation In this type of allocation, main memory is divided into a number of fixed-sized partitions where each partition should contain only one process. When a partition is free, a process is selected from the input queue and is loaded into the free partition. When the process terminates, the partition becomes available for another process. |
S.N. | Fragmentation & Description |
1 | External fragmentation Total memory space is enough to satisfy a request or to reside a process in it, but it is not contiguous, so it cannot be used. |
2 | Internal fragmentation Memory block assigned to process is bigger. Some portion of memory is left unused, as it cannot be used by another process. |
Fragmentation
As processes are loaded and removed from memory,
the free memory space is broken into little pieces.
It happens after sometimes that processes cannot be allocated to memory blocks
considering their small size and memory blocks remains unused. This problem is known as Fragmentation.
Fragmentation is of two types −
The following diagram shows how fragmentation can cause waste of memory
and a compaction technique can be used to create more free memory out of fragmented memory
What Does Scheduling Mean?
Types of scheduling include:
Threats to Information Security
Software attacks, theft of intellectual property, identity theft, theft of equipment or
information, sabotage, and information extortion.
Threat can be anything that can take advantage of a vulnerability to breach security and
negatively alter, erase, harm object or objects of interest.
Software attacks means attack by Viruses, Worms, Trojan Horses etc. Many users believe that
malware, virus, worms, bots are all same things.
But they are not same,
only similarity is that they all are malicious software that behaves differently.