An operating system is
a software program that manages a computer’s hardware and enables easier access
for the user to access the computer’s hardware. An operating system has many
functions that ensure the system has good performance. The OS allocates
resources to different
processes that may be required to solve a problem, such as CPU time, memory
space, and I/O devices. The OS is responsible for the execution of
user and systems programs. Another function of OS is process management.
Process management allows users to open multiple applications simultaneously
and gives the illusion of multitasking. In actuality, that processor can only
handle one task at a time. Memory management keeps track of what
memory is being used and by what process, moving data in and out of memory and
allocating or deallocating memory space as needed (Silberschatz, Galvin, &
Gagne, 2014). Storage or file management manages the storage of
secondary storage such as files, folders, and directories. Finally, Protection
and Security. Protection and security ensure users can only view what they have
access to. If multiple users are on a network or device, the user must supply a
password and can only view what has been given for that user profile. The OS
runs scans and protects against threats like viruses, worms, and
denial-of-service attacks.
Process is a program in execution
that represents the basic unit of work to be implemented by the system. Most
programs have one process associated with it. There are four segments to
process – text, data, heap, and stack. The text section is the program
code. Stack contains temporary data. The data section contains global
variables, and heap is memory dynamically allocated during process run time
(Silberschatz, Galvin & Gage, 2014). As a process executes, it
changes state. A process may be in one of the following states:
New – The process is being created
Running – Instructions are being executed
Waiting – The process is waiting for an event to occur
Ready – The process is waiting to be assigned to a processor
Terminated – The process has finished execution
Although the names can vary by operating system, the state they represent is on
all systems. Only one process will be running at a time. All other processes
will be ready or waiting state.
The process control block
represents each process in the operating system and stores all the information.
When a process is created, the operating system creates a PCB that tracks the
program's process state, process number, program counter, registers, memory
limits, and list of open files.
A thread is a path of
execution with a process. A process can contain single threads or multiple
threads. A single thread is a process that can only perform one task at a time.
Multithreading allows multiple threads to run at the same time.
Each process has a segment of code known as a critical section. When a process executes the critical section, no other can execute its critical section. The critical- section problem is to design a protocol that the processes can use to cooperate. Every process can share common variables in the critical section to avoid unexpected or erroneous behavior.
Memory management is an
important activity of an operating system. The operating system keeps track of
which bytes of memory are used by which user program. It decides the order in
which processes are granted memory access, and for how long. The operating
system allocates memory to a process when the process requests it and
deallocates the memory when the process has terminated or is performing an I/O
operation. Memory allocation can be done by providing empty memory spaces to
incoming processes as required.
Physical address is the
actual address where data is stored. This is a location in the memory
unit, computer by memory management unit, that will not change. The
Virtual address does not physically exist. The address is created by the
CPU as a way to map to the physical address using the page table. The
virtual address can change.
The file systems management
of an operating system provides a uniform logical view of stored information.
Files are stored on a nonvolatile disk and contain executable programs, numeric
or text data, photos, music, or system files. A file has many attributes, such
as a name, identifier, file type (exe, doc, etc.), location, type, size,
protection and time, date, and user identification (Silberschatz et al., 2014).
The system is responsible for creating, writing, reading, modifying, deleting,
displaying, and moving files for the user.
The three different directory
structures are single-level directories, two-level directories, and
tree-structured directories. Single-level directories are contained in the same
directory and the easiest to support and understand. However, all files must
have unique names, which can cause confusion with different users.
Two-level directories have a
single master directory containing individual directories for each user and a
second level with separate directories for each user. The two-level directory user
files with the same name. Tree-structured directories have a root directory,
and every file in the system has a unique path name. The directory allows users
to share files.
A few input/output devices on
the hardware level include keyboards, microphones, printers, and monitors.
Device drivers provide a software interface to these hardware devices. The work
of moving data between devices and main memory is performed by the CPU as
programmed I/O or is offloaded to a DMA controller.
The goals and principles of
domain-based protection in a modern computer system are to provide a secure
environment for the execution of processes. Domain ensures a process can only
access resources it is authorized to use. Language-based protection is compiled
in a programming language to strengthen the security of applications when
automatic hardware is unavailable. The access matrix protects specific
resources that a process can access. It is a table specifying each domain's
access rights to each object. The rows of the matrix represent domains, and the
columns represent objects. The entries in the matrix specify the access rights
of each domain to each object. The access matrix determines what objects a
process has access to.
Security is paramount to
ensure unauthorized access does not occur on a computer. Without proper
security measures, intruders can gain access to private data such as credit
card numbers, modify data, take over your website, or install viruses on the
unit. Attacks can damage anyone, especially large companies or government
agencies, with customers' personal and financial data.
Encryption and network keys
can be used to protect a network and systems. Virtual private networks are
widely used and operate by encrypting two IPSec endpoints to make a public
network private. To prevent a system from unauthorized access, a user must
enter the correct usernames and passwords. Once the proper credentials are
entered, the user can access the desktop and applications within their profile.
Since usernames and passwords can be compromised, many companies use two-factor
authentication. Two-factor authentication requires a pin or series of digits
sent through a preset device or app.
This class has introduced
me to the fundamental concepts and theories of operating systems and design. I have learned the principles of processes, multithreading,
and memory management to name a few. The
concepts I have learned will help in future classes as I finish my degree in Information
Technology.
References
Silberschatz, A., Galvin, P. B., &
Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from
https://redshelf.com/
Comments
Post a Comment