Thursday, October 7, 2021

Introduction to Java: An Object-Oriented Programming Language

Java is one of many languages falling into the Object-Oriented Programming (OOP) methodology, others being Python, C++, C#, etc. What exactly is OOP? This methodology involves using classes and objects to design a program. In this context, an object is anything that has state and behavior, otherwise known as variables (or properties) and functions (or methods). For example, a horse is an object because it has states like color, name, breed, etc., and behaviors like neighing, eating, and trotting.

A class, by definition, is a collection of objects and is the blueprint from which individual objects are created. For example, if you have a bicycle, it would be an instance of the class of objects known as bicycles. This is because there are thousands of other bicycles in existence that are the same make and model.

Monday, October 4, 2021

Operating Systems Theory Final Project

 

Operating System Theory Summary Blog Post

Describe features of contemporary operating systems and their structures

Contemporary operating systems have extensive features guiding the user and computer system to have purposeful interactions. Specifically, the features include the user interface (UI), program execution, input/output (I/O) operations, file system manipulation, communications, error detection, resource allocation, accounting, and protection and security (Silberschatz, Galvin, & Gagne, 2014). The below concept map describes what these features are in an operating system.

Operating systems can be structured in many different ways, including monolithic, layered, or hybrid structures. The monolithic structure has all the functionalities of the operating system compiled into one space, whereas the other two approaches use a hierarchical structure. Contemporary operating systems used layered or hybrid approaches to prevent system vulnerabilities discovered in the archaic monolithic approach. In these methods, the subsystems or subcomponents are referred to as modules. The course text shows a unique example of a layered approach for the Mac OS X, also outlined below. The layers are hierarchical, starting with the Aqua graphical user interface (GUI), the application environments and services layer, and the kernel environment. The kernel environment details the I/O kit, kernel extensions, Mach (memory management support), and BSD (support for networking and file systems) functions (Silberschatz, Galvin, & Gagne, 2014). As outlined in the description above and the graphic below, we can see that subsystems or subcomponents use functions and services of only lower-level layers or modules that can call any other module, alluding to its benefit in reducing system vulnerabilities.