COSC350 SYSTEM SOFTWARE

Fall 2024 (08/26/24 ~ 12/09/24)

Week

Lecture Notes

Announcement

Week-01

(08/26/24 ~ 08/30/24)

Note #0  .PDF

·         Introduction to COSC350

Note #0.1  .PDF

·         How to use Linux on Window

Note #1  .PDF

·         About LINUX Operating System

·         What is GNU/LINUX Project

·         Introduction to C Programming

·         C System Environment

·         C compilers in LINUX

·         Linux System Roadmap

o   Header files

o   Libraries

·         Static Libraries

·         Shared Libraries

 

No lab this week.

Week-02

(09/02/24  ~ 09/06/24)

LABOR DAY (9/2/24)

Note #2  .PDF

·         What is the shell

·         Simple Bash Commands

·         Redirecting Input and Output

·         Pipeline

·         Shell Scripts

 

 

Week-03

(09/09/24  ~ 09/13/24)

Note #3  .PDF

·         Shell Scripts

·         Shell Programming

·         Shell Syntax

o   Variables

o   Quoting

o   Environment Variables

o   Parameter Variables

o   Condition

o   The test or “[“ command

 

Note #4  .PDF

·         Control Structures

o   if statement

o   if-else-if statement

o   for loop statement

o   while loop statement

o   until loop statement

o   case statement

 

 

Week-04

(09/16/24  ~ 09/20/24)

Note #5  .PDF

·         Functions

o   Function with local variable

o   Function with return value

o   Bash recursive function

·         Other Commands

o   break Command

o   continue Command

o   eval

o   exit

o   export

o   expr

o   printf

o   set

o   shift

 

Note #6  .PDF

·         File System

o   File Name, File Structure, File Types, File Access, File Attributes, File Operation

·         Directories

o   Directory Operations

·         File System Layout

·         Implementing File

o   Contiguous Allocation

o   Linked List Allocation

o   Linked List Allocation with File Allocation Table

o   Index-Node

·         Implementing Directories

·         Linux File Structure

·         File Implementation in Linux

 

 

Mini-Test #1 (9/18/23)  .PDF

Note#1, #2, #3, #4, #5

 

Week-05

(09/23/24  ~ 09/27/24)

Note #7  .PDF

·         System Calls vs. Library Functions

·         File Descriptors for a process

·         System Call for Managing Files

o   write()

o   read()

o   open()

o   close()

o   lseek()

o   pwrite(), pread();

Note #8  .PDF

·         sync(), fsync()

·         File copy

·         Command Line Argument

·         File Sharing

·         dup() and dup2() System Cal

·         sat(), fsat(), lsat() system Call

·         ID’s for a process

·         File Access permission

·         access() System Call

·         umask() System Call

 

 

Week-06

(09/30/24  ~ 10/04/24)

Note #9  .PDF

·         chmod(), fchmod() system call

·         File system in Linux

·         link(), unlink() system calls

·         File truncation with truncate()

Note #10  .PDF

·         Symbolic Links

o   Symbolic link to directory

o   Symbolic link to a executable file

·         symlink() System Call

·         File Times

o   utime() System Call

·         mkdir() and rmdir() System Call

·         chdir() Systemcall

·         Standard I/O Libaries

·         System Data Files and Information

·         Password File

 

Note #11  .PDF

·         System Data Files

o   Password File

o   Shadow Password File

o   Group Password File

o   Other System Data Files

·         Hosts

·         Networks

·         Protocols

·         Services

o   Login Account

o   Time and Date

 

Mini-Test #2 (10/2/23) .PDF

Note #6, #7, #8

Week-07

(10/07/24  ~ 10/11/24)

Note #12  .PDF

·         Process Environment in Linux

o   Process Termination

o   Environment List

o   Memory Layout of a C Program

o   Dynamic Memory Allocation and Deallocation

§  malloc()

§  calloc()

§  realloc()

§  free()

o   Environment Variables

 

Midterm 1 Review .PDF

 

Midterm #1 (10/9/24) .PDF

Note #1, 2, 3, 4, 5, 6, 7, 8, 9

Week-08

(10/14/24  ~ 10/18/24)

Note #13  .PDF

·         Process Control

o   What is process?

o   Process identifier

o   The fork() System Call

o   File Sharing

o   Race Condition

 

Note #14  .PDF

·         Process Termination

·         Zombie Process

·         wait() and waitpid() System Call

·         Orphan Process

·         exec System Calls

o   execl()

o   execv()

o   execle()

o   execve()

o   execlp()

o   execvp()

 

Lab reference .PDF

Week-09

(10/21/24  ~ 10/25/24)

Note #15  .PDF

·         Concept of Signals

o   Linux Signals

o   The signal System Call

o   Unreliable Signals

·         signal() System Call

·         The kill() and raise() System Call

·         The alarm() System Call

·         The pause() System Call

 

Note #16  .PDF

·         Signal set

·         The sigprocmask() system call

·         The sigaction() system call

·         Interprocess Communication

·         The sigsuspend() system call

·         The abort() system call

 

 

Week-10

(10/28/24  ~ 11/01/24)

Note #17  .PDF

·         Concept of Thread.

·         Other View of Thread

·         Summary of Thread

·         Benefits with Multiple Threads

 

Note #18  .PDF

·         What is pthreads

·         The Thread ID

·         The Thread Creation

·         The thread Termination

·         The pthread_join() function

·         Mutex

·         The pthread_cancel function

·         The pthread_cleanup_push() function

·         The pthread_cleanup_pop() function

 

 

Mini-Test #3 (10/28/24) .PDF

Note #12, #13, #14, #15 (before signal)

Week-11

(11/04/24  ~ 11/08/24)

Note #19  .PDF

·         The pthread_detach()

·         Condition Variable

o   pthread_cond_destroy()

o   pthread_cond_init()

o   pthread_cond_timedwait()

o   pthread_cond_wait()

o   pthread_cond_broadcast()

o   pthread_cond_signal

Note #20  .PDF

·         Interprocess Communication with Pipe

o   Pipe from the Parent to the child

o   Pipe from the child to the parent

o   popen() with “r”

o   popen() with “w”

 

 

Week-12

(11/11/24  ~ 11/15/24)

Note #21  .PDF

·         Corprocess

·         FIFOs

 

Note #22  .PDF

·         XSI IPC

o    Message Queue

o    Shared Memory

 

Mini-Test #4 (11/11/24) .PDF

Note #15 (begin with Signal), #16, #17, #18

Week-13

(11/18/24  ~ 11/22/24)

Note #23  .PDF

·         Producer-Consumer Problem

o    Race condition in Producer-Consumer Problem

·         Semaphores

o    Concept of Semaphores

o    Semaphore Operation

o    Producer-Consumer Problem with Semaphore

o   Dinning Philosopher’s Problems

 

Note #24  .PDF

·         XIS IPC

o   Semaphore

Midterm 2 review Note .PDF

Midterm #2(11/20/24)

Note #12, 13,14, 15, 16, 17, 18, 20, 21(before FIFO)

Week-14

(11/25/24  ~ 11/29/24)

Note #25  .PDF

·         Introduction to Client-Server Model

o   Motivation of Client-Server Model

o   Terminologies and Concepts in Client-Server Model

o   Connectionless vs. Connection-Oriented

o   Stateless vs. Stateful Server

o   Identify a client by Stateful Server

o   Server as a Client

 

THANKSGIVING BREAK (11/27/24 ~ 11/29/24)

 

Week-15

(12/02/24  ~ 12/06/24)

Note #26  .PDF

·         Application Interface to Protocols

o   Loosely Specified Protocol Interface (API)

o   Interfaces  Functionalities between TCP/IP and Application Software provided by Linux

o   Conceptual Interface Specification

o   Using Linux I/O with TCP/IP

·         The Socket API

o   Berkeley Sockets

o   Socket Descriptors and File Descriptors

o   Specifying an Endpoint Address

·         Major System Calls in the Socket API

 

 

 

Week-16

(12/09/24 ~12/10/24 )

 

 

 

 

Final Exam Week

(12/11/24  ~ 12/17/24)

Final Exam: Comprehensive

Date: 12/17/24

Time: 08:00 A.M. ~ 10:00 A.M.