OS Theory Concept Map
OS
Theory Concept Map
Section 1:
-Categorize, describe,
and give examples of the major functions of operating systems.
One
of the first and most significant functions of operating systems is to maintain
supervision of the execution of user programs to prevent errors and improper
use of the computer. The operating system acts as a crucial intermediary
between the hardware and software, ensuring that user programs are executed in
a controlled and secure manner. The kernel, as the core component, plays a
central role in this function. It provides essential services and manages
system resources, allocating them to processes and scheduling their execution. By
overseeing memory management, the kernel ensures that programs do not interfere
with each other's memory space, avoiding potential crashes or data corruption.
Additionally, it manages input/output (I/O) operations, which are essential for
interacting with devices like printers, scanners, and disk drives. Device
management, as another component, acts as a bridge between the kernel and
hardware, enabling seamless communication and coordination with these devices.
Furthermore,
the process management component is responsible for overseeing the production,
execution, and termination of processes. By implementing time-sharing
techniques, it allocates CPU time to various processes, allowing the system to
serve multiple tasks simultaneously, much like a waitress serving multiple
tables. This component also handles memory management for processes, ensuring
efficient use of available resources. The file system is another crucial
component that interacts with the kernel to organize and manage data in the
form of files and directories. It enables the creation, deletion, reading, and
writing of files, ensuring that data is stored and retrieved reliably and
efficiently.
A
user interface is the means through which users interact with the operating
system. By interacting with the process management and file system components,
the user interface executes user commands, launches applications, and manages
files. This user-friendly interface enhances user convenience and efficiency. Lastly,
the security and protection component ensure the overall safety and integrity
of the system. It enforces access control policies within the kernel, restricts
access to resources through permissions, and allows users to configure security
preferences in the user interface. This component is crucial for safeguarding
sensitive data and preventing unauthorized access, ensuring the overall
security of the computer system.
In
summary, operating systems have several hierarchical components, each with their
major functions. They work in tandem to assist users in executing tasks
conveniently and efficiently while maintaining proper control, security, and
protection to prevent errors and misuse of the computer system.
Week 1 Concept Map:
Section 2:
Describe process, process
state, and process control block.
A
process refers to an instance of a running program. It represents the execution
of a specific program and includes all the necessary resources and information
to execute it. The process state refers to a process's current condition or
status at any given moment. It represents the stage of execution a process is
in and can include states like new, ready, running, waiting, terminated, etc.,
as mentioned earlier. The process control block is a data structure the
operating system uses to store and manage information about a process. It
contains essential details such as process ID, process state, program counter,
register values, memory allocation, and other relevant information required for
process management.
- Compare single- and
multi-threaded motivations and models.
In
a single-threaded model, an application or process has only one execution
thread. It means that the process executes tasks one after the other. If a task
gets blocked or takes a long time to complete, it can cause the entire
application to become unresponsive. In a multi-threaded model, an application
or process can have multiple execution threads running concurrently within the
same process. Each thread represents an independent sequence of instructions
and can perform different tasks simultaneously. This allows for parallel
execution of tasks, efficient utilization of system resources, and improved
responsiveness.
- Describe the
critical-section problem and explain a software solution that resolves this
problem.
The
critical-section problem arises in multi-threaded programs when multiple
threads or processes need to access a shared resource or critical section of code
that should not be executed simultaneously by more than one thread/process. The
goal is to ensure that concurrent access does not lead to unexpected or
undesirable behavior. One common software solution to the critical-section
problem is mutual exclusion locks (mutex locks). A mutex is a synchronization
primitive that allows threads or processes to take turns accessing a shared
resource. When a thread wants to enter a critical section, it attempts to
acquire the mutex lock. If the lock is already held by another thread, the
requesting thread waits until the lock becomes available. Once inside the
critical section, the thread performs its task and then releases the lock,
allowing other threads to acquire it. This ensures that only one thread can
execute the critical section at a time, preventing concurrent conflicts and
preserving data integrity.
Week 2 Concept Map:
Section 3:
-Outline the objectives
and functions of memory management in operating systems.
The
primary objective of memory management in operating systems is to efficiently
allocate and manage the computer's physical memory resources to meet the
demands of running processes and optimize overall system performance. It
involves coordinating and controlling the use of memory space by different
programs, ensuring their proper execution and preventing conflicts and errors. A
memory management system allocates and de-allocates memory before and after
process execution, keeps track of used memory space by processes, minimizes
fragmentation issues, ensures proper utilization of the main memory, and
maintains data integrity while executing processes. These functions make it
crucial in every operating system as it ensures operations between main memory
and disk are managed during process execution.
Memory
management in operating systems is like the traffic controller for a computer's
memory. Its main job is to make sure that every program and task running on the
computer gets the right amount of memory it needs to work smoothly. It decides
which programs get how much memory and keeps track of where each program's data
is stored in the computer's memory. Memory management also protects programs
from accessing each other's memory and keeps things organized so the computer
can quickly find and retrieve information. It's like a helpful conductor that
ensures all the programs on a computer can work together efficiently and safely
by assigning, organizing, and protecting their memory space.
- Compare
and contrast the physical address space with the virtual address space as they
relate to different memory mapping techniques in operating systems.
In comparing physical
address space with virtual address space, both techniques aim to provide
efficient memory management, but they differ in how they organize and map
virtual addresses to physical addresses. Paging provides a fine-grained
division of memory into fixed-sized pages, while segmentation offers a more
flexible division based on logical segments. The choice of technique depends on
the requirements of the program and the specific memory management strategy
used by the operating system. Ultimately, they both serve the purpose of
allowing programs to access and manage memory efficiently without having to
worry about the intricacies of the underlying physical memory structure.
Week 3 Concept Map:
Section 4:
-Outline the objectives
and functions of file systems management and the supported operations,
including their reliability and performance.
The
file management system is a basic but important part of an operating system.
The primary objectives and functions of file systems management are to organize
and control data stored on mass storage devices such as thumb drives, hard
drives, or optical disks efficiently. This includes providing a logical
structure for files, ensuring data integrity and reliability, supporting
various operations on files, and optimizing performance. It also allows the
users to create, edit, and delete files within the system. The file management
system manages user permissions of read, write and execute. File systems
provide mechanisms for assigning names to files and organizing them into
directories or folders. File systems provide mechanisms for backup and recovery
to protect against data loss or system failures (Gaurav, 2022).
When
it comes to reliability and performance, file systems employ techniques like
redundancy, error detection, and error correction to ensure data integrity and
minimize the risk of data loss or corruption. File systems also optimize
performance through efficient data structures, caching mechanisms, and
strategies for disk allocation and data retrieval.
-Contrast different
directory structures and create unique diagrams to illustrate an example of
each directory structure.
There
are four main directory structures in an operating system. Single-level,
Two-level, Tree-structured, and Acyclic graph. A single-level directory is the
simplest of the four. All the files within are a part of the same directory,
which makes it easy to understand. It gets challenging when there are multiple users
using the same device and having to name the file “copy” of version (1) or (2)
etc. To fix this issue, Two-level structures are used. With two-level multiple
users can have their own profile, and each profile can have a document named
the same. This makes it easier to separate each user's files, but the downside
is users cannot share their files with each other, and they can't create
subdirectories. Next on our list is the tree structure. Unlike two-level
structures, tree structures allow the user to create subdirectories, and it's
easier to sort through important and unimportant files. Some disadvantages are
similar to the other two, as users aren’t allowed access to other users'
directories, which prevents file sharing. The last one fixes all of these
issues, where an acyclic graph enables users to share documents with each
other. A disadvantage of acyclic graphs is that when a file is updated or not
used, it is changed for every user in the system.
-Describe different types
of input/output devices, distinguishing between the hardware and software
layers and summarizing the integration across I/O and memory components.
Within
the hardware layer, there are input devices which are physical devices that
enable data or commands to enter the computer system, such as keyboards, mice,
scanners, and microphones. There are also output devices such as monitors,
printers, speakers, and projectors that display or transmit processed data or
information to the user or other systems. There are also storage devices such
as flash drives, Solid State Disk drives, or Hard Disk Drives used for mass
storage.
Within
the software layer, there are the device drivers enabling the system to control
and utilize the devices effectively. The input-output management for managing
I/O operations, including buffering, queuing, scheduling, and error handling,
and last but least, file systems that provide a logical interface to organize,
access, and manipulate files stored on mass storage devices.
For
integration across I/O and memory components, I/O devices interact with memory
through I/O controllers and channels. The operating system manages the communication
between I/O devices and memory, facilitating data transfer and synchronization,
and caching mechanisms can be utilized to optimize I/O performance by storing
frequently accessed data in memory caches.
Week 4 Concept Map:
Section 5:
- Outline
the goals and principles of domain- and language-based protection in a modern
computer system and describe how an access matrix is used to protect specific
resources a process can access.
In
a modern computer system, domain-based protection aims to isolate processes and
resources, prevent unauthorized access, and maintain system integrity. The
goals of domain-based protection include isolating processes and resources to
ensure independent operation and minimize interference. Unauthorized access is
prevented through access controls that restrict access based on permissions and
privileges. By maintaining system integrity, domain-based protection safeguards
against unauthorized modifications and ensures the system operates securely.
The principles guiding domain-based protection include the principle of least
privilege, which grants processes only the necessary privileges, separation of
privilege to prevent single points of failure, economy of mechanism to keep
security mechanisms simple and robust, and complete mediation to verify access
rights for every access attempt.
An
access matrix is a structured representation used in domain-based protection to
control the access of processes to specific resources. It consists of rows
representing subjects (processes) and columns representing objects (resources).
Each cell in the matrix stores the access permissions that a subject has to an
object. For example, read, write, or no access. By defining access rights in
the access matrix, the system can enforce proper authorization and prevent
unauthorized access. Before granting access to a resource, the system checks the
corresponding cell in the access matrix to ensure the requesting process has
the necessary permissions. The matrix can be modified dynamically to
accommodate changes in process-resource relationships or access permissions,
providing a flexible and scalable approach to access control.
Language-based
protection focuses on protecting programs and code execution in a computer
system. The goals of language-based protection include preventing code
vulnerabilities, ensuring secure code execution, and enforcing code integrity.
Language-based protection principles include memory safety, which aims to
prevent buffer overflows and memory corruption, type safety to prevent
type-related vulnerabilities, and control flow integrity to protect against
control hijacking attacks. Techniques such as static analysis, code signing,
and sandboxing are commonly used in language-based protection. Static analysis
analyzes code for vulnerabilities before execution, code signing verifies the
authenticity and integrity of code, and sandboxing isolates code execution
environments to limit potential damage.
- Describe
how security is used to protect programs, systems, and networks from threats.
Security
measures are used to protect programs, systems, and networks from threats. For
programs, secure development practices, such as secure coding standards and
vulnerability assessments, help prevent and identify vulnerabilities.
Penetration testing simulates real-world attacks to identify weaknesses.
Systems are protected through secure configuration, patch management, intrusion
detection systems, and firewalls. Secure network practices include network
segmentation, encryption, network monitoring, and virtual private networks
(VPNs). These measures collectively aim to protect against threats such as
malware, network attacks, and social engineering, ensuring the confidentiality,
integrity, and availability of resources.
Week 5 Concept Map:
Contemporary
operating systems (OS) are references to the main OS people use daily:
Microsoft Windows, Apple Mac, and mobile OS, including Apple IOS and Googles
Android. Each operating system enables computers to work better and is easy to
use. They can run multiple things simultaneously, manage memory, and organize data.
They also allow similar OSs to talk to each other and have security features to
protect them from viruses. Operating systems are designed to allow different
parts to work together. They can work with many devices and software to suit
different users. Each of the four major operating systems has its own
structures but operates similarly, except for the mobile versions, which run
exclusively on small devices. Hierarchical file systems organize data for easy
storage and retrieval, while device drivers facilitate seamless communication
with hardware, and graphical user interfaces enhance usability (Indeed, 2023).
Operating
systems enable processes to share and exchange information through various
inter-process communication (IPC) mechanisms. These mechanisms allow different
processes to run on the same system or across a network to communicate with
each other, share data, and collaborate seamlessly. One such mechanism is
shared memory, where processes can rapidly access a common memory region to
exchange data. Additionally, message passing enables processes to exchange
messages containing data or commands through message queues or mailboxes. Pipes
and FIFOs facilitate one-way data flow between processes, ensuring sequential
data exchange. For communication between processes on different machines,
sockets provide a network-based IPC mechanism using standard network protocols.
Moreover,
remote procedure calls (RPC) allow a process to invoke functions in another
process, even on a remote machine. Operating systems efficiently manage these
IPC mechanisms, handling data synchronization, access permissions, and buffer
management to ensure secure and reliable communication. By providing these
channels, operating systems enable processes to collaborate effectively, share
resources, and perform complex tasks requiring coordination and information
exchange (Geeksforgeeks, 2023).
In
modern computer systems, main and virtual memory are crucial components that
address memory management. Main memory, also known as RAM, is a fast and
direct-access storage location that temporarily stores CPU data and
instructions. While it provides quick access to data, the amount of physical
RAM available is limited. The average RAM for computers is anywhere from 8GB to
16GB and 8GB for mobile devices (Witman, 2022). If the demand for memory
exceeds the available space, memory management issues such as memory overload
and fragmentation can arise.
Virtual
memory is a memory management technique that extends the available memory
beyond the physical RAM by using a portion of the computer's storage, such as
the hard disk or SSD, as an extension of the main memory. By doing so, virtual
memory allows programs to use a larger address space than what is physically
available in RAM, thus avoiding memory overload. It also facilitates memory
swapping, where less frequently used process parts are temporarily moved to
disk storage, freeing up RAM for other processes (Rouse, 2017).
Additionally,
virtual memory provides memory protection by assigning each process its own
virtual address space, preventing unauthorized access to another process's
memory. It also ensures transparent memory access, where processes interact
with virtual memory addresses without knowledge of whether the data resides in
RAM or on the disk. The operating system manages the mapping between virtual
and physical memory addresses, ensuring seamless access and efficient memory
utilization. Main and virtual memory work together to optimize memory
management in computer systems. While main memory provides fast access to
actively running processes, virtual memory extends the available memory space,
enables memory swapping, offers memory protection, and ensures transparent
memory access, thus improving system performance and resolving memory-related
issues.
In
a modern computer system, files, mass storage, and I/O (Input/Output) are
essential for data management. The file system enables users and applications
to quickly access, create, modify, and delete files. Each file possesses
attributes such as name, size, creation date, and permissions, ensuring data
security and controlled access. On the other hand, mass storage refers to extra
data storage outside of a computer's memory (RAM). It encompasses hard disk
drives (HDDs) and solid-state drives (SSDs). Mass storage retains data even
after the system is powered off, and the operating system interacts with these
devices through device drivers, enabling seamless communication between the OS
and storage hardware.
Input/Output
operations involve data transfer between the computer system and its external
environment. This encompasses user input through a mouse or keyboard and output
to peripheral devices like printers and displays. Modern operating systems
abstract the complexities of hardware details, providing a unified interface
for I/O operations. The OS processes user input and delivers it to applications
while managing communication between applications and peripheral devices
through device drivers (Studytonight, n.d.). Overall, these components are integral
to the functionality of modern computer systems. The file system organizes and
manages data; mass storage ensures data persistence, and I/O operations direct
user interactions with the computer. The operating system efficiently handles
these aspects, ensuring seamless and reliable data management, persistence, and
user interactions.
Access
control mechanisms are essential for controlling the access of programs or
users to the resources defined by a computer system. These mechanisms ensure
only authorized users can interact with specific resources and perform
permitted actions. The first line of defense is authentication, where users
must provide credentials, such as usernames and passwords, to prove their
identity. Once authenticated, authorization comes into play, determining the
specific permissions granted to each user based on their roles or privileges.
Access Control Lists (ACLs) provide fine-grained control by associating
resource-specific permissions with individual users or groups, allowing administrators
to define access levels precisely.
Role-Based
Access Control (RBAC) is another approach, organizing users into roles based on
their job functions and granting permissions at the role level rather than
individually. An example is that the military sometimes issues out SIPR tokens
which give the (specific) user access to secret or secure information that not
everybody can access. Mandatory Access Control (MAC) enforces system-wide
policies for access, enhancing security but limiting flexibility. Discretionary
Access Control (DAC) allows resource owners to determine who has access to
their resources and at what level. A real-life example of DAC is obtaining
access to a social media group. If a user is given admin control, they can
change or delete items, but if they are only given view or read access, they
cannot add or delete items. These mechanisms work collectively to ensure system
resources' confidentiality, integrity, and availability.
The
knowledge gained from learning about the concepts and theory of operating
systems will be a benefit as future IT classes are taken by having a baseline
understanding of OS when learning about more difficult computer technology. It
will also be a benefit when pursuing a career in Cyber and Data Security as
knowledge of access control mechanisms, authentication, and encryption will
give the ability to implement robust security measures, protect against
unauthorized access, and identify potential vulnerabilities in the system.
Operating systems are the baseline of anything IT, so anyone taking other
college courses or jobs with any computer use can understand concepts easier.
References
Geeksforgeeks. (2023, March 27). Inter process communication (IPC).
GeeksforGeeks. https://www.geeksforgeeks.org/inter-process-communication-ipc/
Geeksforgeeks. (2021, March 9). Protection in OS : Domain of protection, association,
authentication. GeeksforGeeks. https://www.geeksforgeeks.org/protection-in-os-domain-of-protection-association-authentication/
Indeed. (2023, April 21). Types of Operating Systems (With OS Functions and Examples).
indeed.com. https://www.indeed.com/career-advice/career-development/types-of-operating-systems
Rouse, M. (2017, January 23). Virtual memory.
Silberschatz, A., Galvin, P. B., &
Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://redshelf.com/
Studytonight. (n.d.). Introduction
to operating systems. Studytonight - Best place to Learn Coding Online. https://www.studytonight.com/operating-system/introduction-operating-systems
Witman, E. (2022, May 5). How much RAM do you need? How to tell and when you should
upgrade your computer storage. Business Insider. https://www.businessinsider.com/guides/tech/how-much-ram-do-i-need#:~:text=to%20switch%20tasks.-,How%20much%20RAM%20do%20you%20need%3F,memory%20sticks%22%20in%20your%20computer
Comments
Post a Comment