Operating Sytems and Networks
FEKT-NOSSAcad. year: 2019/2020
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 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, DNS, DHCPv4/DHCPv6, HTTP, SMTP,
- explain establishing and finishing of the TCP connection,
- explain IPv6 neighbor discovery.
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.
Recommended optional programme components
Recommended or required reading
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)
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 written examination.
Language of instruction
1. Operating system (OS), OS types. Uniprogramming, multiprogramming, time sharing. Kernel. System calls. Processes, process states, process creating and finishing.
2. Process identifiers. Waiting for process finishing. Scheduling. Signals. Job control.
3. File systems. Memory management.
4. Input and output redirection in UNIX/Linux. Threads: implementing threads in user and kernel space, creating, finishing and joining of threads.
5. Processes and threads synchronization (critical sections, mutexes, semaphores, conditional variables, barriers, messages).
6. OS structure, kernel types. Virtualization. Computer networks: ISO OSI and TCP/IP model. Physical and link layer. Ethernet.
7. Switching Ethernet, switches. IEEE 802.1Q VLAN Tagging. PoE.
8. IPv4 protocol: IPv4 datagram, IPv4 addresses. ICMP protocol. ARP protocol. Routing, routing tables, route aggregation, base routing algorithm.
9. UDP and TCP protocols. Establishing and finishing of TCP connection.
10. DHCPv4. IPv6: IPv6 datagram, IPv6 addresses, interface identifiers.
11. IPv6: Neighbor discovery. Autoconfiguration. DHCPv6.
12. DNS: domains, zones, Resource Records (RR), RR types, DNS queries, DNS servers, resolvers. DNSSEC.
13. HTTP and SMTP protocol. Firewalls. DMZ.
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.