California State University, Fresno
Student: Noah Wiley
This repository contains my coursework, programming assignments, projects, and study materials for CSCI 114 – Introduction to Operating Systems at Fresno State.
The purpose of this repository is to document my work and experiments throughout the course while learning how operating systems manage hardware resources, processes, memory, and file systems.
CSCI 114 introduces the fundamental concepts and design principles of modern operating systems. The course explores how operating systems manage computer hardware and provide essential services to applications and users.
Topics covered in this course include:
- History and evolution of operating systems
- Operating system services and system calls
- File system organization and management
- Memory management techniques
- Process management and scheduling
- Concurrent processes and interprocess communication
- Synchronization mechanisms including:
- Semaphores
- Monitors
- Deadlocks and deadlock prevention
- Resource management
- CPU scheduling algorithms
- Disk scheduling techniques
- Operating system security and protection mechanisms
The course emphasizes both theoretical concepts and hands-on programming related to operating system behavior and resource management.
CSCI114/
├── programming assignments/ # Operating System Programming Assignments
└── README.md # Repository Documentation
This repository may include work using:
- C++11
- POSIX system calls
- Linux command line tools
- Process and thread management
- Synchronization primitives
- CLion IDE (JetBrains)
Development and testing are primarily done using CLion with C++11.
Throughout this course, I am developing skills in:
- Understanding operating system architecture
- Managing processes and threads
- Implementing synchronization mechanisms
- Preventing and analyzing deadlocks
- Designing scheduling algorithms
- Understanding file system structures
- Managing memory and system resources
- Evaluating operating system security mechanisms
Most programming assignments are written in C++11 and compiled using a standard Linux-compatible toolchain.
To compile a C++ program:
g++ -std=c++11 program.cpp -o program
./program
Programming Assignments are typically developed and run using CLion.
- This repository is for academic coursework and documentation.
- Code is written for learning and experimentation.
- Some output files or logs may not be included due to size limitations.
All work in this repository is my own unless otherwise stated.
This repository is provided for academic documentation and portfolio purposes only.
Students currently enrolled in this course should not copy or submit this work as their own.