Operating Systems and Databases

The course is not on the list Without time-table
Code Completion Credits Range Language
AD3B33OSD Z,ZK 6 21+6c Czech
Department of Cybernetics

The goal of this course is to introduce basic concepts and principles of operating systems

(OS), like processes and threads, their scheduling, mutual communication and

synchronization, time-dependent errors and deadlocks. Attention is also paid to memory

management, virtual memory, management of secondary storages, file-systems and data

security. The second part of the course is focused at databases, their types and

structures, concurrent data access and transactions.


Basic knowledge of C programming

Syllabus of lectures:

1.Basic concepts: operating system (OS) and its kernel, hardware dependency, processes, threads, scheduling. OS types.

2.Compiling and linking, libraries, OS services and calls, dynamic libraries and run-time linking

3.Implementation and life-cycle of processes and threads. Scheduling algorithms. Real-time OSes and scheduling in them.

4.Communication among processes and threads, critical sections, time-dependent errors, synchonization tools. Classical synchronization problems and their solution.

5.Deadlocks: definition, conditions, solution possibilities

6.Memory management: Basic techniques. Virtual memory, swapping, paging, segmentation, page-replacement algorithms.

7.File-systems, organizing data on the secondary storage, principles, standard solutions, data security.

8.Distributed computing, client-server architectures. OS components supporting computer networks and their programming.

9.The database concepts and types. Data modelling, E-R model, decomposition and normalization. Data integrity

10.Relation, relational model, keys (proper and foreign), data model quality. Object-oriented and object-relatinal databases.

11.Database query languages. Relational algebra and calculus. SQL language queries, DDL, DML). XML data representation.

12.Concurrent access to data, transactions, atomicity, error recovery, concurrency coordination.

13.Physical data organization, indexes, B-trees, bitmap indexes, link-up to OS.

14.Wrap-up, spare time.

Syllabus of tutorials:

1.Introdution, exercise organization, 1st task assignment

2.Brief OS overview, introduction to scripting languages

3.Advanced script programming, regular expressions

4.Exercising the scripting languages, 1st task delivery

5.2nd task assignment. Processes & threads, resource sharing - practical examples

6.Interprocess communication

7.The problem of deadlocks

8.Client-server programming

9.2nd task delivery and results presentation

10.3rd task assignment, designing a simple database

11.SQL loanguage and its applications

12.Individual work in a computer room

13.Presenytation of 3rd task results

14.Conclusion, Q&A, spare time

Study Objective:
Study materials:

1.Silberschatz A., Galvin P. B., Gagne G.: Operating System Concepts. J. Willey, 2005

2.Tanenbaum A. S.: Modern Operating Systems. Prenice Hall, 2001

3.Pokorný, J., Halaška, I.: Databázové systémy. Vydavatelství ČVUT, 2003

4.Elmasri R., Navath S.: Fundamentals of database systems. Addison-Wesley, 2007

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2019-03-25
For updated information see http://bilakniha.cvut.cz/en/predmet1214906.html