General information:
Code:
UBPJO-051
Name:
Operating systems
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Spring
Responsible teacher:
Koźlak Jarosław (kozlak@agh.edu.pl)
Academic teachers:
Koźlak Jarosław (kozlak@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Skills
M_U001 Student can efficiently use functions available in the C/C++ language for the implementation of system mechanisms, programming on the user level. Execution of exercises,
Project,
Test results
M_U002 Student can design and implement a software which uses system mechanisms. Execution of a project,
Execution of laboratory classes,
Test results
M_U003 Student knows and understands mechanisms of inter-process communication applied in popular operating systems. Examination,
Execution of laboratory classes,
Test results
M_U004 Student knows and understands solutions of fundamental synchronisation problems and functioning of synchronisation mechanisms. Examination,
Execution of laboratory classes,
Test
Knowledge
M_W001 Student knows and understands fundamental notions of operating systems classification, their functionalities and general architecture of popular operating systems (Unix and Windows). Examination
M_W002 Student knows and understands a structure and functioning of processes and threads and their management by operating system. Examination
M_W003 Student knows and understands a problem of deadlocks and methods of deadlock prevention and avoidance. Examination
M_W004 Student knows and understands paging and segmentation methods Examination
M_W006 Student knows and understands virtual memory in operating systems. Examination
M_W007 Student knows and understands fundamentals of organisation and functioning of file systems.
M_W008 Student knows and understands fundamentals of organisation and functioning of input-output devices. Examination
M_W009 Student knows functionalities provided by standard C/C++ libraries. Execution of a project,
Execution of laboratory classes
M_W010 Student can choose and apply system mechanisms and library functions for realisation of assigned problems. Execution of a project,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Skills
M_U001 Student can efficiently use functions available in the C/C++ language for the implementation of system mechanisms, programming on the user level. - - + - - - - - - - -
M_U002 Student can design and implement a software which uses system mechanisms. - - + - - - - - - - -
M_U003 Student knows and understands mechanisms of inter-process communication applied in popular operating systems. - - + - - - - - - - -
M_U004 Student knows and understands solutions of fundamental synchronisation problems and functioning of synchronisation mechanisms. - - + - - - - - - - -
Knowledge
M_W001 Student knows and understands fundamental notions of operating systems classification, their functionalities and general architecture of popular operating systems (Unix and Windows). + - - - - - - - - - -
M_W002 Student knows and understands a structure and functioning of processes and threads and their management by operating system. + - - - - - - - - - -
M_W003 Student knows and understands a problem of deadlocks and methods of deadlock prevention and avoidance. + - - - - - - - - - -
M_W004 Student knows and understands paging and segmentation methods + - - - - - - - - - -
M_W006 Student knows and understands virtual memory in operating systems. + - - - - - - - - - -
M_W007 Student knows and understands fundamentals of organisation and functioning of file systems. + - - - - - - - - - -
M_W008 Student knows and understands fundamentals of organisation and functioning of input-output devices. + - - - - - - - - - -
M_W009 Student knows functionalities provided by standard C/C++ libraries. - - + - - - - - - - -
M_W010 Student can choose and apply system mechanisms and library functions for realisation of assigned problems. - - + - - - - - - - -
Module content
Lectures:

1. Kinds and structure of operating systems. Fundamental definitions. Monolithic and layer systems. Micro-kernel architecture. (4 hours)

2. Kernel architecture of selected Unix and Windows systems. (2 hours)

3. Process structure. States of process. Process creation. Parent and child. Threads. Thread organisation. User level threads. Kernel threads. Lightweight process. Models of multi-threading. (4 hours.).

4. Algorithms of processor planning. (2 hours.)

5. Synchronisation. Critical section problem. Algorithms solving critical section problem. Semaphores. Monitors. Producer-consumer, reader-writer and dining philosophers problem. (4 hours)

6. Deadlocks. Resource allocation graph.
Deadlock prevention and avoidance. Safe state. Safe sequence. Banker algorithm. (2 hours).

7. Memory. Organisation. Paging. (2 hours.)

8. Virtual memory. Swapping. Page replacement policies. Resident set management. (2 hours)

8. Modules Static, shared and dynamic libraries. (2 hours)

9. File system realisation. Structure of files and directories. Files attributes. Allocation of space on the disk. (2 hours)

10. Input-output management. Device drivers. Disk scheduling. (2 hours)

12.Examples of operating systems: Unix, Linux, Windows.
(2 hours)

Laboratory classes:

During laboratory activities, it is necessary to prepare a set of exercises which concern the use of the selected system mechanisms and implement a project which will evaluate skills when applying the acquired knowledge. The exercises encompasses code optimisation techniques, use of make, gdb, gprof, strace, memory allocation management, development of static and dynamic libraries, time measurements, file operations, process creation and management, signals, anonymous and named pipes, message queues, semaphores and shared memory, threads, management and synchronisation, sockets. Additionally the students have to pass tests based on the entire scope of the course.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 150 h
Module ECTS credits 6 ECTS
Participation in lectures 28 h
Realization of independently performed tasks 34 h
Participation in laboratory classes 28 h
Preparation of a report, presentation, written work, etc. 60 h
Additional information
Method of calculating the final grade:

The average value is calculated from all grades obtained from lectures and laboratories:
The final grade is calculated as follows:

if sr>4.75 then OK:=5.0 else
if sr>4.25 then OK:=4.5 else
if sr>3.75 then OK:=4.0 else
if sr>3.25 then OK:=3.5 else OK:=3

Prerequisites and additional requirements:

Student need to be be acquainted with the work with Unix-based systems (e.g. Linux) as a user and with programming in C language,

Recommended literature and teaching resources:

#. Silberschatz, P.B. Galvin, G. Gagne. „Operating System Concepts. Eighth Edition”, John Wiley & Sons Inc, 2009
#. William Stallings, „Operating Systems. Internals and Design Principles”. Sixth Edition, Pearson Prentice Hall, 2009
#. W. Richard Stevens, Stephen A. Rago, “Advanced programming in the Unix Environment”, Second Edition, Addison Wesley Publishing Company, 2005
#. Mark Mitchell, Jeffrey Oldham, Alex Samuel, “Advanced programming in Linux”, Wydawnictwo ReadMe, 2002

Scientific publications of module course instructors related to the topic of the module:

1. Probabilistyczne wykrywanie anomalii z wykorzystaniem analizy odwołań systemowych — [A probabilistic anomaly detection using analysis of system calls] / Paweł Król, Przemysław MACIOŁEK, Jarosław KOŹLAK // Informatyka Teoretyczna i Stosowana = Computer Science / Politechnika Częstochowska. Instytut Matematyki i Informatyki ; ISSN 1643-2355. — 2006 R. 6 nr 10 s. 243–255. — Bibliogr. s. 25
2. Probabilistic anomaly detection based on system calls analysis — Probabilistyczne rozpoznawanie anomalii bazujące na analizie wywołań systemowych / Przemysław MACIOŁEK, Paweł Król, Jarosław KOŹLAK // Computer Science : rocznik Akademii Górniczo-Hutniczej imienia Stanisława Staszica w Krakowie ; ISSN 1508-2806. — 2007 vol. 8 spec. ed. s. 93–108. — Bibliogr. s. 107–108

Additional information:

None