Introduction, history. Processes: basic concepts, concurrent processes, mutual exclusion, process management, scheduling approaches. Deadlock and deadlock prevention approaches. Memory management: segmentation, paging, related methods, virtual memory. Input/Output. UNIX and other example operating systems.
Reference link: BLG312E
Advanced processor structures: CISC/RISC architectures, pipeline structure, array processors, interleaved memory. Floating point computer arithmetic and algorithms. Input-output organization: data transfer methods, interrupts and direct memory access. Memory hierarchy, virtual memory, cache memory, memory management hardware. Multiprocessor architectures: interconnection structure, bus arbitrations, cache coherence.
Reference link: BLG322E
This course aims to study the methods for designing efficient algorithms and to evaluate their performance (mainly in terms of time).
Reference link: BLG372E