ENCT254
Operating System
Syllabus
- Introduction (6 hours)
- Introduction to operating systems
- OS as an extended machine and resource manager
- History of operating system
- Types of operating system: mainframe, server, personal, smartphone and handheld, IoT and embedded, real-time, smart-card
- Operating system components: kernel, shell, utilities, applications
- Types of OS kernel: monolithic, micro, nano, layered, hybrid, exo-kernel
- System calls, shell commands, shell programming
- POSIX standard
- Bootloader, MBR/GPT, UEFI and legacy boot
- Process Management (7 hours)
- Process description, states and control
- Scheduling algorithms: FCFS, SJF, SRT, Round Robin, HRRN, Completely Fair Scheduler (CFS) used in Linux
- Threads and thread scheduling
- Process Communication and Synchronization (10 hours)
- Principles of concurrency, race condition, critical region
- Mutual exclusion, semaphores, and mutex
- Message passing and monitors
- Classical problems of synchronization: readers-writers, producer-consumer, dining philosopher
- Deadlock: prevention, ignorance, avoidance, detection and recovery
- I/O and Memory Management (9 hours)
- I/O management: principles of I/O hardware and software, I/O software layer, disk technologies (magnetic disk, SSD, NVMe storage), RAID, stable storage, cost per bit comparison
- Memory management: memory address, swapping and managing free memory space; virtual memory management, paging, segmentation; page replacement algorithms (FIFO, LRU, LFU), page fault and hit ratio; allocation of frames; thrashing
- File Systems (3 hours)
- File concepts: name, structure, types, access, attributes, operations
- Directory structures: paths and hierarchies (Linux/Windows)
- File system implementation: inodes, allocation methods (contiguous, linked, indexed)
- File system performance: factors affecting efficiency
- Example file systems: NTFS, EXT4, FAT32, NFS
- Security and System Administration (3 hours)
- OS security: cryptography, multi-factor authentication (MFA), secure boot and sandboxing
- Access control: policies, lists, and OS support
- System administration: user management, environment setup and tools (AWK, shell scripts, make)
- Hypervisors and Virtual Systems (4 hours)
- Hypervisors: type 1 and type 2
- Virtual machines: creating virtual machine in Qemu/VirtualBox/VMWare
- Container virtualization: Docker and Kubernetes
- PowerShell and Windows Subsystem for Linux (WSL)
- Performance optimization and security in virtualized environments
- Overview of Contemporary OS (3 hours)
- Windows and Linux-based OS
- Embedded and mobile OS
- IoT and RT operating system
- Robot and smart card operating system
Practicals
- Basic Unix commands
- Shell programming
- Implementation of the ls and grep commands
- Programs using the I/O system calls of the UNIX operating system
- Implementation of scheduling algorithms and the producer-consumer problem using semaphores
- Implementation of memory management schemes such as paging and segmentation
- Term project