Course detail

Operating Sytems and Networks

FEKT-MOSSAcad. year: 2010/2011

Operating system (OS), base functions of OS, demands on OS, kernel, types of kernels, process, process scheduling, UNIX process, signals, interprocess communication, file system, shells, threads, interthread synchronisation, network protocols (Ethernet, WiFi, TCP/IPv4, routing, IPv6, DNS, DHCP, IPv6, HTTP, SMTP), utilisation of unix sockets for network communication.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Advanced knowledge of OS UNIX utilization, UNIX application programming, network application programming. Knowledge of main network protocols.

Prerequisites

Knowledge of C language programming.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Work of students is evaluated during study by tests in exercises. They can obtain maximum 70 points by these tests during semester. Final examination is evaluated by 70 points at maximum.

Course curriculum

1.Computer system conception. OS, OS type, OS structure. System call. Uniprogramming, multiprogramming, time sharing.
2. Processes, process states, PCB. Scheduling, process queues. Process creating in UNIX/Linux - system calls fork() and exec(). Process termination. Process identifiers.
3. Waiying for process termination - wait(), waitpid(). UNIX process hierarchy. Signals: signals concept, signal generating, signal sending, signal delivering, signal handling, important signals. Jobs control.
4. Disks and disk arrays. File systems, VFS. UNIX file systems. Type of UNIX files. Access rights, ACL.. File and directory management functions.
5. Input and output redirection. Interprocess communication. Threads, threads implementation.
6.Threads creation, thread joining. Threads synchronisation ( mutex, semaphor, conditional variable)
7. Computer network, ISO and TCP/IP model. Physical layer and link layer. Ethernet, switches. IPv4 protocol: function, characteristic. IPv4 datagram.
8. IPv4 adresy, Internet administration organizations. Ports. UDP protocol. TCP protocol.
9. Routing, routing tables, base routing algorithm. ICMP protocol.
10. BSD socket interface. TCP client, UDP client, TCP server and UDP server. Iterative and concurrent servers.
11. IPv6 protocol. IPv6 datagram, headers, IPv6 addresses, IPv6 address types. Interface identifiers. Neighbour discovery. Aoutomatic configuration.
12. DNS: domains, zones, questions, resolvers, DNS servers, RR set, DNS records. DNSSEC. HTTP protocol: versions, GET, PUT, HEAD methods, headers, cache..
13. Email: message format, protocol SMTP, POP3, IMAP4.

Work placements

Not applicable.

Aims

Students will experience with base principles of OS , processes, threads, synchronization, memory management, file systems, programming of UNIX/Linux user and network application, network protocols Ethernet TCP/IP, IPv6, DNS, DHCP, DHCPv6, HTTP, SMTP, POP3, IMAP, SNMP.

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

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

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)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EEKR-M Master's

    branch M-KAM , 2 year of study, winter semester, elective specialised

  • Programme EEKR-CZV lifelong learning

    branch EE-FLE , 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.