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