Week 1 Interactive Assignment 2

Java, one of the most ubiquitous programming software languages available globally, is an Object-Oriented Program (OOP) created by the software company Oracle. It features a Command Line Interface (CLI) reminiscent of C, C++, and Python. They are used by businesses worldwide. Java is often used to automate processes, especially sequences that could be time and labor-intensive.

My first foray into the world of Java was for the class Operating Systems Theory & Design (CPT307) - the project titled Hello My Name is____. After reading the class text and tutorials, I downloaded Java and a Java Development Kit (JDK) to run Java. I also downloaded an Integrated Development Environment (IDE), which allows a developer to compile written code. I initially downloaded NetBeans and tried using it with Java.

I had some difficulty rendering my code, so I decided to move on from that program and downloaded Visual Studio Code. After using that program, I glanced at what student expectations through to the last project then made a practice decision to use BlueJ. I found a YouTube video to guide me while writing my code. it is titled: Hello World and User Input with the  BlueJ IDE.

I found BlueJ very user-friendly and able to produce the desired results of the Interactive Assignment. Here is a screenshot of my results. As of this posting, I would recommend using BlueJ over either of the two other IDEs that I tried before this one.



 "Hello World!" for the NetBeans IDE (The Java™ Tutorials > Getting Started > The "Hello World!" Application) (oracle.com)

 (2063) Hello World and User Input with the BlueJ IDE - YouTube

Lesson: The "Hello World!" Application (The Java™ Tutorials > Getting Started) (oracle.com)


Objective of Operating Sytems

 

OS Concept Map Final Project

Anthony Dulin

CPT304: Operating Systems Theory and Design

Instructor: Nelson Stewart

3/02/2022



Introduction

Today's world of advanced Operating Systems (OS) like Microsoft's Windows 10 and 11, along with Apple's macOS and Linux's MX Linux, have become mainstays in business, classrooms, and the home. They are the divers of industrial machinery and the keepers of applications that maintain our special memories and meaningful projects. Teams of Computer Scientists have meticulously written the inner workings of these ubiquitous programs. Protocol coupled with technology has advanced these programs beyond the expectations of the original designers to the extent that these programs have become nearly autonomous. This paper will primarily focus on the following topics:

·        Features and structure of contemporary operating systems

·        Threads and process synchronization

·        Memory management

·        File systems

·        Mass storage

·        I/O

·        Security and protection (Silberschatz, 2014).

 

Features and Structures of Contemporary Operating Systems


Operating Systems work on principles of design that are common to most modern produced OSs but not to all – most often written as proprietary code - some are open-sourced and manipulated by any user with the knowledge to do so. The Kernel, which sits at the heart of an OS, constantly operates while the computer is running. It communicates with several components such as the Daemon, Input/Output components, Middleware (firmware), and the User interface. The Daemon runs in the background after the Kernel is loaded and executes sets of instructions not handled by the Kernel (Silberschatz, 2014). 

Diagram

Description automatically generated

 

Diagram

Description automatically generated

 

Threads and Process Synchronization

 

Kernel-Level and User-Level Thread Synchronizations are a part of "flow control within a process." (Silberschatz, 2014). Instances of events generate signals which are then delivered to processes and eventually handled by either the default signal handler or the user-defined signal handler. Silberschatz, (2014). Page184.

Memory Management

An often-overlooked portion of Operating System operations is Memory management, the function of an OS to call upon memory components to produce the user's desired result. Memory consists of Cache (onboard the processor), Random Access Memory (RAM), and Hard disk drives (HDD). The two types of drives are Solid State Drives comprised of digital electronic components that have no moving parts. The other drives are those having spinning plates to which data is stored. These plates are spun at high speeds and are read and written to using read/write heads attached to drive arms that sweep across the disks to specific locations called out by the Operating system. Base and Limiting registers, which the OS can only load, rendering users unable to change register content. Instead, the OS has full access to both types of memories to ensure the integrity of the data.

Compile, load, and execution times are parts of a process that lead to successful completion. The Compile time is the part of the process where the Absolute code is derived, while load time is the duration of time it takes to complete that process. If a relocatable code gets generated, the compile-time is unknown. Execution time is the duration of time it takes to run an operation. Silberschatz, (2014).

Table

Description automatically generated

Diagram

Description automatically generated

Mass Storage

Mass storage devices, also known as Hard Disk Drives (HDD), are at the heart of any computer; they are the tools that keep data safe and retrievable. However, some of these devices are more robust than others. Drives are divided into two distinct types; modern mass storage devices can store large amounts of data, sometimes at terabyte levels. Solid State Drives are storage devices entirely devoid of moving parts that benefit the user with fast boot and retrieval speeds. They are also less likely to crash, especially accidental drops or faulty drive arms.

File System

A File system is the means of accessing disks to allow storage, location, and data retrieval. There are n-disk and in-memory structures that may contain vital information, such as the Booting the computer from the Boot Control Block. (Silberschatz, (2014)). The size and number of drive partitions are found in the Volume Control block. A Control File control Clock consists of permissions, file dates, the Access Control List, the size of the file, and data blocks and functions. Silberschatz, (2014). Creating a file is done by making a system call from the application program. The directory is read to memory locations and updated with new file names written to the disk. Silberschatz, (2014).

Security and Protection

Businesses, schools, and home networks all share a common need – the need to be free of malicious and even inadvertent intrusions into their systems. The internet has provided a means for threat actors worldwide access to even the most obscure networks, which has drawn consternation from the network owners. Security: defined as ensuring the authentication of a system user to protect the integrity of information stored in the system. Silberschatz, (2014). This definition acknowledges that any user can be a threat if they lose their credentials to access the network or any of its components.

 Conclusion

Operating Systems such as Linux, Mac OS, and Windows have made business, home, and schools more productive in that processing information is more accessible due to systems organized by Operating Systems. These OSs give the means to store, share and retrieve files created by the user and manage system protection and security. As an alternative to Command-Line Interfaces (CLI), the Operating System makes work less difficult for the average user with Graphical User Interfaces (GUI) that often make tedious chores less labor-intensive.

 Final Concept Map.drawio - diagrams.net

 Diagram

Description automatically generated

Diagram

Description automatically generated

 

 

  

References

 

Silberschatz, A., Galvin, P. B., & Gagne, G. (2014). Operating system concepts essentials (2nd ed.). Retrieved from https://redshelf.com/

 

 

 












Algorithmic Design and Data Structure Techniques for Newbies.

Some of us have an innate fear or at least a little apprehension about learning new technology, and algorithmic design and data structure te...