CSCI 4061
Fall 2017

Class Information
Lecture Schedule and Notes
Recitation Schedule and Notes
Assignments and Exams
Class Forum (Moodle)
Assignment Submission (Moodle)
Grades (Moodle)
Online Quiz Exercises
Examples
Useful Resources
 
LECTURE  SYLLABUS TOPICS TO BE COVERED
September 5, 7
  • Course organization over the semester
  • Basic concepts in operating systems. Functions of an operating system.
  • Logical structure and memory layout of a process
  • Function  of kernel and notion of system calls,  application programming interfaces.
  • System programs and Command Shell
  • See Lecture Notes 1 on Moodle

Reference materials for the first two weeks:

From Silberschatz Book "Operating Systems Concept" (9th Edition)

Read Chapter 1

Read from Chapter 2: Section 2.1 through 2.7

September 14

 

  • UNIX File,  Directories, Links
  • File system concepts, directory organization, file access methods, directories and paths, working directory;
  • File permissions and attributes, users and groups, directories, hard and soft links
  • Basic UNIX commands (cp, mv, ls, cat, tail, head, more, pwd, cd, ps, ln, umask etc)
  • Environment variables, $variables, Doube/Single Quoted Strings
  • See Lecture Notes 2 on Moodle    
  • For file systems concepts refer to Chapter 10 from the textbook by Silberschatz book

September 14

 

  • I/O streams, stdin, stdout, stderr, I/O redirection
  • Notion of pipes; using joining commands using pipes
  • Shell variables, history
  • Bash and Tcsh shells; shell scripting language constructs for tcsh and bash scripting,  shell syntax, shell variables, control structures; regular-expression syntax; shell scripts; environment variables, search paths, configuration files.
  • Unix commands and command-line syntax; sources of information - man pages, i
  • files and directories; commands that operate on files and directories; commands that give information on processes and the OS;
  • See Lecture Notes 3 on Moodle

September 19, 21

 

  • Filter programs -- grep, sort, sed
  • Regular expressions -  grep, and egrep utility programs
  • See Lecture Notes 4 on Moodle
September 21
  • File system APIs and System calls for I/O and  file operations - open, close, read, write, seek, dup, fcntl, sync;
  • Refer to Robins and Robins Book:
  • Chapter 2 (Sections 2.3, 2.4, 2.5, 2.6)
  • Chapter 4 (Sections 4.1, 4.2, 4.3)
  • Chapter 5 (Sections5.1 and 5.2)
  • PLEASE see the example programs on File I/O on Course Webpage
  • See Lecture Notes 5 on Moodle

Additional reference materials can be found in Chapter 10 from the textbook by Silberschatz book "Operating System Concepts"

September 26
  • File system System calls for I/O and  file operations - open, close, read, write, lseek, dup, fcntl, sync; character devices and ioctl; inheritance of file descriptors between parent and child processes; non-blocking and asynchronous I/O, use of select()
  • String operation in C
  • C Library functions for File I/O Operations.
  • Error handling in C programs
  • Example of a File copy program
  • See Lecture Notes 6 on Moodle

Additional reference materials can be found in Chapter 11 (File System Interface)  from the textbook by Silberschatz book "Operating System Concepts"

September 28
  • C Standard I/O Library Functions for File I/O
  • Select function
  • Devices (/dev), device types (/dev/proc on Linux),
  • See Lecture Notes 7 on Moodle

Additional reference materials can be found in Chapter 11 from the textbook by Silberschatz "Operating System Concepts" (9th Edition)

October 3, 5, 10, 12

  • Process Management (4 lectures)
  • Process lifecycle and process states; process scheduling, process priority, interprocess communication.
  • System calls for process creation - fork, exec, wait; process priority; process memory image, process exit status; relationship between parent and child processes; zombies & daemons, background execution of a process;
  • See Lecture Notes 8 on Moodle
October 10
  • Signal Handling in Unix
  • See Lecture Notes 9 on Moodle
October 12
  • Process Scheduling
  • See Lecture Notes 10 on Moodle
  • Please refer to Silberschatz, Galvin, Gagne book (9th Edition)  -- Sections 6.1,  6.2,  and 6.3
October 19       FIRST MIDTERM EXAM
October 17, 24, 26
  • Concurrent Programming and Process Synchronization (3 lectures)
  • Threads
  • Process Synchronization
  • Atomic operations, critical sections; synchronization and mutual exclusion;
  • Mutual exclusion using shared variables
  • Hardware support for process synchronization
  • Semaphores
  • Classical problems in process synchronization: Producer-consumer problem, Reader-Writer Problem,  Dining Philosophers problem
  • See Lecture Notes 11 on Moodle

 

October 31 November 2
  • Concurrent Programming with POSIX Threads: ( 2 lectures
  • Creating, managing, terminating threads;
  • Using POSIX mutex and condition variables;
  • POSIX thread scheduling parameters;
  • See Lecture Notes 12 and 3 on Moodle
November 7, 9
  • Interprocess communication using TCP/IP Sockets
  • See Lecture Notes 14 on Moodle  
  • Interprocess communication using TCP/IP Sockets (continued)
  • See Lecture Notes 15 on Moodle
 November 16       SECOND MIDTERM EXAM

November 14, 21, 28, 30

  • Memory Management
  • Virtual Memory concepts
  • See Lecture Notes 16 on Moodle  

Refer to Silberschatz, Galvin, Gagne Book Chapters 8 and 9

November  5, 7,
  • File System Implementation
  • Disk I/O Scheduling
  • See Lecture Notes 18 on Moodle  
 December 12
  • System Deadlocks
  • Please refer to Silberschatz, Galvin, Gagne book  --  Chapter 7
  • See Lecture Notes 17 on Moodle