Friday, Aug. 29th, 2014
- Basic OS structure: kernel + modules + device drivers + …
- Interrupt (hardware-generated) vs. trap (exception) (software-generated)
- Dual-mode operation: distinguish between the execution of operating system code and user code.
- Processor support for user mode and kernel mode. A hardware bit is used to remember in which state the processor is running (mode bit).
- Processor’s instruction set designates privileged instructions which can only be executed when running in kernel model.
- The concept of system call (syscall)
Monday, Sept. 1st, 2014
- Unix commands are programs: /bin, /sbin, /usr/bin, /usr/sbin, …
- Some Unix “commands” are actually built into the shell (bash, for instance)
- ps(1), kill(1)
- sleep(3), usleep(3)
- C review: pointers
- Terminate a process with exit(3), which returns status to parent process
- wait(2) and waitpid(2) system calls
- C concept: double pointers (for instance: int** a)
- which(1)
- Process environment; the env command (/bin/env)
Wednesday, Sept. 3rd, 2014
- The lifetime of a process: states and transitions
- Process memory footprint, inheritance
- Process Control Block and OS bookkeeping for process management
- fork(2) and exec(2)
Friday, Sept. 5th, 2014
- CPU switching: interrupts, scheduling; the cost of a context switch
- Types of processes: CPU-bound vs. I/O-bound
- Scheduling vs. dispatching
- Types of schedulers: long-term vs. short-term
- Goals of the long-term scheduler (e.g. control the degree of multiprogramming) vs. goals of the short-term scheduler (e.g. CPU sharing)
- Identifying when the short-term schedule is activated
- Data structures for process scheduling
- InterProcess Communication (IPC) with Unix pipe
Monday, Sept. 8th, 2014
- IPC with Unix pipe
- Other mechanisms for IPC: sockets (datagram, byte stream), shared memory, files
- IPC: direct vs. indirect communication; unidirectional vs. bidirectional; length of messages
- Message passing and synchronization: blocking vs. non-blocking channels
- Buffering: zero capacity, bounded capacity, unbounded capacity
- Types of processes: cooperating vs. independent
- The system(3) call
- The BSD style wait3(2) and wait4(2) calls