Operating Systems and Databases
- 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
7.The problem of deadlocks
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: