CSCE 313 Honors
Introduction to Computer Systems
Spring 2017

Home | Schedule | SlidesLabs

Slides

Topic

Slides

Introduction to Operating Systems

Course logistics
Slides

  • What is an OS?
  • Architecture support for OS
  • System Calls
  • OS structures

Programs, Processes and Threads

Slides 
  • Programs and processes
  • Processes in UNIX
  • Intro to threads and lightweight processes

Intro to Scheduling

Slides 
  • Scheduler in the OS
  • Structures of schedulers
  • FIFO/SPF/SRTF/Priority schedulers

POSIX Threads

Slides
  • Why threads?
  • Pthread management
  • Pthread safety
  • Pthread attributes

Synchronization

Slides 
  • Mutual exclusion
  • Semaphores
  • Producer/Consumer and other classical problems
  • Monitors
  • Synchronization in Java

POSIX Threads Synchronization

Slides 
  • Mutex locks
  • Condition variables
  • Read-write locks
  • Interlude: priority inheritance

Unix I/O

Slides 
  • File representation
  • Basic file operations
  • Caching. File Open/Close
  • Multiplexing: select()
  • File descriptors

Files and Directories

Slides 
  • File system and directories
  • UNIX inodes
  • Accessing directories
  • Understanding links in directories

UNIX Special Files

Slides
  • Pipes
  • Named pipes
  • Special files and devices

POSIX IPC

Slides 
  • It's all about naming
  • Message queues
  • Shared memory
  • Semaphore sets

Time and Timers

Slides 
  • The 'Epoch'
  • The current time
  • Sleeping and Waiting
  • Timers

Asynchronous Events: Signals

Slides 
  • Signal concepts
  • Generating and catching signals
  • Waiting for signals
  • Signals and program start-up
  • Signal handling and threads

Network Programming

Slides 
  • Network programming as programming across machine boundaries
  • TCP/IP basics
  • The Sockets API
  • Server design

Security

Slides: Overview, Security 
  • Security goals
  • Security threats
  • Authentication
  • Authorization
  • Confidentiality
  • Case studies