I spent most of my time reviewing the materials to get ready for the final exam. The final covers two big topics, concurrency and persistence. I looked back at my notes, lecture slides, and the readings. For concurrency, I reviewed threads, race conditions, locks, semaphores, and condition variables. I practiced writing and reading code with pthread_create, pthread_join, and mutex locks. I also made sure I understand classic problems like the producer-consumer and reader-writer locks. It was helpful to go back to the examples we discussed in class. For persistence, I reviewed how the operating system interacts with I/O devices like hard drives. I studied how disks work, how files and directories are stored using inodes and blocks, and how the OS reads and writes files. I also practiced calculating disk I/O times based on seek time, rotational delay, and transfer rate.
Looking back at the course, I learned so much about how the operating system works behind the scenes. Before this class, I didn’t really think much about how memory is managed or how threads share resources. Now I understand how important it is to use synchronization tools correctly to avoid bugs like race conditions. The memory allocator project and the concurrency lessons were challenging, but they helped me grow a lot. I feel more confident working with low-level system topics now.
At the start of the semester, I was nervous about working in C and understanding systems programming, but now I feel more comfortable reading and writing C code. One thing that changed for me is that I now pay more attention to performance and safety in code, especially with memory and threads. I still wonder how these concepts apply in real large systems, like in cloud computing or distributed systems. There are some topics that I want to dig into more, like how semaphores are used in real systems, how memory allocation works in modern programming languages, and how disk scheduling affects performance in cloud environments. I’ll try to keep learning about these areas through small side projects or by reading more technical blogs and documentation after the class ends.
No comments:
Post a Comment