1 of 30

2 of 30

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.

3 of 30

Computer bus types are as follows:

  • System Bus: A parallel bus that simultaneously transfers data in 8-, 16-, or 32-bit channels and is the primary pathway between the CPU and memory.
  • Internal Bus: Connects a local device, like internal CPU memory.
  • External Bus: Connects peripheral devices to the motherboard, such as scanners or disk drives.
  • Expansion Bus: Allows expansion boards to access the CPU and RAM.
  • Frontside Bus: Main computer bus that determines data transfer rate speed and is the primary data transfer path between the CPU, RAM and other motherboard devices.
  • Backside Bus: Transfers secondary cache (L2 cache) data at faster speeds, allowing more efficient CPU operations.

4 of 30

“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.

5 of 30

6 of 30

7 of 30

8 of 30

What Is an Addressing Mode?

The addressing mode - specify the operand of an instruction.

Operations require the following:

  1. The operator or opcode which determines what will be done
  2. The operands which define the data to be used in the operation

9 of 30

  1. Immediate

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:

                                         

.

10 of 30

five types of systems software,

They actually enable functional interaction between hardware, software and the user.

Systems software can be categorized under the following:

  • Operating system: Harnesses communication between hardware, system programs, and other applications.
  • Device driver: Enables device communication with the OS and other programs.
  • Firmware: Enables device control and identification.
  • Translator: Translates high-level languages to low-level machine codes.
  • Utility: Ensures optimum functionality of devices and applications.

11 of 30

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.

12 of 30

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.

13 of 30

Examples of devices which require drivers:

  • Mouse
  • Keyboard
  • Sound Card
  • Display card
  • Network card
  • Printer

14 of 30

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.

15 of 30

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.

16 of 30

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.

17 of 30

Types of Operating Systems

  • Real-Time OS: Is installed in special purpose embedded systems like robots, cars, and modems.
  • Single-user and single-task OS: Are installed on single-user devices like phones.
  • Single-user and multitask OS: Are installed on contemporary personal computers.
  • Multi-user OS: Is installed in network environments where many users have to share resources. Server OSs are examples of multi-user operating systems.
  • Network OS: Is used to share resources such as files, printers in a network setup.
  • Internet/Web OS: Is designed to run on the browser that is online.
  • Mobile OS: Is designed to run on mobile phones, tablets and other mobile devices.

18 of 30

Examples of Operating Systems

Popular OSs for computers are:

  • Windows 10
  • Mac OS X
  • Ubuntu

Popular network/server OSs are:

  • Ubuntu Server
  • Windows Server
  • Red Hat Enterprise

19 of 30

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.

20 of 30

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.

21 of 30

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.

22 of 30

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.

23 of 30

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.

24 of 30

Memory Allocation

Main memory usually has two partitions −

  • Low Memory − Operating system resides in this memory.
  • High Memory − User processes are held in high memory.

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.

25 of 30

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 −

26 of 30

27 of 30

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

28 of 30

What Does Scheduling Mean?

    • Scheduling is a method that is used to distribute valuable computing resources,
    • usually processor time,
    • bandwidth and memory,
    • to the various processes,
    • threads,
    • data flows and applications that need them.

    • Scheduling is done to balance the load on the system and ensure equal distribution of resources

    • give some prioritization according to set rules.

    • computer system is able to serve all requests and achieve a certain quality of service.

    • Scheduling is also known as process scheduling.

29 of 30

Types of scheduling include:

  • First come, first served — The most straightforward approach and may be referred to as

  • first in, first out; it simply does what the name suggests.

  • Round robin — Also known as time slicing, since each task is given a certain amount of time to use resources. This is still on a first-come-first-served basis.

  • Shortest remaining time first — The task which needs the least amount of time to finish is given priority.

  • Priority — Tasks are assigned priorities and are served depending on that priority. This can lead to the starvation of the least important tasks as they are always preempted by more important ones.

30 of 30

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.