Sunday, 2 July 2023

OS Theory Concept Map

 

The operating system is one of the most critical parts of a computer system. A computer's operating system includes system software that manages computer hardware and software resources and provides standard services for computer programs (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014). Throughout this course, we have discussed many different aspects of an operating system, such as OS functions, processes, memory management, File systems, Mass storage, I/O, Security, and protection. We will discuss a few points regarding these features.


An operating system includes a user interface such as a GUI, program execution, I/O operations, file system manipulation, communication, and error detection. These functions are user-based. System-based functions include resource allocation, accounting, security, and protection (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014). Program execution allows the operating system to start, run, and execute programs. I/O operations will enable the system to operate devices such as a printer. File system manipulation allows for files to be written and read. Communication enables the operating system to communicate among the different functions. Error detection detects and corrects errors within the system, such as file errors or I/O errors (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014).




Within a computer, we have many processes that execute. A process is a computer program executed by one or many threads. Depending on the operating system, a process may consist of multiple threads of execution that execute instructions concurrently (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014). Simply put, a process is a program in execution. As processes execute, the state the process is in will change. The process may be either new, running, waiting, ready, or terminated. A process control block includes information that is associated with each process. The PCB includes process state, process counter, CPU registers, scheduling information, memory, accounting, and I/O status information (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014).



Memory management is the functionality where an operating system moves processes back and forth from the main memory to disk memory for the processes to execute (Tutorial Point, N.D.). Some memory management functions include address binding, where a program is moved from storage to become a process at some point during the compile, load, or execution times. Dynamic loading keeps certain routines part of a program on disk memory to utilize more memory space. Swapping includes processes swapped in and out of memory to a backing store, allowing for more multiprogramming. Memory allocation involves memory that is divided into two partitions. These two partitions include low memory for the operating system and high memory for the user processes (Tutorial Point, N.D.).


File management includes actions where the system organizes the data files to allow easy access. Attributes of a file include name, identifier, type, location, and protection (Tutorial Point, n.d.). The operations of file management include creating the file where the file is created in the directory. Reading the file consists of a read pointer that specifies where the file should be read. Writing a file includes a system call that specifies the file name and what needs to be written. Deleting a file locates the file and removes it. Repositioning a file includes setting a file value to the appropriate entry. The last operation is truncating, where data from the file is deleted without destroying all file attributes (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014).


File management includes various structures such as single-level, two-level, tree-structure, acyclic, and graph directories. Single-level directories are directories where all files are contained in the same directory. Two-level directories allow each user to utilize their file directory. Tree structure directories enable users to create their sub-directories to organize files. Acyclic graph directories share sub-directories and files. General graph directories are similar to tree structure directories, but in general graphs, links are added, and cycles can occur, dismantling the tree structure (Silberschatz, A., Galvin, P. B., & Gagne, G. 2014). Mass storage may be handled by a hard disk drive or an external device such as a hard drive. I/O operations, such as printing, are handled by device controllers and drivers.





Protection and security are two mechanisms used to control access to a computer's programs and resources. Protection can be considered an internal mechanism, whereas security is external. Within protection, we have domain-based and language-based. According to the text, domain-based protection gives access rights that determine a process's operation (Silberschatz, Galvin, & Gagne, 2014). We can illustrate how this works by looking at an access matrix. An access matrix is a table where the rows are individual domains, and the columns are objects.


Security protects a system from external threats. These threats or attacks include Trojan viruses, trap doors, logic bombs, or stack and buffer overflow. These threats and attacks are mitigated by several security features such as antivirus software, cryptography, authentication, encryption, and firewalls (Silberschatz, Galvin, & Gagne, 2014).





Given everything learned throughout this course, I feel as if I will benefit greatly. I work on a computer system every day and having a better understanding behind the operating system is great knowledge to have. Once, I retire from the military I plan to transition into a position working in the information technology community. Working in the I.T. field in the military I have already been exposed to a great deal of experiences relating to I.T. I believe that the information I’ve learned in this course will better assist me on the help desk and automations realm of the I.T. community. Enabling another way for me to better understand possible problems that some of our customers have.


References:


Geeks for Geeks. (n.d.). File Systems: Operating Systems. Retrieved October 4, 2018 from https://www.geeksforgeeks.org/file-system-operating-systems/

Shukla, A. (2017). Process Control Block in Operating System. Retrieved September 20, 2018, from https://www.includehelp.com/operating-systems/process-control-block-inoperating-system.aspx

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

TutorialsPoint. (n.d.). Operating System – Memory Management. Retrieved September 27, 2018 from https://www.tutorialspoint.com/operating_system/os_memory_management.htm

 Tutorials Point. (2018). Operating System - Multi-Threading. Retrieved September 20, 2018, from https://www.tutorialspoint.com/operating_system/os_multi_threading.htm

 Tutorials Point. (n.d.). Operating System- Security. Retrieved on October 11, 2018 from https://www.tutorialspoint.com/operating_system/os_security.htm

Saturday, 22 May 2021

The Essentials of Data Structures and Algorithms

 In being new to programming with Java, you must be able to use algorithmic structures and designs. Using data structures and algorithms will enable you to develop complex programs to accomplish tasks. First, let's understand what data structures and algorithms are. Data structures can be thought of as building blocks to your program. Data structures give you the option to store data in a manner where it can be accessed as needed based on your requirements. 

A few data structures and algorithms are considered essentials in programming using Java, and they are Array, Listed List, Hash, Stack, and Queue. An array is a linear data structure, and elements are stored in contiguous memory locations. Some advantages of arrays are that they allow for easy sorting and iteration, allowing random access. Some of the disadvantages are that the size is fixed and difficult to insert and delete. Linked lists are also linear data structures. Some advantages of linked lists are that they are dynamic in size and allow easy insertion and deletion. Some disadvantages are that if the head Node is lost, then the linked list is lost, and no random access is possible. Hashing maps, the element to an address for storage and provides constant-time access. Some advantages of hashing are helping fetching elements in constant time and is an efficient way to store elements. Disadvantages are collision resolution increases complexity.

Stacks are a linear data structure that follows LIFO (Last In First Out). Some advantages are maintaining data in a LIFO manner, and the last element is readily available for use. Disadvantages are manipulation is restricted to the top of the stack, and stacks are very flexible. Queues are linear data structures that follow FIFO (First In First Out). Advantages are that queues maintain data in a FIFO manner, insertion occurs at the rear, and deletion happens from the front. Understanding these data structures and when to apply them will make you a better programmer. All in all, I wouldn't say that one data structure is better than another. In my opinion, the data structure that you use will be determined by the program's requirements and what is needed to be performed.  


References:

Lysecky, R., Vahid, F., Lysecky, S., & Givargis, T. (2015). Data Structure Essentials. Retrieved from https://zybooks.zyante.com/#/zybook/DataStructuresEssentialsR25/chapter/1/section/3


Shaffer, C. A. (2013). Data Structures and Algorithm Analysis. (3.2 ed.). Retrieved from            http://people.cs.vt.edu/~shaffer/Book/JAVA3elatest.pdf

Friday, 23 April 2021

Java & Object-Oriented Programming (OOP)




 New to coding with Java!

 As a newbie myself, I with provide you with information and links to help make downloading Java to your computer easier. In addition, I will provide some information on objected-oriented programming (OOP). 


Let's start from the beginning, downloading Java! Allow I was provided a link to land myself on the oracle webpage (https://docs.oracle.com/javase/tutorial/getStarted/index.html), the majority of the information on getting started with Java. The information provides an overview of Java, a hands-on approach to Java, discusses applications, and common problems. All very good information! I suggest reviewing each link to grasp a full understanding of starting Java. The "Hello World!" Application will provide the you the necessary steps to not only install Java, but also create a "Hello World!" application step-by-step. Below is the direct link to the webpage:

Java Tutorials







         

Objected-Oriented Programming (OOP) is a programming paradigm that uses the concept of classes and objects to structure software programs. OOP's turn software programs into reusable pieces of code, which can be used to create instances of objects. OOP's have four major principles: Encapsulation, Data Abstraction, Polymorphism, and Inheritance.  Below, I will provide a links to assist in understanding the four major principles and concepts of OOP's.

Four Major Principles of Objected-Oriented Programming

Lesson: Object-Oriented Programming Concepts

Java OOPs Concepts

Good luck and I hope this post helped!!!

Monday, 23 March 2020

Tech Topic Connection


During my time in this course, I was asked to pick a topic from a list of topics in which I would like to further my knowledge on. The topic that I chose was “Network Security”. My reason for choosing this topic is the fact that upon completing my bachelor’s degree, I would like to focus on cyber security. Securing the network is ultimately what I would like to do. It’s my way of continuing to serve and protect my countries network from cyber attacks from what I can best describe as “the enemy”. Which may be attempting to gain access to our network to use information against us maliciously or simply be trying to gain for other reasons.
The information that I learned throughout this course in essential to the start of my journey as I have learned the basics of how computers operate. To understand protecting the network one must first understand how the network operates. In addition, I also learned some of the basic ways that one will attempt to gain access to your own personal network. Such as phishing, password crackers, viruses, etc.
In the case of network security, a “hacker” can use programming languages to gain access to networks. Creating algorithms of program languages to sneak into a network. Doing this a hacker can gain access to your own personal bank accounts, photos within your computer, access any or all of your social media platforms, and so much more. A hacker is only limited by there own level of skill or imagination.
When it comes to software, I learned that when your device pops up with a software update, it’s important to download the update. Outdated software is one way to allow your network to be vulnerable to an attack. I personally use to wait to update my devices because I thought that downloading updates right away would have glitches and cause issues for your device. However, through this course I have learned that that’s a possibility but not always the case. Software updates are to protect your device as well as your network.
In closing I have learned the basics of information technology and have payed particular attention the network security section within the text. With all the information I have learned regarding the basics of network security, I am more knowledgeable on ways to better protect my own personal network and look forward to learning more advanced ways to not only my own network/devices but the networks within the private sectors.

Thursday, 19 March 2020

Network Security

In today’s world where technological advances are constantly changing and improving our way of life; they can also be quiet damaging. Just about everything that we use has some form of technology and/or uses the internet, connecting all our information and allowing us to easily transition from one piece of equipment to another. For this reason, it’s imperative that everyone understands ways to protect their network. By doing so, a security breach of your network can be avoided. According to our text, “a security breach is a case of unauthorized computer access” (Vahid, F., & Lysecky, S., 2017).

I will be touching on a couple of topics within network security such as security holes/vulnerabilities and computer viruses. I will be discussing the vulnerabilities of each, symptoms and damages of each, and some recommendations to help protect your network. Security holes are ways that an intruder will use to gain access to your computer. One way that unauthorized users accomplish this is by passing through security holes in OS’s; specifically, outdated OS’s. The effects of this are that an unauthorized user can access personal information, gain access to all accounts, and even have access to all photos; using them however they see fit. If your computer has a computer virus then it’s considered infected. Which means a person has gained access to your computer without permission. In doing so, the uninvited guests can steal information such as credit card numbers, credit card information, or just completing damaging your computer from the inside out.

Ways that you can protect your computer system as well as network from security holes/vulnerabilities and computer viruses are simple. Security holes can be protected against by paying attention to for OS updates. OS updates are to fill those security holes/vulnerabilities to keep intruders out of your computer systems. Computer viruses can be protected against by purchasing antivirus software and by not clicking unknown emails. Computer viruses are typically spread through emails but can be distributed other ways as well.

We have covered the impacts and effects, symptoms of, and some protective measures against security holes/vulnerabilities and computer viruses. In short, will everything we use today having access or requiring access to the internet it’s imperative that securing your network be a priority.

References:

Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from zybooks.zyante.com/

Traveling Through a Network

 
 
Using the “ping” command sends information packets through the network to a specific internet protocol address requesting a response back. The ping command can be used as a troubleshooting tool because if there’s an issue with the internet or with the website/IP address being pinged then that’ll let you know where to start troubleshooting. If you receive a response back, then that tells you that the internet is operating as it should and that you are able to reach out to the opposite destination. When you ping an IP address/website and its successful then a report will generate, showing the number of packets sent, received, and/or lost. If the ping is unable to reach the destination after a certain amount of time, then the ping will timeout.

A traceroute will list out the routers that the packets have taken to reach the destination. A traceroute will trace up to 30 hops per request. If the traceroute cannot make to the destination, then the traceroute will show exactly where the packets got held up at. Of the three websites that I performed traceroutes on (google.com, yahoo.co.jp, bland.is) the one the in Japan had the most hops (22), while google.com had the least number of hops (12). However, the website in Iceland (bland.is) had 15 hops, the traceroute was completed with zero timeouts.

Documenting a Day


The applications that I will be discussing are Microsoft Word, Microsoft Excel, Microsoft PowerPoint, and Microsoft Access. Each of which has its own set of advantages and uses.
Now a similarity amongst all the applications of discussion is the fact that you can manipulate the text font, text size, and font style (bold, italics, and/or underlined). Using Microsoft Word, you can format your text to create a document such as an official letter, a journal entry, and/or a memo for work.  Microsoft Excel is an application that allows you to create spreadsheets. Spreadsheets are good to have to manage and keep track of information. In the military we use them for just about everything. The best part about excel is if you learn the proper formulas, all you need to do is input the information and it’ll automatically calculate stuff for you. The disadvantage to excel is if you don’t know the formulas or at least the correct one for your needs; you are stuck trying to calculate information to hard and old fashion way. Microsoft PowerPoint is an awesome application to use when presenting something to a group. By adding a few photos, texts, and animations the slideshow can be very interesting. Another great thing about PowerPoint is the fact that there are many themes that you can use if you aren’t the creative type. The last application is the Microsoft Access application. Access is a database application that enables you to store and calculate anything you choose over a period. It’s an application that I would say is good for businesses to manage inventory and calculate revenue. In my opinion the disadvantage to Access is that I found it difficult to operate. I think that excel can produce similar results and it’s easier to use. The application that I found most beneficial for my “A Day in My Life” assignment was Word and PowerPoint. Word because I was able to explain why I do that event. I was able to stress the importance of each. PowerPoint because I was able to illustrate the events I did throughout that day. Showing illustrations over just sending words can create a different outlook on the event.
All in all, I truly enjoyed learning and working with the applications. I have my specific applications that are my go-to; mainly because I’m very familiar with them. Those would be Word, Excel, and PowerPoint applications.

OS Theory Concept Map

  The operating system is one of the most critical parts of a computer system. A computer's operating system includes system software th...