Week 1 – CST– 334 Operating Systems

Module 1 - Processes 

This week we learned what this class is about and what the goals of the class are. In this course we will be using the bash programming language and Linux utilities to create shell scripts which will allow us to automate repetitive tasks. Throughout the course we will learn about syntax, structure, and commands when programming in the bash shell. The goal of the course is to provide the students with a solid introduction to the basic concepts of Linux and shell scripting so that they can apply them in the real world.

From lab1, we learned how to use the GDB tool to help us debug our code by isolating memory issues to figure out what is wrong. The lab taught us how to read the information given by the compiler when errors are encountered. The debugging tool is used to get more detailed information and allows us to step through our code so we can get a better sense of where the errors occurred.

PA1 gave us more practice with debugging code. It also served as an introduction and practice to programming with the C language. We learned how to create functions for string manipulation such as getting the string length, truncate a string, and finding the first and last occurrence of a character in a string. We also learned about creating structures and how to use them. Lastly, we learned how to create an encryption function based on the Caesar Cipher encryption technique. This technique takes a normal plain text string and substitutes each letter with a letter a number of positions away in the alphabet.

From the readings, we learned what an operating system does and how it does it. Most importantly, the two main tasks of an operating system are to provide a layer of abstraction and to manage resources. It provides abstraction by hiding details of hardware from application programs which is how the user interacts with the system. It also substitutes physical hardware with abstract services to the application programs. The operating system manages limited resources like the CPU, memory, and disk space. It optimizes these resources and protects them from misuse or abuse by equitably and fairly allocating them when a system provides multitasking capabilities.


Comments

Popular posts from this blog