20801961 - OPERATING SYSTEMS

The course intend to provide: (1) competencies about a generic modern operating system, (2) competencies about the structure of a unix operating system, and specifically about linux, (3) knowledge about methodologies adopted for solving problems within the management of a modern operating system, (4) ability in the use a unix platform as a user, (5) ability in programming a unix system (scripting), (6) basic ability in system programming.
teacher profile | teaching materials

Programme

- Computer Architecture, CPU, Registry, execution, interrupt, memory hierarchy, I/O, procedure
- Modern Operating Systems: definition, goals, layer architecture, kernel/user mode
- process: dispatching, state, description and control, common models and memory management for process execution
- memory management: allocation, partitioning, best/first/next fit, buddy algorithm, paging, segmentation
- Virtual memory
- process address space, page fault, trashing, policies: fetch cleaning eviction placement, page buffering, load control, disk caching, memory mapped files.
- Hw support: paging, page tables, inverted page tables, MAS and SAS, TLB, page size, segmentation
- Resident set management: OPT, LRU, FIFO, CLOCK, Aging.
- Working set: definition, LRU, PFF.
- Scheduling: FCFS, RR, VRR, SPN, SRT, FB, comparisons, linux 2.6
- Disk Scheduling, RAID
- UNIX File Management, inode, Linux VFS, ext2

- process management via C Programming Language

- linux introduction
- documentation (man, info, less), filesystem organization, basic commands (ls, pwd, cd, cat).
- shell: bash, prompt, help, environment variable, env, $PATH, export;
- file and directory management: touch, mv, rm, cp, mkdir, rmdir
- editors and graphical framework: vi, emacs, X, window manager, gnome, kde, kwrite, gedit
- process linux: sleeping ready/running and stopped, terminal, standard input, output, error, I/O, redirection, ps, top, pstree, ^C, ^Z, background, bg, fg, &, kill, kill -9, signals
- regular expressions and grep, sed, stdin, stdout, stderr, redirection (,,, 2), background (&), and (&&), or (||), time, alias, du, df, g(un)zip, b(un)zip, (un)lzma, tar
- Scripting and awk (patterns, statements, flow control, variables, array, $0..$n, FS, RS, NR, NF).
- linux filesystem: mount, stat, ln
- Debugger: gdb stepping, breakpoints, watching, backtrace. Comandi gdb: r, quit, b, info br, help, l, n, s, dis, del, bt, frame, c, ignore, cond, p, display.

- service virtualization: Docker
- Docker Run
- Terminology -2.0 Webapps with Docker
- Docker Images
- Dockerfile
- Docker on AWS -3.0 Multi-container Environments
- Docker Network
- Docker Compose

Core Documentation

The lessons are partially based on the book:

W. Stallings, "Operating Systems: Internals and Design Principles", 6th edition. Prentice Hall.

Some contents are available on the slides linked in the HomePage of the course.
For practical exercises there is no book and there supposes the student attending the course. However the following information could be useful:

On-line Documentations about Unix/Linux commands.
M. Cooper - Advanced Bash-Scripting Guide
Any Tutorial about AWK
Any Tutorial about C Programming Language

Reference Bibliography

...

Type of delivery of the course

frontal lessons

Attendance

optional attending

Type of evaluation

unique test in a laboratory