Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
CSC 3380
Home
CSC 4103
Syllabus
Calendar
Lectures
Lecture 1
Lecture 2
Refreshing C
Lecture 3
Lecture 4
Lecture 5
Lecture 6
Lecture 7
Lecture 8
Lecture 9
Lecture 10
Lecture 11
Lecture 12
Lecture 13
Lecture 14
Lecture 15
Assignments
Assignment 0
Environment Setup
Tools
Counting Words
User Limits
GDB Basics
From Source Code to Executable
Submission
Assignment 1
Getting Started
Lists of Things
list_words
pthread
pthread_words
Submission
Assignment 2
Getting Started
Directory Commands
Program Execution
Path Resolution
Redirection
Pipes
Signal Handling
Example - shells in shells
Process Groups
Foreground Terminal
Overview of Signals
Task
Process Groups and Terminal Signaling
Foreground and Background Processes
Background Processes
Foreground/Background Switching
Submission
Assignment 3
Getting Started
Background
Tasks
Sockets
GET Request
Servers
Performance
Proxy
Submission
Projects
Project 0 - Getting Real
Environment Setup
Welcome to PintOS
Booting PintOS
Faulting Instruction
Step through the Crash
Debug
Submission
Project 1 - User Programs
Getting Started
Deliverables
Design
Code
Report
Evaluations
Planning
Tasks
Argument Passing
File Operation Syscalls
Process Control Syscalls
Floating Point Operations
Concept Check
Testing
Submission
FAQ
Argument Passing FAQ
Syscalls FAQ
Study Guides
C, x86
OS Fundamentals
Threads, I/O
Synchronization
Scheduling
Starvation
Paging, Caches
I/O
Queuing Theory, File Systems
PintOS
Overview
Getting Started
PintOS Source Tree
Building PintOS
Using the File System
Getting Started
Debugging PintOS Tests
Debugging Page Faults
Debugging Panics
Adding Source Files
User Programs
Source Files
How User Programs Work
Virtual Memory Layout
Accessing User Memory
Switching Threads
80x86 Calling Convention
Program Startup Details
Adding New Tests
Syscalls
Threads
Understanding Threads
The Thread Structure
Thread Functions
Context Switching
Processes
Process Details
The Process Structure
Memory Allocation
Page Allocator
Block Allocator
Linked Lists
Development in PintOS
printf
ASSERT
Function Parameter Attributes
Backtraces
GDB
Triple Faults
Floating Point
Initialization
Assembly
Testing
Synchronization
Disabling Interrupts
Semaphores
Locks
Monitors
Readers-writers Locks
Optimization Barriers
File Systems
Source Files
Persistence Tests
CSC 4700
Syllabus
Calendar
Lectures
Lecture 1
Interlude - C++
Lecture 2
Lecture 3
Lecture 4
Lecture 5
Lecture 6
Lecture 7
Lecture 8
Lecture 9
Lecture 10
Lecture 11
Lecture 12
Lecture 13
Lecture 14
Lecture 15
Lecture 16
Lecture 17
Lecture 18
Lecture 19
Lecture 20
Lecture 21
Assignments
Assignment 0
Welcome to CSC4700
Getting Started
Submission
Assignment 1
Getting Started
Warmup
Measuring Performance
Submission
Monte Carlo Methods
Assignment 2
Getting Started
Warmup
Performance
Exercises
Buddhabrot Renderer
Submission
Assignment 3
Getting Started
Warmup
More Warmup
Parallelism
Multithreaded Buddhabrot
Submission
Course Project
Presentation
CSC 3380
Syllabus
Calendar
Lectures
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5
Lecture 6
Lecture 7
Lecture 8
Lecture 9
Lecture 10
Lecture 11
Midterm Review
Lecture 12
Lecture 13
Lecture 14
Lecture 15
Lecture 16
Lecture 17
Lecture 18
Lecture 19
Lecture 20
Resources
A Guide to Git
Build and Run Code
Compilation Modes
C++ Function Objects
Github Classroom
C++ Lambdas
Late Policy
Open a Remote Github Repository
The Pre-Processor
Style Guide
Submitting Assignments
Testing
CSC 3380
Lectures
Lecture 7
CSC3380: Lecture 7
Thursday, February 15
Completing a Program
Readings
Chapter 7 of
Stroustrups ‘Programming - Principles and Practice using C++’
Links
Slides (ppt)
,
slides (pdf)
Code
Code
Join our
discord server
to chat and discuss related topics.