Course detail

Operating Sytems and Networks

FEKT-NOSSAcad. year: 2016/2017

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, HTTP, SMTP, operation of DNS and DHCP and IP routing. Special attention is given on new IPv6 protocol.

Language of instruction

English

Number of ECTS credits

5

Mode of study

Not applicable.

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.

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.

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.

Course curriculum

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.

Work placements

Not applicable.

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.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

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

Not applicable.

Classification of course in study plans

  • Programme EECC-MN Master's

    branch MN-KAM , 1 year of study, winter semester, elective specialised

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1.Clasical OS model, functions of layers, demands on OS, UNIX model, core, system calls, library functions. UNIX history, UNIX pedigree, standards, shells: regular expressions, standard I/O, I/O redirection, pipes.
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

26 hod., compulsory

Teacher / Lecturer

Syllabus

1. Manual pages (man, info). Base UNIX command utilisation cat, less, more, head, tail, cut, sort, mail, chmod, chown, chgrp, du, df, tar, bzip. Imput and output redirections.
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.