Posts

Week 27

CST 334 This is our third week in CST-334, also known as Operating Systems. Operating Systems: Three Easy Pieces This week we read chapters 13-17 in our text book. Chapter 13: Address Spaces Chapter 13 discusses the virtualization of memory, or address spaces. Key Takeaways: Each process has an address space, an abstraction of where its memory is located in physical memory. The goals of virtual memory are transparency, efficiency, and protection. Chapter 14: Memory API Chapter 14 discusses the malloc and free functions in the C language. Key Takeaways: The malloc function attempts to allocate memory on the heap. It returns a pointer to the allocated memory on a success, or NULL on a failure. The free function takes a pointer returned by malloc, and frees the associated memory. Several errors are possible with manual memory management, such as forgetting to allocate memory, not allocating enough memory, forgetting to initialize allocated memory, forgetting to free memory, and freeing me...

Week 26

CST-334 Week 2 This week was our second week in CST-334, also known as Operating Systems. Operating Systems: Three Easy Pieces This week we read chapters 4-8 of our course textbook. Chapter 4: Processes This chapter discusses processes, which are running programs, and how the OS virtualizes the CPU to run multiple processes. Key Takeaways: The OS runs multiple processes by stopping and starting them during context switches. All OSs have APIs that processes use to interact with resources and the OS. To create a process executable code of a program must be loaded from storage onto memory. Processes can be running, ready, or blocked. The OS tracks data for each process.  Chapter 5: Process API This chapter discusses certain important aspects in Process APIs. Key Takeaways: The fork() system call creates a new process. The new process is identical to its parent process when it made the system call. The wait() system call allows a process to wait for another process, or its child proces...

Week 25

CST-334 Week 1 This week we started a new class, CST-334: Operating Systems. This class discusses the ideas behind operating systems, why we use them, what they are for, and how they work. Operating Systems: Three Easy Pieces In CST-334 we will be reading  Operating Systems: Three Easy Pieces , which is available for free on the book's website . Chapter 2: Introduction to Operating Systems This week we read chapter two of  Operating Systems: Three Easy Pieces.  This chapter discussed the basics of virtualization, concurrency, and persistence. Virtualization is the way in which operating systems share physical resources with processes. This includes giving each process its own virtual CPU, and its own portion of memory. Concurrency relates to the problems operating systems face when running multiple processes at the same time. How do operating systems allow multiple processes to run in a way that prevents errors or conflicts? Persistence relates to storing data in a more p...

Week 24

 CST-363 Week 8 This week is our final week of CST-363, also known as Introduction to Database Systems. Questions Briefly summarize the what you consider to be the three (3) most important things you learned in this course. In this class I learned how SQL script works, and how to design and read SQL statements. In this class I learned how both relational and NoSQL databases work. In this class I learned the ways databases are integrated with general purpose programming languages, and wrote a simple program in Java utilizing both MySQL and MongoDB.

Week 23

Image
 CST-363 Week 7 This week was our seventh week in CST-363, also known as Introduction to Database Systems. Questions Compare MongoDB with MySQL. What are some similarities?   Both MongoDB and MySQL are database applications. Both function similarly in fundamental ways, such as having tables/collections. Both are best used alongside a general-purpose coding language, such as through the use of an API.  What are some differences? MySQL uses SQL, while MongoDB uses Javascript. Because of this the two applications are very different to use. Using the two applications with Java works very differently also. MySQL uses relational databases, while MongoDB uses document databases. This results in the two applications acting very differently. For example, MySQL has strict schema, whereas MongoDB has flexible schema. When would you choose one over the other?     If the database needed to be very structured, or the structure was guaranteed, then I would use MySQL. If t...