Course detail

Operating Sytems and Networks

FEKT-MPC-OSSAcad. year: 2020/2021

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.

Learning outcomes of the course unit

Graduate is able to:
- 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

The student who writes the course should be able to create simple C language program, employ base C language library functions, explain basic function of Von Neumann computer and describe what processor have to do when it services interrupt.

Co-requisites

Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

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)
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)
Silberschatz, A., Galvin, P., B., Gagne, G. Operating System Concepts. 8th ed. Hoboken: Wiley, 2010. 972 p. ISBN 978-0-470-233399-3. (EN)
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)
Dostálek, L., Kabelová, A. Velký průvodce protokoly TCP/IP a systémem DNS. 5. akt. vyd. Brno: Computer Press, 2008. 488 s. ISBN 978-80-251-2236-5. (CS)
Matthew, N., Stones, R. Linux Programujeme profesionálně. Praha: Computer Press, 2001. 1079 s. ISBN 80-7226-532-6. (CS)
Lasser, J. Rozumíme UNIXU. Praha: Computer Press, 2002. 252 s. ISBN 80-7226-706-X. (CS)

Planned learning activities and teaching methods

Techning methods include lectures, computer laboratories. Students have to create eight assignments during the course.

Assesment methods and criteria linked to learning outcomes

Up to 30 points for the computer exercises including 15 points for the individual assignments and 15 points for the test.
Up to 70 points for the final oral examination.

Language of instruction

Czech

Work placements

Not applicable.

Course curriculum

1. Introduction. Base concepts: operating system (OS), uniprogramming, multiprogramming, time sharing, preemptive and cooperative multitasking. OS abstractions. Kernel, user and kernel mode process execution. Processes: process table, PCB, process states, context switch. System calls, API, ABI. Processes, process states, process creating and finishing.
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.

Aims

The aim of the course is to familiarize students with base principles of the operating systems, UNIX/Linux user application and network programming basis, and with network protocols and standards as Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP, IPv6, DNS, DHCPv4/DHCPv6, HTTP, SMTP.

Specification of controlled education, way of implementation and compensation for absences

The computer exercises is compulsory, the properly excused missed computer exercises can be compensate.

Classification of course in study plans

  • Programme MPC-KAM Master's, 1. year of study, winter semester, 6 credits, compulsory-optional

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer

eLearning