Course detail
Operating Sytems and Networks
FEKT-MPC-OSSAcad. year: 2022/2023
First part of the subject deal witch the fundamental principles of the operating systems, process management, thread management, interprocess communication, process and thread synchronization, memory management, file systems, operating system structures and virtualization. Second part of the subject concerned with computer network. Students obtain information about network protocols and standard as Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP and IP routing. Special attention is given on new IPv6 protocol.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Learning outcomes of the course unit
- create simple UNIX/Linux application program,
- develop simple network application based on POSIX (BSD) sockets interface,
- create multithread programs,
- apply synchronization as mutex, semaphore, conditional variable,
- describe network protocols and standards Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP, IPv6.
- explain establishing and finishing of the TCP connection,
- explain IPv6 neighbor discovery.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Up to 70 points for the final oral examination.
Course curriculum
2. Scheduling. Process creation, program starting. System calls fork() and exec(). Process identifiers. Process termination. System call wait().
3. Signals: signal concepts, synchronous and asynchronous signals, generation of signal, delivery and acceptance of signal, boking of signal delivery. Sending signal to the process. Job control.
4. File systems: base principles of file system implementation. Kernel tables for file handling. Duplication of open file descriptors. Input and output redirection.
5. Threads: thread concepts, typical multithread applications, implementation of threads in user and kernel space, creation, termination and joining of threads.
6. Processes and threads synchronization: critical sections, low level synchronization tools (disable interrupt, spin-lock), high level synchronization tools (mutexes, semaphores, conditional variables, barriers, messages). Deadlock.
7. Computer networks: ISO OSI and TCP/IP model. Physical and link layer. Ethernet. Ethernet II frame. Ethernet switch. VLAN, IEEE 802.1Q VLAN Tagging. PoE.
8. IPv4 protocol: IPv4 datagram, addressing, fragmentation. Routing. QoS. ICMP protocol. ARP protocol.
9. TCP protocols: basic data transfer, reliability, flow control, multiplexing (ports), TCP segment, TCP segment header, establishing and finishing of TCP connection. UDP protocol.
10. POSIX (BSD) sockets API. UDP client, UDP server, TCP client, TCP server. Iterative and concurrent server. Models of concurrent server implementation.
11. IPv6: IPv6 datagram, base header, extended headers, security problems of extended heads. IPv6 addresses, interface identifiers.
12. DHCPv4 and DHCPv6 protocols. IPv6: Neighbor discovery. Autoconfiguration.
13. OS structures, kernel types. Virtualization.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Mitchell, M., Oldham, J., Samuel, A. Pokročilé programování v operačním systému Linux. Praha: SoftPress, 2002. 320 s. ISBN 80-86497-29-1. (CS)
Perlík, L. Jemný úvod do systému UNIX. Dotisk prvního vydání. České Budějovice: Koop, 2000. 189 s. ISBN 80-85828-28-6. (CS)
Silberschatz, A., Galvin, P., B., Gagne, G. Operating System Concepts. 8th ed. Hoboken: Wiley, 2010. 972 p. ISBN 978-0-470-233399-3. (EN)
Tanenbaum, S., A. Modern operating systems. 3.ed. Upper Saddle River, New Jersey 07458: Pearson Prentice Hall, 2008. 1076 p. ISBN 0-13-600663-9. (EN)
Recommended reading
Classification of course in study plans
- Programme MPC-KAM Master's 1 year of study, winter semester, compulsory-optional
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
2.Shell: variables, special shell variables, operators && a ||, conditional statements, expr, test, case statement, cycles, functions, interactive scripts (read and switch statements).
3.File systems, types of file systems, inode, directory, hard and soft links. Access rights. File and directory management functions.
4.Processes - process context, process states, process enviroment, enviroment variables, process creating (function fork, exec), finishing of process (function exit, wait, wait3), init process.
5.File sherring among processes. Input and output redirection. Interprosses communication and synchronisation: pipes, FIFO, shared memory.
6.Threads, threads synchronisation ( mutex, semaphor, conditional variable)
7.Block and characker devices, device drivers, speciální soubory, programming of Linux device drivers.
8.Ethernet, IEEE 802.11 (WiFi), TCP/IP, packet routing.
9.ICMP, DHCP, DNS, SNMP.
10.SMTP, POP3, IMAP4, LDAP. Secure communication by SSL, SSH.
11.Sockets. Network communication by sockets. Client applications. Server applications.
12.Deamos (cron, at, xinetd, ...), time synchronisation, UNIX system starting, initialisation files.
13.Real-time operating systems - base principles specification. examples of RTOS (Windows CE and RT-Linux).
Exercise in computer lab
Teacher / Lecturer
Syllabus
2.Regular expressios, grep, find, sed, awk. Pipes
3.Interactive shell programs.
4.Programs gcc, gdb, gmake. File and directory service utilisation. Temporary files creation.
5.Process enviroment. Process creations, getting base informatios about process. Process finishing (functions wait, wait3, wait4, exit, abort).
6.Input and output redirection (functions dup, dup2), pipe (function pipe, popen, pclose).
7.Fifo, signals, shered memory.
8.Threads-creation, joining, thread cancelating, thread specific date.
9.Thread synchronisation bz mutex and semaphors.
10.Thread synchronisation by conditional variable.
11.Programming of client application with socket utilisation.
12.Programming of server application with socket utilisation.
12.Programming of server application with socket utilisation - finishing.
13.Final test.