Skip to content

nmwiley808/csci114

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 

Repository files navigation

CSCI 114 – Introduction to Operating Systems

California State University, Fresno
Student: Noah Wiley


Repository Overview

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.


Course Description

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.


Repository Structure

CSCI114/
├── programming assignments/           # Operating System Programming Assignments
└── README.md                          # Repository Documentation

Technologies & Tools

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.


Skills Developed

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

How to Run Programs

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.


Notes

  • 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.

Academic Integrity

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.

About

A coursework repository from undergrad OS course at Fresno State. It contains C++11 programming assignments covering core OS concepts — process/thread management, synchronization (semaphores, monitors), scheduling algorithms, memory management, deadlock prevention, and file systems. Development was done in CLion on Linux using POSIX systems

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages