Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

MICROLINK INFORMATION TECHNOLOGY COLLEGE

Department of Computer Science

Microprocessor and Assembly


Language (COSC-M2031)
Assignment

Prapared By:

Neima Abdu ID No Micro/14539/20 Section: 1

Submitted to: Instructor Maereg Teferi

Addis Ababa, Ethiopia

December 20, 2022

Page | 0
1. What is Multiprogramming?

 Multiprogramming is rudimentary form of parallel processing in which several


programs run at the same time on a uniprocessor system
 Multiprogramming is known as keeping multiple programs in the main memory at the
same time ready for execution.

Single programming computer system


 A single programming computer system is one that can only run one program at a
time.
 A single program operating system allows only one program to run at a time.

2. What is Multiprocessor?
 Multiprocessing is the coordinated processing of programs by more than one computer
processor. Multiprocessing is a general term that can mean the dynamic assignment of a
program to one of two or more computers working in tandem or can involve multiple
computers working on the same program at the same time (in parallel)
 Contains two or more processors so multiple applications can be executed
simultaneously.

Single processor

 A single processor system contains only one processor. So only one process can be
executed at a time and then the process is selected from the ready queue. Even if there
are multiple applications need to be executed, since the system contains a single
processor and only one process can be executed at a time. Eg .Most Modern PCs.
3. What is virtualization?
 Virtualization uses software to create an abstraction layer over computer
hardware that allows the hardware elements of a single computer—
processors, memory, storage and more—to be divided into multiple virtual
computers, commonly called virtual machines (VMs).

Page | 1
 Virtualization is the process of running a virtual instance of a computer
system in a layer abstracted from the actual hardware. Most commonly, it
refers to running multiple operating systems on a computer system
simultaneously

4. Types of virtualization

1. Application Virtualization
2. Data Virtualization
3. Desktop Virtualization
4. Network Virtualization
5. Server Virtualization
6. Storage Virtualization

Application Virtualization - Application virtualization hosts individual applications in


which a virtual environment is entirely separate from the underlying operating system.

Data Virtualization - Data virtualization is a data management approach. It retrieves,


segregates, manipulates, and delivers data without any data specifications.

Desktop Virtualization - It stores any desktop environment virtually on a centralized


remote server.

Network Virtualization - A network virtualization software creates a tunnel through the


existing network. This way, the admins can run VMs without the need for individual
network reconfiguration.

Server Virtualization - known as hardware-based virtualization, divides a physical server


into multiple virtual servers that run guest operating systems independently.

Storage Virtualization - The storage virtualization software aggregates and manages


storage in various storage arrays and serves it to applications whenever needed.

Page | 2
5. Why need of virtualization?

Virtualization allows an organization to create multiple virtual machines—each


with their own operating system (OS) and applications—on a single physical
machine. A virtual machine can't interact directly with a physical computer,
however.

6. Advantages and disadvantage of virtualization


6.1 Advantages of Virtualization:-
 Utilization of Hardware Efficiently - Virtualization allows users and cloud service
providers to make better use of hardware. The user's need for a physical hardware
system is reduced, resulting in lower costs. From the perspective of the service
provider, hardware virtualization will be used to vitalize the hardware, reducing the
hardware requirements from the vendor side that are provided to the user.
 Disaster Recovery is efficient and easy - Data Recovery, Backup, and Duplication
become much easier with virtualization. In the traditional method, if the server
system is damaged due to a disaster, the likelihood of data recovery is very low.
 Virtualization saves Energy
 Quick and Easy Set up

6.2 Disadvantages of Virtualization:-


 Data can be at Risk - Working on virtual instances on shared resources means
that our data is hosted on a third-party resource, putting it at risk. Any hacker can
attack our data or attempt unauthorized access
 Understanding of the New Infrastructure - As the organization transitioned
from servers to the cloud, they needed skilled workers who could easily work with
the cloud.
 Needs High Initial Investment - While it is true that virtualization will reduce
company costs, it is also true that cloud computing requires a significant initial
investment

Page | 3
7. Brief discussion about task scheduling algorithm in computer system

In a multitasking system, there should be some mechanism in place to share the CPU
among the different tasks and which process/task is to be executed at a given point of time.
Determining which task/process is to be executed at a given point in time is known as
task/process scheduling.

 Scheduling refers to a set of policies and mechanisms to control the order of work to be
performed by a computer system. Of all the resources of a computer system that are
scheduled before use, the CPU/processor is the far most important.

 The selection of scheduling criteria/algorithm should consider:-


o CPU Utilization
o Throughput
o Turnaround Time
o Waiting Time
o Response Time

Task scheduling algorithms advantages


 Manage cloud computing performance and QoS (Quality of Service).
 Manage the memory and CPU.
 The good scheduling algorithms maximizing resources utilization while minimizing
the total task execution time.
 Improving fairness for all tasks.
 Increasing the number of successfully completed tasks.
 Scheduling tasks on a real-time system.
 Achieving a high system throughput.
 Improving load balance.

A Process Scheduler schedules different processes to be assigned to the CPU based on


particular scheduling algorithms. There are some popular processes scheduling algorithms
which are listed below:-

Page | 4
 First-Come, First-Served (FCFS) Scheduling
 Shortest-Job-First (SJF) Scheduling
 Priority Scheduling
 Shortest Remaining Time
 Round Robin(RR) Scheduling

These algorithms are either non-preemptive or preemptive. Non-preemptive algorithms


are designed so that once a process enters the running state, it cannot be preempted until it
completes its allotted time, whereas the preemptive scheduling is based on priority where
a scheduler may preempt a low priority running process anytime when a high priority
process enters into a ready state.

Page | 5

You might also like